summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2010-01-26 00:09:33 +0900
committerAkira TAGOH <akira@tagoh.org>2010-01-26 00:09:33 +0900
commit07bdcd240d1261efb3bee68de3c0e755b4cc99b4 (patch)
tree1d82238e0137f5480705757df313986482e1cccf
parent4541f93d5a8fc66d9a129151571dd4dda9eaacf8 (diff)
clean up
-rw-r--r--AUTHORS1
-rw-r--r--COPYING510
-rw-r--r--ChangeLog4345
-rw-r--r--INSTALL236
-rw-r--r--Makefile.am15
-rw-r--r--NEWS0
-rw-r--r--README27
-rw-r--r--TODO20
-rwxr-xr-xautogen.sh21
-rwxr-xr-xcommit.sh64
-rw-r--r--configure.ac320
-rw-r--r--devices/Makefile.am12
-rw-r--r--devices/cairo/Makefile.am53
-rw-r--r--devices/cairo/cairo-ps-main.c113
-rw-r--r--devices/cairo/cairo-xlib-main.c115
-rw-r--r--devices/cairo/hgdevice-cairo.c522
-rw-r--r--devices/cairo/hgdevice-cairo.h66
-rw-r--r--devices/x11-embedded/Makefile.am47
-rw-r--r--devices/x11-embedded/hgdevice-x11.c38
-rw-r--r--devices/x11-embedded/hgdevice-x11.h34
-rw-r--r--devices/x11-embedded/x11-embedded-main.c37
-rw-r--r--examples/Makefile.am31
-rw-r--r--examples/cairo-xlib.c88
-rw-r--r--examples/pse.c89
-rw-r--r--hieroglyph.pc.in10
-rw-r--r--hieroglyph/Makefile.am86
-rw-r--r--hieroglyph/hgarray.c213
-rw-r--r--hieroglyph/hgarray.h56
-rw-r--r--hieroglyph/hgdict.c274
-rw-r--r--hieroglyph/hgdict.h57
-rw-r--r--hieroglyph/hgdictprime.h7953
-rw-r--r--hieroglyph/hgfile.c330
-rw-r--r--hieroglyph/hgfile.h53
-rw-r--r--hieroglyph/hgmacros.h126
-rw-r--r--hieroglyph/hgobject.c618
-rw-r--r--hieroglyph/hgobject.h125
-rw-r--r--hieroglyph/hgoperator-private.h92
-rw-r--r--hieroglyph/hgoperator.c1283
-rw-r--r--hieroglyph/hgoperator.h52
-rw-r--r--hieroglyph/hgstack.c218
-rw-r--r--hieroglyph/hgstack.h51
-rw-r--r--hieroglyph/hgstring.c133
-rw-r--r--hieroglyph/hgstring.h45
-rw-r--r--hieroglyph/hgtypes.h812
-rw-r--r--hieroglyph/utils.c96
-rw-r--r--hieroglyph/utils.h40
-rw-r--r--hieroglyph/version.h.in39
-rw-r--r--hieroglyph/version.h.in.in39
-rw-r--r--hieroglyph/vm.c746
-rw-r--r--hieroglyph/vm.h72
-rw-r--r--lib/Makefile.am12
-rw-r--r--lib/hg_init.ps463
-rw-r--r--lib/hg_init_lv2.ps55
-rw-r--r--lib/hg_init_lv3.ps7
-rw-r--r--plugins/Makefile.am9
-rw-r--r--plugins/debug/Makefile.am35
-rw-r--r--plugins/debug/debug-main.c223
-rw-r--r--plugins/libedit/Makefile.am36
-rw-r--r--plugins/libedit/libedit-main.c414
-rw-r--r--plugins/test/Makefile.am44
-rw-r--r--plugins/test/hg_unittest.ps249
-rw-r--r--plugins/test/test-main.c313
-rw-r--r--po/ChangeLog8
-rw-r--r--po/POTFILES.in3
-rw-r--r--po/ja.po72
-rw-r--r--requires2
-rw-r--r--src/Makefile.am82
-rw-r--r--src/hgs.c170
-rw-r--r--src/hgspy.c963
-rwxr-xr-xsrc/hgspy.sh5
-rw-r--r--src/hgspy_helper.c227
-rw-r--r--src/hgspy_helper.h32
-rw-r--r--src/visualizer.c848
-rw-r--r--src/visualizer.h78
-rw-r--r--tests/Makefile.am64
-rw-r--r--tests/hgarray.c460
-rw-r--r--tests/hgdict.c489
-rw-r--r--tests/hgfile.c109
-rw-r--r--tests/hgobject.c533
-rw-r--r--tests/hgstack.c343
-rw-r--r--tests/hgstring.c151
-rw-r--r--tests/main.c41
-rw-r--r--tests/main.h34
-rw-r--r--tests/ps/Makefile.am13
-rw-r--r--tests/ps/arc.ps2
-rw-r--r--tests/ps/concat.ps1
-rw-r--r--tests/ps/currentpoint.ps2
-rw-r--r--tests/ps/curveto.ps1
-rw-r--r--tests/ps/doretree.ps2485
-rw-r--r--tests/ps/ge.ps4
-rw-r--r--tests/ps/gt.ps7
-rw-r--r--tests/ps/idiv.ps3
-rw-r--r--tests/ps/known.ps4
-rw-r--r--tests/ps/le.ps4
-rw-r--r--tests/ps/length.ps11
-rw-r--r--tests/ps/loop.ps1
-rw-r--r--tests/ps/matrix.ps1
-rw-r--r--tests/ps/mod.ps4
-rw-r--r--tests/ps/mul.ps1
-rw-r--r--tests/ps/ne.ps5
-rw-r--r--tests/ps/neg.ps4
-rw-r--r--tests/ps/not.ps3
-rw-r--r--tests/ps/or.ps5
-rw-r--r--tests/ps/pathbbox.ps2
-rw-r--r--tests/ps/pop.ps1
-rw-r--r--tests/ps/repeat.ps1
-rw-r--r--tests/ps/sin.ps2
-rw-r--r--tests/ps/snowflak.ps93
-rw-r--r--tests/ps/test-0base.ps13
-rw-r--r--tests/ps/test-abs.ps11
-rw-r--r--tests/ps/test-add.ps17
-rw-r--r--tests/ps/test-aload.ps13
-rw-r--r--tests/ps/test-anchorsearch.ps19
-rw-r--r--tests/ps/test-and.ps21
-rw-r--r--tests/ps/test-array.ps11
-rw-r--r--tests/ps/test-astore.ps14
-rw-r--r--tests/ps/test-atan.ps16
-rw-r--r--tests/ps/test-begin.ps11
-rw-r--r--tests/ps/test-bind.ps9
-rw-r--r--tests/ps/test-bitshift.ps13
-rw-r--r--tests/ps/test-ceiling.ps11
-rw-r--r--tests/ps/test-clear.ps5
-rw-r--r--tests/ps/test-cleartomark.ps7
-rw-r--r--tests/ps/test-closefile.ps8
-rw-r--r--tests/ps/test-concatmatrix.ps24
-rw-r--r--tests/ps/test-copy.ps33
-rw-r--r--tests/ps/test-cos.ps10
-rw-r--r--tests/ps/test-count.ps6
-rw-r--r--tests/ps/test-countdictstack.ps11
-rw-r--r--tests/ps/test-counttomark.ps7
-rw-r--r--tests/ps/test-currentdict.ps7
-rw-r--r--tests/ps/test-currentfile.ps7
-rw-r--r--tests/ps/test-cvi.ps21
-rw-r--r--tests/ps/test-cvlit.ps10
-rw-r--r--tests/ps/test-cvn.ps14
-rw-r--r--tests/ps/test-cvr.ps18
-rw-r--r--tests/ps/test-cvrs.ps22
-rw-r--r--tests/ps/test-cvs.ps15
-rw-r--r--tests/ps/test-cvx.ps6
-rw-r--r--tests/ps/test-def.ps23
-rw-r--r--tests/ps/test-dict.ps11
-rw-r--r--tests/ps/test-dictstack.ps9
-rw-r--r--tests/ps/test-div.ps14
-rw-r--r--tests/ps/test-dup.ps7
-rw-r--r--tests/ps/test-end.ps6
-rw-r--r--tests/ps/test-eq.ps40
-rw-r--r--tests/ps/test-errordict.ps6
-rw-r--r--tests/ps/test-exch.ps7
-rw-r--r--tests/ps/test-exec.ps8
-rw-r--r--tests/ps/test-execstack.ps9
-rw-r--r--tests/ps/test-executeonly.ps14
-rw-r--r--tests/ps/test-exit.ps22
-rw-r--r--tests/ps/test-exp.ps12
-rwxr-xr-xtests/ps/test-ps.sh22
-rw-r--r--tests/ps/testtest-currentfile.ps1
-rw-r--r--tests/ps/testtest-exit.ps1
-rw-r--r--tests/ps/toh4.ps302
-rw-r--r--tests/ps/translate.ps1
-rw-r--r--tests/ps/truncate.ps2
-rw-r--r--tests/ps/type.ps13
-rw-r--r--tests/ps/usertime.ps1
-rw-r--r--tests/ps/vasarely.ps588
-rw-r--r--tests/ps/where.ps2
-rwxr-xr-xtests/run.sh21
-rwxr-xr-xupdate-version7
165 files changed, 0 insertions, 31216 deletions
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index 096cebf..0000000
--- a/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-Akira TAGOH <at@gclab.org>
diff --git a/COPYING b/COPYING
deleted file mode 100644
index 2d2d780..0000000
--- a/COPYING
+++ /dev/null
@@ -1,510 +0,0 @@
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations
-below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes a de-facto standard. To achieve this, non-free programs must
-be allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at least
- three years, to give the same user the materials specified in
- Subsection 6a, above, for a charge no more than the cost of
- performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply, and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License
-may add an explicit geographical distribution limitation excluding those
-countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms
-of the ordinary General Public License).
-
- To apply these terms, attach the following notices to the library.
-It is safest to attach them to the start of each source file to most
-effectively convey the exclusion of warranty; and each file should
-have at least the "copyright" line and a pointer to where the full
-notice is found.
-
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the library,
-if necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James
- Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index fa1aba4..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,4345 +0,0 @@
-2009-05-11 Akira TAGOH <akira@tagoh.org>
-
- * hieroglyph/hgobject.c (_hg_object_new): Fix the alignment issue.
-
- * hieroglyph/hgstack.c (hg_stack_dump): Fix a warning on 64bit arch.
-
- * tests/hgobject.c (test_hg_object_sized_new): update the aligned size.
-
-2007-12-31 Akira TAGOH <akira@tagoh.org>
-
- * tests/Makefile.am (test_hgstack_SOURCES): use check library.
-
- * tests/hgstack.c: Add more testcases.
-
-2007-12-22 Akira TAGOH <akira@tagoh.org>
-
- * tests/hgstring.c: Add more testcases.
-
-2007-12-06 Akira TAGOH <akira@tagoh.org>
-
- * tests/hgdict.c: Add more testcases.
-
-2007-12-03 Akira TAGOH <akira@tagoh.org>
-
- * hieroglyph/hgobject.h (HG_OBJECT_REAL_IS_EQUAL_TO): new macro.
-
- * hieroglyph/hgobject.c (hg_object_name_compare_with_raw): new function.
- (hg_object_name_n_compare_with_raw): new function.
-
- * hieroglyph/vm.c (hg_vm_new): have a flag to check if
- the initialization is done.
- (hg_vm_initialize): do nothing if the initialization is already done.
- (hg_vm_finalize): finalize the VM.
-
- * hieroglyph/hgoperator.c (hg_object_operator_initialize): have a flag
- to check if the initialization is done.
-
- * hieroglyph/hgdictprime.h (__hg_dict_primes): correct primes table.
-
- * tests/hgobject.c: Add more test cases.
-
-2007-12-02 Akira TAGOH <akira@tagoh.org>
-
- * hieroglyph/utils.c (hg_quiet_warning_messages): new function.
- (hg_allow_warning_messages): new function.
-
- * tests/hgobject.c (test_hgobject_new): disable the warning messages
- for some things that is intentional not to confuse.
- (test_hg_object_dup): likewise.
-
- * tests/hgarray.c (test_hg_object_array_subarray_new): likewise.
-
-2007-11-27 Akira TAGOH <akira@tagoh.org>
-
- * update-version: trivial update.
-
- * hieroglyph/hgobject.c (_hg_object_new): Initialize the object type.
- (hg_object_name_new): Initialize the unused value too.
-
- * hieroglyph/vm.c (hg_vm_get_current_allocation_mode): new function.
- (hg_vm_set_current_allocation_mode): likewise.
- (hg_vm_get_attributes): Follow the value for the allocation mode.
-
- * hieroglyph/hgdict.c (_hg_object_dict_insert): Fix a typo.
- (hg_object_dict_new): Initialize the array area.
-
- * configure.ac (AC_INIT): Update the bug report address.
-
- * tests/hgdict.c: Add more test cases.
-
-2007-10-22 Akira TAGOH <akira@tagoh.org>
-
- * hieroglyph/hgarray.c (hg_object_array_new): initialize the array.
- (hg_object_array_compare): consider the objects as the same if the same
- address is given.
-
- * hieroglyph/hgobject.c (hg_object_compare): consider the objects as
- the same if the same address is given.
-
- * tests/hgarray.c: add more test cases.
-
-2007-10-18 Akira TAGOH <akira@tagoh.org>
-
- * tests/Makefile.am: add more test cases.
-
- * hieroglyph/hgobject.c (hg_object_dup): initialize the return value with NULL.
-
-2007-09-18 Akira TAGOH <akira@tagoh.org>
-
- * hieroglyph/vm.c (hg_vm_stepi): new function to step one instruction exactly.
-
-2006-12-20 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgfile.c (hg_file_object_ungetc): fix a duplicate of
- pushing back.
-
-2006-12-19 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgstring.c (hg_string_erase): new function.
-
- * hieroglyph/scanner.c (_hg_scanner_parse_number): fix a parser to
- recognize a special character after numeric.
-
- * tests/ps/test-0base.ps: fix a typo.
-
- * plugins/test/test-main.c (_test_op_validateunittest): fix a typo.
-
-2006-12-03 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/scanner.c (_hg_scanner_parse_number): remove
- an unnecessary push back.
-
- * hieroglyph/hgstack.c (_hg_stack_real_set_flags): modify due to using
- HgList instead of GList.
- (_hg_stack_real_relocate): likewise.
- (_hg_stack_real_dup): likewise.
- (hg_stack_new): likewise.
- (_hg_stack_push): likewise.
- (hg_stack_pop): likewise.
- (hg_stack_clear): likewise.
- (hg_stack_index): likewise.
- (hg_stack_roll): likewise.
- (hg_stack_dump): likewise.
-
- * hieroglyph/hglist.c (hg_list_iter_get_index): new function.
- (hg_list_iter_roll): new function.
-
-2006-11-21 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hglist.c (hg_list_get_iter_previous): new function.
- (hg_list_get_iter_last): new function.
-
-2006-11-13 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_arc): fix a typo.
-
- * hieroglyph/hgfile.c (hg_file_object_ungetc): improve dealing with
- ungetc.
-
- * hieroglyph/vm.c (hg_vm_get_save_level): just ask HgMemPool instead of
- managing snapshot in VM.
-
- * hieroglyph/hgmem.c (hg_mem_pool_get_n_snapshots): new function.
- (hg_mem_pool_get_snapshot): new function.
- (hg_mem_pool_clear_snapshot): new function.
- (hg_mem_pool_add_root_node): renamed.
- (hg_mem_pool_remove_root_node): likewise.
- (hg_mem_pool_add_pool_reference): likewise.
- (hg_mem_pool_remove_pool_reference): likewise.
-
- * hieroglyph/ilist.c (_hg_list_iter_delete_link): fix a memory leak.
-
- * hieroglyph/scanner.c (_hg_scanner_parse_number): push back a space
- to deal with it later.
-
-2006-11-12 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_init): remove GAllocator initialization
- code.
- (hg_mem_finalize): remove GAllocator finalization code.
- (hg_mem_pool_destroy): use HgList instead of GList.
- (hg_mem_pool_is_own_object): likewise.
- (hg_mem_pool_save_snapshot): save an snapshot image to the list in pool.
- (hg_mem_pool_get_age_of_snapshot): new function.
- (_hg_mem_set_flags): new function.
- (hg_mem_add_root_node): use HgList instead of GList.
- (hg_mem_remove_root_node): likewise.
- (hg_mem_add_pool_reference): likewise.
- (hg_mem_remove_pool_reference): likewise.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_relocate):
- use HgList instead of GList.
- (_hg_allocator_bfit_real_set_flags): new function to avoid a fail of
- restoring a snapshot when the unused complex objects are freed after
- snapping shot, because snapshot image doesn't take care of mere
- complex objects.
-
- (_hg_allocator_bfit_real_garbage_collection):
- use HgList instead of GList.
- (_hg_allocator_bfit_real_restore_snapshot): take an argument to adjust
- the amount of objects for the fudge factor.
-
- * hieroglyph/hgmacros.h (HG_MEMOBJ_GET_SNAPSHOT_AGE): add a new macro.
- (HG_MEMOBJ_SET_SNAPSHOT_AGE): add a new macro.
-
- * hieroglyph/hglist.c (hg_list_length): fixed an infinite loop issue.
- (hg_list_remove): reimplement with iterator to be simplified.
-
- * hieroglyph/ilist.c (_hg_list_length): fixed an infinite loop issue.
- (_hg_list_remove): reimplement with iterator to be simplified.
-
-2006-11-04 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/vm.c (hg_vm_finalize): change the order of fnalization.
-
- * hieroglyph/hglog.c (hg_logv): don't use HgString to get it working
- even when memory allocation error happens.
-
- * hieroglyph/vm.c (hg_vm_lookup): ues logger facility.
- (hg_vm_lookup_with_string): likewise.
- (hg_vm_set_error): likewise.
-
- * hieroglyph/hgplugins.c (_hg_plugin_load): use logger facility.
-
- * hieroglyph/hgmem.c (_hg_mem_init_stack_start): use logger facility.
- (hg_mem_pool_new): likewise.
- (hg_mem_gc_mark_array_region): likewise.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_garbage_collection):
- use logger facility.
- (_hg_allocator_bfit_real_gc_mark): likewise.
-
- * src/hgs.c (main): set flags from HIEROGLYPH_DEBUG environment
- variable.
-
- * devices/cairo/hgdevice-cairo.c (_hg_cairo_device_print_path):
- use logger facility.
- (_hg_cairo_device_real_eofill): likewise.
- (_hg_cairo_device_real_fill): likewise.
- (_hg_cairo_device_real_stroke): likewise.
- (_hg_cairo_device_set_matrix): likewise.
-
- * hieroglyph/vm.c (hg_vm_init): initialize logger facility.
- (hg_vm_finalize): finalize logger.
-
- * hieroglyph/hglog.c (hg_log_set_flag): new function.
- (hg_logv): allow to output a message without initialization.
-
-2006-10-22 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/Makefile.am (libhieroglyph_la_SOURCES): added hglog.c.
-
- * hieroglyph/hglog.[ch]: new files for logger.
-
-2006-10-21 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/vm.c (_hg_vm_op_rollbacksecuritylevel): ignore the errors.
-
-2006-10-18 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_exec): save the current
- security level and rollback it after finished the object's execution.
-
- * hieroglyph/vm.c (_hg_vm_op_rollbacksecuritylevel): new function.
- (hg_vm_set_security_level): implemented.
- (hg_vm_get_security_level): implemented.
-
- * hieroglyph/operator.c (_hg_operator_op_countdictstack):
- check VMerror.
- (_hg_operator_op_countexecstack): likewise.
- (_hg_operator_op_currentdict): likewise.
- (_hg_operator_op_currentfile): likewise.
- (_hg_operator_op_dup): likewise.
- (_hg_operator_op_private_hg_getsecuritylevel): new function.
- (_hg_operator_op_private_hg_setsecuritylevel): new function.
-
-2006-10-16 Akira TAGOH <at@gclab.org>
-
- * plugins/test/hg_unittest.ps (initunittest): erase a prompt.
- (.updateunittestprogress): show a pinwheel.
-
-2006-10-15 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_restore): drop the save object
- out of ostack if restore successfully complete.
-
- * hieroglyph/vm.c (hg_vm_startjob): allow an empty initializer to
- just makes VM initialization.
-
- * src/hgs.c (main): add --sync option.
-
- * hieroglyph/hgfile.c (hg_file_io_synchronous): new function.
- (hg_file_object_write): call fsync after writing according to
- the current state of I/O synchronous.
-
- * hieroglyph/hgstring.c (hg_string_append_printf): new function.
- (hg_string_append_vprintf): new function.
-
- * hieroglyph/hgdict.c (_hg_dict_traverse_set_flags): removed
- the unnecessary debugging code.
-
-2006-10-12 Akira TAGOH <at@gclab.org>
-
- * tests/ps/test-exp.ps: new testcase.
-
- * tests/ps/test-ps.sh (run_test): new function.
-
- * hieroglyph/scanner.c (_hg_scanner_parse_number): fixed a typo.
-
- * hieroglyph/operator.c (_hg_operator_op_exit): throw /invalidexit
- if it's going to jump stopped context.
- (_hg_operator_op_private_hg_exit): new function to not check
- /invalidexit for stopped.
-
- * lib/hg_init.ps (executive): use .exit instead of exit.
-
- * tests/ps/test-exec.ps:
- * tests/ps/test-executeonly.ps:
- * tests/ps/test-execstack.ps:
- * tests/ps/test-eq.ps:
- * tests/ps/test-exch.ps:
- * tests/ps/test-exit.ps:
- * tests/ps/testtest-exit.ps: new testcases.
-
-2006-10-11 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_eq): check /invalidaccess for
- only name/string objects.
-
- * tests/ps/test-dup.ps:
- * tests/ps/test-end.ps:
- * tests/ps/test-dictstack.ps:
- * tests/ps/test-div.ps:
- * tests/ps/test-errordict.ps:
- * tests/ps/test-eq.ps: new testcases.
-
- * tests/ps/test-dict.ps: new testcase.
-
- * hieroglyph/operator.c (_hg_operator_op_put): check /dictfull.
-
- * hieroglyph/scanner.c (_hg_scanner_get_object): exclude dict object
- to make a readonly object.
-
- * hieroglyph/operator.c (_hg_operator_op_dict): detect /dictfull
- if it's running on PS1 VM.
-
- * hieroglyph/hgdict.c (hg_dict_new): allow to create an empty dict.
-
- * plugins/test/hg_unittest.ps (.dotypecheck): fixed /dictfull error.
-
- * tests/ps/test-cvx.ps:
- * tests/ps/test-def.ps: new testcases.
-
-2006-10-10 Akira TAGOH <at@gclab.org>
-
- * lib/hg_init.ps (cvs): better error handling.
-
- * tests/ps/test-cvs.ps:
- * tests/ps/test-cvrs.ps: new testcases.
-
-2006-10-09 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_cvi): fixed not catching
- an exception in some cases.
- (_hg_operator_op_cvr): likewise.
-
- * tests/ps/test-cvr.ps: new testcase.
-
- * hieroglyph/scanner.c (_hg_scanner_get_object): shut up the warning.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_compare_content):
- extend to be able to compare the permissions as well.
-
- * hieroglyph/hgdict.c (_hg_dict_compare_on_traverse): likewise.
- (hg_dict_compare): likewise.
-
- * hieroglyph/hgarray.c (hg_array_compare): likewise.
-
- * tests/ps/currentfile.ps: clean up.
-
- * tests/ps/test-cvn.ps:
- * tests/ps/test-cvlit.ps: new testcases.
-
- * tests/ps/test-concatmatrix.ps:
- * tests/ps/test-astore.ps:
- * tests/ps/test-copy.ps:
- * tests/ps/test-anchorsearch.ps:
- * tests/ps/test-aload.ps:
- * tests/ps/test-cvi.ps: add more testcases.
-
- * tests/ps/test-ps.sh: run with the quiet mode.
-
- * plugins/test/hg_unittest.ps (setunittestmask): new proc.
-
- * plugins/test/test-main.c (_test_op_validateunittest): compare
- the permissions too.
-
- * tests/ps/test-0base.ps: new testcase.
-
- * hieroglyph/operator.c (_hg_operator_op_cvi): check the overflow.
-
- * hieroglyph/scanner.c (_hg_scanner_get_object): split up the numeral
- parser.
- (_hg_scanner_parse_number): new function.
-
- * hieroglyph/Makefile.am (libhieroglyph_private_SOURCES):
- add iarray.[ch].
-
- * hieroglyph/iarray.[ch]: new files.
-
-2006-10-08 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_add): correct the overflow
- checking.
-
- * tests/ps/test-add.ps: add more testcases.
-
-2006-10-05 Akira TAGOH <at@gclab.org>
-
- * tests/ps/test-ps.sh: change the current dir during testing to ensure
- the expected behavior.
-
- * tests/ps/test-count.ps:
- * tests/ps/test-countdictstack.ps:
- * tests/ps/test-counttomark.ps:
- * tests/ps/test-currentdict.ps:
- * tests/ps/test-currentfile.ps:
- * tests/ps/testtest-currentfile.ps: new testcases.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_REAL_SIMILAR): need to decrease
- the precision to ensure "90 cos" is 0.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_compare_content): use macro.
-
- * plugins/test/hg_unittest.ps (.dotypecheck): reflect the result to
- dict.
-
-2006-09-24 Akira TAGOH <at@gclab.org>
-
- * tests/ps/test-copy.ps: new testcase.
-
- * hieroglyph/operator.c (_hg_operator_op_concatmatrix):
- create new node to store the result. array may has the same instance
- for node.
- (_hg_operator_op_copy): fixed a typo. and check /typecheck first.
-
- * plugins/test/hg_unittest.ps (.dotypecheck): create another file
- object to avoid any breakages.
-
- * tests/ps/test-ceiling.ps:
- * tests/ps/test-clear.ps:
- * tests/ps/test-cleartomark.ps:
- * tests/ps/test-closefile.ps:
- * tests/ps/test-concatmatrix.ps: new testcases.
-
- * hieroglyph/hgplugins.c (_hg_plugin_load): silence the debug output.
-
- * tests/ps/test-and.ps:
- * tests/ps/test-array.ps:
- * tests/ps/test-astore.ps:
- * tests/ps/test-atan.ps:
- * tests/ps/test-begin.ps:
- * tests/ps/test-bind.ps:
- * tests/ps/test-bitshift.ps: new testcases.
-
- * hieroglyph/hgarray.c (hg_array_set_name): don't free array->name
- here. it may be likely that older objects in snapshot may still refers
- to it.
-
- * hieroglyph/hgstring.c (hg_string_new): fixed the uninitialized value.
-
- * plugins/debug/debug-main.c (_debug_op_breakpoint): new function.
-
- * lib/hg_init.ps (anchorsearch): fixed wrong return value.
- treat /rangecheck as /stackunderflow when it happens in index or roll.
-
- * tests/ps/test-aload.ps: new testcase.
-
- * tests/ps/test-anchorsearch.ps: new testcase.
-
- * plugins/test/hg_unittest.ps (typecheck): new procedure to test
- if /typecheck happens.
- (.dotypecheck): new.
-
-2006-09-23 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_add): fixed a overflow.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_compare): use macro.
-
- * tests/ps/test-add.ps: new test case.
-
- * src/hgs.c (main): returns an error code.
-
- * plugins/test/hg_unittest.ps (unittestresult): stop with an error code
- when unit test failed.
-
-2006-09-20 Akira TAGOH <at@gclab.org>
-
- * tests/ps/test-ps.sh: depends on hgs instead of pse.
-
- * tests/ps/Makefile.am (check): run test-ps.sh.
-
- * plugins/test/hg_unittest.ps (initunittest): new proc.
- (unittest): updated the result in dict.
- (unittestresult): new proc.
-
- * hieroglyph/hgmem.h (hg_mem_set_dead): new macro.
- (hg_mem_unset_dead): likewise.
- (hg_mem_is_dead): likewise.
-
- * hieroglyph/hgallocator-bfit.c (_hg_bfit_snapshot_chunk_new):
- new function.
- (_hg_bfit_snapshot_chunk_free): new function.
- (_hg_allocator_bfit_real_save_snapshot): implemented.
- (_hg_allocator_bfit_real_restore_snapshot): implemented.
- (_hg_allocator_bfit_real_resize): set a HG_FL_DEAD flag instead of
- hg_mem_free().
- (_hg_allocator_bfit_snapshot_real_free): implemented.
- (_hg_allocator_bfit_snapshot_real_set_flags): implemented.
-
-2006-09-18 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/vm.c (_hg_vm_set_error): replace *POINTER to *OPERATOR.
- (_hg_vm_set_error_from_file): likewise.
- (hg_vm_init): makes a VM memory pool to be a local pool.
-
- * hieroglyph/scanner.c (_hg_scanner_set_error): likewise.
-
- * plugins/test/test-main.c (REMOVE_OP): replace *POINTER to *OPERATOR.
-
- * plugins/debug/debug-main.c (REMOVE_OP): likewise.
-
- * plugins/libedit/libedit-main.c (REMOVE_OP): likewise.
-
- * hieroglyph/operator.[ch]: likewise.
-
- * hieroglyph/hgvaluenode.[ch]: use separate structure instead of union.
- (_hg_value_node_register_type): new function.
- (hg_value_node_init): new function.
- (hg_value_node_finalize): new function.
- (hg_value_node_register_type): new function.
- (hg_value_node_get_type_name): new function.
-
- * src/hgspy.c (_hgspy_vm_thread): likewise.
-
- * src/hgs.c (_hgs_arg_load_plugin_cb): reflect a return value from
- hg_vm_load_plugin().
-
-2006-09-09 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-private.h (HG_MEM_POOL_FLAGS_GET_FLAGS):
- new macro.
- (HG_MEM_POOL_GET_FLAGS): likewise.
- (HG_MEM_POOL_SET_FLAGS): likewise.
- (HG_MEM_POOL_FLAGS_HAS_FLAGS): likewise.
- (HG_MEM_POOL_HAS_FLAGS): likewise.
-
- * hieroglyph/hgmem.c (hg_mem_pool_new): take bitwise flags.
- (hg_mem_pool_use_global_mode): removed.
-
-2006-09-06 Akira TAGOH <at@gclab.org>
-
- * src/hgs.c (_hgs_arg_define_cb): implemented.
- (_hgs_arg_load_plugin_cb): simplified.
- (main): added --device option.
-
-2006-09-05 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.h (hg_mem_is_flags__inline): use
- hg_mem_is_gc_mark__inline if it goes to be marked for GC.
- (hg_mem_set_flags__inline): don't inherit the age of gc mark to
- the children.
-
- * hieroglyph/hgmem.c (hg_mem_pool_get_age_of_mark): new function.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_garbage_collection):
- show the age of gc mark for debugging purpose.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_debug_print): show the age of
- gc mark for debugging purpose.
-
- * hieroglyph/hgfile.c (hg_file_object_read): trivial warning message fix.
- (hg_file_object_write): likewise.
- (hg_file_object_getc): likewise.
-
- * hieroglyph/hgarray.c (hg_array_make_subarray): make an empty array
- if end_index is out of range.
-
- * hieroglyph/operator.c (_hg_operator_op_search): just call
- hg_string_make_substring.
-
- * hieroglyph/hgstring.c (hg_string_make_substring): make an empty
- string if end_index is out of range.
-
- * hieroglyph/operator-private.h: moved macros from operator.c
-
- * hieroglyph/vm.c (_hg_vm_eval_file): reflect an error result from
- $error dict.
-
- * hieroglyph/hgplugins.c (hg_plugin_load): output an warning
- if load failed.
-
- * plugins/test/test-main.c (plugin_load): load will be failed
- if any errors happened during loading hg_unittest.ps.
-
- * hieroglyph/vm.c (hg_vm_startjob): no need to enter in the loop
- if the file is given.
- (_hg_vm_eval_file): set FALSE if no errors happened.
-
-2006-09-04 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgdict.c: use HgList instead of GList.
- (_hg_dict_node_free): removed.
- (_hg_dict_real_free): removed.
- (_hg_dict_traverse_relocate): removed.
-
- * hieroglyph/hgallocator-libc.[ch]: removed.
-
- * hieroglyph/hgallocator-bfit.c: use HgList instead of GSList.
- (_hg_allocator_bfit_btree_traverse_in_destroy): removed.
- (_hg_allocator_bfit_real_initialize): libc pool is no longer needed.
- (_hg_allocator_bfit_real_free_block_traverse): new function.
-
- * hieroglyph/ilist.c (_hg_list_free): check NULL.
- (_hg_list_iter_delete_link): fixed a memory leak.
-
- * hieroglyph/hggraphics.c (hg_graphics_new): fixed uninitialized value.
-
- * hieroglyph/ilist.h (hg_list_free): new macro.
-
- * hieroglyph/ilist.[ch]: new files.
-
- * hieroglyph/ibtree.[ch]: new files.
-
- * hieroglyph/hglist.c (_hg_list_iter_real_set_data): new function.
- (hg_list_init): new function.
- (hg_list_finalize): new function.
- (hg_list_first): new function.
- (hg_list_last): new function.
- (hg_list_iter_new): use own memory pool to avoid an allocation failure,
- because it's quite likely so that it's used under set_flags where could
- be invoked during GC.
- (hg_list_iter_get_data): renamed.
- (hg_list_iter_set_data): new function.
- (hg_list_iter_set_object): new function.
- (hg_list_iter_delete_link): new function.
- (hg_list_find_iter): new function.
- (hg_list_find_iter_custom): new function.
-
- * hieroglyph/vm.c (_hg_vm_eval_file): allow NULL to not want to get
- an error result.
-
- * src/hgspy.c (_hgspy_quit_cb): try to shutdown VM.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_remove_block):
-
- * hieroglyph/operator.c (_hg_operator_real_set_flags): fixed outdated
- function call.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_initialize):
- disable the unsuported features.
- (_hg_allocator_bfit_real_garbage_collection): output more debugging
- info.
-
- * src/hgspy_helper.c (hg_mem_alloc_with_flags): fixed a segfault issue.
-
-2006-09-03 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hglist.[ch]: new files.
-
- * hieroglyph/hgbtree.c (_hg_btree_page_real_set_flags): stop marking
- if marking is disabled by request.
- (_hg_btree_page_real_relocate): likewise.
- (hg_btree_allow_marking): new function.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_initialize):
- disallow marking to avoid warnings so that the stored values aren't
- any hieroglyph objects.
-
- * hieroglyph/hgarray.c (_hg_array_real_set_flags): stop marking
- if the object is already marked.
-
-2006-08-28 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/Makefile.am (hginclude_HEADERS): added hgallocator-libc.h
- (libhieroglyph_la_SOURCES): added hgallocator-libc.c
-
- * hieroglyph/hgbtree.c (_hg_btree_page_real_free): new function.
- (_hg_btree_page_real_set_flags): new function.
- (_hg_btree_page_real_relocate): new function.
- (_hg_btree_real_free): new function.
- (_hg_btree_real_set_flags): new function.
- (_hg_btree_real_relocate): new function.
-
- * hieroglyph/hgallocator-libc.[ch]: new files.
-
- * hieroglyph/hgdict.c (_hg_dict_real_free): modified to use new HgBTree
- that is now managed under the hieroglyph mm.
- (_hg_dict_real_set_flags): likewise.
- (_hg_dict_real_relocate): likewise.
- (hg_dict_new): likewise.
-
- * hieroglyph/hgmem.c (hg_mem_init): use GHashTable instead of HgBTree.
- it can't be used before hg_mem_init finished.
- (hg_mem_finalize): modified to use GHashTable.
- (hg_object_set_vtable): likewise.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_initialize):
- modified to use HgBTree that is now managed under the hieroglyph mm.
- (_hg_allocator_bfit_real_destroy): likewise.
-
-2006-08-27 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_private_hg_filelibfile):
- push a filename into the stack even if no files found.
-
- * hieroglyph/vm.c (hg_vm_startjob): add an error handler
- when the external file is being invoked.
- (hg_vm_set_error_from_file): just ignore an error code 0.
-
- * hieroglyph/hglineedit.c (_hg_line_edit__default_get_line):
- return NULL if EBADF happens.
-
- * lib/hg_init.ps (runlibfile): trivial fix.
-
- * README: updated.
-
-2006-08-25 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgstack.c (hg_stack_roll): trivial fix.
-
-2006-08-23 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgstack.c (hg_stack_roll): fixed a segfault issue.
-
- * configure.ac: disable -Werror when not specifying
- --enable-maintainer-mode.
-
-2006-08-22 Akira TAGOH <at@gclab.org>
-
- * lib/hg_init.ps (StandardEncoding): implemented.
-
- * hieroglyph/operator.c (_hg_operator_op_bind): ignore the writable check
- during initialization.
-
- * hieroglyph/vm.c (hg_vm_set_io): reflect the IO changes to HgLineEdit.
- (hg_vm_startjob): just changes the IO with an initializer.
-
- * hieroglyph/hglineedit.c (_hg_line_edit_real_set_flags): new function.
- (_hg_line_edit_real_relocate): new function.
- (_hg_line_edit__default_get_line): use HgFileObject instead of using low APIs.
- (hg_line_edit_set_stdin): new function.
- (hg_line_edit_set_stdout): new function.
-
- * lib/hg_init.ps (start): implemented.
- not entered into the loop here.
-
-2006-08-20 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgplugins.c (hg_plugin_unload): fixed a typo.
- (hg_plugin_open): trivial improvement.
-
- * hieroglyph/vm.c (hg_vm_main): make sure that VM isn't going to shut
- down.
-
- * hieroglyph/operator.c (_hg_operator_op_private_hg_quit):
- new function.
-
- * hieroglyph/vm.c (hg_vm_get_error_code): new function.
- (hg_vm_set_error_code): likewise.
- (hg_vm_shutdown): likewise.
-
- * lib/hg_init.ps (quit): implemented in PostScript.
-
-2006-08-19 Akira TAGOH <at@gclab.org>
-
- * lib/hg_init.ps (load): implemented in PostScript.
-
- * hieroglyph/operator.c (hg_operator_level1_init): removed anchorsearch
- implementation.
- (_hg_operator_op_load): removed.
-
- * lib/hg_init.ps (anchorsearch): implemented in PostScript.
-
- * hieroglyph/operator.c (_hg_operator_op_private_hg_undef):
- implemented.
-
- * lib/hg_init_lv2.ps (undef): defined.
-
- * lib/hg_init.ps: undef .forceput and .odef.
-
- * hieroglyph/hgarray.c (hg_array_set_name): new function.
- (hg_array_get_name): new function.
-
- * hieroglyph/operator.c (_hg_operator_op_private_hg_odef):
- new function.
- (_hg_operator_op_private_hg_forceput): ignore even readonly flag.
-
- * hieroglyph/scanner.c (_hg_scanner_get_object): disabled making
- an readonly object during initialization.
-
- * hieroglyph/vm.c (hg_vm_set_error): dumps stacks if no handler
- available.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_to_string): return
- the array name instead of -array- if it has.
- (hg_value_node_debug_print): fixed a segfault issue.
-
- * lib/hg_init.ps (odef): improved to deal with the error recovery.
-
-2006-08-18 Akira TAGOH <at@gclab.org>
-
- * tests/ps/test-abs.ps: new file.
-
- * tests/ps/test-ps.sh: try to test the PostScript file on the same
- directory to the test runner.
-
- * plugins/test/hg_unittest.ps: fixed a typo.
-
- * hieroglyph/hgarray.c (hg_array_compare): new function.
-
- * hieroglyph/hgbtree.c (hg_btree_page_foreach): breaks the loop
- if the function returns false.
-
- * hieroglyph/hgdict.c (_hg_dict_compare_on_traverse): new function.
- (hg_dict_compare): new function.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_compare_content):
- new function.
-
- * tests/ps/Makefile.am: new file.
-
- * tests/ps/test-ps.sh: new file.
-
- * plugins/test/test-main.c (_test_op_validateunittest): use
- hg_value_node_compare_content instead of hg_value_node_compare.
-
- * hieroglyph/operator.c (_hg_operator_op_private_hg_findlibfile):
- new function.
-
- * hieroglyph/vm.c (hg_vm_find_libfile): new function.
-
- * lib/hg_init.ps (runlibfile): implemented.
-
- * tests/run.sh: inherit HIEROGLYPH_LIB_PATH.
-
- * plugins/test/hg_unittest.ps: new file.
-
- * plugins/test/Makefile.am (hgpslib_DATA): add hg_unittest.ps.
-
- * plugins/test/test-main.c (_test_op_validateunittest): new function.
- (plugin_init): implemented.
- (plugin_load): implemented.
- (plugin_unload): implemented.
-
- * hieroglyph/operator.c (_hg_operator_op_for): check the executeonly
- flag.
- (_hg_operator_op_forall): likewise.
- (_hg_operator_op_if): likewise.
- (_hg_operator_op_ifelse): likewise.
- (_hg_operator_op_loop): likewise.
- (_hg_operator_op_repeat): likewise.
- (_hg_operator_op_stopped): likewise.
-
-2006-08-16 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_search): implemented.
-
- * hieroglyph/hgstring.c (hg_string_compare_offset_later): new function.
- (hg_string_ncompare_offset_later): new function.
- (hg_string_ncompare): just return false if length is greater than
- the source length.
- (hg_string_compare_with_raw): likewise.
-
- * src/hgspy.c (_hgspy_file_close_cb): new function.
-
- * hieroglyph/hgfile.c (hg_file_object_is_closed): new function.
-
- * hieroglyph/operator.c (_hg_operator_op_status): implemented.
-
-2006-08-15 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_token): implemented.
-
- * hieroglyph/hgfile.c (hg_file_object_seek): reflect ungetc.
-
- * hieroglyph/scanner.h (_hg_scanner_isspace): new macro.
-
- * hieroglyph/hgstring.c (hg_string_copy_as_substring): refer to current
- substring offset to not break a substring when making from substring.
-
- * hieroglyph/hgarray.c (hg_array_copy_as_subarray): refer to current
- subarray offset to not break a subarray when making from subarray.
-
- * hieroglyph/operator.c (_hg_operator_op_put): improved to detect
- /invalidaccess.
-
- * hieroglyph/vm.c (hg_vm_is_global_object): new function.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_SET_ARRAY): inherited a complex
- mark to find it easily.
- (HG_VALUE_SET_STRING): likewise.
- (HG_VALUE_SET_DICT): likewise.
- (HG_VALUE_SET_POINTER): likewise.
- (HG_VALUE_SET_FILE): likewise.
- (HG_VALUE_SET_SNAPSHOT): likewise.
- (HG_VALUE_MAKE_ARRAY): likewise.
- (HG_VALUE_MAKE_STRING): likewise.
- (HG_VALUE_MAKE_DICT): likewise.
- (HG_VALUE_MAKE_POINTER): likewise.
- (HG_VALUE_MAKE_FILE): likewise.
- (HG_VALUE_MAKE_SNAPSHOT): likewise.
- (hg_value_node_inherit_complex): new macro.
- (hg_value_node_has_complex_object): likewise.
-
- * lib/hg_init.ps (store): implemented.
-
- * hieroglyph/hgfile.c (hg_file_object_new): marked as complex object.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_save_snapshot):
- likewise.
-
- * hieroglyph/operator.c (_hg_operator_op_writehexstring): implemented.
- (_hg_operator_op_write): implemented.
-
-2006-08-14 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_readline): have to check EOF
- after reading a character.
- (_hg_operator_op_readstring): implemented.
- (_hg_operator_op_round): implemented.
- (_hg_operator_or_xor): implemented.
-
- * src/hgspy.c (_hgspy_update_vm_status): use macro.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_debug_print): use macro
- instead of casting directly.
-
- * configure.ac: don't stop configure process even if libedit isn't
- installed.
-
- * plugins/Makefile.am (SUBDIRS): built without libedit plugin
- if it's not available.
-
- * hieroglyph/vm.c (_hg_vm_eval_file): new function.
- (hg_vm_set_ostack): new function.
- (hg_vm_set_estack): make it as a private function.
- (hg_vm_set_dstack): new function.
- (hg_vm_eval): new function.
-
- * lib/hg_init.ps: don't invoke if .loadhistory and .savehistory isn't
- available.
-
- * plugins/libedit/libedit-main.c (_libedit_op_loadhistory): moved from
- operator.c.
- (_libedit_op_statementedit): likewise.
- (_libedit_op_savehistory): likewise.
-
-2006-08-13 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/scanner.c (_hg_scanner_get_object): '\r', '\n' and '\r\n'
- has to be escaped by '\'.
-
- * hieroglyph/operator.c (_hg_operator_op_readhexstring):
- check the access attributes.
-
- * hieroglyph/hglineedit.c (_hg_line_edit__default_get_line):
- implemented.
-
-2006-08-10 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_file): give a HgLineEdit
- for %lineedit.
- (_hg_operator_op_readhexstring): implemented.
-
- * hieroglyph/hgstring.c (_hg_string_real_to_string): mask a character
- to get a char exactly.
-
-2006-08-03 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_cvn): inherited
- the executeonly.
-
- * hieroglyph/hgmem.h (hg_object_is_accessible): new macro.
-
- * hieroglyph/hgmem.c (hg_mem_pool_new): changed the default access
- mode.
-
- * hieroglyph/operator.c (_hg_operator_op_exec): check executeonly flag.
- (_hg_operator_op_executeonly): implemented.
- (_hg_operator_op_noaccess): use hg_object_inaccessible.
-
- * hieroglyph/vm.c (hg_vm_main): set the same flags from string to file.
-
- * hieroglyph/hgmem.h (hg_object_inexecutable): renamed from
- hg_object_unexecutable.
- (hg_object_executeonly): new macro.
- (hg_object_is_executeonly): new macro.
- (hg_object_inaccessible): new macro.
-
-2006-08-02 Akira TAGOH <at@gclab.org>
-
- * plugins/debug/Makefile.am (LIBS): removed the unnecessary dependency.
-
- * hieroglyph/operator.c (hg_operator_hieroglyph_init): removed
- .startgc definition.
- (_hg_operator_op_private_hg_startgc): removed.
-
- * plugins/Makefile.am (SUBDIRS): added debug subdir.
-
- * plugins/debug/debug-main.c: new file.
-
- * plugins/debug/Makefile.am: new file.
-
- * hieroglyph/operator.h (_hg_operator_build_operator): moved from
- operator.c.
- (BUILD_OP): likewise.
- (BUILD_OP_): likewise.
- (hg_operator_build_operator__inline): new macro.
-
-2006-07-26 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_ln): implemented.
- (_hg_operator_op_log): implemented.
- (_hg_operator_op_readonly): implemented.
-
-2006-07-24 Akira TAGOH <at@gclab.org>
-
- * lib/hg_init.ps (matrix): use identmatrix instead of
- the own C function.
-
- * hieroglyph/operator.c (_hg_operator_op_identmatrix): implemented.
- (_hg_operator_op_matrix): moved into lib/hg_init.ps.
-
- * hieroglyph/hgfile.c (hg_file_object_flush): changed the behavior for
- read mode.
-
- * hieroglyph/operator.c (_hg_operator_op_flushfile): implemented.
-
-2006-07-23 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_cvrs): implemented.
-
- * hieroglyph/hgstring.c (hg_string_convert_from_integer): new function.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_to_string): suppressed
- the unnecessary zeros.
-
-2006-07-18 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_cvr): implemented.
- (_hg_operator_op_copy): fixed to not include a invalid character in
- a substring.
-
- * tests/ps/currentfile.ps: new file.
-
- * hieroglyph/operator.c (_hg_operator_op_closefile): implemented.
- (_hg_operator_op_currentfile): implemented.
- (_hg_operator_op_readline): implemented.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_free): use
- hg_file_object_close instead of handling a close process directly.
- (hg_file_object_close): new function.
-
- * src/hgspy.c (_hgspy_file_close_cb): new function.
-
- * hieroglyph/operator.c (_hg_operator_op_bytesavailable): implemented.
- (_hg_operator_op_ceiling): implemented.
-
- * hieroglyph/hgfile.c (hg_file_object_seek): new function.
- (hg_file_object_is_readable): new function.
- (hg_file_object_is_writable): new function.
-
- * src/hgspy.c (_hgspy_file_seek_cb): new function.
-
-2006-07-17 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/operator.c (_hg_operator_op_anchorsearch): implemented.
- (_hg_operator_op_bitshift): implemented.
-
- * hieroglyph/hgstring.c (hg_string_ncompare): new function.
- (hg_string_copy_as_substring): fixed an index bug.
-
- * README: described a bit.
-
- * hieroglyph/Makefile.am (EXTRA_DIST): added version.h.in.in.
-
- * Makefile.am (EXTRA_DIST): added update-version.
-
- * hieroglyph.pc.in: trivial fix.
-
- * Makefile.am (pkgconfig_DATA): removed hg-libretto.pc.
-
- * examples/pse.c (_pse_plugin_arg_cb): new function.
-
- * hieroglyph/operator.c (_hg_operator_op_file): support new HgLineEdit.
- (_hg_operator_op_private_hg_initplugins): new function.
-
- * hieroglyph/vm.c (hg_vm_load_plugin): new function.
- (hg_vm_load_plugins_all): new function.
- (hg_vm_unload_plugin): new function.
-
- * hieroglyph/hgdevice.c (hg_device_new): support the multiple paths.
-
- * lib/hg_init.ps: initialize the plugins.
-
- * tests/run.sh: support the multiple paths.
-
-2006-07-16 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/vm.c (hg_vm_new): create an instance of HgLineEdit.
-
- * hieroglyph/hglineedit.[ch]: made a lot of changes to get rid of
- the libedit dependency directly.
-
- * hieroglyph/hgplugins.[ch]: new files.
-
- * hieroglyph/hgfile.c (hg_file_object_new): handle an argument
- as HgLineEdit.
-
- * .gdbinit: modified for current object structures.
- (hgstringprint): implemented.
-
- * plugins/libedit/libedit-main.c (plugin_load): implemented.
- (plugin_unload): implemented.
-
- * hg-libretto.pc.in: removed.
-
- * configure.ac: check for exp10 function.
-
- * plugins/Makefile.am: new file.
-
- * plugins/test/Makefile.am: new file.
-
- * plugins/test/test-main.c: new file.
-
- * plugins/libedit/Makefile.am: new file.
-
- * plugins/libedit/libedit-main.c: new file.
-
- * src/hgspy.c: use hieroglyph/* instead of libretto/*.
-
- * src/Makefile.am: removed the libretto.la dependency.
-
- * examples/pse.c: use hieroglyph/* instead of libretto/*.
-
- * examples/cairo-xlib.c: likewise.
-
- * examples/Makefile.am: removed the libretto.la dependency.
-
- * hieroglyph/operator.[ch]: moved from libretto/.
-
- * hieroglyph/scanner.[ch]: moved from libretto/.
-
- * hieroglyph/vm.[ch]: moved from libretto/.
-
- * hieroglyph/hggraphics.[ch]: moved from libretto/lbgraphics.[ch].
-
-2006-07-04 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvaluenode.c (hg_value_node_new): validate if pool is
- non-null.
-
- * src/hgspy.c (_hgspy_ask_dialog): new function.
- (_hgspy_run_vm): ask if VM is already running.
-
- * hieroglyph/hgstack.[ch]: new files.
-
- * libretto/Makefile.am: removed lbstack.[ch].
-
- * libretto/lbtypes.h: removed LibrettoStack definition.
-
- * libretto/vm.[ch]: modified for LibrettoStack->HgStack transition.
-
- * libretto/scanner.c: likewise.
-
- * libretto/operator.c: likewise.
-
- * libretto/lbstack.[ch]: moved as hieroglyph/hgstack.[ch].
-
- * devices/cairo/cairo-xlib-main.c (device_close): fixed a memory leak.
-
-2006-07-01 Akira TAGOH <at@gclab.org>
-
- * TODO: add an item.
-
- * hieroglyph/hgdict.c (hg_dict_new): add a limitation of the amount of
- Hash items.
-
- * libretto/vm.c (libretto_vm_new): allocate more spaces for the name
- dict.
-
- * hieroglyph/hgfile.h (HG_FILE_GET_FILE_TYPE): new macro.
- (HG_FILE_SET_FILE_TYPE): new macro.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_free): use macro instead of
- a direct access.
- (_hg_file_object_real_set_flags): likewise.
- (_hg_file_object_real_relocate): likewise.
- (_hg_file_object_real_to_string): likewise.
- (hg_file_object_new): likewise.
- (hg_file_object_has_error): likewise.
- (hg_file_object_read): likewise.
- (hg_file_object_write): likewise.
- (hg_file_object_getc): likewise.
- (hg_file_object_flush): likewise.
-
- * hieroglyph/hgstring.c (hg_string_new): add a limitation of the amount
- of strings.
-
- * hieroglyph/hgarray.c (hg_array_new): add a limitation of the amount
- of arrays.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_dup): don't duplicate
- a null object and a mark object.
- (_hg_value_node_real_copy): don't copy a null object and a mark object.
-
- * libretto/operator.c (_libretto_operator_op_array): use the existing
- null object in systemdict.
-
- * libretto/scanner.c (_libretto_scanner_get_object): free a special
- null object that used for a terminator of proc.
- (_libretto_scanner_get_object): use the existing mark object
- in systemdict.
-
-2006-06-20 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvaluenode.c (hg_value_node_debug_print): show the name
- to be dumped.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_alloc):
- exactly set HG_FL_HGOBJECT.
-
-2006-06-19 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.h (HG_OBJECT_INIT_OBJECT): new macro.
-
- * hieroglyph/hgmacros.h (HG_MEMOBJ_GET_HGOBJECT_ID): new macro.
- (HG_MEMOBJ_SET_HGOBJECT_ID): new macro.
- (HG_MEMOBJ_IS_HGOBJECT): new macro.
- (HG_OBJECT_GET_USER_DATA): new macro.
- (HG_OBJECT_SET_USER_DATA): new macro.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_GET_VALUE_TYPE): new macro.
- (HG_VALUE_SET_VALUE_TYPE): new macro.
-
- * hieroglyph/hgmem.h (HG_MEMOBJ_GET_MARK_AGE): new macro.
- (HG_MEMOBJ_SET_MARK_AGE): new macro.
- (hg_mem_set_flags__inline): use HG_MEMOBJ_SET_MARK_AGE for marking.
- (hg_mem_add_flags__inline): modified for marking.
- (hg_mem_gc_mark): removed.
- (hg_mem_gc_unmark): removed.
- (hg_mem_is_gc_mark): removed.
- (hg_mem_gc_mark__inline): new macro.
- (hg_mem_is_gc_mark__inline): new macro.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_garbage_collection):
- increase an age of mark.
- (_hg_allocator_bfit_real_garbage_collection): removed unmarking code.
- (_hg_allocator_bfit_real_gc_unmark): removed.
-
- * hieroglyph/hgarray.c (_hg_array_real_set_flags): modified to not use
- HG_FL_MARK which is obsolete.
- (hg_array_append_forcibly): removed pre-marking code.
- (hg_array_replace_forcibly): likewise.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_set_flags): modified to not
- use HG_FL_MARK which is obsolete.
-
- * hieroglyph/hgstring.c (_hg_string_real_set_flags): likewise.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_set_flags): likewise.
-
- * hieroglyph/hgdict.c (_hg_dict_node_real_set_flags): likewise.
- (hg_dict_insert_forcibly): removed pre-marking code.
-
-2006-06-18 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (hg_array_new): use macro.
-
- * hieroglyph/hgdict.c (hg_dict_node_new): use macro.
- (hg_dict_new): likewise.
-
- * hieroglyph/hgmem.h (hg_mem_get_object__inline): use macro.
- (hg_mem_set_flags__inline): likewise.
-
- * hieroglyph/hgmem.c (hg_mem_free): use macro.
- (hg_object_dup): likewise.
- (hg_object_copy): likewise.
- (hg_object_get_vtable): likewise.
-
- * hieroglyph/hgstring.c (hg_string_new): use macro.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_relocate):
- use macro.
- (_hg_allocator_bfit_real_alloc): likewise.
- (_hg_allocator_bfit_real_resize): likewise.
- (_hg_allocator_bfit_real_save_snapshot): likewise.
-
- * hieroglyph/hgpath.c (hg_path_node_new): use macro.
- (hg_path_new): likewise.
-
- * hieroglyph/hgmacros.h (HG_CHECK_MAGIC_CODE): new macro.
- (HG_SET_MAGIC_CODE): new macro.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_new): use macro.
-
- * hieroglyph/hgfile.c (hg_file_object_new): use macro.
-
- * hieroglyph/hgrender.c (hg_render_eofill_new): use macro.
- (hg_render_fill_new): likewise.
- (hg_render_stroke_new): likewise.
- (hg_render_debug_new): likewise.
-
- * libretto/operator.c (libretto_operator_new): use macro.
-
- * libretto/lbstack.c (libretto_stack_new): use macro.
-
- * libretto/vm.c (libretto_vm_new): use macro.
-
- * libretto/lbgraphics.c (libretto_graphic_state_new): use macro.
- (libretto_graphics_new): likewise.
-
- * src/hgspy.c (_hgspy_entry_activate_cb): don't send anything
- if VM isn't running.
- (main): added visualizer widget into VPaned.
-
- * src/visualizer.c (hg_memory_visualizer_real_size_request):
- new function.
-
- * src/hgspy.c (_hgspy_file_read_cb): update a prompt.
- (_hgspy_entry_activate_cb): echo back the input to the textview.
- (_hgspy_insert_text_into_textview): new function.
- (main): added a prompt label.
-
- * src/visualizer.c (hg_memory_visualizer_class_init): added gc-started
- and gc-finished signals.
- (hg_memory_visualizer_notify_gc_state): new function.
-
- * src/hgspy.c (_hgspy_gc_started_cb): new function.
- (_hgspy_gc_finished_cb): new function.
- (main): added a statusbar.
-
- * src/hgspy_helper.c (helper_init): watch hg_mem_garbage_collection too.
- (hg_mem_garbage_collection): new function.
-
- * examples/cairo-xlib.c (main): invoke HG_MEM_INIT before doing anything.
-
- * hieroglyph/hgarray.c (hg_array_new): improved a footprint.
-
- * hieroglyph/hgmem.h (hg_mem_set_flags__inline): don't access vtable
- directly.
- (HG_OBJECT_GET_VTABLE_ID): new macro.
- (HG_OBJECT_SET_VTABLE_ID): likewise.
- (HG_OBJECT_GET_STATE): likewise.
- (HG_OBJECT_SET_STATE): likewise.
-
- * hieroglyph/hgdict.c (hg_dict_node_new): improved a footprint.
- (hg_dict_new): likewise.
-
- * hieroglyph/hgmem.c (hg_mem_init): initialize vtable tree for
- HgObject.
- (hg_mem_finalize): destroy vtable tree for HgObject.
- (hg_mem_free): don't access vtable directly.
- (hg_object_get_state): use macro instead of direct access.
- (hg_object_set_state): likewise.
- (hg_object_is_state): likewise.
- (hg_object_dup): don't access vtable directly.
- (hg_object_copy): likewise.
- (hg_object_get_vtable): new function.
- (hg_object_set_vtable): new function.
-
- * hieroglyph/hgstring.c (hg_string_new): improved a footprint.
- (hg_object_to_string): use macro instead of direct access.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_relocate):
- don't access vtable directly.
- (_hg_allocator_bfit_real_resize): likewise.
- (_hg_allocator_bfit_real_save_snapshot): improved a footprint.
-
- * hieroglyph/hgpath.c (hg_path_node_new): improved a footprint.
- (hg_path_new): likewise.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_dup): use macro
- instead of direct access.
- (_hg_value_node_real_copy): likewise.
- (hg_value_node_new): improved a footprint.
-
- * hieroglyph/hgfile.c (hg_file_object_new): improved a footprint.
-
- * hieroglyph/hgrender.c (hg_render_eofill_new): improved a footprint.
- (hg_render_fill_new): likewise.
- (hg_render_stroke_new): likewise.
- (hg_render_debug_new): likewise.
-
- * libretto/operator.c (libretto_operator_new): improved a footprint.
-
- * libretto/lbgraphics.c (libretto_graphic_state_new): improved
- a footprint.
- (libretto_graphics_new): likewise.
-
- * libretto/vm.c (libretto_vm_new): likewise.
-
- * libretto/lbstack.c (libretto_stack_new): likewise.
- (libretto_stack_dump): don't reply on hieroglyph memory management
- system to dump a stack. it may be failed.
-
-2006-06-16 Akira TAGOH <at@gclab.org>
-
- * src/hgspy.c (_hgspy_quit_cb): new function.
- (_hgspy_file_write_cb): scroll up to the latest output.
- (main): only wait for finalize process when VM is running.
-
- * src/visualizer.c (_hg_memory_visualizer_idle_handler_cb): update
- a pixmap in lock.
-
- * src/hgspy.c (main): changed the default window size.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_free): add
- HG_FILE_TYPE_BUFFER_WITH_CALLBACK support.
- (hg_file_object_new): likewise.
- (hg_file_object_has_error): likewise.
- (hg_file_object_read): likewise.
- (hg_file_object_write): likewise.
- (hg_file_object_getc): likewise.
- (hg_file_object_flush): new function.
-
- * src/visualizer.c (hg_memory_visualizer_set_max_size): fixed memory
- corruption.
- (hg_memory_visualizer_set_heap_state): don't add a pool name when it's
- already in pool_name_list.
-
- * src/hgspy.c (_hgspy_op_private_statementedit): new function to take
- over the statementedit.
- (_hgspy_file_read_cb): new function.
- (_hgspy_file_write_cb): new function.
- (_hgspy_file_is_eof_cb): new function.
- (_hgspy_file_get_error_code_cb): new function.
- (_hgspy_vm_thread): override stdin/stdout in VM, and ..statementedit
- operator.
- (_hgspy_entry_activate_cb): new function.
- (main): invoke gdk_threads_init first.
- (main): add input/output widget.
-
-2006-06-15 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_garbage_collection):
- use a flag instead of mutex lock.
-
- * src/visualizer.c (hg_memory_visualizer_real_destroy): free a node in
- pool_name_list.
- (_hg_memory_visualizer_compare_pool_name_list): new function.
- (hg_memory_visualizer_remove_pool): new function.
-
- * src/hgspy.c (_hgspy_vm_thread): finalize vm instance.
- (_hgspy_pool_updated_cb): allow NULL for name and add None item to menu
- when no menuitem is added.
- (_hgspy_update_vm_status): clear text when name is NULL.
-
- * src/hgspy_helper.c (helper_init): watch hg_mem_pool_destroy as well.
- (hg_mem_pool_destroy): new function.
-
- * src/visualizer.c (hg_memory_visualizer_real_size_allocate):
- implemented.
- (hg_memory_visualizer_real_realize): implemented.
- (hg_memory_visualizer_real_expose): implemented.
- (hg_memory_visualizer_class_init): added draw-updated signal.
- (hg_memory_visualizer_real_unrealize): implemented.
- (_hg_memory_visualizer_idle_handler_cb): update a pixmap.
- (_hg_memory_visualizer_create_gc): new function.
- (_hg_memory_visualizer_redraw_in_pixmap): new function.
- (hg_memory_visualizer_get_used_size): new function.
- (hg_memory_visualizer_get_current_pool_name): new function.
- (hg_memory_visualizer_set_chunk_state): update a pixmap only when
- changes happened on current pool.
-
- * src/hgspy.c (_hgspy_draw_updated_cb): new function.
- (_hgspy_update_vm_status): new function.
- (main): add widgets for memory informations.
-
- * src/hgspy_helper.c (helper_init): get an original function pointer
- for hg_mem_resize.
- (hg_mem_alloc_with_flags): check null.
- (hg_mem_free): fixed a typo.
- (hg_mem_resize): new function. need to watch this function too.
-
- * examples/pse.c (main): invoke HG_MEM_INIT before doing anything.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_SET_VALUE_NODE): check null.
-
- * libretto/operator.c (_libretto_operator_op_array): set /VMError when
- creating a null object is failed.
-
-2006-06-12 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgfile.c (hg_file_object_new): use strncpy instead of
- strcpy.
-
- * libretto/operator.c (_libretto_operator_op_private_hg_abort):
- dump a vm status as well.
- (libretto_operator_new): use strncpy instead of strpy.
-
- * devices/cairo/cairo-ps-main.c (device_open): use g_file_open_tmp
- instead.
-
-2006-06-05 Akira TAGOH <at@gclab.org>
-
- * src/visualizer.c (hg_memory_visualizer_real_destroy): remove idle
- timer.
- (hg_memory_visualizer_real_size_allocate): implemented a bit.
- (hg_memory_visualizer_real_unrealize): remove idle timer.
- (hg_memory_visualizer_real_map): add idle timer.
- (hg_memory_visualizer_real_unmap): remove idle timer.
- (hg_memory_visualizer_class_init): add a signal, pool-updated.
- (_hg_memory_visualizer_idle_handler_cb): new function.
- (_hg_memory_visualizer_add_idle): new function.
- (_hg_memory_visualizer_remove_idle): new function.
- (hg_memory_visualizer_set_heap_state): set current pool and info.
- (hg_memory_visualizer_set_chunk_state): set a flag to be updated.
- (hg_memory_visualizer_change_pool): new function.
-
- * src/hgspy.c (_hgspy_radio_menu_pool_activate_cb): new function.
- (_hgspy_pool_updated_cb): new function.
-
- * hieroglyph/version.h.in.in: surround with G_*_DECLS.
-
- * src/visualizer.c (hg_memory_visualizer_real_destroy): set a null to
- avoid a double-free.
-
- * src/hgspy.c (_hgspy_action_menubar_open_cb): set a filter name.
- (main): set a window title and added a view menu.
-
- * Makefile.am (SUBDIRS): added po.
-
- * configure.ac (ALL_LINGUAS): added ja.
-
- * hieroglyph/hgmem.c (hg_mem_init_stack_start): new function.
- (hg_mem_pool_add_heap): new function.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_initialize):
- use hg_mem_pool_add_heap instead of direct access.
- (_hg_allocator_bfit_real_resize_pool): likewise.
-
- * hieroglyph/hgmacros.h (HG_STACK_INIT): new macro.
- (HG_MEM_INIT): new macro.
-
- * src/visualizer.c (_heap2offset_new): new function.
- (_heap2offset_free): new function.
- (hg_memory_visualizer_set_max_size): store the max size for each pools.
- (hg_memory_visualizer_get_max_size): similar change.
- (hg_memory_visualizer_set_heap_state): new function.
- (hg_memory_visualizer_set_chunk_state): implemented.
-
- * src/hgspy.c (_hgspy_vm_thread): call HG_MEM_INIT here.
-
- * src/hgspy_helper.c (hg_mem_pool_add_heap): new function.
-
-2006-06-04 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_gc_mark_array_region): new function.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_garbage_collection):
- lock with mutex during GC.
- (_hg_allocator_bfit_real_gc_mark): use hg_mem_gc_mark_array_region.
- (_hg_allocator_bfit_real_is_safe_object): new function.
-
-2006-06-03 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_get_object_size): new function.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_get_object_size__inline):
- new macro.
- (_hg_allocator_bfit_real_get_size): new function.
-
- * src/hgspy_helper.c (hg_mem_alloc_with_flags): don't access block_size
- directly.
- (hg_mem_free): likewise.
-
- * hieroglyph/hgbtree.c (hg_btree_find_near): fixed to get correct near block.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_get_minimum_aligned_size__inline):
- new macro.
- (_hg_allocator_get_aligned_size__inline): likewise.
- (_hg_allocator_compute_minimum_block_size_index__inline): removed.
- (_hg_allocator_grow_index_size__inline): removed.
- (_hg_allocator_compute_block_size_index__inline): removed.
- (_hg_allocator_compute_block_size__inline): removed.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_SET_NAME_STATIC): allocate more
- memory for null-terminated.
-
- * .gdbinit (_hgmeminfo): support compat structure.
-
-2006-06-02 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgtypes.h: improved a footprint a bit.
-
- * hieroglyph/hgmem.h (HG_MEMOBJ_GET_HEAP_ID): new macro.
- (HG_MEMOBJ_SET_HEAP_ID): new macro.
- (HG_MEMOBJ_GET_FLAGS): new macro.
- (HG_MEMOBJ_SET_FLAGS): new macro.
- (HG_MEMOBJ_INIT_FLAGS): new macro.
- (hg_mem_is_flags__inline): use macro instead of direct access.
- (hg_mem_get_flags__inline): likewise.
- (hg_mem_set_flags__inline): likewise.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_alloc):
- use macro instead of direct access.
- (_hg_allocator_bfit_real_resize): likewise.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_new): removed unnecessary
- value.
-
- * src/hgspy_helper.c (hg_mem_alloc_with_flags): use macro instead of
- direct access.
- (hg_mem_free): likewise.
-
-2006-05-29 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_garbage_collection): trivial fix.
-
- * libretto/vm.c (libretto_vm_new): just disable a global pool so far.
-
- * commit.sh: ask once when going to commit without log.
-
- * src/hgspy_helper.[ch]: new files.
-
- * src/hgspy.c: new file.
-
- * src/visualizer.[ch]: new files.
-
- * src/Makefile.am: new file.
-
- * po/POTFILES.in: new file.
-
-2006-05-25 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_resize):
- update a block size in HgMemObject as well.
- (_hg_allocator_bfit_snapshot_real_to_string): implemented.
-
- * hieroglyph/hgfile.c (hg_file_object_new): fixed a memory corruption.
-
-2006-05-19 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_pool_new): enable periodical GC by default.
-
- * hieroglyph/hgarray.c (_hg_array_real_copy): update the amount of
- objects in array when an object is copied once. it caused not marking
- when GC happened during copying.
-
- * hieroglyph/hgmem.h (hg_mem_set_flags__inline): don't recursively
- set flags that isn't expected.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_add_free_block):
- exactly clear headers.
- (_hg_allocator_bfit_real_alloc): likewise.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_debug_print): renamed.
-
- * .gdbinit: added.
-
- * hieroglyph/hgstring.c (hg_string_new): ensure a memory for termination.
- (hg_string_append_c): likewise.
- (hg_string_append): likewise.
- (hg_string_fix_string_size): likewise.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_garbage_collection):
- unmark objects in other pools after GC.
- (_hg_allocator_bfit_real_gc_unmark): new function.
-
- * libretto/operator.c (_libretto_operator_op_copy): clean up.
-
-2006-05-12 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (_hg_array_real_copy): unset copying flag
- if fails happens.
- (hg_array_append_forcibly): add pool if node is from different pool.
- (hg_array_replace_forcibly): likewise.
-
- * hieroglyph/hgdict.c (hg_dict_insert_forcibly): check if object
- is sane.
- (hg_dict_insert_forcibly): add pool if node is from different pool.
-
- * hieroglyph/hgmem.c (_hg_mem_pool_is_own_memobject): new function.
- (hg_mem_add_pool_reference): don't add the duplicate pool.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_add_free_block):
- clear data to avoid incomplete header detection.
- (_hg_allocator_bfit_relocate): avoid the infinite loop.
- (_hg_allocator_bfit_real_gc_mark): likewise.
-
- * libretto/operator.c (_libretto_operator_op_private_hg_forceput):
- reverted a previous change.
- (libretto_operator_init): likewise.
-
-2006-05-07 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_alloc):
- clear data to avoid incomplete header detection.
- (_hg_allocator_bfit_real_resize): fixed possibly causing wrong block
- chain.
-
- * libretto/operator.c (_libretto_operator_op_floor): removed.
- (_libretto_operator_op_run): removed.
- (_libretto_operator_op_private_hg_forceput): added objects to the pool
- reference.
- (_libretto_operator_real_set_flags): use hg_debug_print_gc_state.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_add_free_block):
- check if block chain is sane.
- (_hg_allocator_bfit_get_free_block): fixed causing wrong block chain.
- (_hg_allocator_bfit_real_gc_mark): trace the pool reference and
- the registers.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_set_flags): set flags
- for HG_TYPE_VALUE_POINTER as well.
- (hg_debug_print_gc_state): support HgValueNode dump.
-
- * hieroglyph/hgarray.c (hg_array_new): clear data to avoid segfaults.
- it may causes staying a incomplete header in the aligned memory.
-
-2006-05-06 Akira TAGOH <at@gclab.org>
-
- * commit.sh: implemented a testrun mode and -m option to give the own
- commit message.
- also check if the required command is available.
-
- * hieroglyph/hgmem.c (hg_pool_ref_new): new function.
- (hg_pool_ref_free): new function.
- (hg_pool_ref_last): new function.
- (hg_pool_ref_add): new function.
- (hg_pool_ref_remove): new function.
- (hg_mem_add_pool_reference): new function.
- (hg_mem_remove_pool_reference): new function.
-
- * libretto/vm.c (libretto_vm_new): correct adding object to root node.
-
-2006-05-05 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgdict.c (hg_dict_insert_forcibly): clean up.
-
- * hieroglyph/hgarray.c (hg_array_replace_forcibly): clean up.
-
- * hieroglyph/hgmem.c (hg_mem_pool_is_own_object): always return true
- if current allocation mode is local.
-
- * lib/hg_init.ps (.defaulterrorhandler): enter the local allocation
- mode in advance to avoid /invalidaccess again.
-
- * libretto/operator.c (_libretto_operator_op_astore): check
- the allocation mode before an warning is output.
- (_libretto_operator_op_put): likewise.
- (_libretto_operator_op_private_dicttomark): likewise.
- (_libretto_operator_op_def): likewise.
- (_libretto_operator_op_private_hg_abort): possibly avoid /VMerror twice.
-
- * hieroglyph/hgmem.c (hg_mem_pool_new): enable GC by default.
-
- * libretto/vm.c (libretto_vm_init): use the best fit memory allocator
- by default.
- (libretto_vm_new): likewise.
-
- * hieroglyph/hgfile.c (hg_file_init): likewise.
-
- * hieroglyph/hgarray.c (hg_array_append_forcibly): new function.
-
- * hieroglyph/hgdict.c (hg_dict_insert_forcibly): new function.
-
- * hieroglyph/hgvaluenode.c (hg_debug_print_gc_state): new function.
-
- * lib/hg_init.ps (userdict): trick to add /userdict into systemdict.
- (odef): likewise for $error.
- (floor): implemented.
- (.seterror): don't use end here.
- (.printerror): show more information.
-
- * libretto/operator.c (_libretto_operator_op_private_hg_forceput):
- new function.
- (libretto_operator_init): add objects to the root node to allow
- including them to the global objects.
-
- * hieroglyph/hgmem.c (hg_mem_pool_is_own_object): check if it's in
- the root node and give a privilege to the object.
-
- * libretto/vm.c (libretto_vm_new): set a pool mode.
-
- * hieroglyph/hgmem.c (hg_mem_pool_is_own_object): new function.
- (hg_mem_pool_get_name): new function.
-
-2006-05-04 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_pool_is_global_mode): new function.
- (hg_mem_pool_use_global_mode): new function.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_garbage_collection):
- added the debugging messages.
-
- * libretto/operator.c (_libretto_operator_op_private_arraytomark):
- go along with the steps like PS.
- (_libretto_operator_op_private_hg_startgc): do GC for only local pool.
-
- * libretto/vm.c (libretto_vm_set_error): dump the stacks
- when the multiple errors happened.
-
-2006-05-03 Akira TAGOH <at@gclab.org>
-
- * configure.ac: configurable allocator for testing purpose.
-
- * libretto/vm.c: likewise.
-
- * hieroglyph/hgfile.c: likewise.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_real_garbage_collection):
- return TRUE if GC is succeeded.
-
- * hieroglyph/hgfile.c (hg_file_object_new): fixed a typo.
- (hg_file_object_clear_error): new function.
-
- * libretto/operator.c (_libretto_operator_op_private_hg_startgc):
- new private operator to start GC manually.
-
- * libretto/vm.c (libretto_vm_set_error_from_file): clear an error in
- a file object after set it to vm.
-
-2006-05-02 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_free): fixed causing the double-free
- issue.
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_remove_block):
- fixed broken deletion from the linked list.
- (_hg_allocator_bfit_real_free): sanity check to get the block.
- (_hg_allocator_bfit_real_resize): set NULL to vtable before free'ing.
- (_hg_allocator_bfit_real_resize): exactly separate off the block.
-
-2006-04-24 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-bfit.c (_hg_bfit_block_new): store a heap id.
- (_hg_allocator_bfit_get_free_block): update the amount of the used
- heap in pool.
- (_hg_allocator_bfit_relocate): new function.
- (_hg_allocator_bfit_real_free): update the amount of the used heap
- in pool.
- (_hg_allocator_bfit_real_resize): implemented.
-
-2006-04-18 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_add_free_block):
- fixed invalid memory block reference.
-
-2006-04-17 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_remove_block):
- remove node if there are no list for chunks.
- (_hg_allocator_bfit_get_free_block): likewise.
- (_hg_allocator_bfit_add_free_block): replace node with updated list
- if there are already list in btree.
- (_hg_allocator_bfit_real_garbage_collection): implemented.
-
-2006-04-16 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-bfit.c (_hg_allocator_bfit_remove_block):
- changes to use btree instead of list to manage the free block.
- (_hg_allocator_bfit_add_free_block): likewise.
- (_hg_allocator_bfit_get_free_block): likewise.
- (_hg_allocator_bfit_btree_traverse_in_destroy): new function.
- (_hg_allocator_bfit_real_destroy): destroying blocks through block chain.
- (_hg_allocator_bfit_real_gc_mark): implemented.
- (_hg_allocator_bfit_add_user_block): removed.
- (_hg_allocator_bfit_get_used_block_list): removed.
- (_hg_allocator_bfit_has_used_block_with_list): removed.
- (_hg_allocator_bfit_remove_used_block): removed.
-
-2006-04-13 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgallocator-bfit.[ch]: added the best fit algorithm
- memory allocator.
-
-2006-04-12 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (_hg_mem_pool_free): also use hg_heap_free.
-
- * hieroglyph/hgallocator-ffit.c: use hg_heap_new/free.
-
- * hieroglyph/hgmem.c (hg_heap_new): new function.
- (hg_heap_free): new function.
-
-2006-04-05 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_allocator_new): new again.
- (hg_allocator_destroy): likewise.
-
- * hieroglyph/hgallocator-ffit.c (hg_allocator_ffit_get_vtable):
- new function.
- (hg_allocator_ffit_new): removed.
- (hg_allocator_ffit_destroy): removed.
-
- * hieroglyph/hgfile.c (hg_file_init): trivial thing to support
- optional allocator.
-
- * libretto/scanner.c: use own error function to not push self into
- the estack.
-
- * libretto/vm.c: trivial thing to support optional allocator.
-
-2006-04-04 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (_hg_mem_init_stack_start): comment out
- the incomplete code.
-
- * hieroglyph/hgbtree.c (hg_btree_find): use proper variable type.
- (hg_btree_find_near): likewise.
- (hg_btree_find_near): fixed uninitialized variable warning. [Toshiya Suzuki]
-
-2006-04-03 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (_libretto_operator_op_counttomark): fixed
- a bulid error on older gcc. [Toshiya Suzuki]
-
-2006-03-31 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (_libretto_operator_op_exp): implemented.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_GET_REAL_FROM_INTEGER):
- add a macro.
-
-2006-03-30 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (_libretto_operator_op_cvlit): implemented.
- (_libretto_operator_op_cvn): implemented.
- (_libretto_operator_op_getinterval): check if it's readable.
-
- * lib/hg_init.ps (.printerror): show the details of dict.
-
- * hieroglyph/hgmem.c: split up the allocator part to another files.
-
- * hieroglyph/hgallocator-private.h: new file.
-
- * hieroglyph/hgallocator-ffit.[ch]: new files.
-
-2006-03-28 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c: makes a node with the same pool where the value
- was created.
-
- * libretto/vm.c: likewise.
-
- * libretto/scanner.c: likewise.
-
- * hieroglyph/hgvaluenode.h: get a memory pool from the given value for
- complex objects.
-
-2006-03-27 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_pool_new): initialize use_gc.
- (hg_mem_pool_get_used_heap_size): new function.
- (hg_mem_pool_get_free_heap_size): new function.
-
- * libretto/operator.c (_libretto_operator_op_vmstatus): implemented.
-
- * libretto/scanner.c (_libretto_scanner_get_object): fixed a null
- exception.
-
- * libretto/vm.c (libretto_vm_get_save_level): new function.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_to_string):
- fix an allocated size at the end.
-
- * commit.sh: don't commit if there are no changes.
-
- * lib/hg_init.ps (.seterror): modify /estack in $error to indicate
- a correct stack where an error actually happened.
-
- * libretto/operator.c (_libretto_operator_op_getinterval): implemented.
-
-2006-03-26 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgfile.c (_hg_file_object_real_to_string): makes
- a difference to not confuse for string.
-
- * lib/hg_init.ps (.seterror): save ostack, estack and dstack into $error.
- (.printerror): show the stack in $error instead.
-
- * libretto/operator.c (_libretto_operator_op_dictstack): implemented.
- (_libretto_operator_op_execstack): fixed a typo.
- (_libretto_operator_op_stop): invoke /.abort instead of /quit.
- (_libretto_operator_op_private_hg_abort): implemented.
-
- * libretto/lbstack.c (libretto_stack_dump): new function.
-
-2006-03-24 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (_libretto_operator_op_copy): always set TRUE to
- retval when the amount of copy object is 0.
-
-2006-03-23 Akira TAGOH <at@gclab.org>
-
- * lib/hg_init.ps (run): defined.
-
- * libretto/operator.c (_libretto_operator_op_exit): makes /invalidexit
- when file object appears on the estack.
-
-2006-03-21 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hglineedit.c (hg_line_edit_get_statement):
- show a prompt at only first.
-
- * lib/hg_init.ps (executive): take care of the real /undefinedfilename
- from interactive shell.
- load/save history.
- (..statementedit): defined.
-
- * libretto/operator.c (_libretto_operator_op_private_hg_loadhistory):
- implemented.
- (_libretto_operator_op_private_hg_savehistory): implemented.
- (_libretto_operator_op_private_hg_statementedit): fixed a memory leak
- and detect EOL.
-
- * hieroglyph/hglineedit.c (hg_line_edit_load_history): new function.
- (hg_line_edit_save_history): new function.
-
- * lib/hg_init.ps (prompt): use .promptmsg to get a prompt string.
-
- * hieroglyph/hglineedit.c (hg_line_edit_get_line):
- support the use of own prompt.
- (hg_line_edit_get_statement): don't add an empty line to the history.
-
- * hieroglyph/hgmem.c (hg_mem_pool_use_garbage_collection):
- new function.
-
- * hieroglyph/hgstring.c (hg_string_maxlength): new function.
- (hg_string_insert_c): update length.
-
- * lib/hg_init.ps (.promptmsg): defined.
- (cvs): defined.
- (executive): use .statementedit to avoid the prompt deletion.
- (putinterval): defined.
-
- * libretto/operator.c (_libretto_operator_op_string): implemented.
- (_libretto_operator_op_private_hg_execn): implemented.
- (_libretto_operator_op_private_hg_statementedit): implemented.
-
- * libretto/scanner.c (_libretto_scanner_get_object): don't set
- an executable bit to string.
-
- * libretto/lbstack.c (libretto_stack_roll): fixed the wrong chain.
-
-2006-03-17 Akira TAGOH <at@gclab.org>
-
- * libretto/vm.c (libretto_vm_reset_error): reenable stack validator.
- (libretto_vm_set_error): makes a copy for an error handler.
-
- * libretto/operator.c (_libretto_operator_op_private_hg_clearerror):
- implemented.
-
- * hieroglyph/hgfile.c (hg_file_object_has_error): set ENOENT if there
- are no buffer.
-
- * lib/hg_init.ps (executive): defined.
-
- * hieroglyph/hglineedit.[ch]: new files.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_free): support
- HG_FILE_TYPE_STATEMENT_EDIT and HG_FILE_TYPE_LINE_EDIT.
- (_hg_file_object_real_set_flags): likewise.
- (_hg_file_object_real_relocate): likewise.
- (hg_file_object_new): likewise.
- (hg_file_object_has_error): likewise.
- (hg_file_object_read): likewise.
- (hg_file_object_getc): likewise.
-
- * lib/hg_init.ps (prompt): show the depth of current stack.
- support an interactive mode.
-
- * configure.ac: add a library check for libedit.
-
- * libretto/operator.c (_libretto_operator_op_file): makes an error
- when %statementedit and %lineedit is going to be opened as
- write/append mode. it must be read-only.
- (_libretto_operator_op_private_hg_startjobserver): don't stack a file
- object onto the exec stack.
-
-2006-03-16 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (_libretto_operator_op_private_stringcvs):
- makes a string as is when given node is string.
-
- * lib/hg_init_lv2.ps (currentglobal): defined.
- (setglobal): defined.
-
- * lib/hg_init.ps (odef): defined.
- (.defaulterrorhandler): change an allocation mode to local.
-
- * libretto/operator.c (_libretto_operator_op_private_stopped_continue):
- don't always return true after error happened. it has to be false after
- stopped invoked once and no stop nor error happens.
-
- * libretto/vm.c (_libretto_vm_run): use libretto_vm_reset_error
- instead of libretto_vm_clear_error.
- (libretto_vm_reset_error): new function.
-
- * lib/hg_init_lv2.ps (globaldict): defined.
-
- * lib/hg_init.ps (userdict): defined.
- trivial fix to get PS initialization working.
-
- * libretto/operator.c (_libretto_operator_op_file): support
- (%statementedit) and (%lineedit).
- (_libretto_operator_op_private_hg_currentglobal): implemented.
- (_libretto_operator_op_private_hg_setglobal): implemented.
- (_libretto_operator_op_private_hg_startjobserver): set an read-only
- attribute to systemdict.
- (libretto_operator_init): removed /userdict and /globaldict definition.
- (libretto_operator_init): don't set an read-only attribute to
- systemdict here.
-
- * libretto/vm.c (libretto_vm_new): removed initialization of userdict
- and globaldict here.
- (libretto_vm_get_dict_userdict): removed.
- (libretto_vm_get_dict_globaldict): removed.
- (libretto_vm_startjob): removed initialization of dictstack here.
- (libretto_vm_startjob): set an read-only attribute to systemdict.
-
- * configure.ac: output more build info.
-
- * hieroglyph/hgfile.c (hg_file_object_new): set O_NONBLOCK flag to
- stdin.
- (hg_file_object_has_error): return true if error is only 0.
-
- * libretto/vm.c (libretto_vm_set_error_from_file): just ignore EAGAIN
- if it was from stdin.
- (libretto_vm_run): try to load a file from current path too when
- HIEROGLYPH_LIB_PATH isn't defined.
-
- * lib/hg_init.ps (stack): defined.
- (version): defined.
-
-2006-03-15 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (libretto_operator_init): added /serverdict.
-
- * libretto/vm.c (libretto_vm_new): added serverdict.
- (libretto_vm_get_dict_serverdict): new function.
-
- * lib/hg_init.ps (prompt): defined.
-
- * libretto/operator.c (_libretto_operator_op_astore): implemented.
- (_libretto_operator_op_ne): implemented.
- (_libretto_operator_op_flush): implemented.
- (_libretto_operator_op_ge): implemented.
- (_libretto_operator_op_le): implemented.
- (_libretto_operator_op_load): implemented.
- (_libretto_operator_op_read): implemented.
-
- * hieroglyph/hgdict.c (_hg_dict_traverse_dup): new function.
- (_hg_dict_real_dup): new function.
- (hg_dict_remove): replace a value with a node being.
- (hg_dict_first): new function.
-
- * libretto/operator.c (_libretto_operator_op_private_forall_array_continue):
- implemented.
- (_libretto_operator_op_private_forall_string_continue): implemented.
- (_libretto_operator_op_and): return integer when it's called with integer.
- (_libretto_operator_op_forall): implemented.
- (_libretto_operator_op_or): implemented.
- (_libretto_operator_op_rcheck): implemented.
- (_libretto_operator_op_type): implemented.
- (_libretto_operator_op_wcheck): implemented.
- (_libretto_operator_op_where): implemented.
- (_libretto_operator_op_xcheck): implemented.
- (_libretto_operator_op_private_forall_dict_continue): implemented.
- (_libretto_operator_op_private_stringcvs): check NULL.
-
- * libretto/scanner.c (_libretto_scanner_get_object):
- use __lb_operator_list instead of __lb_operator_scanner.
-
-2006-03-13 Akira TAGOH <at@gclab.org>
-
- * lib/hg_init_lv2.ps (product): defined.
- (revision): defined.
-
- * lib/hg_init.ps (.printversion): new procedure.
- show version.
-
- * libretto/operator.c (_libretto_operator_op_file):
- use file objects in VM instead of using the external variables
- directly.
- (_libretto_operator_op_private_hg_hgrevision): implemented.
- (_libretto_operator_op_private_hg_product): implemented.
- (_libretto_operator_op_private_hg_revision): implemented.
-
-2006-03-12 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgdict.c (_hg_dict_traverse_real_traverse):
- new function.
- (hg_dict_lookup): return a duplicate node.
- (hg_dict_lookup_with_string): likewise.
- (hg_dict_maxlength): new function.
- (hg_dict_traverse): new function.
-
- * libretto/operator.c (_libretto_operator_copy__traverse_dict):
- new function.
- (_libretto_operator_op_currentdict): implemented.
- (_libretto_operator_op_maxlength): implemented.
- (_libretto_operator_op_private_hg_startjobserver): implemented.
-
- * libretto/vm.c (libretto_vm_startjob): don't set a initialized flag
- here.
-
- * hieroglyph/hgarray.c (hg_array_append): remove the real node and
- reset removed_arrays before adding any node.
- (hg_array_make_subarray): new function.
- (hg_array_copy_as_subarray): new function.
-
- * hieroglyph/hgdict.c (hg_dict_maxlength): new function.
-
- * hieroglyph/hgstring.c (_hg_string_real_to_string): use current
- instead of strings.
- (hg_string_make_substring): new function.
- (hg_string_copy_as_substring): new function.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_to_string): convert file
- object like string if it's from buffer.
-
- * lib/hg_init_lv2.ps: initialize error handlers.
-
- * lib/hg_init.ps (.seterror): new procedure to set an error.
- (.defaulterrorhandler): default handler for errors.
- (handleerror): new procedure.
-
- * libretto/operator.c (_libretto_operator_op_private_stopped_continue):
- implemented.
- (_libretto_operator_op_cleartomark): implemented.
- (_libretto_operator_op_copy): implemented.
- (_libretto_operator_op_counttomark): implemented.
- (_libretto_operator_op_execstack): implemented.
- (_libretto_operator_op_idiv): implemented.
- (_libretto_operator_op_not): implemented.
- (_libretto_operator_op_stop): implemented.
- (_libretto_operator_op_stopped): implemented.
-
- * libretto/scanner.c (_libretto_scanner_get_object): makes an object
- to the read-only if it's under the initialization.
-
- * libretto/vm.c (libretto_vm_set_error): report the multiple error.
- (libretto_vm_set_error): invoke an procedure for the error.
- (libretto_vm_main): parse a token from string.
-
-2006-03-08 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgfile.c (hg_file_init): add objects to the root node.
-
- * libretto/lbtypes.h: new file.
-
- * hieroglyph/hgarray.c (_hg_array_real_copy):
- detect the circular reference.
- (_hg_array_real_to_string): likewise.
-
- * hieroglyph/hgmem.h (hg_mem_set_copying): new macro.
- (hg_mem_unset_copying): likewise.
- (hg_mem_is_copying): likewise.
-
- * hieroglyph/hgstring.c (_hg_string_real_to_string): check NULL.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_to_string):
- free an unnecessary object.
-
- * libretto/operator.c (_libretto_operator_op_private_write_eqeq_only):
- check NULL.
- (libretto_operator_init): add /statusdict into systemdict.
-
- * libretto/lbstack.c (_libretto_stack_use_stack_validator):
- new function.
- (libretto_stack_push): don't validate the stack if use_validator is
- false.
-
- * libretto/vm.c (libretto_vm_set_error): stop to use the stack
- validator when the error happened.
- (libretto_vm_main): check NULL.
- (libretto_vm_get_current_pool): return a special memory pool if it's
- in error handler.
- (libretto_vm_startjob): enable a executable bit for name object.
- (libretto_vm_main): now depends on the external PS file for
- the error handler.
-
-2006-03-07 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (_libretto_operator_op_private_dicttomark):
- implemented.
- (_libretto_operator_op_countdictstack): implemented.
- (_libretto_operator_op_countexecstack): implemented.
- (_libretto_operator_op_cvx): implemented.
- (_libretto_operator_op_known): implemented.
- (_libretto_operator_load_file): removed.
- (libretto_operator_load_file): removed.
- (libretto_operator_init): set an readonly attribute to systemdict.
-
- * libretto/scanner.c (_libretto_scanner_get_object): implemented
- a parser for dict.
-
- * libretto/lbstack.c (_libretto_stack_push): new function.
-
- * libretto/vm.c (_libretto_vm_run): new function.
- (libretto_vm_startjob): allow to initialize VM with
- the specific PS file.
- (libretto_vm_clear_error): new function.
- (_libretto_vm_set_error): new function.
- (_libretto_vm_set_error_from_file): new function.
- (libretto_vm_run): new function.
-
-2006-03-05 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmatrix.c (hg_matrix_scale): new function.
-
- * libretto/operator.c (_libretto_operator_op_concatmatrix):
- implemented.
- (_libretto_operator_op_matrix): implemented.
- (_libretto_operator_op_scale): implemented.
-
- * libretto/lbgraphics.c (libretto_graphics_matrix_scale): new function.
-
-2006-03-03 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgpath.c (hg_path_compute_current_point): check if
- currentpoint is there for lineto.
- (hg_path_get_bbox): likewise.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_dup): don't make a new object.
-
- * libretto/operator.c (_libretto_operator_op_private_for_pos_int_continue):
- take care of the minus value of the increment.
- (_libretto_operator_op_private_for_pos_real_continue): implemented.
- (_libretto_operator_op_lineto): check /nocurrentpoint.
- (_libretto_operator_op_rlineto): likewise.
-
- * lib/Makefile.am (EXTRA_DIST): added $(hgpslib_DATA)
-
- * hieroglyph/hgarray.c (_hg_array_real_to_string): check access mode.
- (hg_array_append): likewise.
- (hg_array_replace): likewise.
- (hg_array_remove): likewise.
- (hg_array_index): likewise.
- (hg_array_fix_array_size): likewise.
- (hg_array_new): set a default access mode.
-
- * hieroglyph/hgdict.c (hg_dict_node_new): set a default access mode.
- (hg_dict_new): likewise.
- (hg_dict_insert): check access mode.
- (hg_dict_remove): likewise.
- (hg_dict_lookup): likewise.
- (hg_dict_lookup_with_string): likewise.
- (hg_dict_length): likewise.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_save_snapshot):
- set a default access mode.
- (hg_mem_pool_get_default_access_mode): new function.
- (hg_mem_pool_set_default_access_mode): new function.
-
- * hieroglyph/hgstring.c (_hg_string_real_to_string): check access mode.
- (hg_string_length): likewise.
- (hg_string_clear): likewise.
- (hg_string_append_c): likewise.
- (hg_string_append): likewise.
- (hg_string_insert_c): likewise.
- (hg_string_concat): likewise.
- (hg_string_index): likewise.
- (hg_string_get_string): likewise.
- (hg_string_compare): likewise.
- (hg_string_compare_with_raw): likewise.
- (hg_string_new): set a default access mode.
- (hg_string_fix_string_size): new function.
-
- * hieroglyph/hgpath.c (hg_path_node_new): set a default access mode.
- (hg_path_new): likewise.
- (hg_path_compute_current_point): fixed a typo.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_to_string):
- check access mode.
- (hg_value_node_new): set a default access mode.
-
- * hieroglyph/hgrender.c (hg_render_eofill_new): set a default
- access mode.
- (hg_render_fill_new): likewise.
- (hg_render_stroke_new): likewise.
- (hg_render_debug_new): likewise.
-
- * hieroglyph/hgfile.c (hg_file_object_new): set a default access mode.
- (hg_file_object_read): check access mode.
- (hg_file_object_write): likewise.
- (hg_file_object_getc): likewise.
- (hg_file_object_ungetc): likewise.
- (hg_file_object_vprintf): likewise.
-
- * libretto/operator.c (_libretto_operator_op_private_stringcvs):
- fixed a behavior to match the exact one.
- (_libretto_operator_op_aload): check the access attribute.
- (_libretto_operator_op_begin): likewise.
- (_libretto_operator_op_bind): likewise.
- (_libretto_operator_op_concat): likewise.
- (_libretto_operator_op_currentmatrix): likewise.
- (_libretto_operator_op_cvi): likewise.
- (_libretto_operator_op_def): likewise.
- (_libretto_operator_op_eq): likewise.
- (_libretto_operator_op_exec): likewise.
- (_libretto_operator_op_file): likewise.
- (_libretto_operator_op_for): likewise.
- (_libretto_operator_op_get): likewise.
- (_libretto_operator_op_gt): likewise.
- (_libretto_operator_op_if): likewise.
- (_libretto_operator_op_ifelse): likewise.
- (_libretto_operator_op_length): likewise.
- (_libretto_operator_op_loop): likewise.
- (_libretto_operator_op_lt): likewise.
- (_libretto_operator_op_print): likewise.
- (_libretto_operator_op_put): likewise.
- (_libretto_operator_op_repeat): likewise.
- (_libretto_operator_op_rotate): likewise.
- (_libretto_operator_op_setmatrix): likewise.
- (_libretto_operator_op_translate): likewise.
- (_libretto_operator_op_writestring): likewise.
- (_libretto_operator_op_noaccess): implemented.
- (libretto_operator_load_file): fixed a typo.
- (libretto_operator_new): set a default access mode.
- (libretto_operator_init): set systemdict in dict.
-
- * libretto/lbgraphics.c (libretto_graphic_state_new): set a default
- access mode.
- (libretto_graphics_new): likewise.
-
- * libretto/vm.c (libretto_vm_new): likewise.
-
-2006-03-02 Akira TAGOH <at@gclab.org>
-
- * lib/hg_init.ps: new file.
-
- * lib/hg_init_lv2.ps: new file.
-
- * lib/hg_init_lv3.ps: new file.
-
- * libretto/operator.c (_libretto_operator_load_file): new function.
- (libretto_operator_load_file): new function.
- (libretto_operator_init): initialize from PS file.
-
- * libretto/vm.c (libretto_vm_main): don't break current node in
- the estack. it causes segfault when scanner fails to get an object.
- (libretto_vm_startjob): check an return value of libretto_operator_init
- and if it fails, quit here immediately.
-
- * hieroglyph/hgarray.c (hg_array_fix_array_size): new function.
-
- * hieroglyph/hgpath.c (hg_path_compute_current_point): new function.
-
- * libretto/operator.c (_libretto_operator_op_concat):
- implemented.
- (_libretto_operator_op_currentpoint): implemented.
- (_libretto_operator_op_curveto): check /nocurrentpoint error.
- (_libretto_operator_op_initclip): implemented.
- (_libretto_operator_op_length): implemented.
- (_libretto_operator_op_lt): implemented.
- (_libretto_operator_op_setmatrix): set a path to update current matrix.
-
- * libretto/scanner.c (_libretto_scanner_get_object): check NULL.
- (_libretto_scanner_get_object): resize Array to fix the array size.
-
- * libretto/vm.c (libretto_vm_main): use another pool instead of
- local/global pool to avoid the allocation error when /VMerror happened.
-
- * libretto/lbgraphics.c (libretto_graphics_initclip): new function.
-
-2006-03-01 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_remove_root_node): fixed not to store a result.
-
- * configure.ac: add --with{,out}-x11 option.
-
- * devices/cairo/cairo-xlib-main.c (device_close): implemented.
-
- * libretto/lbgraphics.c (_libretto_graphics_real_free):
- destroy the pages.
-
- * hieroglyph/hgarray.c (hg_array_new): fixed the uninitialized value.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_initialize):
- support the multiple heaps.
- (_hg_allocator_ffit_real_alloc): likewise.
- (_hg_allocator_ffit_real_free): likewise.
- (_hg_allocator_ffit_real_resize): likewise.
- (_hg_allocator_ffit_real_resize_pool): likewise.
- (_hg_allocator_ffit_compare): likewise.
- (_hg_allocator_ffit_real_garbage_collection): likewise.
- (_hg_allocator_ffit_snapshot_real_free): likewise.
- (_hg_allocator_ffit_snapshot_real_relocate): likewise.
- (_hg_allocator_ffit_real_save_snapshot): likewise.
- (_hg_allocator_ffit_real_restore_snapshot): likewise.
- (_hg_mem_pool_free): likewise.
-
- * libretto/operator.c (_libretto_operator_op_atan): implemented.
- (_libretto_operator_op_cos): implemented.
- (_libretto_operator_op_setmatrix): trivial fix.
- (_libretto_operator_op_sin): implemented.
-
-2006-02-28 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmatrix.[ch]: new files.
-
- * hieroglyph/hgpath.c (_hg_path_node_real_path_last): new function.
- (_hg_path_node_find): new function.
- (hg_path_find): new function.
- (hg_path_close): don't make a duplicate node for closepath.
- (hg_path_matrix): new function.
-
- * hieroglyph/hgdebug.[ch]: new files.
-
- * hieroglyph/hgrender.c (_hg_render_debug_real_set_flags):
- new function.
- (_hg_render_debug_real_relocate): new function.
- (hg_render_eofill_new): keep CTM in the structure.
- (hg_render_fill_new): likewise.
- (hg_render_stroke_new): likewise.
- (hg_render_debug_new): new function.
-
- * libretto/operator.c (_libretto_operator_op_array):
- allocate a node for each object.
- (_libretto_operator_op_currentmatrix): implemented.
- (_libretto_operator_op_initgraphics): implemented.
- (_libretto_operator_op_rotate): trivial fix.
- (_libretto_operator_op_setmatrix): implemented.
- (_libretto_operator_op_translate): trivial fix.
- (_libretto_operator_op_private_hg_sleep): new function.
- (libretto_operator_hieroglyph_init): new function.
-
- * libretto/lbgraphics.c (libretto_graphics_init): new function.
- (libretto_graphics_show_page): support the multiple pages.
- (libretto_graphics_matrix_rotate): transform the matrix to fit into
- cairo's device space.
- (libretto_graphics_matrix_translate): likewise.
- (libretto_graphic_state_path_new): update a snapshot matrix.
- (libretto_graphics_render_eofill): likewise.
- (libretto_graphics_render_fill): likewise.
- (libretto_graphics_render_stroke): likewise.
- (libretto_graphics_debug): new function.
-
- * devices/cairo/hgdevice-cairo.c (_hg_cairo_device_print_path):
- new function for debugging.
- (_hg_cairo_device_real_initialize): keep the page size.
- (_hg_cairo_device_real_initialize): use cairo_set_matrix instead of
- cairo_transform to manage CTM in hieroglyph.
- (_hg_cairo_device_real_finalize): call cairo_show_page here.
- (_hg_cairo_device_real_eofill): update CTM before doing anything.
- (_hg_cairo_device_real_fill): likewise.
- (_hg_cairo_device_real_stroke): likewise.
- (_hg_cairo_device_set_matrix): new function.
- (_hg_cairo_device_set_path): initialize path.
- (_hg_cairo_device_set_path): add HG_PATH_MATRIX support.
-
-2006-02-26 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (libretto_operator_define_macro): check NULL.
- (_libretto_operator_op_and): implemented.
- (_libretto_operator_op_exit): implemented.
- (_libretto_operator_op_if): implemented.
- (_libretto_operator_op_sqrt): implemented.
- (BUILD_OP): check NULL.
- (libretto_operator_new): allocate one more byte memory.
-
- * libretto/lbgraphics.h (libretto_graphics_get_state): new macro.
-
- * libretto/vm.c (libretto_vm_main): revert a change to duplicate
- an object that isn't executable. it caused not updating an object
- in the dictionary say.
- (libretto_vm_main): shows the context of the objects in the stack.
-
- * libretto/lbgraphics.c (_libretto_graphic_state_real_set_flags):
- new function.
- (_libretto_graphic_state_real_relocate): new function.
- (_libretto_graphic_state_real_copy): new function.
- (libretto_graphic_state_new): new function.
- (libretto_graphics_save): implemented.
- (libretto_graphics_restore): implemented.
-
-2006-02-25 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgpath.c (hg_path_get_bbox): add HG_PATH_ARC.
- (hg_path_arc): new function.
-
- * libretto/operator.c (_libretto_operator_op_arc): implemented.
-
- * libretto/lbgraphics.c (libretto_graphics_path_arc): new function.
-
- * devices/cairo/hgdevice-cairo.c (_hg_cairo_device_real_stroke):
- implemented the color conversion for HSV.
- (_hg_cairo_device_set_path): implemented for HG_PATH_ARC.
-
-2006-02-21 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgpage.c (hg_page_get_size): convert mm size to unit
- size.
-
- * hieroglyph/hgdevice.c (hg_device_draw): added HG_RENDER_EOFILL.
- (hg_device_draw): call finalizer.
-
- * hieroglyph/hgpath.c (_hg_path_node_real_copy): new function.
- (_hg_path_real_copy): new function.
- (hg_path_copy): new function.
- (hg_path_get_bbox): new function.
- (hg_path_rlineto): new function.
- (hg_path_curveto): new function.
-
- * hieroglyph/hgrender.c (hg_render_eofill_new): new function.
-
- * libretto/operator.c (_libretto_operator_op_private_loop_continue):
- implemented.
- (_libretto_operator_op_private_repeat_continue): implemented.
- (_libretto_operator_op_abs): implemented.
- (_libretto_operator_op_aload): implemented.
- (_libretto_operator_op_clippath): implemented.
- (_libretto_operator_op_closepath): set VMerror
- if libretto_graphics_path_close failed.
- (_libretto_operator_op_curveto): implemented.
- (_libretto_operator_op_cvi): implemented.
- (_libretto_operator_op_div): implemented.
- (_libretto_operator_op_eofill): implemented.
- (_libretto_operator_op_fill): set VMerror
- if libretto_graphics_render_fill failed.
- (_libretto_operator_op_grestore): set VMerror
- if libretto_graphics_state_restore failed.
- (_libretto_operator_op_gsave): set VMerror
- if libretto_graphics_state_save failed.
- (_libretto_operator_op_gt): implemented.
- (_libretto_operator_op_lineto): set VMerror
- if libretto_graphics_path_lineto failed.
- (_libretto_operator_op_loop): implemented.
- (_libretto_operator_op_mod): implemented.
- (_libretto_operator_op_moveto): set VMerror
- if libretto_graphics_path_moveto failed.
- (_libretto_operator_op_mul): make an real object when it's bigger than
- G_MAXINT.
- (_libretto_operator_op_neg): implemented.
- (_libretto_operator_op_newpath): set VMerror
- if libretto_graphics_path_new failed.
- (_libretto_operator_op_pathbbox): implemented.
- (_libretto_operator_op_pop): implemented.
- (_libretto_operator_op_rand): implemented.
- (_libretto_operator_op_repeat): implemented.
- (_libretto_operator_op_rlineto): implemented.
- (_libretto_operator_op_rotate): set VMerror
- if libretto_graphics_matrix_rotate failed.
- (_libretto_operator_op_sethsbcolor): implemented.
- (_libretto_operator_op_srand): implemented.
- (_libretto_operator_op_stroke): set VMerror
- if libretto_graphics_render_stroke failed.
- (_libretto_operator_op_translate): set VMerror
- if libretto_graphics_matrix_translate failed.
- (_libretto_operator_op_truncate): implemented.
- (_libretto_operator_op_usertime): implemented.
- (libretto_operator_init): make a mark object.
-
- * libretto/vm.c (libretto_vm_new): initialize an random number
- generator.
- (libretto_vm_get_current_time): new function.
- (libretto_vm_get_random_generator): new function.
- (libretto_vm_main): drop an object if an empty array was pushed into
- exec stack.
-
- * libretto/lbgraphics.c (libretto_graphics_new): create an instance
- of clip_path.
- (libretto_graphics_set_page_size): new function.
- (libretto_graphics_set_graphic_size): new function.
- (libretto_graphics_path_from_clip): new function.
- (libretto_graphics_get_bbox_from_path): new function.
- (libretto_graphics_path_rlineto): new function.
- (libretto_graphics_path_curveto): new function.
- (libretto_graphics_color_set_hsv): new function.
- (libretto_graphics_render_eofill): new function.
-
- * devices/cairo/cairo-xlib-main.c (_cairo_xlib_real_set_page_size):
- removed an ad hoc code.
-
- * devices/cairo/hgdevice-cairo.c (hsv_to_rgb): new function.
- (_hg_cairo_device_real_initialize): removed an ad hoc code.
- (_hg_cairo_device_real_eofill): new function.
- (_hg_cairo_device_real_fill): implemented for hsv color.
- (_hg_cairo_device_set_path): added HG_PATH_RLINETO.
-
-2006-02-17 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgdevice.c (hg_device_draw): add HG_RENDER_ROTATE
- and HG_RENDER_TRANSLATE.
-
- * hieroglyph/hgrender.c (hg_render_rotate_new): new function.
- (hg_render_translate_new): new function.
-
- * libretto/operator.c (_libretto_operator_op_private_arraytomark):
- implemented.
- (_libretto_operator_op_array): implemented.
- (_libretto_operator_op_eq): implemented.
- (_libretto_operator_op_get): implemented.
- (_libretto_opreator_op_grestore): implemented.
- (_libretto_operator_op_gsave): implemented.
- (_libretto_operator_op_ifelse): implemented.
- (_libretto_operator_op_mul): implemented.
- (_libretto_operator_op_newpath): implemented.
- (_libretto_operator_op_put): implemented.
- (_libretto_operator_op_rotate): implemented.
- (_libretto_operator_op_translate): implemented.
-
- * libretto/vm.c (libretto_vm_main): copy an object even if it's not
- an executable object.
-
- * libretto/lbgraphics.c (libretto_graphics_matrix_rotate):
- new function.
- (libretto_graphics_matrix_translate): new function.
-
- * devices/cairo/hgdevice-cairo.c (_hg_cairo_device_real_rotate):
- new function.
- (_hg_cairo_device_real_translate): new function.
-
- * hieroglyph/hgarray.c (_hg_array_real_to_string):
- return NULL if failed.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_restore_snapshot):
- collect the unnecessary objects first because it prevents to success
- restoring snapshot.
- (hg_mem_pool_use_periodical_gc): new function.
- (hg_mem_alloc_with_flags): if it's under the periodical GC mode and
- the memory usage is over the threshold, try GC before allocating
- a memory.
- (hg_mem_free): this is now going to free an object immediately.
- be careful to use this.
-
- * hieroglyph/hgstring.c (hg_string_append): return FALSE if failed.
- (hg_string_concat): likewise.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_SET_SNAPSHOT): new macro.
- (HG_VALUE_MAKE_NAME_STATIC): terminate with NULL.
- (HG_VALUE_MAKE_SNAPSHOT): new macro.
- (HG_VALUE_GET_SNAPSHOT): new macro.
- (HG_IS_VALUE_SNAPSHOT): likewise.
-
- * hieroglyph/hgdict.c (_hg_dict_node_free): don't call hg_mem_free
- here.
- (hg_dict_insert): likewise.
- (hg_dict_remove): likewise.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_set_flags):
- support a snapshot object.
- (_hg_value_node_real_relocate): likewise.
- (_hg_value_node_real_dup): likewise.
- (_hg_value_node_real_copy): likewise.
- (_hg_value_node_real_to_string): likewise.
- (_hg_value_node_real_to_string): check NULL.
- (hg_value_node_get_hash): support all object types.
- (hg_value_node_compare): likewise.
-
- * libretto/operator.c (_libretto_operator_op_restore):
- implemented.
- (_libretto_operator_op_save): implemented.
-
- * libretto/scanner.c (_libretto_scanner_get_object):
- destroy an unnecessary object immediately.
-
- * libretto/lbgraphics.c (_libretto_graphics_real_free):
- destroy the pages.
- (libretto_graphics_new): take care of the multiple pages.
-
- * examples/cairo-xlib.c: new file.
-
- * hieroglyph/hgarray.c (hg_array_new): allow an empty array.
-
- * hieroglyph/hgdevice.c (hg_device_draw): support HG_RENDER_STROKE.
-
- * hieroglyph/hgrender.c (_hg_render_stroke_real_set_flags):
- new function.
- (_hg_render_stroke_real_relocate): new function.
- (hg_render_fill_new): fixed a typo.
- (hg_render_stroke_new): new function.
-
- * libretto/lbgraphics.c (libretto_graphics_new): check if an error
- happened.
- (libretto_graphics_render_stroke): implemented.
-
- * devices/cairo/cairo-xlib-main.c: reimplemented.
-
- * devices/cairo/hgdevice-cairo.[ch]: reimplemented.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_traverse_for_gc):
- don't collect an object if it's locked.
-
- * hieroglyph/hgpage.c (hg_page_append_node): new function.
-
- * hieroglyph/hgdevice.[ch]: new files.
-
- * hieroglyph/hgpath.[ch]: new files.
-
- * hieroglyph/hgmem.h (hg_mem_set_lock): new macro.
- (hg_mem_set_unlock): likewise.
- (hg_mem_is_locked): likewise.
-
- * hieroglyph/hgrender.[ch]: new files.
-
- * libretto/vm.c (libretto_vm_new): make a memory pool for graphics.
-
- * libretto/lbgraphics.[ch]: new files, which was moved from hggraphics.[ch].
-
-2006-02-16 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (_hg_array_real_set_flags): refers current.
- (_hg_array_real_relocate): relocate a current array pointer.
- (_hg_array_real_dup): duplicate an array from current array pointer.
- (_hg_array_real_copy): likewise.
- (_hg_array_real_to_string): refers current array pointer.
- (hg_array_append): if there are any removed array, then failed.
- (hg_array_remove): if index is 0, just increase a pointer to speed up.
-
- * hieroglyph/hggraphics.[ch]: new files.
-
- * libretto/operator.c (_libretto_operator_op_clear): implemented.
- (_libretto_operator_op_cleardictstack): implemented.
- (_libretto_operator_op_closepath): implemented.
- (_libretto_operator_op_dup): implemented.
- (_libretto_operator_op_end): implemented.
- (_libretto_operator_op_fill): implemented.
- (_libretto_operator_op_lineto): implemented.
- (_libretto_operator_op_moveto): implemented.
- (_libretto_operator_op_roll): implemented.
- (_libretto_operator_op_setgray): implemented.
- (_libretto_operator_op_setlinewidth): implemented.
- (_libretto_operator_op_setrgbcolor): implemented.
- (_libretto_operator_op_showpage): implemented.
- (_libretto_operator_op_stroke): implemented.
-
- * libretto/lbstack.c (libretto_stack_roll): new function.
-
- * libretto/vm.c (libretto_vm_get_graphics): new function.
-
-2006-02-15 Akira TAGOH <at@gclab.org>
-
- * libretto/scanner.c (_libretto_scanner_get_object): escape from
- the loop after an array is terminated.
-
- * hieroglyph/hgpage.[ch]: new files.
-
- * Makefile.am: modified to install .pc files.
-
- * configure.ac: modified to generate .pc files.
-
- * tests/hgpage.c: new testcase.
-
- * hieroglyph.pc.in: new file.
-
- * hg-libretto.pc.in: new file.
-
-2006-02-14 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgstring.c (_hg_string_real_to_string): convert
- the unvisible characters to the visible characters.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_to_string):
- quote a string with ().
-
- * libretto/operator.c (_libretto_operator_op_private_stringcvs):
- implemented.
- (_libretto_operator_op_writestring): implemented.
-
- * libretto/scanner.c (_libretto_scanner_get_object): convert \\ stuff.
-
- * hieroglyph/hgarray.c (_hg_array_real_copy): new function.
-
- * hieroglyph/hgmem.c (hg_object_dup): check HgObject ID.
- (hg_object_copy): new function.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_copy): new function.
-
- * libretto/operator.c (_libretto_operator_op_private_for_pos_int_continue):
- copy a node to avoid an array object breakage.
- (_libretto_operator_op_exec): likewise.
-
- * libretto/vm.c (libretto_vm_main): copy a node to avoid an object
- breakage in dict.
-
- * hieroglyph/hgarray.c (_hg_array_real_dup): new function.
- (_hg_array_real_to_string): new function.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_resize):
- set the stack end again. it may breaks after the memory allocation.
- (_hg_allocator_ffit_snapshot_real_to_string): new function.
- (hg_object_dup): new function.
-
- * hieroglyph/hgstring.c (_hg_string_real_to_string): new function.
- (hg_string_concat): new function.
- (hg_object_to_string): new function.
-
- * hieroglyph/hgmacros.h (HG_SET_STACK_END_AGAIN): new macro.
-
- * hieroglyph/hgdict.c (_hg_dict_real_to_string): new function.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_set_flags): check NULL.
- (_hg_value_node_real_dup): new function.
- (_hg_value_node_real_to_string): new function.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_to_string): new function.
- (hg_file_object_new): fixed a typo.
-
- * libretto/operator.c (_libretto_operator_op_private_for_pos_int_continue):
- reimplemented.
- (_libretto_operator_op_private_write_eqeq_only): reimplemented.
- (_libretto_operator_op_begin): reimplemented.
- (_libretto_operator_op_count): reimplemented.
- (_libretto_operator_op_def): reimplemented.
- (_libretto_operator_op_dict): reimplemented.
- (_libretto_operator_op_exch): reimplemented.
- (_libretto_operator_op_exec): reimplemented.
- (_libretto_operator_get_file_type): new function.
- (_libretto_operator_get_file_mode): new function.
- (_libretto_operator_op_file): reimplemented.
- (_libretto_operator_op_for): reimplemented.
- (_libretto_operator_op_index): reimplemented.
- (_libretto_operator_op_print): reimplemented.
- (_libretto_operator_op_sub): reimplemented.
- (_libretto_operator_real_to_string): new function.
- (BUILD_OP): set an executable bit.
-
- * libretto/lbstack.c (_libretto_stack_real_dup): new function.
-
- * libretto/vm.c (libretto_vm_get_io): new function.
- (libretto_vm_set_io): likewise.
- (libretto_vm_main): implemented the handler of proc.
-
-2006-02-12 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_free): trivial fix.
- (_hg_allocator_ffit_real_resize): likewise.
- (_hg_allocator_ffit_real_resize_pool): likewise.
- (_hg_allocator_ffit_snapshot_real_set_flags): mark a snapshot itself.
- (_hg_allocator_ffit_snapshot_real_relocate): resize a private object.
-
- * hieroglyph/hgstring.c (hg_string_append_c): return FALSE if resize
- failed.
- (hg_string_get_string): terminate with 0 here.
-
- * hieroglyph/hgbtree.c (hg_btree_page_insert): avoid an unnecessary
- loop.
- (hg_btree_page_remove): likewise.
- (hg_btree_find): likewise.
- (hg_btree_find_near): new function.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_set_flags):
- check if is.buf.buffer is NULL.
- (_hg_file_object_real_relocate): likewise.
-
- * libretto/scanner.c (_libretto_scanner_get_object): initialize
- with NULL.
-
-2006-02-08 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_resize): don't resize
- if the unnecessary memory is less than sizeof (HgMemObject).
-
-2006-02-07 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_save_snapshot):
- allocate a memory from system for snapshot of heap.
-
- * libretto/vm.[ch]: reimplemented.
-
- * libretto/operator.[ch]: reimplemented.
-
- * libretto/scanner.[ch]: reimplemented.
-
-2006-02-06 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (_hg_array_real_set_flags): use inline.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_snapshot_real_set_flags):
- use inline.
- (hg_mem_set_flags): removed.
- (hg_mem_get_flags): removed.
- (hg_mem_add_flags): removed.
- (hg_mem_is_flags): removed.
- (hg_mem_get_object): removed.
-
- * hieroglyph/hgstring.c (_hg_string_real_set_flags): use inline.
-
- * hieroglyph/hgdict.c (_hg_dict_traverse_set_flags): use inline.
- (_hg_dict_node_real_set_flags): use inline.
-
- * hieroglyph/hgmem.h (hg_mem_get_object__inline_nocheck): new macro.
- (hg_mem_get_object__inline): new macro.
- (hg_mem_is_flags__inline): new macro.
- (hg_mem_get_flags__inline): new macro.
- (hg_mem_set_flags__inline): new macro.
- (hg_mem_add_flags__inline): new macro.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_set_flags): use inline.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_set_flags): use inline.
-
- * libretto/lbstack.c (_libretto_stack_real_set_flags): use inline.
-
- * hieroglyph/hgarray.c (_hg_array_real_free): removed.
-
- * hieroglyph/hgmem.c (hg_mem_get_object__inline): new macro.
- (_hg_allocator_ffit_traverse_for_destroy): new function.
- (_hg_allocator_ffit_real_destroy): use hg_btree_foreach instead of
- iter.
- (_hg_allocator_ffit_traverse_for_relocation): new function.
- (_hg_allocator_ffit_relocate): relocate the variables which is located
- on the object that isn't allocated with the targetted pool.
- (_hg_allocator_ffit_relocate): use hg_btree_foreach instead of iter.
- (_hg_allocator_ffit_traverse_for_gc): new function.
- (_hg_allocator_ffit_traverse_for_gc_destroyed): new function.
- (_hg_allocator_ffit_real_garbage_collection): use hg_btree_foreach
- instead of iter.
-
- * hieroglyph/hgstring.c (_hg_string_real_free): removed.
-
- * hieroglyph/hgbtree.c (hg_btree_page_remove): fixed a typo.
-
- * hieroglyph/hgdict.c (_hg_dict_node_real_free): removed.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_free): removed.
-
-2006-02-05 Akira TAGOH <at@gclab.org>
-
- * examples/pse.c: reimplemented.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_garbage_collection):
- join much more free spaces.
- (hg_mem_add_root_node): save the root node list.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_REAL_SIMILAR): new macro.
-
- * hieroglyph/hgfile.c (hg_stdout_printf): fixed a typo.
- (hg_stderr_printf): fixed a typo.
-
-2006-02-04 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (hg_array_new): support the variable sized
- array.
- (hg_array_append): resize an array when allocated array is full.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_resize_pool):
- allocate much more memory if block_size is bigger than the initial
- allocated size.
- (_hg_allocator_ffit_real_garbage_collection): copy the object to
- new tree to avoid non-marking accidentally.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_SET_FILE): new macro.
- (HG_VALUE_MAKE_FILE): likewise.
- (HG_VALUE_GET_FILE): likewise.
- (HG_IS_VALUE_FILE): likewise.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_free): add file object
- support.
- (_hg_value_node_real_set_flags): likewise.
- (_hg_value_node_real_relocate): likewise.
- (hg_value_node_get_hash): likewise.
- (hg_value_node_compare): likewise.
-
- * hieroglyph/hgfile.c (hg_file_object_has_error): renamed.
-
- * libretto/lbstack.c (libretto_stack_pop): fixed a crash when
- the stack has just one item after pop.
-
-2006-02-02 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_relocate): new function.
- (_hg_allocator_ffit_real_resize): new function.
- (hg_mem_resize): new function.
-
- * hieroglyph/hgstring.c (hg_string_new): support a variable sized
- string.
- (hg_string_append_c): resize a string when the allocated size is full.
- (hg_string_append): likewise.
-
-2006-02-01 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_object_get_state): new function.
- (hg_object_set_state): likewise.
- (hg_object_add_state): likewise.
- (hg_object_is_state): likewise.
-
- * hieroglyph/hgbtree.c (hg_btree_page_blance): check null.
- (hg_btree_page_blance): fixed a typo that causes a memory corruption.
-
- * hieroglyph/hgmem.h (hg_object_readable): new macro.
- (hg_object_unreadable): new macro.
- (hg_object_is_readable): new macro.
- (hg_object_writable): new macro.
- (hg_object_is_writable): new macro.
- (hg_object_unwritable): new macro.
- (hg_object_executable): new macro.
- (hg_object_unexecutable): new macro.
- (hg_object_is_executable): new macro.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_free): added null and
- mark object support.
- (_hg_value_node_real_set_flags): likewise.
- (_hg_value_node_real_relocate): likewise.
-
- * hieroglyph/hgarray.c (_hg_array_real_relocate):
- use HgMemRelocateInfo.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_resize_pool):
- use HgMemRelocateInfo.
- (_hg_allocator_ffit_snapshot_real_relocate): likewise.
-
- * hieroglyph/hgstring.c (_hg_string_real_relocate):
- use HgMemRelocateInfo.
-
- * hieroglyph/hgdict.c (_hg_dict_traverse_relocate):
- use HgMemRelocateInfo.
- (_hg_dict_real_relocate): likewise.
- (_hg_dict_node_real_relocate): likewise.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_relocate):
- use HgMemRelocateInfo.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_relocate):
- use HgMemRelocateInfo.
- (hg_file_object_new): get a buffer size as gint32 instead of gsize.
-
- * libretto/lbstack.c (_libretto_stack_real_relocate):
- use HgMemRelocateInfo.
-
-2006-01-31 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_SET_MARK): new macro.
- (HG_VALUE_MAKE_MARK): new macro.
- (HG_VALUE_GET_MARK): new macro.
- (HG_IS_VALUE_MARK): new macro.
-
- * hieroglyph/hgdict.c (_hg_dict_node_compare_with_string):
- new function.
- (hg_dict_lookup_with_string): new function.
-
- * hieroglyph/hgfile.c (hg_file_object_new): resize the buffer size
- if the given is less than zero.
-
- * libretto/lbstack.c (libretto_stack_index): fixed a typo.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_SET_NULL): new macro.
- (HG_VALUE_SET_POINTER): likewise.
- (HG_VALUE_MAKE_NULL): likewise.
- (HG_VALUE_MAKE_POINTER): likewise.
- (HG_VALUE_GET_NULL): likewise.
- (HG_VALUE_GET_POINTER): likewise.
- (HG_IS_VALUE_NULL): likewise.
- (HG_IS_VALUE_POINTER): likewise.
-
- * hieroglyph/hgfile.c (hg_file_object_ungetc): new function.
-
-2006-01-29 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_pool_allow_resize): new function.
-
- * hieroglyph/hgarray.c (_hg_array_real_set_flags): use hg_mem_add_flags
- instead of hg_mem_use_flags.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_snapshot_real_free):
- new function.
- (_hg_allocator_ffit_snapshot_real_set_flags): likewise.
- (_hg_allocator_ffit_snapshot_real_relocate): likewise.
- (_hg_allocator_ffit_snapshot_traverse_save): likewise.
- (_hg_allocator_ffit_snapshot_traverse_complex_object): likewise.
- (_hg_allocator_ffit_real_restore_snapshot): implemented.
- (hg_mem_garbage_collection): new function.
- (hg_mem_alloc_with_flags): likewise.
- (hg_mem_add_flags): likewise.
-
- * hieroglyph/hgstring.c (_hg_string_real_set_flags): new function.
- (_hg_string_real_relocate): new function.
-
- * hieroglyph/hgvaluenode.h (HG_VALUE_MAKE_NAME_STATIC): new macro.
- (HG_VALUE_SET_NAME_STATIC): new macro.
-
- * hieroglyph/hgdict.c (_hg_dict_traverse_set_flags): fixed to not set
- flags properly.
- (_hg_dict_traverse_relocate): new function.
- (_hg_dict_real_relocate): new function.
- (_hg_dict_node_real_set_flags): use hg_mem_add_flags instead of
- hg_mem_set_flags.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_set_flags): use
- hg_mem_add_flags instead of hg_mem_set_flags.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_set_flags): likewise.
-
-2006-01-25 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgbtree.c (_hg_btree_count_traverse): new function.
- (hg_btree_length): likewise.
-
- * hieroglyph/hgmem.h (hg_mem_complex_mark): new macro.
- (hg_mem_complex_unmark): likewise.
- (hg_mem_is_complex_mark): likewise.
-
- * libretto/lbstack.c (libretto_stack_new): check if allocation was
- failed.
-
- * hieroglyph/hgstring.c (hg_string_new): likewise.
-
- * hieroglyph/hgdict.c (hg_dict_new): likewise.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_new): likewise.
-
- * hieroglyph/hgfile.c (hg_file_object_new): likewise.
-
- * hieroglyph/hgmem.c (hg_mem_pool_save_snapshot): new function.
- (hg_mem_pool_restore_snapshot): new function.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_free): add Array
- support.
- (_hg_value_node_real_set_flags): likewise.
- (_hg_value_node_real_relocate): likewise.
- (hg_value_node_get_hash): likewise.
- (hg_value_node_compare): likewise.
-
- * hieroglyph/hgvaluenode.h (hg_value_node_restorable): new macro.
- (hg_value_node_is_restorable): likewise.
-
- * hieroglyph/hgmem.h (hg_mem_restorable): new macro.
- (hg_mem_is_restorable): likewise.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_gc_mark): try to mark
- the object from the root node.
- (hg_mem_add_root_node): new function.
- (hg_mem_remove_root_node): new function.
- (hg_mem_pool_destroy): free the root node.
- (_hg_allocator_ffit_real_resize_pool): try to relocate the addresses
- in the root node.
- (hg_mem_pool_save_snapshot): new function.
- (hg_mem_pool_restore_snapshot): new function.
-
-2006-01-24 Akira TAGOH <at@gclab.org>
-
- * libretto/lbstack.c (_libretto_stack_real_set_flags): implemented.
- (_libretto_stack_real_relocate): implemented.
-
- * libretto/lbstack.[ch]: reimplemented.
-
- * hieroglyph/hgfile.[ch]: reimplemented.
-
-2006-01-23 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgdict.c (_hg_dict_traverse_set_flags): new function.
- (_hg_dict_real_set_flags): likewise.
- (_hg_dict_node_real_set_flags): likewise.
- (_hg_dict_node_real_relocate): likewise.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_relocate): new function.
-
- * hieroglyph/hgarray.c (_hg_array_real_set_flags): new function.
- (_hg_array_real_relocate): likewise.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_resize_pool): recompute
- all the addresses.
- (hg_mem_set_flags): notify to all the children objects.
- (hg_mem_get_object): new function.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_free): added name and
- dict object.
- (_hg_value_node_real_set_flags): new function.
- (hg_value_node_get_hash): added name and dict object.
- (hg_value_node_compare): likewise.
-
-2006-01-21 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_garbage_collection):
- implemented GC.
- (_hg_allocator_ffit_real_gc_mark): new function.
- (_hg_mem_free): moved out from hg_mem_free.
- (hg_mem_set_stack_end): new function.
- (hg_mem_free): do nothing if allocator supports GC.
- (hg_mem_set_flags): new function.
- (hg_mem_get_flags): likewise.
- (hg_mem_is_flags): likewise.
-
- * hieroglyph/hgbtree.c (hg_btree_page_foreach): fixed not to pick up
- some nodes.
- (hg_btree_page_get_iter): new function.
- (hg_btree_iter_new): likewise.
- (hg_btree_iter_free): likewise.
- (hg_btree_get_iter_first): likewise.
- (hg_btree_get_iter_next): likewise.
- (hg_btree_is_iter_valid): likewise.
- (hg_btree_update_iter): likewise.
- (hg_btree_first): removed.
-
- * hieroglyph/hgmem.h (hg_mem_gc_mark): new macro.
- (hg_mem_gc_unmark): likewise.
- (hg_mem_is_gc_mark): likewise.
-
-2006-01-20 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvaluenode.c (hg_value_node_get_hash): support
- HG_TYPE_VALUE_STRING.
-
- * hieroglyph/hgstring.[ch]: reimplemented.
-
- * hieroglyph/hgmem.c (_hg_mem_init_stack_start): use __libc_stack_end
- instead of the value where from /proc/self/stat.
- (_hg_allocator_ffit_real_destroy): destroy all the node.
- (_hg_allocator_ffit_real_alloc): fixed a memory leak.
- (_hg_allocator_ffit_compare): fixed not to sort out properly.
-
- * hieroglyph/hgbtree.c (hg_btree_page_foreach): fixed a typo.
- (hg_btree_page_first): new function.
- (hg_btree_first): new function.
-
- * hieroglyph/hgdict.c (_hg_dict_node_free): new function.
- (_hg_dict_destroy): destroy the node instance as well.
- (hg_dict_new): don't set a destroyer function where called at
- destroying, to avoid the loop between the allocator destroyer.
- (hg_dict_remove): remove the hash key when there are no items for that
- anymore.
-
- * hieroglyph/hgmem.c (_hg_allocator_ffit_real_resize_pool):
- align to the block size.
-
- * hieroglyph/hgdict.[ch]: reimplemented.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_get_hash): new function.
- (hg_value_node_compare): likewise.
-
-2006-01-19 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.[ch]: reimplemented.
-
- * hieroglyph/hgmem.c (_hg_mem_init_stack_start): new function to
- determine the stack location.
- (_hg_allocator_get_block_id): fixed a problem that the return value
- could be less than the given size.
- (_hg_allocator_ffit_real_alloc): put an identity to recognize an
- object.
- (_hg_allocator_ffit_real_free): forgot to add a free block to the list.
- (hg_mem_init): implemented.
- (hg_mem_finalize): new function.
- (hg_mem_free): free an object without a memory pool because the given
- pool could be the different thing. so tell the object which one was
- your mother.
-
- * hieroglyph/hgbtree.c (hg_btree_page_foreach): make it possible to
- give an extra data.
- (hg_btree_foreach): likewise.
-
- * hieroglyph/hgvaluenode.[ch]: reimplemented.
-
-2006-01-18 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.[ch]: reimplemented a lot.
-
- * hieroglyph/hgmacros.h: new file.
-
-2006-01-17 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgbtree.c (hg_btree_page_destroy): fixed a memory leak.
- (hg_btree_page_insert): fixed a typo.
- (hg_btree_page_insert): free a val when it's called as replaced.
- (hg_btree_replace): new function.
-
-2006-01-16 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgbtree.[ch]: new files.
-
-2006-01-13 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (hg_mem_save_object_new): make it speeding up
- a bit.
-
- * hieroglyph/hgfile.c (_hg_file_object_free__internal): mmap support.
- (hg_file_object_new): likewise.
- (hg_file_object_is_error): likewise.
- (hg_file_object_read): likewise.
- (hg_file_object_read_line): likewise.
- (hg_file_object_write): likewise.
- (hg_file_object_seek): likewise.
- (hg_file_object_getchar): new function.
-
- * libretto/scanner.c (libretto_scanner_get_token): make it speeding
- up a bit.
-
-2006-01-11 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (hg_array_new): try GC when the memory
- allocation was failed.
- (hg_array_length__internal): removed.
-
- * hieroglyph/hgmem.c (_gg_list_reverse_find): new function.
- (hg_mem_save_object_new): try GC when the memory allocation was
- failed.
- (hg_mem_object_new): likewise.
- (hg_mem_object_gc_append_root): new function.
- (hg_mem_object_gc_remove_root): new function.
- (hg_mem_gc_mark_from_root_node__internal): new function.
- (hg_mem_gc_mark_from_root_node): new function.
-
- * hieroglyph/hgstring.c (hg_string_new): try GC when the memory
- allocation was failed.
-
- * hieroglyph/hgdict.c (_hg_dict_real_dup): new function.
- (hg_dict_new): try GC when the memory allocation was failed.
-
- * hieroglyph/hgvaluenode.c (hg_value_node_new): return NULL when
- hg_mem_object_new was failed.
-
- * hieroglyph/hgfile.c (_hg_file_object_real_to_string): new function.
- (hg_file_object_read_line): don't try to copy the buffer more than
- the buffer size.
- (hg_file_object_seek): new function.
-
- * configure.ac: check if fseeko is available.
-
- * libretto/operator.c (_libretto_operator_op_begin): implemented.
- (_libretto_operator_op_def): implemented.
- (_libretto_operator_op_dict): implemented.
- (_libretto_operator_op_exec): implemented.
-
- * libretto/scanner.c (_libretto_scanner_get_next_token): parse a token
- from the file object instead of String.
- (libretto_scanner_get_object): return NULL when there are no token.
-
- * libretto/vm.c (libretto_vm_new): enable the statement edit scanning
- by default.
- (libretto_vm_new): add the stacks, the dictionaries to the root node
- to get GC working.
- (libretto_vm_init): wrap up the dictionaries with HgValueNode before
- pushing them into the stack.
- (libretto_vm_exec): don't set an executable flag to the name object
- since Array has the proper flag.
- (libretto_vm_exec): get a token from the file object directly.
-
-2006-01-06 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (_hg_array_real_gc_marker): call
- hg_value_node_node_gc_mark__internal instead of its own codes for
- the nodes.
- (_hg_array_real_gc_lock): likewise.
- (_hg_array_real_to_string): likewise.
-
- * hieroglyph/hgdict.c (_hg_dict_real_gc_marker): call
- hg_value_node_node_gc_mark__internal instead of its own codes for
- the nodes.
- (_hg_dict_real_gc_lock): likewise.
- (_hg_dict_node_gc_marker): removed.
- (_hg_dict_node_gc_lock): removed.
-
- * hieroglyph/hgvaluenode.c (_hg_value_node_real_gc_lock): new function.
- (_hg_value_node_real_to_string): new function.
- (_hg_value_node_real_dup): new function.
- (hg_value_node_node_gc_mark__internal): new function.
- (hg_value_node_node_gc_lock__internal): new function.
- (hg_value_node_node_to_string__internal): new function.
- (hg_value_node_node_dup__internal): new function.
- (hg_value_node_compare): new function.
-
- * libretto/scanner.c (_libretto_scanner_get_next_token): clean
- the buffer up when a line is only a comment.
-
- * libretto/lbstack.c (_libretto_stack_real_gc_marker): call
- hg_value_node_node_gc_mark__internal instead of having its own code for
- the nodes.
- (_libretto_stack_real_gc_lock): likewise.
-
- * libretto/vm.c (libretto_vm_set_emulation_level): new function.
- (libretto_vm_exec): fixed a fail when comment appears in the string.
-
- * hieroglyph/hgarray.c (_hg_array_real_to_string): output a string
- without / if the name object has an executable flag.
- (_hg_array_real_dup): new function.
- (hg_array_length__internal): new function.
- (hg_array_append__internal): likewise.
- (hg_array_replace_with_index__internal): likewise.
-
- * hieroglyph/hgstring.c (hg_string_real_length__internal):
- new function.
- (hg_string_get_character__internal): new function.
-
- * hieroglyph/hgvaluenode.[ch]: new files.
-
- * hieroglyph/hgfile.c (hg_file_object_is_error): renamed from
- hg_file_is_accessible.
- (hg_file_object_get_error): new function.
-
- * libretto/operator.c (_libretto_operator_op_private_for_pos_int_continue):
- implemented.
- (_libretto_operator_op_private_write_eqeq_only): implemented.
- (_libretto_operator_op_bind): implemented.
- (_libretto_operator_op_count): implemented.
- (_libretto_operator_op_exch): implemented.
- (_libretto_operator_get_open_type): new function.
- (_libretto_operator_get_access_type): new function.
- (_libretto_operator_op_file): implemented.
- (_libretto_operator_op_for): implemented.
- (_libretto_operator_op_index): implemented.
- (_libretto_operator_op_print): implemented.
- (_libretto_operator_op_sub): implemented.
- (_libretto_operator_op_writestring): implemented.
- (libretto_operator_init): defined /write==only, /==only, /== and
- /pstack operator.
-
- * libretto/scanner.c (_libretto_scanner_parse_string): convert \n, \r,
- \t, \b and \f to the actual control characters.
- (_libretto_scanner_get_next_token): fixed a typo.
- (libretto_scanner_get_object): use hg_value_node_new instead of
- hg_mem_object_new.
-
- * libretto/vm.c (_libretto_vm_examine_object): make a duplicate object
- to avoid an array breakage.
- (libretto_vm_destroy): destroy a scanner object.
- (libretto_vm_file_set_error): new function.
- (libretto_vm_exec): implemented a procedure for array.
- (libretto_vm_exec): make a duplicate object to avoid an array breakage.
- (libretto_vm_exec): implemented a trivial code to dump current ostack
- and estack. (FIXME: it should be done by PS code)
-
-2006-01-05 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (_hg_array_real_gc_marker): support HG_TYPE_FILE
- object.
- (_hg_array_real_to_string): new function.
-
- * hieroglyph/hgmem.c (hg_mem_object_dup): new function.
- (hg_mem_object_to_string_internal): new function.
- (hg_mem_object_to_string): new function.
-
- * hieroglyph/hgstring.c (_hg_string_real_to_string): new function.
- (hg_string_real_length): new function.
-
- * hieroglyph/hgtypes.c (hg_value_compare): support HG_TYPE_FILE object.
-
- * hieroglyph/hgdict.c (_hg_dict_node_gc_marker): support
- HG_TYPE_FILE object.
- (_hg_dict_node_gc_lock): likewise.
- (_hg_dict_hash): likewise.
- (_hg_dict_real_to_string): new function.
-
- * hieroglyph/hgmem.h (hg_mem_object_set_node_internal): new macro.
- (hg_mem_object_set_node): likewise.
- (hg_mem_object_copy_node_internal): likewise.
- (hg_mem_object_copy_node): likewise.
-
- * hieroglyph/hgfile.c (_hg_file_get_access_mode): new function.
- (hg_file_object_is_accessible): likewise.
-
- * libretto/operator.c (libretto_operator_define_macro): a macro to
- define the couple of PS object.
- (libretto_operator_op_private_gstringcvs): implemented.
- (libretto_operator_op_add): implemented.
- (_libretto_operator_real_to_string): new function.
- (libretto_operator_init): define /write=only, /=only and /= operator.
- (libretto_operator_get_name): new function.
-
- * libretto/scanner.c: reimplemented.
-
- * libretto/lbstack.c (_libretto_stack_real_gc_marker): support
- HG_TYPE_FILE object.
-
- * libretto/vm.c (_libretto_vm_examine_object): new function.
- (libretto_vm_new): initialize a scanner.
- (libretto_vm_set_estack): new function.
- (libretto_vm_is_error): likewise.
- (libretto_vm_set_error): likewise.
- (libretto_vm_exec): implemented.
-
-2005-12-30 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgfile.[ch]: new files.
-
- * hieroglyph/hgmem.c (hg_mem_chunk_new): new function.
- (hg_mem_chunk_ref): likewise.
- (hg_mem_chunk_unref): likewise.
- (hg_mem_chunk_alloc): likewise.
- (hg_mem_chunk_alloc0): likewise.
- (hg_mem_chunk_free): likewise.
- (hg_mem_is_internal): likewise.
- (hg_mem_object_is_internal): likewise.
- (hg_mem_object_is): likewise.
-
- * hieroglyph/hgtypes.h (HG_VALUE_SET_NAME): fixed a typo.
-
- * hieroglyph/hgdict.c (hg_dict_lookup_internal): new function.
-
- * hieroglyph/hgmem.h (hg_mem_chunk_create): new macro.
- (hg_chunk_new): likewise.
- (hg_chunk_new0): likewise.
- (hg_chunk_free): likewise.
- (hg_mem_object_is_executable_internal): likewise.
- (hg_mem_object_is_executable): likewise.
-
- * libretto/operator.c (libretto_operator_call): new function.
-
- * libretto/lbstack.c (libretto_stack_index): new function.
-
- * libretto/vm.c (libretto_vm_get_userdict): new function.
- (libretto_vm_get_errordict): likewise.
- (libretto_vm_get_errorhandlerdict): likewise.
- (libretto_vm_get_io): likewise.
- (libretto_vm_set_io): likewise.
- (libretto_vm_init): initialize operators here.
- (libretto_vm_lookup_operator): new function.
- (libretto_vm_exec): likewise.
-
-2005-12-29 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgarray.c (_hg_array_real_gc_marker): added null/pointer
- object support.
- (_hg_array_real_gc_lock): new function.
-
- * hieroglyph/hgmem.c (_hg_mem_gc_compute_relocatable): don't swap
- a start pointer and an end pointer when end is null.
- (hg_mem_gc_lock_internal): new function.
- (hg_mem_object_gc_lock_internal): new function.
- (hg_mem_object_gc_lock): new function.
- (hg_mem_object_gc_mark_internal): don't mark HG_FL_MARK when it has
- already been marked.
-
- * hieroglyph/hgtypes.c (hg_value_compare): added null/pointer
- object support.
-
- * hieroglyph/hgdict.c (_hg_dict_node_gc_marker): added null/pointer
- object support.
- (_hg_dict_node_gc_lock): new function.
- (_hg_dict_real_gc_lock): likewise.
- (_hg_dict_hash): added null/pointer object support.
- (hg_dict_insert_internal): new function.
-
- * hieroglyph/hgmem.h: added gc_lock function pointer.
-
- * libretto/lbstack.c (_libretto_stack_real_gc_marker): added
- null/pointer object support.
- (_libretto_stack_real_gc_lock): new function.
-
- * libretto/vm.c (libretto_vm_new): validate an allocated memory.
- (libretto_vm_get_emulation_level): new function.
- (libretto_vm_get_systemdict): likewise.
- (libretto_vm_get_current_pool): likewise.
- (libretto_vm_is_global_pool_used): likewise.
- (libretto_vm_use_global_pool): likewise.
- (libretto_vm_get_ostack): likewise.
- (libretto_vm_get_estack): likewise.
- (libretto_vm_get_dstack): likewise.
- (libretto_vm_init): use a local pool by default.
- (libretto_vm_startjob): new function.
-
- * libretto/operator.[ch]: new files.
-
-2005-12-27 Akira TAGOH <at@gclab.org>
-
- * configure.ac: added -Werror to CFLAGS to be sane.
-
- * libretto/inputdevice.[ch]: new files.
-
- * hieroglyph/hgmem.c (_hg_mem_save_object_free_internal): fixed
- an wrong free.
- (hg_mem_save_object_new): increase an reference count for the allocated
- object.
- (hg_mem_save_object_free): validate the heap memory before restoring.
-
- * hieroglyph/hgtypes.h: added mark value.
-
- * hieroglyph/hgstring.c (hg_string_set_string): reset error status.
- (hg_string_put_character): set an error if it's out of range.
- (hg_string_get_character): likewise.
-
- * hieroglyph/hgdict.c (hg_dict_new): initialize nodes.
-
- * hieroglyph/hgmem.h (hg_mem_mark_complex_object_internal): new macro.
- (hg_mem_object_mark_complex_object_internal): likewise.
- (hg_mem_object_mark_complex_object): likewise.
- (hg_mem_executable_internal): likewise.
- (hg_mem_object_executable_internal): likewise.
- (hg_mem_object_executable): likewise.
-
- * libretto/scanner.[ch]: modified to sit down on the current memory
- management system.
-
- * libretto/lbstack.[ch]: new files.
-
- * libretto/vm.[ch]: new files.
-
-2005-12-26 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.c (_hg_mem_save_object_free_internal): new function.
- (hg_mem_init): set GAllocator here.
- (hg_mem_is_initialized): new function.
- (hg_mem_save_object_new): new function.
- (hg_mem_save_object_free): new function.
- (hg_mem_alloc): don't fail allocation even if atom_size <= 0.
-
-2005-12-25 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgdict.c (_hg_dict_hash_node_lookup): new function.
- (hg_dict_insert): replace the value when the key was already registered.
-
- * hieroglyph/hgmem.c (hg_mem_pool_new): initialize all member variables
- in structure.
- (hg_mem_pool_allow_heap_expansion): removed.
- (hg_mem_pool_set_emulation_level): new function.
- (hg_mem_pool_get_emulation_level): new function.
- (hg_mem_object_gc_mark_internal): new function.
- (hg_mem_gc_start): check why the lock failed and retry to lock if GC
- isn't still running.
- (hg_mem_gc_suspend): new function.
-
- * hieroglyph/hgstring.c (hg_string_compare): new function.
-
- * hieroglyph/hgtypes.c: new file.
-
- * hieroglyph/hgdict.[ch]: new files.
-
- * hieroglyph/hgmem.h (hg_mem_object_restorable_internal): new macro.
- (hg_mem_object_restorable): likewise.
- (hg_mem_object_relocatable_internal): likewise.
- (hg_mem_object_relocatable): likewise.
-
-2005-12-21 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgtypes.h: new file.
-
- * hieroglyph/hgmem.c: added the reverse map to object and function
- pointer to free it.
- (_hg_mem_object_free_internal): new function to do it without lock.
- (hg_mem_pool_allow_heap_expansion): do lock.
- (hg_mem_pool_lookup): new function to lookup the list which contains
- HgMem.
- (hg_mem_alloc): removed lock stuff.
- (hg_mem_free): likewise.
- (hg_mem_set_destroyer): new function.
- (hg_mem_object_new): trivial fix.
- (hg_mem_object_get_status): new function.
- (hg_mem_object_set_status): new function.
- (hg_mem_gc_mark_internal): new function.
- (hg_mem_gc_mark): new function.
-
- * hieroglyph/hgstring.[ch]: new files for handling string.
-
- * hieroglyph/hgerror.h: error definition file.
-
- * hieroglyph/hgarray.[ch]: new files for the array.
-
-2005-12-19 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgmem.[ch]: new file for the memory management.
-
-2005-12-03 Akira TAGOH <at@gclab.org>
-
- * tests/doretree.ps: added a testcase.
- * tests/snowflak.ps: added a testcase.
- * tests/run.sh: added.
-
- * devices/cairo/hgdevice-cairo.c, libretto/lvstring.c,
- libretto/lvarray.c, libretto/lvarray.h, libretto/lvdict.c,
- libretto/operator.c, libretto/lvmark.c, hieroglyph/hgvalue-string.c,
- hieroglyph/hgfilter.c, hieroglyph/hgvalue-boolean.c,
- hieroglyph/hgvalue-name.c, hieroglyph/hgvalue-real.c,
- hieroglyph/hgvalue-hash.c, hieroglyph/hgvalue-integer.c,
- hieroglyph/hgvalue.c, hieroglyph/hgvalue-array.c,
- hieroglyph/hgvalue-pointer.c, hieroglyph/hgstream.c,
- hieroglyph/hgvalue-array.h, hieroglyph/hgdevice.c: removed the unused
- variable.
-
- * hieroglyph/hgdevice.c (hieroglyph_device_class_init): added rmove_to
- signal.
- (hieroglyph_device_rmove_to): new function.
-
- * libretto/operator.c (libretto_operator_op_atan): implemented atan
- operator.
- (libretto_operator_op_concatmatrix): implemented concatmatrix operator.
- (libretto_operator_op_cos): implemented cos operator.
- (libretto_operator_op_lt): implemented lt operator.
- (libretto_operator_op_matrix): implemented matrix operator.
- (libretto_operator_op_rmoveto): implemented rmoveto operator.
- (libretto_operator_op_sin): implemented sin operator.
- (libretto_operator_op_sqrt): implemented sqrt operator.
-
- * devices/cairo/hgdevice-cairo.c (hieroglyph_cairo_device_real_rmove_to):
- new callback function.
-
- * hieroglyph/hgdevice.c (hieroglyph_device_class_init): removed
- the unnecessary callback functions.
- (hieroglyph_device_class_init): added a clip signal and removed
- path_bbox and path_bbox2 signals.
- (_hieroglyph_device_open): set the initial clippath.
- (hieroglyph_path_new): new function.
- (hieroglyph_path_free): likewise.
- (hieroglyph_path_copy): likewise.
- (_hieroglyph_device_path_bbox): likewise.
- (hieroglyph_device_clip): likewise.
- (hieroglyph_device_clip_path): set a path.
- (hieroglyph_device_close_path): likewise.
- (hieroglyph_device_curve_to): likewise.
- (hieroglyph_device_eofill): likewise.
- (hieroglyph_device_fill): likewise.
- (hieroglyph_device_line_to): likewise.
- (hieroglyph_device_move_to): likewise.
- (hieroglyph_device_new_path): clear the paths.
- (hieroglyph_device_rline_to): set a path.
-
- * libretto/operator.c (libretto_operator_op_clip): implemented clip
- operator.
- (libretto_operator_op_rotate): convert a degree to a radian.
-
- * libretto/scanner.c (_libretto_scanner_find_skip_characters):
- trival fix.
- (_libretto_scanner_skip_characters): likewise.
- (_libretto_scanner_get_next_token): skip the comment without the large
- loop.
-
- * libretto/lvdict.c (libretto_value_dict_hash_key_equal): trival fix.
-
- * libretto/operator.h: include the stacks in the structure.
-
- * devices/cairo/hgdevice-cairo.c (hieroglyph_cairo_device_real_clip):
- new callback function.
- (hieroglyph_cairo_device_real_clip_path): fixed the wrong implementation.
- (hieroglyph_cairo_device_real_path_bbox): removed.
- (hieroglyph_cairo_device_real_path_bbox2): removed.
- (_hieroglyph_cairo_device_show_path): new function for the path debug.
-
-2005-11-30 Akira TAGOH <at@gclab.org>
-
- * tests/Makefile.am (noinst_PROGRAMS): clean up.
-
- * libretto/Makefile.am (lrinclude_HEADERS): clean up.
-
- * requires (GLIB_REQUIRED): require glib >= 2.8.0.
-
- * hieroglyph/hgdevice.c (hieroglyph_device_class_init):
- added more signals.
- (hieroglyph_device_curve_to): new function.
- (hieroglyph_device_eofill): likewise.
- (hieroglyph_device_rline_to): likewise.
- (hieroglyph_device_rotate): likewise.
- (hieroglyph_device_translate): likewise.
-
- * hieroglyph/hgvalue-array.c (hieroglyph_value_array_pop):
- access to GPtrArray directly.
-
- * configure.ac: added --enable-profile option.
-
- * libretto/operator.c (libretto_operator_op_abs): implemented abs
- operator.
- (libretto_operator_op_aload): implemented aload operator.
- (libretto_operator_op_curveto): implemented curveto operator.
- (libretto_operator_op_eofill): implemented eofill operator.
- (libretto_operator_op_mod): implemented mod operator.
- (libretto_operator_op_rand): implemented rand operator.
- (libretto_operator_op_rlineto): implemented rlineto operator.
- (libretto_operator_op_rotate): implemented rotate operator.
- (libretto_operator_op_setgray): implemented setgray operator.
- (libretto_operator_op_sethsbcolor): implemented sethsbcolor operator.
- (libretto_operator_op_srand): implemented srand operator.
- (libretto_operator_op_translate): implemented translate operator.
- (rgb_to_hsv): borrowed from GTK+.
- (hsv_to_rgb): likewise.
- (libretto_operator_new): add true, false and null into the systemdict.
-
- * devices/cairo/hgdevice-cairo.c (hieroglyph_cairo_device_real_curve_to):
- new callback function.
- (hieroglyph_cairo_device_real_eofill): likewise.
- (hieroglyph_cairo_device_real_rline_to): likewise.
- (hieroglyph_cairo_device_real_rotate): likewise.
- (hieroglyph_cairo_device_real_translate): likewise.
-
-2005-11-25 Akira TAGOH <at@gclab.org>
-
- * examples/ps2x.c: new file.
-
- * examples/Makefile.am (noinst_PROGRAMS): added ps2x.
-
- * examples/ps2ps.c (main): use hieroglyph_init instead of the macros
- for debug.
-
- * hieroglyph/hgdevice.c (hieroglyph_device_class_init):
- added more callbacks and signals.
- (hieroglyph_device_clip_path): new function.
- (hieroglyph_device_close_path): likewise.
- (hieroglyph_device_fill): likewise.
- (hieroglyph_device_line_to): likewise.
- (hieroglyph_device_new_path): likewise.
- (hieroglyph_device_path_bbox): likewise.
- (hieroglyph_device_path_bbox2): likewise.
- (hieroglyph_device_restore): likewise.
- (hieroglyph_device_save): likewise.
- (hieroglyph_device_set_line_width): likewise.
- (hieroglyph_device_set_rgb_color): likewise.
- (hieroglyph_device_stroke): likewise.
-
- * hieroglyph/hgvalue-array.c (hieroglyph_value_array_clear):
- fixed an removal from the wrong place.
-
- * hieroglyph/hgobject.c (hieroglyph_init): new function.
-
- * hieroglyph/hgdefs.h: added HgBBox structure.
-
- * hieroglyph/hgfilter.c (hieroglyph_filter_real_set_device):
- new callback function.
-
- * filters/ps/ps-filter.c (ps_filter_private_init): call
- libretto_operator_init.
- (ps_filter_real_set_device): new callback function.
- (filter_open): connect to set_device signal.
-
- * libretto/operator.c (libretto_operator_op_begin): implemented begin
- operator.
- (libretto_operator_op_clear): implemented clear operator.
- (libretto_operator_op_cleardictstack): implemented cleardictstack
- operator.
- (libretto_operator_op_clippath): implemented clippath operator.
- (libretto_operator_op_closepath): implemented closepath operator.
- (libretto_operator_op_cvi): implemented cvi operator.
- (libretto_operator_op_dict): implemented dict operator.
- (libretto_operator_op_div): implemented div operator.
- (libretto_operator_op_end): implemented end operator.
- (libretto_operator_op_fill): implemented fill operator.
- (libretto_operator_op_get): implemented get operator.
- (libretto_operator_op_grestore): implemented grestore operator.
- (libretto_operator_op_gsave): implemented gsave operator.
- (libretto_operator_op_lineto): implemented lineto operator.
- (libretto_operator_op_moveto): implemented moveto operator.
- (libretto_operator_op_newpath): implemented newpath operator.
- (libretto_operator_op_pathbbox): implemented pathbbox operator.
- (libretto_operator_op_repeat): implemented repeat operator.
- (libretto_operator_op_roll): implemented roll operator.
- (libretto_operator_op_setlinewidth): implemented setlinewidth operator.
- (libretto_operator_op_setrgbcolor): implemented setrgbcolor operator.
- (libretto_operator_op_stroke): implemented stroke operator.
- (libretto_operator_op_truncate): implemented truncate operator.
- (libretto_operator_op_usertime): implemented usertime operator.
-
- * libretto/scanner.c (_libretto_scanner_parse_string):
- ignore only \r at the end of line.
- (_libretto_scanner_parse_hexadecimal_string): new function.
- (_libretto_scanner_get_next_token): implemented <hex> scanner.
- (libretto_scanner_parse_numbers): new function.
-
- * devices/cairo/cairo-xlib-main.c: new file for x11 module.
-
- * devices/cairo/hgdevice-cairo.c (hieroglyph_cairo_device_real_clip_path):
- new callback function.
- (hieroglyph_cairo_device_real_close_path): likewise.
- (hieroglyph_cairo_device_real_fill): likewise.
- (hieroglyph_cairo_device_real_line_to): likewise.
- (hieroglyph_cairo_device_real_new_path): likewise.
- (hieroglyph_cairo_device_real_path_bbox): likewise.
- (hieroglyph_cairo_device_real_path_bbox2): likewise.
- (hieroglyph_cairo_device_real_restore): likewise.
- (hieroglyph_cairo_device_real_save): likewise.
- (hieroglyph_cairo_device_real_set_line_width): likewise.
- (hieroglyph_cairo_device_real_set_rgb_color): likewise.
- (hieroglyph_cairo_device_real_stroke): likewise.
-
- * devices/cairo/Makefile.am (device_LTLIBRARIES): added x11 module.
-
- * devices/cairo/hgdevice-cairo.h: added Xlib support.
-
-2005-11-23 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (libretto_operator_op_and): implemented and
- operator.
- (libretto_operator_op_eq): implemented eq operator.
- (libretto_operator_op_gt): implemented gt operator.
- (libretto_operator_op_mul): implemented mul operator.
- (libretto_operator_op_neg): implemented neg operator.
-
- * libretto/scanner.c (_libretto_scanner_get_next_token):
- moved from libretto_scanner_get_next_token to parse the multiple { }
- recursively.
-
- * libretto/operator.c (_libretto_operator_object2string):
- check the array size.
- (libretto_operator_op_array): implemented array operator.
- (libretto_operator_op_for): implemented for operator.
- (libretto_operator_op_put): implemented put operator.
-
- * libretto/operator.c (_libretto_operator_object2string):
- display an operator object.
- (libretto_operator_op_bind): implemented bind operator.
- (libretto_operator_build_closure): take an operator name in
- the argument and set it as quark.
- (libretto_operator_process_object): call libretto_operator_call when
- it was HgValuePointer.
-
- * libretto/lvdict.c (libretto_value_dict_real_lookup):
- new function for lookup signal on HgValueHash.
- (libretto_value_dict_new): connect to lookup signal.
- (libretto_value_dict_lookup): emit a lookup signal instead of
- calling hieroglyph_value_hash_lookup.
-
-2005-11-22 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (libretto_operator_real_destroy):
- use LibrettoValueDict instead of HgValueHash.
- (_libretto_operator_object2string): display the object type
- for the debugging purpose.
- (libretto_operator_op_currentdict): fixed a typo.
- (libretto_operator_op_def): use LibrettoValueDict instead
- of HgValueHash.
- (libretto_operator_op_exec): call libretto_operator_exec_procedure
- for LibrettoValueArray.
- (libretto_operator_op_known): use LibrettoValueDict instead of
- HgValueHash.
- (libretto_operator_instance_init): likewise.
- (DEFUNC_CLOSURE): likewise.
- (libretto_operator_op_sub): implemented sub operator.
- (libretto_operator_is_operator): removed.
- (libretto_operator_lookup): new function.
- (libretto_operator_process_object): look up the object from
- the dictionary stack.
- (libretto_operator_exec_procedure): new function.
-
- * libretto/lvdict.[ch]: new class.
-
- * libretto/operator.c (libretto_operator_op_s_bracketright):
- use LibrettoValueArray instead of HgValueArray.
- (_libretto_operator_object2string): likewise.
- (libretto_operator_op_if): likewise.
- (libretto_operator_op_ifelse): likewise.
- (libretto_operator_op_currentdict): pick up the dictionary from the stack.
- (libretto_operator_init): new function to initialize the PS engine.
-
- * libretto/scanner.c (_libretto_scanner_parse_numbers):
- implemented a parser for { }.
-
- * libretto/lvmark.h (LIBRETTO_IS_VALUE_MARK_TYPE): fixed a typo.
-
- * libretto/scanner.h: added LIBRETTO_SCANNER_NO_MEMORY.
-
- * libretto/lvarray.[ch]: new class.
-
-2005-11-21 Akira TAGOH <at@gclab.org>
-
- * po/POTFILES.in: added libretto/attribute.c
-
- * hieroglyph/_marshal.list: added UINT:VOID marshaler.
-
- * hieroglyph/hgvalue.c (hieroglyph_value_real_get_node_size):
- a empty function for get_node_size signal.
- (hieroglyph_value_class_init): added a get_node_size signal.
- (hieroglyph_value_dup): don't use g_object_ref.
- (hieroglyph_value_get_node_size): new function.
-
- * hieroglyph/hgvalue-boolean.c (hieroglyph_value_boolean_real_get_node_size):
- implemented a get_node_size signal callback.
-
- * hieroglyph/hgvalue-name.c (hieroglyph_value_name_real_get_node_size):
- likewise.
-
- * hieroglyph/hgvalue-real.c (hieroglyph_value_real_real_get_node_size):
- likewise.
-
- * hieroglyph/hgvalue-hash.c (hieroglyph_value_hash_real_get_node_size):
- likewise.
-
- * hieroglyph/hgvalue-integer.c (hieroglyph_value_integer_real_get_node_size):
- likewise.
-
- * hieroglyph/hgvalue-array.c (hieroglyph_value_array_real_get_node_size):
- likewise.
-
- * hieroglyph/hgvalue-pointer.c (hieroglyph_value_pointer_real_get_node_size):
- likewise.
-
- * hieroglyph/hgvalue-string.c (hieroglyph_value_string_real_dup_node):
- implemented a dup_node signal callback.
- (hieroglyph_value_string_real_get_node_size): likewise.
-
- * libretto/operator.c (_libretto_operator_object2string):
- use LibrettoValueString instead of HgValueString.
- (libretto_operator_op_dup): use hieroglyph_value_dup and set attributes.
- (libretto_operator_op_if): unref the object.
- (libretto_operator_op_ifelse): implemented ifelse operator.
- (libretto_operator_op_xcheck): implemented xcheck operator.
- (libretto_operator_is_operator): use LibrettoValueString
- instead of HgValueString.
-
- * libretto/scanner.c (_libretto_scanner_parse_string):
- use LibrettoValueString instead of HgValueString.
-
- * libretto/lvstring.[ch]: new class.
-
- * libretto/attribute.c: trivial changes.
-
- * libretto/Makefile.am: added lvstring.[ch].
-
-2005-11-19 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (_libretto_operator_object2string):
- display { } as well.
- (libretto_operator_op_cvx): implemented cvx operator.
- (libretto_operator_op_exec): implemented exec operator.
- (libretto_operator_op_if): implemented if operator.
- (libretto_operator_process_object): new function to process the object.
-
- * libretto/scanner.c (_libretto_scanner_parse_string):
- ignore \n and \r\n with \.
- (libretto_scanner_get_next_token): use HgValueName instead of HgValueKey.
- give the exec attribute to the operators.
-
- * hieroglyph/hgvalue-key.[ch]: removed.
-
- * libretto/attribute.[ch]: new file.
-
- * tests/attribute.c: new testcase for LibrettoAttribute.
-
-2005-11-18 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.c (libretto_operator_op_s_bracketright):
- implemented ] operator.
- (_libretto_operator_object2string): fixed a typo.
- (libretto_operator_op_pop): implemented pop operator.
-
- * libretto/scanner.c (_libretto_scanner_is_skip_character):
- new function which was seprated from _libretto_scanner_find_skip_characters.
- (libretto_scanner_get_next_token): return the name object of ].
-
- * libretto/lvmark.h: added null type.
-
-2005-11-17 Akira TAGOH <at@gclab.org>
-
- * examples/ps2ps.c: added an example file for converting PS to the embedded PS.
-
- * filters/ps/ps-filter.c (ps_filter_private_init):
- new function to initialize the private structure.
- (ps_filter_private_destroy): new function to destroy the private structure.
- (ps_filter_get_private): new function.
- (ps_filter_real_parse): new function for parse signal.
-
- * libretto/operator.c (libretto_operator_op_s_eqeq): implemented ==.
- (_libretto_operator_object2string): new function to convert the object to the string.
- (libretto_operator_op_add): implemented add operator.
- (libretto_operator_op_currentdict): implemented currentdict operator.
- (libretto_operator_op_def): implemented def operator.
- (libretto_operator_op_dup): implemented dup operator.
- (libretto_operator_op_exch): implemented exch operator.
- (libretto_operator_op_known): implemented known operator.
- (libretto_operator_op_pstack): implemented pstack operator.
- (libretto_operator_is_operator): implemented.
- (libretto_operator_call): implemented.
-
- * libretto/scanner.c (libretto_scanner_reset): new function to reset the scanner.
-
- * hieroglyph/hgvalue-array.c (hieroglyph_value_array_real_dup_node):
- new callback for dup_node signal.
-
- * hieroglyph/hgvalue.c (hieroglyph_value_real_dup_node):
- new callback for dup_node signal.
- (hieroglyph_value_class_init): added dup_node signal.
- (hieroglyph_value_dup): new function to duplicate HgValue.
-
- * hieroglyph/hgvalue-hash.c (hieroglyph_value_hash_real_hash_foreach):
- new function to duplicate the hash value.
- (hieroglyph_value_hash_real_dup_node): new callback for dup_node signal.
-
-2005-11-16 Akira TAGOH <at@gclab.org>
-
- * libretto/operator.[ch]: new class.
-
- * hieroglyph/hgfilter.c (hieroglyph_filter_class_init):
- added a parse signal.
- (hieroglyph_filter_set_device): increase an reference count for device.
- (hieroglyph_filter_parse): new function.
-
- * tests/hgvalue-pointer.c: new testcase for HgValuePointer.
-
- * hieroglyph/hgvalue-pointer.[ch]: new class.
-
- * hieroglyph/hgvalue-array.c (hieroglyph_value_array_real_destroy):
- ensure to destroy the objects in the array.
-
- * tests/hgvalue-array.c: new testcase for HgValueArray.
-
- * hieroglyph/hgvalue-array.[ch]: new class.
-
-2005-11-15 Akira TAGOH <at@gclab.org>
-
- * libretto/lvmark.[ch]: new class.
-
- * filters/ps/ps-filter.c: new file for ps filter module.
-
- * hieroglyph/hgdevice.[ch]: added the modular support.
-
- * hieroglyph/hgdefs.h: new file.
-
- * hieroglyph/hgfilter.[ch]: new class.
-
- * filters/Makefile.am: new file.
-
- * filters/ps/Makefile.am: new file.
-
- * tests/hgfilter-ps.c: new testcase for ps filter.
-
- * tests/hgdevice-cairo.c: new testcase for cairo device.
-
- * tests/Makefile.am (TESTS): added a testcase for HgFilter and HgCairoDevice.
-
- * devices/cairo/cairo-ps-main.c: new file for cairo device module.
-
- * devices/cairo/hgdevice-cairo.[ch]: new class to handle cairo device.
-
-2005-11-14 Akira TAGOH <at@gclab.org>
-
- * libretto/scanner.c (libretto_scanner_read_from_stream):
- new function to read from the stream.
- (libretto_scanner_get_error): new function to get the error code.
-
-2005-11-11 Akira TAGOH <at@gclab.org>
-
- * libretto/scanner.c (libretto_scanner_get_cur_line): new function.
- (libretto_scanner_get_next_token): added string support.
- (_libretto_scanner_parse_string): new function.
-
- * hieroglyph/hgvalue-string.c (hieroglyph_value_string_new):
- allow NULL for the initial value.
-
- * libretto/scanner.c (_libretto_scanner_parse_numbers):
- support the value with the radix.
-
- * hieroglyph/hgvalue-real.h: added a macro to compare the floating variable.
-
- * configure.ac: added a rule for LFS support.
-
- * tests/scanner.c: new testcase for scanner.
-
- * tests/Makefile.am (noinst_PROGRAMS): added a new testcase for scanner.
-
- * libretto/Makefile.am: added.
-
- * libretto/scanner.[ch]: new class to parse PostScript.
-
-2005-11-10 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvalue-key.[ch]: new class.
-
-2005-11-01 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgstream.[ch]: new class.
-
- * hieroglyph/debug.c.in (debug_assist_new_with_masks):
- fixed a gcc warning.
-
- * hieroglyph/hgfont.[ch]: new class.
-
-2005-10-31 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvalue-hash.c (hieroglyph_value_hash_real_lookup):
- moved from hieroglyph_value_hash_lookup.
- (hieroglyph_value_hash_class_init): made a lookup signal.
-
- * tests/hgvalue-font.c: new testcase for HgValueFont.
-
- * hieroglyph/hgvalue-font.[ch]: new class.
-
-2005-10-29 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvalue.c (hieroglyph_value_real_destroy):
- call the parent's destroy method.
-
- * hieroglyph/hgvalue-hash.c (hieroglyph_value_hash_real_create_node):
- use the virtualized functions.
- (hieroglyph_value_hash_instance_init): set the real functions for
- GHashTable here.
-
-2005-10-28 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvalue-hash.[ch]: new class.
-
- * tests/hgvalue-hash.c: new testcase for HgValueHash.
-
- * tests/hgvalue-name.c: new testcase for HgValueName.
-
- * hieroglyph/hgvalue-name.[ch]: new class.
-
-2005-10-27 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvalue-real.h: added a macro to convert the integer value
- to an real.
-
- * hieroglyph/hgvalue-integer.h: added a macro to convert the real value
- to a integer.
-
- * hieroglyph/debug.c (debug_assist_new_with_masks):
- fixed a memory leak.
-
- * devices/cairo/Makefile.am: added.
-
- * devices/Makefile.am: added.
-
- * configure.ac: added cairo checking.
-
-2005-10-25 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvalue.c (hieroglyph_value_real_create_node):
- added warning message.
- (hieroglyph_value_real_destroy_node): likewise.
-
- * hieroglyph/hgdevice.[ch]: new class to handle the devices.
-
- * hieroglyph/hgvalue-string.[ch]: new class.
-
- * tests/hgvalue-string.c: new testcase for HgValueString.
-
- * hieroglyph/hgvalue-float.[ch]: new class.
-
- * tests/hgvalue-float.c: new testcase for HgValueFloat.
-
- * hieroglyph/hgvalue-integer.c: new class.
-
- * hieroglyph/hgvalue-integer.h: new header file.
-
- * hieroglyph/Makefile.am (libhieroglyph_la_SOURCES): added hgvalue-integer.c
-
- * tests/Makefile.am (noinst_PROGRAMS): added test-hgvalue-integer.
-
- * tests/hgvalue-integer.c: new testcase for HgValueInteger.
-
- * hieroglyph/hgvalue-boolean.c (hieroglyph_value_set_boolean):
- new function.
-
- * hieroglyph/hgvalue.c (hieroglyph_value_get_node): new function.
-
-2005-10-24 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/hgvalue.c: added a create_node and a destroy_node signal.
-
- * hieroglyph/hgobject.c: added a destroy signal.
- (hieroglyph_object_unref): new function.
-
- * hieroglyph/hgvalue.list: removed.
-
- * hieroglyph/hg-mkvalue.rb: removed.
-
- * hieroglyph/_marshal.list: added some marshaler.
-
- * hieroglyph/hgvalue-boolean.[ch]: new class.
-
- * tests/Makefile.am: added a new testcase for HgValueBoolean.
-
- * tests/hgvalue-boolean.c: added a new testcase for HgValueBoolean.
-
-2005-10-22 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/Makefile.am: modified to generate the HgValue classes.
-
- * hieroglyph/hgvalue.list: added a list to generate the HgValue classes.
-
- * hieroglyph/hg-mkvalue.rb: added a helper program.
-
- * Makefile.am (EXTRA_DIST): added intltool stuff.
-
-2005-10-20 Akira TAGOH <at@gclab.org>
-
- * hieroglyph/common.h: added hgobject.h and hgvalue.h
-
- * hieroglyph/Makefile.am: added hgobject.[ch] and hgvalue.[ch].
-
- * hieroglyph/hgobject.[ch]: base class for hieroglyph.
-
- * hieroglyph/hgvalue.[ch]: new class to handle the value.
-
- * tests/Makefile.am: added a testcase for HgValue.
-
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index 23e5f25..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,236 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
-
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
-Basic Installation
-==================
-
-These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. (Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.)
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about. Run `./configure --help' for
-details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
-You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory. After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
-
-Installation Names
-==================
-
-By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc. You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
-Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script). Here is a another example:
-
- /bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
-
-`configure' Invocation
-======================
-
-`configure' recognizes the following options to control how it operates.
-
-`--help'
-`-h'
- Print a summary of the options to `configure', and exit.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
-
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 72137ca..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-NULL =
-SUBDIRS = hieroglyph tests #src devices plugins lib tests examples po
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = hieroglyph.pc
-$(pkgconfig_DATA): config.status
-
-EXTRA_DIST = \
- hieroglyph.pc.in \
- intltool-extract.in \
- intltool-merge.in \
- intltool-update.in \
- requires \
- update-version \
- $(NULL)
diff --git a/NEWS b/NEWS
deleted file mode 100644
index e69de29..0000000
--- a/NEWS
+++ /dev/null
diff --git a/README b/README
deleted file mode 100644
index 6a794c8..0000000
--- a/README
+++ /dev/null
@@ -1,27 +0,0 @@
-Hieroglyph
-=============
-Hieroglyph is a PostScript rendering library with having an
-own PostScript interpreter engine and support for pluggable
-output devices and the extensions.
-
-Why did you start this project now?
-======================================
-Because I am very interested in making a PostScript Virtual
-Machine. However this is not a trigger of starting this
-project actually. I was/am sometimes working on around the
-printing stuff, because it was necessary to get them working
-on any languages. they had problems on dealing with the
-fonts, and they were sometimes easily broken on it. it
-finally became my frustration. I could help them out every
-time after the breakage, but I stoped to think about.
-
-There are a lot of similar softwares in the FOSS world. but
-are not in the PostScript interpreter/rendering library. you
-know that there are the forked project, such as ESP
-Ghostscript say, I would see that it is one software in the
-general meaning. Right now PostScript specification is very
-stable and being perishing. and it may be unlikely to extend
-something like other softwares does since that specification
-may restricts it. but I believe that making another software
-will be helpful to improve/add momentum to the printing
-software area.
diff --git a/TODO b/TODO
deleted file mode 100644
index a740d34..0000000
--- a/TODO
+++ /dev/null
@@ -1,20 +0,0 @@
-
-* need work before the initial release.
-
- * [MUST] support asynchronous rendering
-
- * integrate the device modules into the plugin mechanism.
-
- * [MUST] complete to implement operators for PostScript Level 1 compliant.
-
- * [MUST] support the security restriction feature.
-
-* need work for future release.
-
- * complete to implement operators for PostScript Level 2 compliant.
-
- * complete to implement operators for PostScript Level 3 compliant.
-
- * improve a memory footprint.
-
- * much better GC.
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index 23fdbcb..0000000
--- a/autogen.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-PKG_NAME="hieroglyph"
-
-(test -f $srcdir/configure.ac \
- && test -f $srcdir/README \
- && test -d $srcdir/hieroglyph) || {
- echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
- echo " top-level $PKG_NAME directory"
- exit 1
-}
-
-which gnome-autogen.sh || {
- echo "You need to install gnome-common from the GNOME CVS"
- exit 1
-}
-REQUIRED_AUTOMAKE_VERSION=1.9 . gnome-autogen.sh
diff --git a/commit.sh b/commit.sh
deleted file mode 100755
index 3166572..0000000
--- a/commit.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /bin/sh
-DO=""
-TOPDIR=`dirname $0`
-VERSIONIN=$TOPDIR/hieroglyph/version.h.in.in
-VERSION_H=${VERSIONIN//.in.in}.in
-
-which svn > /dev/null 2>&1
-if [ $? -ne 0 ]; then
- echo "Cannot find svn command. stopped."
- exit
-fi
-which awk > /dev/null 2>&1
-if [ $? -ne 0 ]; then
- echo "Cannot find awk command. stopped."
- exit
-fi
-which sed > /dev/null 2>&1
-if [ $? -ne 0 ]; then
- echo "Cannot find sed command. stopped."
- exit
-fi
-
-
-if [ "x`svn stat`" = "x" ]; then
- echo "No changes has been made. any changes has never committed."
- exit
-fi
-LOG=''
-if test "$1" = "--message" || test "$1" = "-m"; then
- shift
- LOG="$1"
- shift
-fi
-FILES=''
-while [ $# -ne 0 ]; do
- FILES="$FILES $1"
- shift
-done
-if [ "x$FILES" != "x" ]; then
- FILES="$FILES ChangeLog $VERSION_H"
-fi
-if [ "x$LOG" = "x" ]; then
- LOG="`svn diff | awk 'BEGIN{P=0;F=0}$0 ~ /^+++ ChangeLog/{F=1}F == 1 && $0 ~ /^@@/{P=1}P == 1 && $0 ~ /^+/{print $0}P == 1 && /^Index/{P=0;F=0}' | sed -e 's/^+//'`"
-fi
-if [ "x$LOG" = "x" ]; then
- while [ 1 ]; do
- echo -n "Are you sure that you want to commit file(s) without commit log? [y/N]: "
- read DOCOMMIT
- if [ "x$DOCOMMIT" = "x" -o "x$DOCOMMIT" = "xn" -o "x$DOCOMMIT" = "xN" ]; then
- echo "Abort."
- exit
- elif [ "x$DOCOMMIT" = "xy" -o "x$DOCOMMIT" = "xY" ]; then
- break
- else
- echo "Answer must be y or n."
- fi
- done
-fi
-
-if [ "x$DO" = "x" ]; then
- $TOPDIR/update-version
-fi
-
-LANG=C $DO svn ci -m "$LOG" $FILES
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index f7dadd3..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,320 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT([hieroglyph], 0.0.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=Hieroglyph])
-
-. ./requires
-
-AM_INIT_AUTOMAKE($PACKAGE_NAME, $PACKAGE_VERSION)
-AM_MAINTAINER_MODE
-AM_CONFIG_HEADER(config.h)
-
-AC_PROG_LIBTOOL
-AC_PROG_INTLTOOL
-
-AC_PROG_CC
-
-AC_SYS_LARGEFILE
-
-dnl ======================================================================
-dnl initialize values
-dnl ======================================================================
-pluginslist="debug test"
-
-dnl ======================================================================
-dnl set CFLAGS
-dnl ======================================================================
-changequote(,)dnl
-if test "x$GCC" = "xyes"; then
- case " $CFLAGS " in
- *[\ \ ]-Wall[\ \ ]*) ;;
- *) CFLAGS="$CFLAGS -Wall" ;;
- esac
-
- if test "x$enable_maintainer_mode" = "xyes"; then
- case " $CFLAGS " in
- *[\ \ ]-Werror[\ \ ]*) ;;
- *) CFLAGS="$CFLAGS -Werror" ;;
- esac
- CFLAGS="`echo $CFLAGS | sed -e 's/-O./-O0/'`"
- fi
-
- if test "x$enable_ansi" = "xyes"; then
- case " $CFLAGS " in
- *[\ \ ]-ansi[\ \ ]*) ;;
- *) CFLAGS="$CFLAGS -ansi" ;;
- esac
-
- case " $CFLAGS " in
- *[\ \ ]-pedantic[\ \ ]*) ;;
- *) CFLAGS="$CFLAGS -pedantic" ;;
- esac
- fi
-fi
-changequote([,])dnl
-
-dnl ======================================================================
-dnl testing functionalities
-dnl ======================================================================
-dnl alignment
-AC_CHECK_ALIGNOF(char)
-AC_CHECK_ALIGNOF(short)
-AC_CHECK_ALIGNOF(int)
-AC_CHECK_ALIGNOF(long)
-AC_CHECK_ALIGNOF(void *)
-AC_CHECK_ALIGNOF(long long)
-
-dnl ======================================================================
-dnl functions testing
-dnl ======================================================================
-AC_CHECK_FUNC(exp10,,[
- AC_MSG_CHECKING([for exp10 whether _GNU_SOURCE needs to be defined.])
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -D_GNU_SOURCE"
- AC_COMPILE_IFELSE([
-#include <math.h>
-void *foo = exp10;
- ], [
- AC_MSG_RESULT([-D_GNU_SOURCE])
- ] ,[
- AC_MSG_ERROR([FIXME: need exp10 function anyway.])
- ])
-])
-
-dnl ======================================================================
-dnl gettext stuff
-dnl ======================================================================
-GETTEXT_PACKAGE=$PACKAGE
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
-
-ALL_LINGUAS="ja"
-AM_GLIB_GNU_GETTEXT
-AM_GLIB_DEFINE_LOCALEDIR(HGSPY_LOCALEDIR)
-
-dnl ======================================================================
-dnl check pkg-config stuff
-dnl ======================================================================
-PKG_CHECK_MODULES(HG, glib-2.0)
-PKG_CHECK_MODULES(HG_MODULE, gmodule-2.0)
-PKG_CHECK_MODULES(GTK2, gtk+-2.0)
-PKG_CHECK_MODULES(GTHREAD, gthread-2.0)
-PKG_CHECK_MODULES(CHECK, check >= 0.9.4)
-AC_SUBST(HG_CFLAGS)
-AC_SUBST(HG_LIBS)
-AC_SUBST(HG_MODULE_CFLAGS)
-AC_SUBST(HG_MODULE_LIBS)
-AC_SUBST(GTK2_CFLAGS)
-AC_SUBST(GTK2_LIBS)
-AC_SUBST(GTHREAD_CFLAGS)
-AC_SUBST(GTHREAD_LIBS)
-AC_SUBST(CHECK_CFLAGS)
-AC_SUBST(CHECK_LIBS)
-
-dnl ======================================================================
-dnl check glib-2.0 stuff
-dnl ======================================================================
-AM_PATH_GLIB_2_0($GLIB_REQUIRED, :,
- AC_MSG_ERROR([
-*** GLIB $GLIB_REQUIRED_VERSION or better is required. The latest version of
-*** GLIB is always available from ftp://ftp.gtk.org/.]),
- gobject gmodule gthread)
-
-dnl ======================================================================
-dnl check another libraries
-dnl ======================================================================
-AC_CHECK_LIB(edit, readline, [
- LIBEDIT_LIBS="-ledit"
- AC_DEFINE(USE_LIBEDIT,1,[build with readline])
- pluginslist="$pluginslist libedit"
- ],[
- LIBEDIT_LIBS=""
- ])
-AC_SUBST(LIBEDIT_LIBS)
-AM_CONDITIONAL(ENABLE_LIBEDIT, test x$LIBEDIT_LIBS != x)
-
-dnl ======================================================================
-dnl options
-dnl ======================================================================
-AC_ARG_ENABLE(debug,
- AC_HELP_STRING([--enable-debug], [build with the debug code.])
- ,,
- enable_debug=no)
-AC_ARG_ENABLE(profile,
- AC_HELP_STRING([--enable-profile], [build with the profiler option.])
- ,,
- enable_profile=no)
-AC_ARG_ENABLE(rebuilds,
- AC_HELP_STRING([--disable-rebuilds], [disable all source autogeneration rules])
- ,,
- enable_rebuilds=yes)
-AC_ARG_WITH(cairo,
- AC_HELP_STRING([--without-cairo], [build without the cairo support.])
- ,,
- with_cairo=yes)
-AC_ARG_WITH(x11,
- AC_HELP_STRING([--without-x11], [build without the x11 embedded support.])
- ,,
- with_x11=yes)
-AC_ARG_WITH(cmap,
- AC_HELP_STRING([--with-cmap=DIR], [build with the CMap support.])
- ,,
- with_cmap=no)
-
-dnl ======================================================================
-dnl options - debug
-dnl ======================================================================
-AC_MSG_CHECKING(whether to enable the debuggin build)
-if test "x$USE_MAINTAINER_MODE" = xyes; then
- AC_MSG_RESULT(force)
- enable_debug=force
- AC_DEFINE(DEBUG,,[enable the debuggin build])
-elif test "x$enable_debug" = xno; then
- AC_MSG_RESULT(no)
-else
- AC_MSG_RESULT(yes)
- AC_DEFINE(DEBUG,,[enable the debuggin build])
-fi
-AM_CONDITIONAL(ENABLE_DEBUG, test x$enable_debug != xno)
-
-dnl ======================================================================
-dnl options - profile
-dnl ======================================================================
-AC_MSG_CHECKING(whether to enable the profiler)
-if test "x$enable_profile" = xno; then
- AC_MSG_RESULT(no)
-else
- AC_MSG_RESULT(yes)
- changequote(,) dnl
- CFLAGS="`echo $CFLAGS | sed -e 's/[ \t]-O[0-9][ \t]/ /'` -pg"
- changequote([,]) dnl
-fi
-
-dnl ======================================================================
-dnl options - rebuilds
-dnl ======================================================================
-REBUILD=\#
-if test "x$enable_rebuilds" = xyes; then
- REBUILD=
-fi
-AC_SUBST(REBUILD)
-
-dnl ======================================================================
-dnl options - with cairo
-dnl ======================================================================
-if test "x$with_cairo" = xyes; then
- PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_REQUIRED)
- AC_SUBST(CAIRO_CFLAGS)
- AC_SUBST(CAIRO_LIBS)
- devices="${devices}cairo "
-fi
-AM_CONDITIONAL(ENABLE_CAIRO, test x$with_cairo != xno)
-
-dnl ======================================================================
-dnl options - with x11
-dnl ======================================================================
-if test "x$with_x11" = xyes; then
- AC_PATH_XTRA
- if test "x$no_x" = xyes; then
- AC_MSG_ERROR([X development libraries not found])
- fi
- X11_CFLAGS="$X_CFLAGS"
- X11_LIBS="$X_LIBS $X_EXTRA_LIBS"
- AC_SUBST(X11_CFLAGS)
- AC_SUBST(X11_LIBS)
- devices="${devices}x11-embedded "
-fi
-AM_CONDITIONAL(ENABLE_X11_EMBEDDED, test x$with_x11 != xno)
-
-dnl ======================================================================
-dnl options - with CMap
-dnl ======================================================================
-if test "x$with_cmap" = xyes; then
- HIEROGLYPH_CMAPDIR=${datadir}/ghostscript/CMap
- AC_DEFINE(USE_CMAP,1,[enable the CMap support.])
-elif test "x$with_cmap" = xno; then
- HIEROGLYPH_CMAPDIR=
-else
- HIEROGLYPH_CMAPDIR=$with_cmap
- AC_DEFINE(USE_CMAP,1,[enable the CMap support.])
- with_cmap=yes
-fi
-AC_SUBST(HIEROGLYPH_CMAPDIR)
-
-dnl ======================================================================
-dnl variables
-dnl ======================================================================
-changequote(,) dnl
-HIEROGLYPH_MAJOR_VERSION=`echo $PACKAGE_VERSION | sed -e 's/\(^[0-9]*\)\.[0-9]*\.[0-9]*$/\1/'`
-HIEROGLYPH_MINOR_VERSION=`echo $PACKAGE_VERSION | sed -e 's/^[0-9]*\.\([0-9]*\)\.[0-9]*$/\1/'`
-HIEROGLYPH_RELEASE_VERSION=`echo $PACKAGE_VERSION | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$/\1/'`
-changequote([,]) dnl
-HIEROGLYPH_BINARY_VERSION=$HIEROGLYPH_MAJOR_VERSION.0
-HIEROGLYPH_DEVICEDIR="${libdir}/hieroglyph/${HIEROGLYPH_BINARY_VERSION}/devices"
-HIEROGLYPH_PLUGINDIR="${libdir}/hieroglyph/${HIEROGLYPH_BINARY_VERSION}/plugins"
-HIEROGLYPH_LIBDIR="${datadir}/hieroglyph/${HIEROGLYPH_BINARY_VERSION}/lib"
-AC_SUBST(HIEROGLYPH_MAJOR_VERSION)
-AC_SUBST(HIEROGLYPH_MINOR_VERSION)
-AC_SUBST(HIEROGLYPH_RELEASE_VERSION)
-AC_SUBST(HIEROGLYPH_BINARY_VERSION)
-AC_SUBST(HIEROGLYPH_DEVICEDIR)
-AC_SUBST(HIEROGLYPH_PLUGINDIR)
-AC_SUBST(HIEROGLYPH_LIBDIR)
-
-dnl ======================================================================
-dnl output
-dnl ======================================================================
-AC_CONFIG_FILES([
-Makefile
-devices/Makefile
-devices/cairo/Makefile
-devices/x11-embedded/Makefile
-examples/Makefile
-hieroglyph/Makefile
-hieroglyph/version.h
-lib/Makefile
-plugins/Makefile
-plugins/debug/Makefile
-plugins/libedit/Makefile
-plugins/test/Makefile
-po/Makefile.in
-src/Makefile
-tests/Makefile
-tests/ps/Makefile
-hieroglyph.pc
-])
-AC_OUTPUT
-
-dnl ======================================================================
-dnl result
-dnl ======================================================================
-echo ""
-echo "========== Build Information =========="
-echo " Enable the debugging build: $enable_debug"
-echo " Enable autogeneration: $enable_rebuilds"
-echo " Binary version: $HIEROGLYPH_BINARY_VERSION"
-echo " Device support: $devices"
-echo " Device install path: $HIEROGLYPH_DEVICEDIR"
-echo " Plugin install path: $HIEROGLYPH_PLUGINDIR"
-echo -n " Use CMap: $with_cmap "
-if test "x$with_cmap" = xyes; then
- echo "($HIEROGLYPH_CMAPDIR)"
-else
- echo
-fi
-echo " Plugins list: $pluginslist"
-echo " CFLAGS: $HG_CFLAGS"
-echo " for modules: $HG_MODULE_CFLAGS"
-if test "x$with_cairo" = xyes; then
-echo " for cairo device: $CAIRO_CFLAGS"
-fi
-if test "x$with_x11" = xyes; then
-echo " for x11 embedded device: $X11_CFLAGS"
-fi
-echo " LIBS: $HG_LIBS"
-echo " for modules: $HG_MODULE_LIBS"
-if test "x$with_cairo" = xyes; then
-echo " for cairo device: $CAIRO_LIBS"
-fi
-if test "x$with_x11" = xyes; then
-echo " for x11 embedded device: $X11_LIBS"
-fi
-echo ""
diff --git a/devices/Makefile.am b/devices/Makefile.am
deleted file mode 100644
index dd4fc8b..0000000
--- a/devices/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-NULL =
-SUBDIRS =
-
-if ENABLE_CAIRO
-SUBDIRS += cairo
-endif
-if ENABLE_X11_EMBEDDED
-SUBDIRS += x11-embedded
-endif
-
-EXTRA_DIST = \
- $(NULL)
diff --git a/devices/cairo/Makefile.am b/devices/cairo/Makefile.am
deleted file mode 100644
index a662063..0000000
--- a/devices/cairo/Makefile.am
+++ /dev/null
@@ -1,53 +0,0 @@
-NULL =
-
-INCLUDES = \
- $(HG_CFLAGS) \
- $(CAIRO_CFLAGS) \
- $(NULL)
-LIBS = \
- @LDFLAGS@ \
- -export-dynamic \
- $(HG_LIBS) \
- $(CAIRO_LIBS) \
- $(NULL)
-LDADDS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-lib_LTLIBRARIES = \
- libhieroglyph-cairo.la \
- $(NULL)
-
-libhieroglyph_cairo_la_SOURCES = \
- hgdevice-cairo.c \
- hgdevice-cairo.h \
- $(NULL)
-libhieroglyph_cairo_la_CFLAGS = \
- -DHG_LOG_DOMAIN="\"Hieroglyph-Cairo\"" \
- $(CFLAGS) \
- $(NULL)
-libhieroglyph_cairo_la_LIBADD = \
- $(LDADDS) \
- $(NULL)
-
-devicedir = $(HIEROGLYPH_DEVICEDIR)
-device_LTLIBRARIES = \
- libx11-device.la \
- $(NULL)
-
-libx11_device_la_SOURCES = \
- cairo-xlib-main.c \
- $(NULL)
-libx11_device_la_CFLAGS = \
- -DHG_LOG_DOMAIN="\"X11-Device\"" \
- $(CFLAGS) \
- $(NULL)
-libx11_device_la_LDFLAGS = \
- -avoid-version \
- -module \
- $(LDFLAGS) \
- $(NULL)
-libx11_device_la_LIBADD = \
- libhieroglyph-cairo.la \
- $(LDADDS) \
- $(NULL)
diff --git a/devices/cairo/cairo-ps-main.c b/devices/cairo/cairo-ps-main.c
deleted file mode 100644
index 32412d2..0000000
--- a/devices/cairo/cairo-ps-main.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * cairo-ps-main.c
- * Copyright (C) 2005,2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * 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.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <unistd.h>
-#include <cairo/cairo-ps.h>
-#include <glib.h>
-#include <hieroglyph/debug.h>
-#include <hieroglyph/hglog.h>
-#include "hgdevice-cairo.h"
-
-
-/* Private Functions */
-static cairo_status_t
-_cairo_ps_embedded_write_stream(void *closure,
- const unsigned char *data,
- unsigned int length)
-{
- HgCairoDevice *device = HG_CAIRO_DEVICE (closure);
- size_t written;
-
- written = write(device->u.ps.fd, data, length);
-
- if (written == length)
- return CAIRO_STATUS_SUCCESS;
- else
- return CAIRO_STATUS_WRITE_ERROR;
-}
-
-/* Public Functions */
-HgDevice *
-device_open(HgPageInfo *info)
-{
- HgDevice *device;
- HgCairoDevice *cdev;
- gchar *filename = NULL;
- gint fd;
-
- TRACE_ENTER;
-
- fd = g_file_open_tmp("ps-embedded-XXXXXX", &filename, NULL);
- if (fd == -1) {
- hg_log_warning("Failed to open a file descriptor.");
- if (filename)
- g_free(filename);
-
- return NULL;
- }
- device = hieroglyph_cairo_device_new();
- cdev = HG_CAIRO_DEVICE (device);
- cdev->surface = cairo_ps_surface_create_for_stream(_cairo_ps_embedded_write_stream,
- device,
- info->width,
- info->height);
- cdev->reference = cairo_create(cdev->surface);
- cdev->u.type = HG_DEVICE_CAIRO_PS_SURFACE;
- cdev->u.ps.output_filename = filename;
- cdev->u.ps.fd = fd;
-
- if (cairo_status(cdev->reference) != CAIRO_STATUS_SUCCESS) {
- hg_log_warning("Failed to create an reference of cairo.");
- }
-
- TRACE_LEAVE;
-
- return device;
-}
-
-void
-device_close(HgDevice *device)
-{
- HgCairoDevice *cdev;
-
- g_return_if_fail (HG_IS_CAIRO_DEVICE (device));
-
- TRACE_ENTER;
-
- hieroglyph_stream_write(device->ostream);
-
- cdev = HG_CAIRO_DEVICE (device);
- if (cdev->u.ps.fd >= 0)
- close(cdev->u.ps.fd);
- if (cdev->u.ps.output_filename != NULL)
- g_free(cdev->u.ps.output_filename);
-
- cairo_destroy(cdev->reference);
- cairo_surface_destroy(cdev->surface);
-
- TRACE_LEAVE;
-}
diff --git a/devices/cairo/cairo-xlib-main.c b/devices/cairo/cairo-xlib-main.c
deleted file mode 100644
index c08e4a4..0000000
--- a/devices/cairo/cairo-xlib-main.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * cairo-xlib-main.c
- * Copyright (C) 2005-2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <cairo/cairo-xlib.h>
-#include <hieroglyph/hglog.h>
-#include "hgdevice-cairo.h"
-
-
-/*
- * Private Functions
- */
-static gboolean
-_cairo_xlib_real_set_page_size(HgCairoDevice *device,
- gdouble width,
- gdouble height)
-{
- /* resize Window */
- g_print("%fx%f\n", width, height);
- XResizeWindow(device->u.xlib.dpy,
- device->u.xlib.drawable,
- width, height);
- cairo_xlib_surface_set_size(device->surface, width, height);
- XFlush(device->u.xlib.dpy);
- hg_log_warning("%s: FIXME: implement me", __FUNCTION__);
-
- return TRUE;
-}
-
-/*
- * Public Functions
- */
-HgDevice *
-device_open(void)
-{
- HgCairoDevice *cdev;
- HgDevice *dev;
- unsigned long black, white;
- int screen;
-
- dev = hg_cairo_device_new();
- cdev = (HgCairoDevice *)dev;
-
- cdev->vtable.set_page_size = _cairo_xlib_real_set_page_size;
-
- cdev->u.type = HG_DEVICE_CAIRO_XLIB_SURFACE;
- cdev->u.xlib.dpy = XOpenDisplay(NULL);
- if (cdev->u.xlib.dpy == NULL) {
- hg_log_warning("Failed to open a display.");
- hg_device_destroy(dev);
- return NULL;
- }
- screen = DefaultScreen(cdev->u.xlib.dpy);
- black = BlackPixel(cdev->u.xlib.dpy, screen);
- white = WhitePixel(cdev->u.xlib.dpy, screen);
- cdev->u.xlib.drawable = XCreateSimpleWindow(cdev->u.xlib.dpy,
- DefaultRootWindow(cdev->u.xlib.dpy),
- 400,
- 400,
- 400, 400, 0,
- black, white);
- XMapWindow(cdev->u.xlib.dpy, cdev->u.xlib.drawable);
-
- cdev->surface = cairo_xlib_surface_create(cdev->u.xlib.dpy,
- cdev->u.xlib.drawable,
- XDefaultVisual(cdev->u.xlib.dpy, screen),
- 400, 400);
- cdev->reference = cairo_create(cdev->surface);
- if (cairo_status(cdev->reference) != CAIRO_STATUS_SUCCESS) {
- hg_log_warning("Failed to create an reference of cairo.");
- hg_device_destroy(dev);
- return NULL;
- }
-
- return dev;
-}
-
-void
-device_close(HgDevice *device)
-{
- HgCairoDevice *cdev;
-
- g_return_if_fail (device != NULL);
-
- cdev = (HgCairoDevice *)device;
- cairo_destroy(cdev->reference);
- cairo_surface_destroy(cdev->surface);
- XDestroyWindow(cdev->u.xlib.dpy, cdev->u.xlib.drawable);
- XCloseDisplay(cdev->u.xlib.dpy);
-
- g_free(device);
-}
diff --git a/devices/cairo/hgdevice-cairo.c b/devices/cairo/hgdevice-cairo.c
deleted file mode 100644
index 46f74e6..0000000
--- a/devices/cairo/hgdevice-cairo.c
+++ /dev/null
@@ -1,522 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgdevice-cairo.c
- * Copyright (C) 2005-2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <hieroglyph/hgarray.h>
-#include <hieroglyph/hglog.h>
-#include <hieroglyph/hgvaluenode.h>
-#include "hgdevice-cairo.h"
-
-
-static gboolean _hg_cairo_device_real_initialize(HgDevice *device,
- HgPage *page);
-static gboolean _hg_cairo_device_real_finalize (HgDevice *device);
-static gboolean _hg_cairo_device_real_eofill (HgDevice *device,
- HgRenderFill *render);
-static gboolean _hg_cairo_device_real_fill (HgDevice *device,
- HgRenderFill *render);
-static gboolean _hg_cairo_device_real_stroke (HgDevice *device,
- HgRenderStroke *render);
-
-static void _hg_cairo_device_set_matrix (HgCairoDevice *device,
- HgMatrix *mtx);
-static gboolean _hg_cairo_device_set_path (HgCairoDevice *device,
- HgPathNode *node);
-static void _hg_cairo_device_set_line_cap (HgCairoDevice *device,
- gint line_cap);
-static void _hg_cairo_device_set_line_join (HgCairoDevice *device,
- gint line_join);
-
-
-static HgDeviceVTable __hg_cairo_device_vtable = {
- .initialize = _hg_cairo_device_real_initialize,
- .finalize = _hg_cairo_device_real_finalize,
- .eofill = _hg_cairo_device_real_eofill,
- .fill = _hg_cairo_device_real_fill,
- .stroke = _hg_cairo_device_real_stroke,
-};
-
-/*
- * Private Functions
- */
-#ifdef DEBUG
-static void
-_hg_cairo_device_print_path(HgPathNode *node)
-{
- hg_log_debug(DEBUG_PATH, "");
- while (node) {
- switch (node->type) {
- case HG_PATH_CLOSE:
- hg_log_debug(DEBUG_PATH, "closepath");
- break;
- case HG_PATH_MOVETO:
- hg_log_debug(DEBUG_PATH, "%f %f moveto", node->x, node->y);
- break;
- case HG_PATH_LINETO:
- hg_log_debug(DEBUG_PATH, "%f %f lineto", node->x, node->y);
- break;
- case HG_PATH_RLINETO:
- hg_log_debug(DEBUG_PATH, "%f %f rlineto", node->x, node->y);
- break;
- case HG_PATH_CURVETO:
- if (node->next && node->next->next) {
- hg_log_debug(DEBUG_PATH, "%f %f %f %f %f %f curveto", node->x, node->y, node->next->x, node->next->y, node->next->next->x, node->next->next->y);
- node = node->next->next;
- } else {
- hg_log_warning("[BUG] Invalid path for curve.");
- }
- break;
- case HG_PATH_ARC:
- if (node->next && node->next->next) {
- hg_log_debug(DEBUG_PATH, "%f %f %f %f %f arc", node->x, node->y, node->next->x, node->next->next->x, node->next->next->y);
- node = node->next->next;
- } else {
- hg_log_warning("[BUG] Invalid path for arc.");
- }
- break;
- case HG_PATH_MATRIX:
- if (node->next && node->next->next) {
- hg_log_debug(DEBUG_PATH, "[%f %f %f %f %f %f] matrix", node->x, node->y, node->next->x, node->next->y, node->next->next->x, node->next->next->y);
- node = node->next->next;
- } else {
- hg_log_warning("[BUG] Invalid matrix was given.");
- }
- break;
- default:
- hg_log_warning("[BUG] Unknown path type %d was given.", node->type);
- break;
- }
- node = node->next;
- }
- hg_log_debug(DEBUG_PATH, "%% end\n");
-}
-#else
-#define _hg_cairo_device_print_path(_node_)
-#endif /* DEBUG */
-
-/*
- * hsv_to_rgb() is borrowed from GTK+
- */
-/* HSV color selector for GTK+
- *
- * Copyright (C) 1999 The Free Software Foundation
- *
- * Authors: Simon Budig <Simon.Budig@unix-ag.org> (original code)
- * Federico Mena-Quintero <federico@gimp.org> (cleanup for GTK+)
- * Jonathan Blandford <jrb@redhat.com> (cleanup for GTK+)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-/* Converts from HSV to RGB */
-static void
-hsv_to_rgb (gdouble *h,
- gdouble *s,
- gdouble *v)
-{
- gdouble hue, saturation, value;
- gdouble f, p, q, t;
-
- if (*s == 0.0)
- {
- *h = *v;
- *s = *v;
- *v = *v; /* heh */
- }
- else
- {
- hue = *h * 6.0;
- saturation = *s;
- value = *v;
-
- if (hue == 6.0)
- hue = 0.0;
-
- f = hue - (int) hue;
- p = value * (1.0 - saturation);
- q = value * (1.0 - saturation * f);
- t = value * (1.0 - saturation * (1.0 - f));
-
- switch ((int) hue)
- {
- case 0:
- *h = value;
- *s = t;
- *v = p;
- break;
-
- case 1:
- *h = q;
- *s = value;
- *v = p;
- break;
-
- case 2:
- *h = p;
- *s = value;
- *v = t;
- break;
-
- case 3:
- *h = p;
- *s = q;
- *v = value;
- break;
-
- case 4:
- *h = t;
- *s = p;
- *v = value;
- break;
-
- case 5:
- *h = value;
- *s = p;
- *v = q;
- break;
-
- default:
- g_assert_not_reached ();
- }
- }
-}
-
-static gboolean
-_hg_cairo_device_real_initialize(HgDevice *device,
- HgPage *page)
-{
- HgCairoDevice *cdev = (HgCairoDevice *)device;
- cairo_matrix_t mtx;
-
- device->width = page->width;
- device->height = page->height;
- /* initialize the device specific things */
- if (cdev->vtable.set_page_size) {
- if (!cdev->vtable.set_page_size(cdev, page->width, page->height))
- return FALSE;
- }
-
- /* it needs to be transformed so that cairo's coordination
- * system is reversed for PostScript
- */
- cairo_matrix_init(&mtx, 1.0, 0.0, 0.0, -1.0, 0.0, page->height);
- cairo_set_matrix(cdev->reference, &mtx);
-
- /* FIXME */
-
- return TRUE;
-}
-
-static gboolean
-_hg_cairo_device_real_finalize(HgDevice *device)
-{
- HgCairoDevice *cdev = (HgCairoDevice *)device;
-
- hg_log_warning("%s: FIXME: implement me.", __FUNCTION__);
- cairo_show_page(cdev->reference);
- XFlush(cdev->u.xlib.dpy);
-
- return TRUE;
-}
-
-static gboolean
-_hg_cairo_device_real_eofill(HgDevice *device,
- HgRenderFill *render)
-{
- HgCairoDevice *cdev = (HgCairoDevice *)device;
-
- hg_log_debug(DEBUG_PATH, "%% eofill");
- _hg_cairo_device_print_path(render->path);
- _hg_cairo_device_set_matrix(cdev, &render->mtx);
- if (!_hg_cairo_device_set_path(cdev, render->path))
- return FALSE;
- if (render->color.is_rgb) {
- cairo_set_source_rgb(cdev->reference,
- render->color.is.rgb.r,
- render->color.is.rgb.g,
- render->color.is.rgb.b);
- } else {
- gdouble r, g, b;
-
- r = render->color.is.hsv.h;
- g = render->color.is.hsv.s;
- b = render->color.is.hsv.v;
- hsv_to_rgb(&r, &g, &b);
- cairo_set_source_rgb(cdev->reference, r, g, b);
- }
- cairo_set_fill_rule(cdev->reference, CAIRO_FILL_RULE_EVEN_ODD);
- cairo_fill(cdev->reference);
-
- return TRUE;
-}
-
-static gboolean
-_hg_cairo_device_real_fill(HgDevice *device,
- HgRenderFill *render)
-{
- HgCairoDevice *cdev = (HgCairoDevice *)device;
-
- hg_log_debug(DEBUG_PATH, "%% fill");
- _hg_cairo_device_print_path(render->path);
- _hg_cairo_device_set_matrix(cdev, &render->mtx);
- if (!_hg_cairo_device_set_path(cdev, render->path))
- return FALSE;
- if (render->color.is_rgb) {
- cairo_set_source_rgb(cdev->reference,
- render->color.is.rgb.r,
- render->color.is.rgb.g,
- render->color.is.rgb.b);
- } else {
- gdouble r, g, b;
-
- r = render->color.is.hsv.h;
- g = render->color.is.hsv.s;
- b = render->color.is.hsv.v;
- hsv_to_rgb(&r, &g, &b);
- cairo_set_source_rgb(cdev->reference, r, g, b);
- }
- cairo_set_fill_rule(cdev->reference, CAIRO_FILL_RULE_WINDING);
- cairo_fill(cdev->reference);
-
- return TRUE;
-}
-
-static gboolean
-_hg_cairo_device_real_stroke(HgDevice *device,
- HgRenderStroke *render)
-{
- HgCairoDevice *cdev = (HgCairoDevice *)device;
- gdouble *dashes, d;
- guint len, i;
- HgValueNode *node;
-
- hg_log_debug(DEBUG_PATH, "%% stroke");
- _hg_cairo_device_print_path(render->path);
- _hg_cairo_device_set_matrix(cdev, &render->mtx);
- if (!_hg_cairo_device_set_path(cdev, render->path))
- return FALSE;
- if (render->color.is_rgb) {
- cairo_set_source_rgb(cdev->reference,
- render->color.is.rgb.r,
- render->color.is.rgb.g,
- render->color.is.rgb.b);
- } else {
- gdouble r, g, b;
-
- r = render->color.is.hsv.h;
- g = render->color.is.hsv.s;
- b = render->color.is.hsv.v;
- hsv_to_rgb(&r, &g, &b);
- cairo_set_source_rgb(cdev->reference, r, g, b);
- }
- cairo_set_line_width(cdev->reference, render->line_width);
- _hg_cairo_device_set_line_cap(cdev, render->line_cap);
- cairo_set_miter_limit(cdev->reference, render->miter_limit);
- _hg_cairo_device_set_line_join(cdev, render->line_join);
-
- len = hg_array_length(render->dashline_pattern);
- dashes = g_new(gdouble, len);
- for (i = 0; i < len; i++) {
- node = hg_array_index(render->dashline_pattern, i);
- if (HG_IS_VALUE_INTEGER (node)) {
- d = HG_VALUE_GET_REAL_FROM_INTEGER (node);
- } else if (HG_IS_VALUE_REAL (node)) {
- d = HG_VALUE_GET_REAL (node);
- } else {
- hg_log_warning("[BUG] Invalid object type %d was given for dashline pattern.",
- HG_VALUE_GET_VALUE_TYPE (node));
- d = 0.0;
- }
- dashes[i] = d;
- }
- cairo_set_dash(cdev->reference, dashes, len, render->dashline_offset);
- cairo_stroke(cdev->reference);
- g_free(dashes);
-
- return TRUE;
-}
-
-static void
-_hg_cairo_device_set_matrix(HgCairoDevice *device,
- HgMatrix *mtx)
-{
- cairo_matrix_t mtx_, trans;
-
- cairo_matrix_init(&mtx_, mtx->xx, mtx->yx,
- mtx->xy, mtx->yy,
- mtx->x0, mtx->y0);
- cairo_matrix_init(&trans, 1.0, 0.0, 0.0,
- -1.0, 0.0, device->device.height);
- cairo_matrix_multiply(&trans, &mtx_, &trans);
- hg_log_debug(DEBUG_PATH, "[%f %f %f %f %f %f] setmatrix\n", trans.xx, trans.yx, trans.xy, trans.yy, trans.x0, trans.y0);
- cairo_set_matrix(device->reference, &trans);
-}
-
-static gboolean
-_hg_cairo_device_set_path(HgCairoDevice *device,
- HgPathNode *node)
-{
- gboolean retval = TRUE;
-
- cairo_new_path(device->reference);
- while (node) {
- switch (node->type) {
- case HG_PATH_CLOSE:
- cairo_close_path(device->reference);
- break;
- case HG_PATH_MOVETO:
- cairo_move_to(device->reference, node->x, node->y);
- break;
- case HG_PATH_LINETO:
- cairo_line_to(device->reference, node->x, node->y);
- break;
- case HG_PATH_RLINETO:
- cairo_rel_line_to(device->reference, node->x, node->y);
- break;
- case HG_PATH_CURVETO:
- if (node->next && node->next->next) {
- cairo_curve_to(device->reference,
- node->x, node->y,
- node->next->x, node->next->y,
- node->next->next->x, node->next->next->y);
- node = node->next->next;
- } else {
- hg_log_warning("[BUG] Invalid path for curve.");
- retval = FALSE;
- }
- break;
- case HG_PATH_ARC:
- if (node->next && node->next->next) {
- cairo_arc(device->reference,
- node->x, node->y, node->next->x,
- node->next->next->x, node->next->next->y);
- node = node->next->next;
- } else {
- hg_log_warning("[BUG] Invalid path for arc.");
- retval = FALSE;
- }
- break;
- case HG_PATH_MATRIX:
- if (node->next && node->next->next) {
- cairo_matrix_t mtx_, trans;
-
- cairo_matrix_init(&mtx_, node->x, node->y,
- node->next->x, node->next->y,
- node->next->next->x, node->next->next->y);
- cairo_matrix_init(&trans, 1.0, 0.0, 0.0,
- -1.0, 0.0, device->device.height);
- cairo_matrix_multiply(&trans, &mtx_, &trans);
- cairo_set_matrix(device->reference, &trans);
- node = node->next->next;
- } else {
- hg_log_warning("[BUG] Invalid matrix was given.");
- retval = FALSE;
- }
- break;
- default:
- hg_log_warning("[BUG] Unknown path type %d was given.", node->type);
- retval = FALSE;
- break;
- }
- node = node->next;
- }
-
- return retval;
-}
-
-static void
-_hg_cairo_device_set_line_cap(HgCairoDevice *device,
- gint line_cap)
-{
- cairo_line_cap_t cap;
-
- switch (line_cap) {
- case 0:
- cap = CAIRO_LINE_CAP_BUTT;
- break;
- case 1:
- cap = CAIRO_LINE_CAP_ROUND;
- break;
- case 2:
- cap = CAIRO_LINE_CAP_SQUARE;
- break;
- default:
- hg_log_warning("[BUG] Invalid linecap type %d", line_cap);
- cap = CAIRO_LINE_CAP_BUTT;
- break;
- }
- cairo_set_line_cap(device->reference, cap);
-}
-
-static void
-_hg_cairo_device_set_line_join(HgCairoDevice *device,
- gint line_join)
-{
- cairo_line_join_t join;
-
- switch (line_join) {
- case 0:
- join = CAIRO_LINE_JOIN_MITER;
- break;
- case 1:
- join = CAIRO_LINE_JOIN_ROUND;
- break;
- case 2:
- join = CAIRO_LINE_JOIN_BEVEL;
- break;
- default:
- hg_log_warning("[BUG] Invalid linejoin type %d", line_join);
- join = CAIRO_LINE_JOIN_MITER;
- break;
- }
- cairo_set_line_join(device->reference, join);
-}
-
-/*
- * Public Functions
- */
-HgDevice *
-hg_cairo_device_new(void)
-{
- HgCairoDevice *retval;
-
- retval = g_new0(HgCairoDevice, 1);
- retval->device.vtable = &__hg_cairo_device_vtable;
-
- return (HgDevice *)retval;
-}
diff --git a/devices/cairo/hgdevice-cairo.h b/devices/cairo/hgdevice-cairo.h
deleted file mode 100644
index 559019e..0000000
--- a/devices/cairo/hgdevice-cairo.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgdevice-cairo.h
- * Copyright (C) 2005-2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HG_DEVICE_CAIRO_H__
-#define __HG_DEVICE_CAIRO_H__
-
-#include <X11/Xlib.h>
-#include <cairo/cairo.h>
-#include <hieroglyph/hgtypes.h>
-#include <hieroglyph/hgdevice.h>
-
-G_BEGIN_DECLS
-
-typedef enum {
- HG_DEVICE_CAIRO_XLIB_SURFACE = 1,
-} HgCairoDeviceType;
-
-typedef struct _HieroGlyphCairoXlibDevice HgCairoXlibDevice;
-typedef struct _HieroGlyphCairoDevice HgCairoDevice;
-
-struct _HieroGlyphCairoXlibDevice {
- HgCairoDeviceType type;
- Display *dpy;
- Drawable drawable;
-};
-
-struct _HieroGlyphCairoDevice {
- HgDevice device;
- struct {
- gboolean (* set_page_size) (HgCairoDevice *device,
- gdouble width,
- gdouble height);
- } vtable;
- union {
- HgCairoDeviceType type;
- HgCairoXlibDevice xlib;
- } u;
- cairo_surface_t *surface;
- cairo_t *reference;
-};
-
-HgDevice *hg_cairo_device_new(void);
-
-G_END_DECLS
-
-#endif /* __HG_DEVICE_CAIRO_H__ */
diff --git a/devices/x11-embedded/Makefile.am b/devices/x11-embedded/Makefile.am
deleted file mode 100644
index c1af426..0000000
--- a/devices/x11-embedded/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
-NULL =
-
-INCLUDES = \
- $(HG_CFLAGS) \
- $(NULL)
-LIBS = \
- @LDFLAGS@ \
- -export-dynamic \
- $(HG_LIBS) \
- $(NULL)
-LDADDS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-lib_LTLIBRARIES = \
- libhieroglyph-x11.la \
- $(NULL)
-
-libhieroglyph_x11_la_SOURCES = \
- hgdevice-x11.c \
- hgdevice-x11.h \
- $(NULL)
-libhieroglyph_x11_la_LIBADD = \
- $(LDADDS) \
- $(NULL)
-
-devicedir = $(HIEROGLYPH_DEVICEDIR)
-device_LTLIBRARIES = \
- libx11-embedded-device.la \
- $(NULL)
-
-libx11_embedded_device_la_SOURCES = \
- x11-embedded-main.c \
- $(NULL)
-libx11_embedded_device_la_CFLAGS = \
- -DHG_LOG_DOMAIN="\"X11-Embedded-Device\"" \
- $(CFLAGS) \
- $(NULL)
-libx11_embedded_device_la_LDFLAGS = \
- -avoid-version \
- -module \
- $(LDFLAGS) \
- $(NULL)
-libx11_embedded_device_la_LIBADD = \
- libhieroglyph-x11.la \
- $(LDADDS) \
- $(NULL)
diff --git a/devices/x11-embedded/hgdevice-x11.c b/devices/x11-embedded/hgdevice-x11.c
deleted file mode 100644
index c3feba8..0000000
--- a/devices/x11-embedded/hgdevice-x11.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgdevice-x11.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "hgdevice-x11.h"
-
-
-/*
- * Private Functions
- */
-
-/*
- * Public Functions
- */
-
diff --git a/devices/x11-embedded/hgdevice-x11.h b/devices/x11-embedded/hgdevice-x11.h
deleted file mode 100644
index 77ca3a5..0000000
--- a/devices/x11-embedded/hgdevice-x11.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgdevice-x11.h
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HG_DEVICE_X11_H__
-#define __HG_DEVICE_X11_H__
-
-#include <hieroglyph/hgtypes.h>
-#include <hieroglyph/hgdevice.h>
-
-G_BEGIN_DECLS
-
-G_END_DECLS
-
-#endif /* __HG_DEVICE_X11_H__ */
diff --git a/devices/x11-embedded/x11-embedded-main.c b/devices/x11-embedded/x11-embedded-main.c
deleted file mode 100644
index dcb81a1..0000000
--- a/devices/x11-embedded/x11-embedded-main.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * x11-embedded-main.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "hgdevice-x11.h"
-
-
-/*
- * Private Functions
- */
-
-/*
- * Public Functions
- */
diff --git a/examples/Makefile.am b/examples/Makefile.am
deleted file mode 100644
index 2a5d305..0000000
--- a/examples/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-NULL =
-
-INCLUDES = \
- $(HG_CFLAGS) \
- $(NULL)
-LIBS = \
- @LDFLAGS@ \
- $(HG_LIBS) \
- $(NULL)
-LDADDS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-noinst_PROGRAMS = \
- pse \
- cairo-xlib \
- $(NULL)
-
-pse_SOURCES = \
- pse.c \
- $(NULL)
-pse_LDADD = \
- $(LDADDS) \
- $(NULL)
-
-cairo_xlib_SOURCES = \
- cairo-xlib.c \
- $(NULL)
-cairo_xlib_LDADD = \
- $(LDADDS) \
- $(NULL)
diff --git a/examples/cairo-xlib.c b/examples/cairo-xlib.c
deleted file mode 100644
index 0613930..0000000
--- a/examples/cairo-xlib.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * cairo-xlib.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#include <hieroglyph/hgmem.h>
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/hgvaluenode.h>
-#include <hieroglyph/hgdevice.h>
-#include <hieroglyph/vm.h>
-#include <hieroglyph/hggraphics.h>
-
-
-int
-main(int argc, char **argv)
-{
- HG_MEM_INIT;
-
- HgVM *vm;
- HgGraphics *graphics;
- HgDevice *device;
- GList *l, *prev = NULL;
- gint i;
- GOptionContext *ctxt = g_option_context_new("PostScriptFile.ps");
- GError *error = NULL;
- const gchar *psfile = NULL;
-
- if (!g_option_context_parse(ctxt, &argc, &argv, &error)) {
- g_print("Option parse error.\n");
- return 1;
- }
-
- device = hg_device_new("x11");
- if (device == NULL) {
- g_print("Failed to open a x11 device\n");
- return 1;
- }
-
- hg_vm_init();
-
- vm = hg_vm_new(VM_EMULATION_LEVEL_1);
-
- if (argc > 1)
- psfile = argv[1];
-
- if (!hg_vm_startjob(vm, psfile, TRUE)) {
- g_print("Failed to start a job.\n");
- return 1;
- }
-
- if (!hg_vm_has_error(vm)) {
- graphics = hg_vm_get_graphics(vm);
- for (l = graphics->pages, i = 1; l != NULL; l = g_list_next(l), i++) {
- hg_device_draw(device, l->data);
- g_print("%d page\n", i);
- sleep(1);
- }
- prev = g_list_last(graphics->pages);
- if (prev != NULL &&
- graphics->current_page != prev->data &&
- graphics->current_page->node)
- hg_device_draw(device, graphics->current_page);
- sleep(5);
- }
-
- hg_vm_finalize();
- g_option_context_free(ctxt);
-
- return 0;
-}
diff --git a/examples/pse.c b/examples/pse.c
deleted file mode 100644
index a7d4537..0000000
--- a/examples/pse.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * pse.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#include <hieroglyph/hgmem.h>
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/hgvaluenode.h>
-#include <hieroglyph/vm.h>
-
-GList *plugin_list = NULL;
-
-static gboolean
-_pse_arg_plugin_cb(const char *option_name,
- const char *value,
- gpointer data)
-{
- gboolean retval = TRUE;
-
- if (value && *value) {
- plugin_list = g_list_append(plugin_list, g_strdup(value));
- } else {
- retval = FALSE;
- }
-
- return retval;
-}
-
-int
-main(int argc, char **argv)
-{
- HgVM *vm;
- GOptionContext *ctxt = g_option_context_new("PostScriptFile.ps");
- GOptionEntry entries[] = {
- {"plugin", 'l', 0, G_OPTION_ARG_CALLBACK, _pse_arg_plugin_cb, "A plugin to be loaded.", "NAME"},
- {NULL}
- };
- GError *error = NULL;
- const gchar *psfile = NULL;
- GList *l;
-
- g_option_context_add_main_entries(ctxt, entries, NULL);
- if (!g_option_context_parse(ctxt, &argc, &argv, &error)) {
- g_print("Option parse error.\n");
- return 1;
- }
-
- HG_MEM_INIT;
- hg_vm_init();
-
- vm = hg_vm_new(VM_EMULATION_LEVEL_1);
- for (l = plugin_list; l != NULL; l = g_list_next(l)) {
- hg_vm_load_plugin(vm, l->data);
- g_free(l->data);
- }
- g_list_free(plugin_list);
- plugin_list = NULL;
-
- if (argc > 1)
- psfile = argv[1];
-
- if (!hg_vm_startjob(vm, psfile, TRUE)) {
- g_print("Failed to start a job.\n");
- return 1;
- }
-
- hg_vm_finalize();
- g_option_context_free(ctxt);
-
- return 0;
-}
diff --git a/hieroglyph.pc.in b/hieroglyph.pc.in
deleted file mode 100644
index 821ab98..0000000
--- a/hieroglyph.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: Hieroglyph
-Description: PostScript rendering library
-Version: @VERSION@
-Requires: glib-2.0 gmodule-2.0
-Libs: -L${libdir} -lhieroglyph
diff --git a/hieroglyph/Makefile.am b/hieroglyph/Makefile.am
deleted file mode 100644
index 2f3852d..0000000
--- a/hieroglyph/Makefile.am
+++ /dev/null
@@ -1,86 +0,0 @@
-NULL =
-
-INCLUDES = \
- -DG_LOG_DOMAIN="\"Hieroglyph\"" \
- $(HG_CFLAGS) \
- $(NULL)
-LIBS = \
- @LDFLAGS@ \
- $(HG_LIBS) \
- $(NULL)
-
-function_prefix = hieroglyph
-type_prefix = HIEROGLYPH
-
-################################################################################
-# Generated files
-################################################################################
-built_headers = \
- version.h \
- $(NULL)
-
-################################################################################
-# Publisher
-################################################################################
-
-#
-# Header files
-#
-hgincludedir = $(includedir)/hieroglyph
-hginclude_HEADERS = \
- $(built_headers) \
- hgarray.h \
- hgdict.h \
- hgfile.h \
- hgmacros.h \
- hgobject.h \
- hgoperator.h \
- hgstack.h \
- hgstring.h \
- hgtypes.h \
- utils.h \
- vm.h \
- $(NULL)
-
-noinst_HEADERS = \
- hgdictprime.h \
- hgoperator-private.h \
- $(NULL)
-
-#
-# Libraries
-#
-lib_LTLIBRARIES = \
- libhieroglyph.la \
- $(NULL)
-
-libhieroglyph_la_SOURCES = \
- hgarray.c \
- hgdict.c \
- hgfile.c \
- hgobject.c \
- hgoperator.c \
- hgstack.c \
- hgstring.c \
- utils.c \
- vm.c \
- $(NULL)
-
-libhieroglyph_la_LDFLAGS = \
- $(LDFLAGS) \
- $(NULL)
-
-libhieroglyph_la_LIBADD = \
- $(NULL)
-
-$(libhieroglyph_la_OBJECTS): $(built_headers)
-version.h.in: version.h.in.in $(top_srcdir)/update-version
- $(top_srcdir)/update-version
-
-#
-# Etc
-#
-EXTRA_DIST = \
- version.h.in \
- version.h.in.in \
- $(NULL)
diff --git a/hieroglyph/hgarray.c b/hieroglyph/hgarray.c
deleted file mode 100644
index fabcbd3..0000000
--- a/hieroglyph/hgarray.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgarray.c
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gthread.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "hgarray.h"
-
-
-G_LOCK_DEFINE_STATIC (hgarray);
-
-/*
- * private functions
- */
-
-/*
- * public functions
- */
-hg_object_t *
-hg_object_array_new(hg_vm_t *vm,
- guint16 length)
-{
- hg_object_t *retval;
- hg_arraydata_t *data;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_sized_new(vm, hg_n_alignof (sizeof (hg_arraydata_t) + sizeof (hg_object_t) * length));
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_ARRAY;
- HG_OBJECT_ARRAY (retval)->length = length;
- HG_OBJECT_ARRAY (retval)->real_length = length;
- data = HG_OBJECT_ARRAY_DATA (retval);
- data->name[0] = 0;
- if (length > 0) {
- data->array = (hg_object_t *)data->data;
- memset(data->array, 0, sizeof (hg_object_t) * length);
- } else {
- data->array = NULL;
- }
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_array_subarray_new(hg_vm_t *vm,
- hg_object_t *object,
- guint16 start_index,
- guint16 length)
-{
- hg_object_t *retval, **p;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (object != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_ARRAY (object), NULL);
- hg_return_val_if_fail (HG_OBJECT_ARRAY (object)->real_length > start_index, NULL);
- hg_return_val_if_fail (HG_OBJECT_ARRAY (object)->real_length >= (start_index + length), NULL);
-
- retval = hg_object_array_new(vm, 0);
- if (retval != NULL) {
- p = HG_OBJECT_ARRAY_DATA (object)->array;
- HG_OBJECT_ARRAY_DATA (retval)->array = &p[start_index];
- HG_OBJECT_ARRAY (retval)->real_length = length;
- }
-
- return retval;
-}
-
-gboolean
-hg_object_array_put(hg_vm_t *vm,
- hg_object_t *object,
- hg_object_t *data,
- guint16 index)
-{
- hg_object_t **array;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
- hg_return_val_if_fail (object != NULL, FALSE);
- hg_return_val_if_fail (data != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_ARRAY (object), FALSE);
- hg_return_val_if_fail (HG_OBJECT_ARRAY (object)->real_length > index, FALSE);
- /* XXX: need to check the memory spool type */
-
- array = HG_OBJECT_ARRAY_DATA (object)->array;
- array[index] = data;
-
- return TRUE;
-}
-
-hg_object_t *
-hg_object_array_get(hg_vm_t *vm,
- const hg_object_t *object,
- guint16 index)
-{
- hg_object_t **array, *retval, *p;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (object != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_ARRAY (object), NULL);
- hg_return_val_if_fail (HG_OBJECT_ARRAY (object)->real_length > index, NULL);
-
- array = HG_OBJECT_ARRAY_DATA (object)->array;
- p = array[index];
-
- if (!HG_OBJECT_IS_COMPLEX (p)) {
- /* create a copy to prevent destructive modifications */
- retval = hg_object_copy(vm, p);
- } else {
- /* complex objects are allowed to be modified */
- retval = p;
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_array_get_const(const hg_object_t *object,
- guint16 index)
-{
- hg_object_t **array;
-
- hg_return_val_if_fail (object != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_ARRAY (object), NULL);
- hg_return_val_if_fail (HG_OBJECT_ARRAY (object)->real_length > index, NULL);
-
- array = HG_OBJECT_ARRAY_DATA (object)->array;
- return array[index];
-}
-
-gboolean
-hg_object_array_compare(hg_object_t *object1,
- hg_object_t *object2)
-{
- guint16 i;
- hg_object_t *a, *b;
- gboolean retval = TRUE;
-
- hg_return_val_if_fail (object1 != NULL, FALSE);
- hg_return_val_if_fail (object2 != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_ARRAY (object1), FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_ARRAY (object2), FALSE);
-
- if (object1 == object2)
- return TRUE;
- if (HG_OBJECT_ARRAY (object1)->real_length != HG_OBJECT_ARRAY (object2)->real_length)
- return FALSE;
-
- G_LOCK (hgarray);
- if (HG_OBJECT_OBJECT (object1)->attr.bit.is_checked) {
- retval = (HG_OBJECT_OBJECT (object1)->attr.bit.is_checked == HG_OBJECT_OBJECT (object2)->attr.bit.is_checked);
- G_UNLOCK (hgarray);
-
- return retval;
- }
- /* for checking the circular reference */
- HG_OBJECT_OBJECT (object1)->attr.bit.is_checked = TRUE;
- HG_OBJECT_OBJECT (object2)->attr.bit.is_checked = TRUE;
- G_UNLOCK (hgarray);
-
- for (i = 0; i < HG_OBJECT_ARRAY (object1)->real_length; i++) {
- a = hg_object_array_get_const(object1, i);
- b = hg_object_array_get_const(object2, i);
- if (!hg_object_compare(a, b)) {
- retval = FALSE;
- break;
- }
- }
-
- /* cleaning up */
- G_LOCK (hgarray);
- HG_OBJECT_OBJECT (object1)->attr.bit.is_checked = FALSE;
- HG_OBJECT_OBJECT (object2)->attr.bit.is_checked = FALSE;
- G_UNLOCK (hgarray);
-
- return retval;
-}
-
-gchar *
-hg_object_array_dump(hg_object_t *object,
- gboolean verbose)
-{
- hg_return_val_if_fail (object != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_ARRAY (object), NULL);
-
- return g_strdup("--array--");
-}
diff --git a/hieroglyph/hgarray.h b/hieroglyph/hgarray.h
deleted file mode 100644
index 63f0092..0000000
--- a/hieroglyph/hgarray.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgarray.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH_HGARRAY_H__
-#define __HIEROGLYPH_HGARRAY_H__
-
-#include <hieroglyph/hgtypes.h>
-
-
-G_BEGIN_DECLS
-
-
-hg_object_t *hg_object_array_new (hg_vm_t *vm,
- guint16 length) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_array_subarray_new(hg_vm_t *vm,
- hg_object_t *object,
- guint16 start_index,
- guint16 length) G_GNUC_WARN_UNUSED_RESULT;
-gboolean hg_object_array_put (hg_vm_t *vm,
- hg_object_t *object,
- hg_object_t *item,
- guint16 index);
-hg_object_t *hg_object_array_get (hg_vm_t *vm,
- const hg_object_t *object,
- guint16 index);
-hg_object_t *hg_object_array_get_const (const hg_object_t *object,
- guint16 index);
-gboolean hg_object_array_compare (hg_object_t *object1,
- hg_object_t *object2);
-gchar *hg_object_array_dump (hg_object_t *object,
- gboolean verbose) G_GNUC_MALLOC;
-
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH_HGARRAY_H__ */
diff --git a/hieroglyph/hgdict.c b/hieroglyph/hgdict.c
deleted file mode 100644
index b5c619a..0000000
--- a/hieroglyph/hgdict.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgdict.c
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-#include <glib/gstrfuncs.h>
-#include <hieroglyph/hgobject.h>
-#include "hgdict.h"
-#include "hgdictprime.h"
-
-#define _get_hash(_hg_d_,_hg_o_) ((hg_object_get_hash(_hg_o_) << 8) % __hg_dict_primes[HG_OBJECT_DICT (_hg_d_)->length])
-
-
-/*
- * private functions
- */
-static gboolean
-_hg_object_dict_lookup(hg_object_t *dict,
- hg_object_t *key,
- guint16 *retval)
-{
- guint16 h, hash;
- hg_dictdata_t *data = HG_OBJECT_DICT_DATA (dict);
-
- hg_return_val_if_fail (retval != NULL, FALSE);
-
- h = hash = _get_hash(dict, key);
- while (1) {
- if (data[hash].key != NULL && data[hash].value != NULL) {
- if (hg_object_compare(key, data[hash].key)) {
- *retval = hash;
-
- return TRUE;
- }
- } else {
- /* probably no such keys are registered into dict */
- break;
- }
- /* try to find out next slot */
- if ((hash + 1) == h) {
- /* probably no such keys are registered int odict */
- break;
- }
- hash++;
- if (hash > __hg_dict_primes[HG_OBJECT_DICT (dict)->length]) {
- /* looking at the first slot */
- hash = 0;
- }
- }
- *retval = 0;
-
- return FALSE;
-}
-
-static gboolean
-_hg_object_dict_insert(hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value,
- gboolean with_replace)
-{
- gboolean retval = FALSE;
- guint16 h, hash;
- hg_dictdata_t *data = HG_OBJECT_DICT_DATA (dict);
-
- hg_return_val_if_fail (HG_OBJECT_DICT (dict)->used < HG_OBJECT_DICT (dict)->length, FALSE);
-
- h = hash = _get_hash(dict, key);
- while (1) {
- if (data[hash].key == NULL && data[hash].value == NULL) {
- data[hash].key = key;
- data[hash].value = value;
- HG_OBJECT_DICT (dict)->used++;
- retval = TRUE;
- break;
- } else if (hg_object_compare(key, data[hash].key)) {
- if (with_replace) {
- data[hash].key = key;
- data[hash].value = value;
- retval = TRUE;
- }
- break;
- } else {
- /* try to find out an empty slot */
- if ((hash + 1) == h) {
- /* probably no empty slots.
- * but guess this won't happen because of checking
- */
- g_warning("[BUG] no empty slots in the dict.");
-
- return FALSE;
- }
- hash++;
- if (hash > __hg_dict_primes[HG_OBJECT_DICT (dict)->length]) {
- /* try to find out from first */
- hash = 0;
- }
- }
- }
-
- return retval;
-}
-
-/*
- * public functions
- */
-hg_object_t *
-hg_object_dict_new(hg_vm_t *vm,
- guint16 n_nodes)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_sized_new(vm, hg_n_alignof (sizeof (hg_dictdata_t) * __hg_dict_primes[n_nodes]));
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_DICT;
- HG_OBJECT_DICT (retval)->length = n_nodes;
- HG_OBJECT_DICT (retval)->used = 0;
- memset(HG_OBJECT_DICT_DATA (retval), 0, sizeof (hg_dictdata_t) * __hg_dict_primes[n_nodes]);
- }
-
- return retval;
-}
-
-gboolean
-hg_object_dict_compare(hg_object_t *object1,
- hg_object_t *object2)
-{
- hg_return_val_if_fail (object1 != NULL, FALSE);
- hg_return_val_if_fail (object2 != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (object1), FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (object2), FALSE);
-
- /* XXX: no copy and dup functionalities are available so far.
- * so just comparing a pointer should works enough.
- */
- return object1 == object2;
-}
-
-gchar *
-hg_object_dict_dump(hg_object_t *object,
- gboolean verbose)
-{
- hg_return_val_if_fail (object != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (object), NULL);
-
- return g_strdup("--dict--");
-}
-
-gboolean
-hg_object_dict_insert(hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value)
-{
- hg_return_val_if_fail (dict != NULL, FALSE);
- hg_return_val_if_fail (key != NULL, FALSE);
- hg_return_val_if_fail (value != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (dict), FALSE);
-
- if (HG_OBJECT_ATTR_IS_GLOBAL (dict) &&
- !HG_OBJECT_ATTR_IS_GLOBAL (value)) {
- return FALSE;
- }
-
- return _hg_object_dict_insert(dict, key, value, FALSE);
-}
-
-gboolean
-hg_object_dict_insert_without_consistency(hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value)
-{
- hg_return_val_if_fail (dict != NULL, FALSE);
- hg_return_val_if_fail (key != NULL, FALSE);
- hg_return_val_if_fail (value != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (dict), FALSE);
-
- return _hg_object_dict_insert(dict, key, value, FALSE);
-}
-
-gboolean
-hg_object_dict_replace(hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value)
-{
- hg_return_val_if_fail (dict != NULL, FALSE);
- hg_return_val_if_fail (key != NULL, FALSE);
- hg_return_val_if_fail (value != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (dict), FALSE);
-
- if (HG_OBJECT_ATTR_IS_GLOBAL (dict) &&
- !HG_OBJECT_ATTR_IS_GLOBAL (value)) {
- return FALSE;
- }
-
- return _hg_object_dict_insert(dict, key, value, TRUE);
-}
-
-gboolean
-hg_object_dict_replace_without_consistency(hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value)
-{
- hg_return_val_if_fail (dict != NULL, FALSE);
- hg_return_val_if_fail (key != NULL, FALSE);
- hg_return_val_if_fail (value != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (dict), FALSE);
-
- return _hg_object_dict_insert(dict, key, value, TRUE);
-}
-
-gboolean
-hg_object_dict_remove(hg_object_t *dict,
- hg_object_t *key)
-{
- guint16 hash;
-
- hg_return_val_if_fail (dict != NULL, FALSE);
- hg_return_val_if_fail (key != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (dict), FALSE);
-
- if (_hg_object_dict_lookup(dict, key, &hash)) {
- hg_dictdata_t *data = HG_OBJECT_DICT_DATA (dict);
-
- data[hash].key = NULL;
- data[hash].value = NULL;
-
- return TRUE;
- }
-
- return FALSE;
-}
-
-hg_object_t *
-hg_object_dict_lookup(hg_object_t *dict,
- hg_object_t *key)
-{
- guint16 hash;
-
- hg_return_val_if_fail (dict != NULL, NULL);
- hg_return_val_if_fail (key != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_DICT (dict), NULL);
-
- if (_hg_object_dict_lookup(dict, key, &hash)) {
- hg_dictdata_t *data = HG_OBJECT_DICT_DATA (dict);
-
- return data[hash].value;
- }
-
- return NULL;
-}
diff --git a/hieroglyph/hgdict.h b/hieroglyph/hgdict.h
deleted file mode 100644
index cb3cd2a..0000000
--- a/hieroglyph/hgdict.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgdict.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH_HGDICT_H__
-#define __HIEROGLYPH_HGDICT_H__
-
-#include <hieroglyph/hgtypes.h>
-
-
-G_BEGIN_DECLS
-
-hg_object_t *hg_object_dict_new (hg_vm_t *vm,
- guint16 n_nodes) G_GNUC_WARN_UNUSED_RESULT;
-gboolean hg_object_dict_compare (hg_object_t *object1,
- hg_object_t *object2);
-gchar *hg_object_dict_dump (hg_object_t *object,
- gboolean verbose) G_GNUC_MALLOC;
-gboolean hg_object_dict_insert (hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value);
-gboolean hg_object_dict_insert_without_consistency (hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value);
-gboolean hg_object_dict_replace (hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value);
-gboolean hg_object_dict_replace_without_consistency(hg_object_t *dict,
- hg_object_t *key,
- hg_object_t *value);
-gboolean hg_object_dict_remove (hg_object_t *dict,
- hg_object_t *key);
-hg_object_t *hg_object_dict_lookup (hg_object_t *dict,
- hg_object_t *key);
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH_HGDICT_H__ */
diff --git a/hieroglyph/hgdictprime.h b/hieroglyph/hgdictprime.h
deleted file mode 100644
index 967b6b1..0000000
--- a/hieroglyph/hgdictprime.h
+++ /dev/null
@@ -1,7953 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgdictprime.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <glib/gtypes.h>
-
-static guint32 __hg_dict_primes[65536] = {
- 2, 2, 2, 3, 5, 5, 7, 7, 11, 11, 11, 11, 13, 13, 17, 17, 17,
- 17, 19, 19, 23, 23, 23, 23, 29, 29, 29, 29, 29, 29, 31, 31,
- 37, 37, 37, 37, 37, 37, 41, 41, 41, 41, 43, 43, 47, 47, 47,
- 47, 53, 53, 53, 53, 53, 53, 59, 59, 59, 59, 59, 59, 61, 61,
- 67, 67, 67, 67, 67, 67, 71, 71, 71, 71, 73, 73, 79, 79, 79,
- 79, 79, 79, 83, 83, 83, 83, 89, 89, 89, 89, 89, 89, 97, 97,
- 97, 97, 97, 97, 97, 97, 101, 101, 101, 101, 103, 103, 107,
- 107, 107, 107, 109, 109, 113, 113, 113, 113, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 131,
- 131, 131, 131, 137, 137, 137, 137, 137, 137, 139, 139, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 151, 151, 157,
- 157, 157, 157, 157, 157, 163, 163, 163, 163, 163, 163, 167,
- 167, 167, 167, 173, 173, 173, 173, 173, 173, 179, 179, 179,
- 179, 179, 179, 181, 181, 191, 191, 191, 191, 191, 191, 191,
- 191, 191, 191, 193, 193, 197, 197, 197, 197, 199, 199, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 223,
- 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 227,
- 227, 227, 227, 229, 229, 233, 233, 233, 233, 239, 239, 239,
- 239, 239, 239, 241, 241, 251, 251, 251, 251, 251, 251, 251,
- 251, 251, 251, 257, 257, 257, 257, 257, 257, 263, 263, 263,
- 263, 263, 263, 269, 269, 269, 269, 269, 269, 271, 271, 277,
- 277, 277, 277, 277, 277, 281, 281, 281, 281, 283, 283, 293,
- 293, 293, 293, 293, 293, 293, 293, 293, 293, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 311,
- 311, 311, 311, 313, 313, 317, 317, 317, 317, 331, 331, 331,
- 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 337,
- 337, 337, 337, 337, 337, 347, 347, 347, 347, 347, 347, 347,
- 347, 347, 347, 349, 349, 353, 353, 353, 353, 359, 359, 359,
- 359, 359, 359, 367, 367, 367, 367, 367, 367, 367, 367, 373,
- 373, 373, 373, 373, 373, 379, 379, 379, 379, 379, 379, 383,
- 383, 383, 383, 389, 389, 389, 389, 389, 389, 397, 397, 397,
- 397, 397, 397, 397, 397, 401, 401, 401, 401, 409, 409, 409,
- 409, 409, 409, 409, 409, 419, 419, 419, 419, 419, 419, 419,
- 419, 419, 419, 421, 421, 431, 431, 431, 431, 431, 431, 431,
- 431, 431, 431, 433, 433, 439, 439, 439, 439, 439, 439, 443,
- 443, 443, 443, 449, 449, 449, 449, 449, 449, 457, 457, 457,
- 457, 457, 457, 457, 457, 461, 461, 461, 461, 463, 463, 467,
- 467, 467, 467, 479, 479, 479, 479, 479, 479, 479, 479, 479,
- 479, 479, 479, 487, 487, 487, 487, 487, 487, 487, 487, 491,
- 491, 491, 491, 499, 499, 499, 499, 499, 499, 499, 499, 503,
- 503, 503, 503, 509, 509, 509, 509, 509, 509, 521, 521, 521,
- 521, 521, 521, 521, 521, 521, 521, 521, 521, 523, 523, 541,
- 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541,
- 541, 541, 541, 541, 541, 547, 547, 547, 547, 547, 547, 557,
- 557, 557, 557, 557, 557, 557, 557, 557, 557, 563, 563, 563,
- 563, 563, 563, 569, 569, 569, 569, 569, 569, 571, 571, 577,
- 577, 577, 577, 577, 577, 587, 587, 587, 587, 587, 587, 587,
- 587, 587, 587, 593, 593, 593, 593, 593, 593, 599, 599, 599,
- 599, 599, 599, 601, 601, 607, 607, 607, 607, 607, 607, 613,
- 613, 613, 613, 613, 613, 617, 617, 617, 617, 619, 619, 631,
- 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 641,
- 641, 641, 641, 641, 641, 641, 641, 641, 641, 643, 643, 647,
- 647, 647, 647, 653, 653, 653, 653, 653, 653, 659, 659, 659,
- 659, 659, 659, 661, 661, 673, 673, 673, 673, 673, 673, 673,
- 673, 673, 673, 673, 673, 677, 677, 677, 677, 683, 683, 683,
- 683, 683, 683, 691, 691, 691, 691, 691, 691, 691, 691, 701,
- 701, 701, 701, 701, 701, 701, 701, 701, 701, 709, 709, 709,
- 709, 709, 709, 709, 709, 719, 719, 719, 719, 719, 719, 719,
- 719, 719, 719, 727, 727, 727, 727, 727, 727, 727, 727, 733,
- 733, 733, 733, 733, 733, 739, 739, 739, 739, 739, 739, 743,
- 743, 743, 743, 751, 751, 751, 751, 751, 751, 751, 751, 757,
- 757, 757, 757, 757, 757, 761, 761, 761, 761, 769, 769, 769,
- 769, 769, 769, 769, 769, 773, 773, 773, 773, 787, 787, 787,
- 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 797,
- 797, 797, 797, 797, 797, 797, 797, 797, 797, 809, 809, 809,
- 809, 809, 809, 809, 809, 809, 809, 809, 809, 811, 811, 821,
- 821, 821, 821, 821, 821, 821, 821, 821, 821, 823, 823, 827,
- 827, 827, 827, 829, 829, 839, 839, 839, 839, 839, 839, 839,
- 839, 839, 839, 853, 853, 853, 853, 853, 853, 853, 853, 853,
- 853, 853, 853, 853, 853, 857, 857, 857, 857, 859, 859, 863,
- 863, 863, 863, 877, 877, 877, 877, 877, 877, 877, 877, 877,
- 877, 877, 877, 877, 877, 881, 881, 881, 881, 883, 883, 887,
- 887, 887, 887, 907, 907, 907, 907, 907, 907, 907, 907, 907,
- 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 911,
- 911, 911, 911, 919, 919, 919, 919, 919, 919, 919, 919, 929,
- 929, 929, 929, 929, 929, 929, 929, 929, 929, 937, 937, 937,
- 937, 937, 937, 937, 937, 941, 941, 941, 941, 947, 947, 947,
- 947, 947, 947, 953, 953, 953, 953, 953, 953, 967, 967, 967,
- 967, 967, 967, 967, 967, 967, 967, 967, 967, 967, 967, 971,
- 971, 971, 971, 977, 977, 977, 977, 977, 977, 983, 983, 983,
- 983, 983, 983, 991, 991, 991, 991, 991, 991, 991, 991, 997,
- 997, 997, 997, 997, 997, 1009, 1009, 1009, 1009, 1009, 1009,
- 1009, 1009, 1009, 1009, 1009, 1009, 1013, 1013, 1013, 1013,
- 1019, 1019, 1019, 1019, 1019, 1019, 1021, 1021, 1031, 1031,
- 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1033, 1033,
- 1039, 1039, 1039, 1039, 1039, 1039, 1049, 1049, 1049, 1049,
- 1049, 1049, 1049, 1049, 1049, 1049, 1051, 1051, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1063, 1063,
- 1069, 1069, 1069, 1069, 1069, 1069, 1087, 1087, 1087, 1087,
- 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
- 1087, 1087, 1087, 1087, 1091, 1091, 1091, 1091, 1093, 1093,
- 1097, 1097, 1097, 1097, 1103, 1103, 1103, 1103, 1103, 1103,
- 1109, 1109, 1109, 1109, 1109, 1109, 1117, 1117, 1117, 1117,
- 1117, 1117, 1117, 1117, 1123, 1123, 1123, 1123, 1123, 1123,
- 1129, 1129, 1129, 1129, 1129, 1129, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1153, 1153,
- 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
- 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1187, 1187,
- 1187, 1187, 1187, 1187, 1193, 1193, 1193, 1193, 1193, 1193,
- 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1213, 1213,
- 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
- 1217, 1217, 1217, 1217, 1223, 1223, 1223, 1223, 1223, 1223,
- 1229, 1229, 1229, 1229, 1229, 1229, 1231, 1231, 1237, 1237,
- 1237, 1237, 1237, 1237, 1249, 1249, 1249, 1249, 1249, 1249,
- 1249, 1249, 1249, 1249, 1249, 1249, 1259, 1259, 1259, 1259,
- 1259, 1259, 1259, 1259, 1259, 1259, 1277, 1277, 1277, 1277,
- 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277,
- 1277, 1277, 1277, 1277, 1279, 1279, 1283, 1283, 1283, 1283,
- 1289, 1289, 1289, 1289, 1289, 1289, 1291, 1291, 1297, 1297,
- 1297, 1297, 1297, 1297, 1301, 1301, 1301, 1301, 1303, 1303,
- 1307, 1307, 1307, 1307, 1319, 1319, 1319, 1319, 1319, 1319,
- 1319, 1319, 1319, 1319, 1319, 1319, 1321, 1321, 1327, 1327,
- 1327, 1327, 1327, 1327, 1361, 1361, 1361, 1361, 1361, 1361,
- 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
- 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
- 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1367, 1367,
- 1367, 1367, 1367, 1367, 1373, 1373, 1373, 1373, 1373, 1373,
- 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1399, 1399,
- 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
- 1399, 1399, 1399, 1399, 1399, 1399, 1409, 1409, 1409, 1409,
- 1409, 1409, 1409, 1409, 1409, 1409, 1423, 1423, 1423, 1423,
- 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423,
- 1427, 1427, 1427, 1427, 1429, 1429, 1433, 1433, 1433, 1433,
- 1439, 1439, 1439, 1439, 1439, 1439, 1447, 1447, 1447, 1447,
- 1447, 1447, 1447, 1447, 1451, 1451, 1451, 1451, 1453, 1453,
- 1459, 1459, 1459, 1459, 1459, 1459, 1471, 1471, 1471, 1471,
- 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1481, 1481,
- 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1483, 1483,
- 1487, 1487, 1487, 1487, 1489, 1489, 1493, 1493, 1493, 1493,
- 1499, 1499, 1499, 1499, 1499, 1499, 1511, 1511, 1511, 1511,
- 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1523, 1523,
- 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523,
- 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1543, 1543,
- 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
- 1549, 1549, 1549, 1549, 1549, 1549, 1553, 1553, 1553, 1553,
- 1559, 1559, 1559, 1559, 1559, 1559, 1567, 1567, 1567, 1567,
- 1567, 1567, 1567, 1567, 1571, 1571, 1571, 1571, 1579, 1579,
- 1579, 1579, 1579, 1579, 1579, 1579, 1583, 1583, 1583, 1583,
- 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
- 1597, 1597, 1597, 1597, 1601, 1601, 1601, 1601, 1607, 1607,
- 1607, 1607, 1607, 1607, 1609, 1609, 1613, 1613, 1613, 1613,
- 1619, 1619, 1619, 1619, 1619, 1619, 1621, 1621, 1627, 1627,
- 1627, 1627, 1627, 1627, 1637, 1637, 1637, 1637, 1637, 1637,
- 1637, 1637, 1637, 1637, 1657, 1657, 1657, 1657, 1657, 1657,
- 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
- 1657, 1657, 1657, 1657, 1663, 1663, 1663, 1663, 1663, 1663,
- 1667, 1667, 1667, 1667, 1669, 1669, 1693, 1693, 1693, 1693,
- 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
- 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
- 1697, 1697, 1697, 1697, 1699, 1699, 1709, 1709, 1709, 1709,
- 1709, 1709, 1709, 1709, 1709, 1709, 1721, 1721, 1721, 1721,
- 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1723, 1723,
- 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733,
- 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1747, 1747,
- 1747, 1747, 1747, 1747, 1753, 1753, 1753, 1753, 1753, 1753,
- 1759, 1759, 1759, 1759, 1759, 1759, 1777, 1777, 1777, 1777,
- 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777,
- 1777, 1777, 1777, 1777, 1783, 1783, 1783, 1783, 1783, 1783,
- 1787, 1787, 1787, 1787, 1789, 1789, 1801, 1801, 1801, 1801,
- 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1811, 1811,
- 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1823, 1823,
- 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823,
- 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1847, 1847,
- 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
- 1847, 1847, 1847, 1847, 1861, 1861, 1861, 1861, 1861, 1861,
- 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1867, 1867,
- 1867, 1867, 1867, 1867, 1871, 1871, 1871, 1871, 1873, 1873,
- 1877, 1877, 1877, 1877, 1879, 1879, 1889, 1889, 1889, 1889,
- 1889, 1889, 1889, 1889, 1889, 1889, 1901, 1901, 1901, 1901,
- 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1907, 1907,
- 1907, 1907, 1907, 1907, 1913, 1913, 1913, 1913, 1913, 1913,
- 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931,
- 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1933, 1933,
- 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 1949, 1951, 1951, 1973, 1973,
- 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973,
- 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973,
- 1979, 1979, 1979, 1979, 1979, 1979, 1987, 1987, 1987, 1987,
- 1987, 1987, 1987, 1987, 1993, 1993, 1993, 1993, 1993, 1993,
- 1997, 1997, 1997, 1997, 1999, 1999, 2003, 2003, 2003, 2003,
- 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2017, 2017,
- 2017, 2017, 2017, 2017, 2027, 2027, 2027, 2027, 2027, 2027,
- 2027, 2027, 2027, 2027, 2029, 2029, 2039, 2039, 2039, 2039,
- 2039, 2039, 2039, 2039, 2039, 2039, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2063, 2063, 2063, 2063, 2063, 2063, 2063, 2063, 2063, 2063,
- 2069, 2069, 2069, 2069, 2069, 2069, 2081, 2081, 2081, 2081,
- 2081, 2081, 2081, 2081, 2081, 2081, 2081, 2081, 2083, 2083,
- 2087, 2087, 2087, 2087, 2089, 2089, 2099, 2099, 2099, 2099,
- 2099, 2099, 2099, 2099, 2099, 2099, 2111, 2111, 2111, 2111,
- 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2113, 2113,
- 2129, 2129, 2129, 2129, 2129, 2129, 2129, 2129, 2129, 2129,
- 2129, 2129, 2129, 2129, 2129, 2129, 2131, 2131, 2137, 2137,
- 2137, 2137, 2137, 2137, 2141, 2141, 2141, 2141, 2143, 2143,
- 2153, 2153, 2153, 2153, 2153, 2153, 2153, 2153, 2153, 2153,
- 2161, 2161, 2161, 2161, 2161, 2161, 2161, 2161, 2179, 2179,
- 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179,
- 2179, 2179, 2179, 2179, 2179, 2179, 2203, 2203, 2203, 2203,
- 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
- 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
- 2207, 2207, 2207, 2207, 2213, 2213, 2213, 2213, 2213, 2213,
- 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2237, 2237,
- 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
- 2237, 2237, 2237, 2237, 2239, 2239, 2243, 2243, 2243, 2243,
- 2251, 2251, 2251, 2251, 2251, 2251, 2251, 2251, 2267, 2267,
- 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267,
- 2267, 2267, 2267, 2267, 2269, 2269, 2273, 2273, 2273, 2273,
- 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2287, 2287,
- 2287, 2287, 2287, 2287, 2293, 2293, 2293, 2293, 2293, 2293,
- 2297, 2297, 2297, 2297, 2309, 2309, 2309, 2309, 2309, 2309,
- 2309, 2309, 2309, 2309, 2309, 2309, 2311, 2311, 2333, 2333,
- 2333, 2333, 2333, 2333, 2333, 2333, 2333, 2333, 2333, 2333,
- 2333, 2333, 2333, 2333, 2333, 2333, 2333, 2333, 2333, 2333,
- 2339, 2339, 2339, 2339, 2339, 2339, 2341, 2341, 2347, 2347,
- 2347, 2347, 2347, 2347, 2351, 2351, 2351, 2351, 2357, 2357,
- 2357, 2357, 2357, 2357, 2371, 2371, 2371, 2371, 2371, 2371,
- 2371, 2371, 2371, 2371, 2371, 2371, 2371, 2371, 2377, 2377,
- 2377, 2377, 2377, 2377, 2381, 2381, 2381, 2381, 2383, 2383,
- 2389, 2389, 2389, 2389, 2389, 2389, 2393, 2393, 2393, 2393,
- 2399, 2399, 2399, 2399, 2399, 2399, 2411, 2411, 2411, 2411,
- 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2417, 2417,
- 2417, 2417, 2417, 2417, 2423, 2423, 2423, 2423, 2423, 2423,
- 2437, 2437, 2437, 2437, 2437, 2437, 2437, 2437, 2437, 2437,
- 2437, 2437, 2437, 2437, 2441, 2441, 2441, 2441, 2447, 2447,
- 2447, 2447, 2447, 2447, 2459, 2459, 2459, 2459, 2459, 2459,
- 2459, 2459, 2459, 2459, 2459, 2459, 2467, 2467, 2467, 2467,
- 2467, 2467, 2467, 2467, 2473, 2473, 2473, 2473, 2473, 2473,
- 2477, 2477, 2477, 2477, 2503, 2503, 2503, 2503, 2503, 2503,
- 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503,
- 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503,
- 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2521,
- 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2531, 2531,
- 2531, 2531, 2531, 2531, 2531, 2531, 2531, 2531, 2539, 2539,
- 2539, 2539, 2539, 2539, 2539, 2539, 2543, 2543, 2543, 2543,
- 2549, 2549, 2549, 2549, 2549, 2549, 2551, 2551, 2557, 2557,
- 2557, 2557, 2557, 2557, 2579, 2579, 2579, 2579, 2579, 2579,
- 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579,
- 2579, 2579, 2579, 2579, 2579, 2579, 2591, 2591, 2591, 2591,
- 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2593, 2593,
- 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609,
- 2609, 2609, 2609, 2609, 2609, 2609, 2617, 2617, 2617, 2617,
- 2617, 2617, 2617, 2617, 2621, 2621, 2621, 2621, 2633, 2633,
- 2633, 2633, 2633, 2633, 2633, 2633, 2633, 2633, 2633, 2633,
- 2647, 2647, 2647, 2647, 2647, 2647, 2647, 2647, 2647, 2647,
- 2647, 2647, 2647, 2647, 2657, 2657, 2657, 2657, 2657, 2657,
- 2657, 2657, 2657, 2657, 2659, 2659, 2663, 2663, 2663, 2663,
- 2671, 2671, 2671, 2671, 2671, 2671, 2671, 2671, 2677, 2677,
- 2677, 2677, 2677, 2677, 2683, 2683, 2683, 2683, 2683, 2683,
- 2687, 2687, 2687, 2687, 2689, 2689, 2693, 2693, 2693, 2693,
- 2699, 2699, 2699, 2699, 2699, 2699, 2707, 2707, 2707, 2707,
- 2707, 2707, 2707, 2707, 2711, 2711, 2711, 2711, 2713, 2713,
- 2719, 2719, 2719, 2719, 2719, 2719, 2729, 2729, 2729, 2729,
- 2729, 2729, 2729, 2729, 2729, 2729, 2731, 2731, 2741, 2741,
- 2741, 2741, 2741, 2741, 2741, 2741, 2741, 2741, 2749, 2749,
- 2749, 2749, 2749, 2749, 2749, 2749, 2753, 2753, 2753, 2753,
- 2767, 2767, 2767, 2767, 2767, 2767, 2767, 2767, 2767, 2767,
- 2767, 2767, 2767, 2767, 2777, 2777, 2777, 2777, 2777, 2777,
- 2777, 2777, 2777, 2777, 2789, 2789, 2789, 2789, 2789, 2789,
- 2789, 2789, 2789, 2789, 2789, 2789, 2791, 2791, 2797, 2797,
- 2797, 2797, 2797, 2797, 2801, 2801, 2801, 2801, 2803, 2803,
- 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819,
- 2819, 2819, 2819, 2819, 2819, 2819, 2833, 2833, 2833, 2833,
- 2833, 2833, 2833, 2833, 2833, 2833, 2833, 2833, 2833, 2833,
- 2837, 2837, 2837, 2837, 2843, 2843, 2843, 2843, 2843, 2843,
- 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2857, 2857,
- 2857, 2857, 2857, 2857, 2861, 2861, 2861, 2861, 2879, 2879,
- 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879,
- 2879, 2879, 2879, 2879, 2879, 2879, 2887, 2887, 2887, 2887,
- 2887, 2887, 2887, 2887, 2897, 2897, 2897, 2897, 2897, 2897,
- 2897, 2897, 2897, 2897, 2903, 2903, 2903, 2903, 2903, 2903,
- 2909, 2909, 2909, 2909, 2909, 2909, 2917, 2917, 2917, 2917,
- 2917, 2917, 2917, 2917, 2927, 2927, 2927, 2927, 2927, 2927,
- 2927, 2927, 2927, 2927, 2939, 2939, 2939, 2939, 2939, 2939,
- 2939, 2939, 2939, 2939, 2939, 2939, 2953, 2953, 2953, 2953,
- 2953, 2953, 2953, 2953, 2953, 2953, 2953, 2953, 2953, 2953,
- 2957, 2957, 2957, 2957, 2963, 2963, 2963, 2963, 2963, 2963,
- 2969, 2969, 2969, 2969, 2969, 2969, 2971, 2971, 2999, 2999,
- 2999, 2999, 2999, 2999, 2999, 2999, 2999, 2999, 2999, 2999,
- 2999, 2999, 2999, 2999, 2999, 2999, 2999, 2999, 2999, 2999,
- 2999, 2999, 2999, 2999, 2999, 2999, 3001, 3001, 3011, 3011,
- 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3019, 3019,
- 3019, 3019, 3019, 3019, 3019, 3019, 3023, 3023, 3023, 3023,
- 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037,
- 3037, 3037, 3037, 3037, 3041, 3041, 3041, 3041, 3049, 3049,
- 3049, 3049, 3049, 3049, 3049, 3049, 3061, 3061, 3061, 3061,
- 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3067, 3067,
- 3067, 3067, 3067, 3067, 3079, 3079, 3079, 3079, 3079, 3079,
- 3079, 3079, 3079, 3079, 3079, 3079, 3083, 3083, 3083, 3083,
- 3089, 3089, 3089, 3089, 3089, 3089, 3109, 3109, 3109, 3109,
- 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109,
- 3109, 3109, 3109, 3109, 3109, 3109, 3119, 3119, 3119, 3119,
- 3119, 3119, 3119, 3119, 3119, 3119, 3121, 3121, 3137, 3137,
- 3137, 3137, 3137, 3137, 3137, 3137, 3137, 3137, 3137, 3137,
- 3137, 3137, 3137, 3137, 3163, 3163, 3163, 3163, 3163, 3163,
- 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
- 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163,
- 3167, 3167, 3167, 3167, 3169, 3169, 3181, 3181, 3181, 3181,
- 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3187, 3187,
- 3187, 3187, 3187, 3187, 3191, 3191, 3191, 3191, 3203, 3203,
- 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203,
- 3209, 3209, 3209, 3209, 3209, 3209, 3217, 3217, 3217, 3217,
- 3217, 3217, 3217, 3217, 3221, 3221, 3221, 3221, 3229, 3229,
- 3229, 3229, 3229, 3229, 3229, 3229, 3251, 3251, 3251, 3251,
- 3251, 3251, 3251, 3251, 3251, 3251, 3251, 3251, 3251, 3251,
- 3251, 3251, 3251, 3251, 3251, 3251, 3251, 3251, 3253, 3253,
- 3257, 3257, 3257, 3257, 3259, 3259, 3271, 3271, 3271, 3271,
- 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3299, 3299,
- 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
- 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
- 3299, 3299, 3299, 3299, 3299, 3299, 3301, 3301, 3307, 3307,
- 3307, 3307, 3307, 3307, 3313, 3313, 3313, 3313, 3313, 3313,
- 3319, 3319, 3319, 3319, 3319, 3319, 3323, 3323, 3323, 3323,
- 3329, 3329, 3329, 3329, 3329, 3329, 3331, 3331, 3343, 3343,
- 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
- 3347, 3347, 3347, 3347, 3359, 3359, 3359, 3359, 3359, 3359,
- 3359, 3359, 3359, 3359, 3359, 3359, 3361, 3361, 3371, 3371,
- 3371, 3371, 3371, 3371, 3371, 3371, 3371, 3371, 3373, 3373,
- 3389, 3389, 3389, 3389, 3389, 3389, 3389, 3389, 3389, 3389,
- 3389, 3389, 3389, 3389, 3389, 3389, 3391, 3391, 3407, 3407,
- 3407, 3407, 3407, 3407, 3407, 3407, 3407, 3407, 3407, 3407,
- 3407, 3407, 3407, 3407, 3413, 3413, 3413, 3413, 3413, 3413,
- 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433,
- 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433, 3433,
- 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449,
- 3449, 3449, 3449, 3449, 3449, 3449, 3457, 3457, 3457, 3457,
- 3457, 3457, 3457, 3457, 3461, 3461, 3461, 3461, 3463, 3463,
- 3467, 3467, 3467, 3467, 3469, 3469, 3491, 3491, 3491, 3491,
- 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
- 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3499, 3499,
- 3499, 3499, 3499, 3499, 3499, 3499, 3511, 3511, 3511, 3511,
- 3511, 3511, 3511, 3511, 3511, 3511, 3511, 3511, 3517, 3517,
- 3517, 3517, 3517, 3517, 3527, 3527, 3527, 3527, 3527, 3527,
- 3527, 3527, 3527, 3527, 3529, 3529, 3533, 3533, 3533, 3533,
- 3539, 3539, 3539, 3539, 3539, 3539, 3541, 3541, 3547, 3547,
- 3547, 3547, 3547, 3547, 3557, 3557, 3557, 3557, 3557, 3557,
- 3557, 3557, 3557, 3557, 3559, 3559, 3571, 3571, 3571, 3571,
- 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3581, 3581,
- 3581, 3581, 3581, 3581, 3581, 3581, 3581, 3581, 3583, 3583,
- 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593,
- 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607,
- 3607, 3607, 3607, 3607, 3613, 3613, 3613, 3613, 3613, 3613,
- 3617, 3617, 3617, 3617, 3623, 3623, 3623, 3623, 3623, 3623,
- 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3637, 3637,
- 3637, 3637, 3637, 3637, 3643, 3643, 3643, 3643, 3643, 3643,
- 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659,
- 3659, 3659, 3659, 3659, 3659, 3659, 3671, 3671, 3671, 3671,
- 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3673, 3673,
- 3677, 3677, 3677, 3677, 3691, 3691, 3691, 3691, 3691, 3691,
- 3691, 3691, 3691, 3691, 3691, 3691, 3691, 3691, 3697, 3697,
- 3697, 3697, 3697, 3697, 3701, 3701, 3701, 3701, 3709, 3709,
- 3709, 3709, 3709, 3709, 3709, 3709, 3719, 3719, 3719, 3719,
- 3719, 3719, 3719, 3719, 3719, 3719, 3727, 3727, 3727, 3727,
- 3727, 3727, 3727, 3727, 3733, 3733, 3733, 3733, 3733, 3733,
- 3739, 3739, 3739, 3739, 3739, 3739, 3761, 3761, 3761, 3761,
- 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761,
- 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3767, 3767,
- 3767, 3767, 3767, 3767, 3769, 3769, 3779, 3779, 3779, 3779,
- 3779, 3779, 3779, 3779, 3779, 3779, 3793, 3793, 3793, 3793,
- 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793,
- 3797, 3797, 3797, 3797, 3803, 3803, 3803, 3803, 3803, 3803,
- 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821,
- 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3823, 3823,
- 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833,
- 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847,
- 3847, 3847, 3847, 3847, 3851, 3851, 3851, 3851, 3853, 3853,
- 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863,
- 3877, 3877, 3877, 3877, 3877, 3877, 3877, 3877, 3877, 3877,
- 3877, 3877, 3877, 3877, 3881, 3881, 3881, 3881, 3889, 3889,
- 3889, 3889, 3889, 3889, 3889, 3889, 3907, 3907, 3907, 3907,
- 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907,
- 3907, 3907, 3907, 3907, 3911, 3911, 3911, 3911, 3917, 3917,
- 3917, 3917, 3917, 3917, 3919, 3919, 3923, 3923, 3923, 3923,
- 3929, 3929, 3929, 3929, 3929, 3929, 3931, 3931, 3943, 3943,
- 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943,
- 3947, 3947, 3947, 3947, 3967, 3967, 3967, 3967, 3967, 3967,
- 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967,
- 3967, 3967, 3967, 3967, 3989, 3989, 3989, 3989, 3989, 3989,
- 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989,
- 3989, 3989, 3989, 3989, 3989, 3989, 4001, 4001, 4001, 4001,
- 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4003, 4003,
- 4007, 4007, 4007, 4007, 4013, 4013, 4013, 4013, 4013, 4013,
- 4019, 4019, 4019, 4019, 4019, 4019, 4021, 4021, 4027, 4027,
- 4027, 4027, 4027, 4027, 4049, 4049, 4049, 4049, 4049, 4049,
- 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
- 4049, 4049, 4049, 4049, 4049, 4049, 4051, 4051, 4057, 4057,
- 4057, 4057, 4057, 4057, 4073, 4073, 4073, 4073, 4073, 4073,
- 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073,
- 4079, 4079, 4079, 4079, 4079, 4079, 4091, 4091, 4091, 4091,
- 4091, 4091, 4091, 4091, 4091, 4091, 4091, 4091, 4093, 4093,
- 4099, 4099, 4099, 4099, 4099, 4099, 4111, 4111, 4111, 4111,
- 4111, 4111, 4111, 4111, 4111, 4111, 4111, 4111, 4127, 4127,
- 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127,
- 4127, 4127, 4127, 4127, 4129, 4129, 4133, 4133, 4133, 4133,
- 4139, 4139, 4139, 4139, 4139, 4139, 4153, 4153, 4153, 4153,
- 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
- 4157, 4157, 4157, 4157, 4159, 4159, 4177, 4177, 4177, 4177,
- 4177, 4177, 4177, 4177, 4177, 4177, 4177, 4177, 4177, 4177,
- 4177, 4177, 4177, 4177, 4201, 4201, 4201, 4201, 4201, 4201,
- 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201,
- 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4211, 4211,
- 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4217, 4217,
- 4217, 4217, 4217, 4217, 4219, 4219, 4229, 4229, 4229, 4229,
- 4229, 4229, 4229, 4229, 4229, 4229, 4231, 4231, 4241, 4241,
- 4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241, 4243, 4243,
- 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253,
- 4259, 4259, 4259, 4259, 4259, 4259, 4261, 4261, 4271, 4271,
- 4271, 4271, 4271, 4271, 4271, 4271, 4271, 4271, 4273, 4273,
- 4283, 4283, 4283, 4283, 4283, 4283, 4283, 4283, 4283, 4283,
- 4289, 4289, 4289, 4289, 4289, 4289, 4297, 4297, 4297, 4297,
- 4297, 4297, 4297, 4297, 4327, 4327, 4327, 4327, 4327, 4327,
- 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327,
- 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327,
- 4327, 4327, 4327, 4327, 4337, 4337, 4337, 4337, 4337, 4337,
- 4337, 4337, 4337, 4337, 4339, 4339, 4349, 4349, 4349, 4349,
- 4349, 4349, 4349, 4349, 4349, 4349, 4357, 4357, 4357, 4357,
- 4357, 4357, 4357, 4357, 4363, 4363, 4363, 4363, 4363, 4363,
- 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373,
- 4391, 4391, 4391, 4391, 4391, 4391, 4391, 4391, 4391, 4391,
- 4391, 4391, 4391, 4391, 4391, 4391, 4391, 4391, 4397, 4397,
- 4397, 4397, 4397, 4397, 4409, 4409, 4409, 4409, 4409, 4409,
- 4409, 4409, 4409, 4409, 4409, 4409, 4421, 4421, 4421, 4421,
- 4421, 4421, 4421, 4421, 4421, 4421, 4421, 4421, 4423, 4423,
- 4441, 4441, 4441, 4441, 4441, 4441, 4441, 4441, 4441, 4441,
- 4441, 4441, 4441, 4441, 4441, 4441, 4441, 4441, 4447, 4447,
- 4447, 4447, 4447, 4447, 4451, 4451, 4451, 4451, 4457, 4457,
- 4457, 4457, 4457, 4457, 4463, 4463, 4463, 4463, 4463, 4463,
- 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481,
- 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4483, 4483,
- 4493, 4493, 4493, 4493, 4493, 4493, 4493, 4493, 4493, 4493,
- 4507, 4507, 4507, 4507, 4507, 4507, 4507, 4507, 4507, 4507,
- 4507, 4507, 4507, 4507, 4513, 4513, 4513, 4513, 4513, 4513,
- 4517, 4517, 4517, 4517, 4519, 4519, 4523, 4523, 4523, 4523,
- 4547, 4547, 4547, 4547, 4547, 4547, 4547, 4547, 4547, 4547,
- 4547, 4547, 4547, 4547, 4547, 4547, 4547, 4547, 4547, 4547,
- 4547, 4547, 4547, 4547, 4549, 4549, 4561, 4561, 4561, 4561,
- 4561, 4561, 4561, 4561, 4561, 4561, 4561, 4561, 4567, 4567,
- 4567, 4567, 4567, 4567, 4583, 4583, 4583, 4583, 4583, 4583,
- 4583, 4583, 4583, 4583, 4583, 4583, 4583, 4583, 4583, 4583,
- 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4597, 4597,
- 4597, 4597, 4597, 4597, 4603, 4603, 4603, 4603, 4603, 4603,
- 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621,
- 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4637, 4637,
- 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
- 4637, 4637, 4637, 4637, 4639, 4639, 4643, 4643, 4643, 4643,
- 4649, 4649, 4649, 4649, 4649, 4649, 4651, 4651, 4657, 4657,
- 4657, 4657, 4657, 4657, 4663, 4663, 4663, 4663, 4663, 4663,
- 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673,
- 4679, 4679, 4679, 4679, 4679, 4679, 4691, 4691, 4691, 4691,
- 4691, 4691, 4691, 4691, 4691, 4691, 4691, 4691, 4703, 4703,
- 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703,
- 4721, 4721, 4721, 4721, 4721, 4721, 4721, 4721, 4721, 4721,
- 4721, 4721, 4721, 4721, 4721, 4721, 4721, 4721, 4723, 4723,
- 4729, 4729, 4729, 4729, 4729, 4729, 4733, 4733, 4733, 4733,
- 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751,
- 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4759, 4759,
- 4759, 4759, 4759, 4759, 4759, 4759, 4783, 4783, 4783, 4783,
- 4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783,
- 4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783,
- 4787, 4787, 4787, 4787, 4789, 4789, 4793, 4793, 4793, 4793,
- 4799, 4799, 4799, 4799, 4799, 4799, 4801, 4801, 4813, 4813,
- 4813, 4813, 4813, 4813, 4813, 4813, 4813, 4813, 4813, 4813,
- 4817, 4817, 4817, 4817, 4831, 4831, 4831, 4831, 4831, 4831,
- 4831, 4831, 4831, 4831, 4831, 4831, 4831, 4831, 4861, 4861,
- 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861,
- 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861,
- 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4871, 4871,
- 4871, 4871, 4871, 4871, 4871, 4871, 4871, 4871, 4877, 4877,
- 4877, 4877, 4877, 4877, 4889, 4889, 4889, 4889, 4889, 4889,
- 4889, 4889, 4889, 4889, 4889, 4889, 4903, 4903, 4903, 4903,
- 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903,
- 4909, 4909, 4909, 4909, 4909, 4909, 4919, 4919, 4919, 4919,
- 4919, 4919, 4919, 4919, 4919, 4919, 4931, 4931, 4931, 4931,
- 4931, 4931, 4931, 4931, 4931, 4931, 4931, 4931, 4933, 4933,
- 4937, 4937, 4937, 4937, 4943, 4943, 4943, 4943, 4943, 4943,
- 4951, 4951, 4951, 4951, 4951, 4951, 4951, 4951, 4957, 4957,
- 4957, 4957, 4957, 4957, 4967, 4967, 4967, 4967, 4967, 4967,
- 4967, 4967, 4967, 4967, 4969, 4969, 4973, 4973, 4973, 4973,
- 4987, 4987, 4987, 4987, 4987, 4987, 4987, 4987, 4987, 4987,
- 4987, 4987, 4987, 4987, 4993, 4993, 4993, 4993, 4993, 4993,
- 4999, 4999, 4999, 4999, 4999, 4999, 5003, 5003, 5003, 5003,
- 5009, 5009, 5009, 5009, 5009, 5009, 5011, 5011, 5021, 5021,
- 5021, 5021, 5021, 5021, 5021, 5021, 5021, 5021, 5023, 5023,
- 5039, 5039, 5039, 5039, 5039, 5039, 5039, 5039, 5039, 5039,
- 5039, 5039, 5039, 5039, 5039, 5039, 5051, 5051, 5051, 5051,
- 5051, 5051, 5051, 5051, 5051, 5051, 5051, 5051, 5059, 5059,
- 5059, 5059, 5059, 5059, 5059, 5059, 5077, 5077, 5077, 5077,
- 5077, 5077, 5077, 5077, 5077, 5077, 5077, 5077, 5077, 5077,
- 5077, 5077, 5077, 5077, 5081, 5081, 5081, 5081, 5087, 5087,
- 5087, 5087, 5087, 5087, 5099, 5099, 5099, 5099, 5099, 5099,
- 5099, 5099, 5099, 5099, 5099, 5099, 5101, 5101, 5107, 5107,
- 5107, 5107, 5107, 5107, 5113, 5113, 5113, 5113, 5113, 5113,
- 5119, 5119, 5119, 5119, 5119, 5119, 5147, 5147, 5147, 5147,
- 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147,
- 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147,
- 5147, 5147, 5147, 5147, 5153, 5153, 5153, 5153, 5153, 5153,
- 5167, 5167, 5167, 5167, 5167, 5167, 5167, 5167, 5167, 5167,
- 5167, 5167, 5167, 5167, 5171, 5171, 5171, 5171, 5179, 5179,
- 5179, 5179, 5179, 5179, 5179, 5179, 5189, 5189, 5189, 5189,
- 5189, 5189, 5189, 5189, 5189, 5189, 5197, 5197, 5197, 5197,
- 5197, 5197, 5197, 5197, 5209, 5209, 5209, 5209, 5209, 5209,
- 5209, 5209, 5209, 5209, 5209, 5209, 5227, 5227, 5227, 5227,
- 5227, 5227, 5227, 5227, 5227, 5227, 5227, 5227, 5227, 5227,
- 5227, 5227, 5227, 5227, 5231, 5231, 5231, 5231, 5233, 5233,
- 5237, 5237, 5237, 5237, 5261, 5261, 5261, 5261, 5261, 5261,
- 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261,
- 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5273, 5273,
- 5273, 5273, 5273, 5273, 5273, 5273, 5273, 5273, 5273, 5273,
- 5279, 5279, 5279, 5279, 5279, 5279, 5281, 5281, 5297, 5297,
- 5297, 5297, 5297, 5297, 5297, 5297, 5297, 5297, 5297, 5297,
- 5297, 5297, 5297, 5297, 5303, 5303, 5303, 5303, 5303, 5303,
- 5309, 5309, 5309, 5309, 5309, 5309, 5323, 5323, 5323, 5323,
- 5323, 5323, 5323, 5323, 5323, 5323, 5323, 5323, 5323, 5323,
- 5333, 5333, 5333, 5333, 5333, 5333, 5333, 5333, 5333, 5333,
- 5347, 5347, 5347, 5347, 5347, 5347, 5347, 5347, 5347, 5347,
- 5347, 5347, 5347, 5347, 5351, 5351, 5351, 5351, 5381, 5381,
- 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381,
- 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381,
- 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5387, 5387,
- 5387, 5387, 5387, 5387, 5393, 5393, 5393, 5393, 5393, 5393,
- 5399, 5399, 5399, 5399, 5399, 5399, 5407, 5407, 5407, 5407,
- 5407, 5407, 5407, 5407, 5413, 5413, 5413, 5413, 5413, 5413,
- 5417, 5417, 5417, 5417, 5419, 5419, 5431, 5431, 5431, 5431,
- 5431, 5431, 5431, 5431, 5431, 5431, 5431, 5431, 5437, 5437,
- 5437, 5437, 5437, 5437, 5441, 5441, 5441, 5441, 5443, 5443,
- 5449, 5449, 5449, 5449, 5449, 5449, 5471, 5471, 5471, 5471,
- 5471, 5471, 5471, 5471, 5471, 5471, 5471, 5471, 5471, 5471,
- 5471, 5471, 5471, 5471, 5471, 5471, 5471, 5471, 5477, 5477,
- 5477, 5477, 5477, 5477, 5479, 5479, 5483, 5483, 5483, 5483,
- 5501, 5501, 5501, 5501, 5501, 5501, 5501, 5501, 5501, 5501,
- 5501, 5501, 5501, 5501, 5501, 5501, 5501, 5501, 5503, 5503,
- 5507, 5507, 5507, 5507, 5519, 5519, 5519, 5519, 5519, 5519,
- 5519, 5519, 5519, 5519, 5519, 5519, 5521, 5521, 5527, 5527,
- 5527, 5527, 5527, 5527, 5531, 5531, 5531, 5531, 5557, 5557,
- 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557,
- 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557,
- 5557, 5557, 5557, 5557, 5563, 5563, 5563, 5563, 5563, 5563,
- 5569, 5569, 5569, 5569, 5569, 5569, 5573, 5573, 5573, 5573,
- 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5591, 5591,
- 5591, 5591, 5591, 5591, 5591, 5591, 5591, 5591, 5623, 5623,
- 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623,
- 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623,
- 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623,
- 5639, 5639, 5639, 5639, 5639, 5639, 5639, 5639, 5639, 5639,
- 5639, 5639, 5639, 5639, 5639, 5639, 5641, 5641, 5647, 5647,
- 5647, 5647, 5647, 5647, 5651, 5651, 5651, 5651, 5653, 5653,
- 5657, 5657, 5657, 5657, 5659, 5659, 5669, 5669, 5669, 5669,
- 5669, 5669, 5669, 5669, 5669, 5669, 5683, 5683, 5683, 5683,
- 5683, 5683, 5683, 5683, 5683, 5683, 5683, 5683, 5683, 5683,
- 5689, 5689, 5689, 5689, 5689, 5689, 5693, 5693, 5693, 5693,
- 5701, 5701, 5701, 5701, 5701, 5701, 5701, 5701, 5711, 5711,
- 5711, 5711, 5711, 5711, 5711, 5711, 5711, 5711, 5717, 5717,
- 5717, 5717, 5717, 5717, 5737, 5737, 5737, 5737, 5737, 5737,
- 5737, 5737, 5737, 5737, 5737, 5737, 5737, 5737, 5737, 5737,
- 5737, 5737, 5737, 5737, 5741, 5741, 5741, 5741, 5743, 5743,
- 5749, 5749, 5749, 5749, 5749, 5749, 5779, 5779, 5779, 5779,
- 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779,
- 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779,
- 5779, 5779, 5779, 5779, 5779, 5779, 5783, 5783, 5783, 5783,
- 5791, 5791, 5791, 5791, 5791, 5791, 5791, 5791, 5801, 5801,
- 5801, 5801, 5801, 5801, 5801, 5801, 5801, 5801, 5807, 5807,
- 5807, 5807, 5807, 5807, 5813, 5813, 5813, 5813, 5813, 5813,
- 5821, 5821, 5821, 5821, 5821, 5821, 5821, 5821, 5827, 5827,
- 5827, 5827, 5827, 5827, 5839, 5839, 5839, 5839, 5839, 5839,
- 5839, 5839, 5839, 5839, 5839, 5839, 5843, 5843, 5843, 5843,
- 5849, 5849, 5849, 5849, 5849, 5849, 5851, 5851, 5857, 5857,
- 5857, 5857, 5857, 5857, 5861, 5861, 5861, 5861, 5867, 5867,
- 5867, 5867, 5867, 5867, 5869, 5869, 5879, 5879, 5879, 5879,
- 5879, 5879, 5879, 5879, 5879, 5879, 5881, 5881, 5897, 5897,
- 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897,
- 5897, 5897, 5897, 5897, 5903, 5903, 5903, 5903, 5903, 5903,
- 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923,
- 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923,
- 5927, 5927, 5927, 5927, 5939, 5939, 5939, 5939, 5939, 5939,
- 5939, 5939, 5939, 5939, 5939, 5939, 5953, 5953, 5953, 5953,
- 5953, 5953, 5953, 5953, 5953, 5953, 5953, 5953, 5953, 5953,
- 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981,
- 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981,
- 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5987, 5987,
- 5987, 5987, 5987, 5987, 6007, 6007, 6007, 6007, 6007, 6007,
- 6007, 6007, 6007, 6007, 6007, 6007, 6007, 6007, 6007, 6007,
- 6007, 6007, 6007, 6007, 6011, 6011, 6011, 6011, 6029, 6029,
- 6029, 6029, 6029, 6029, 6029, 6029, 6029, 6029, 6029, 6029,
- 6029, 6029, 6029, 6029, 6029, 6029, 6037, 6037, 6037, 6037,
- 6037, 6037, 6037, 6037, 6043, 6043, 6043, 6043, 6043, 6043,
- 6047, 6047, 6047, 6047, 6053, 6053, 6053, 6053, 6053, 6053,
- 6067, 6067, 6067, 6067, 6067, 6067, 6067, 6067, 6067, 6067,
- 6067, 6067, 6067, 6067, 6073, 6073, 6073, 6073, 6073, 6073,
- 6079, 6079, 6079, 6079, 6079, 6079, 6089, 6089, 6089, 6089,
- 6089, 6089, 6089, 6089, 6089, 6089, 6091, 6091, 6101, 6101,
- 6101, 6101, 6101, 6101, 6101, 6101, 6101, 6101, 6113, 6113,
- 6113, 6113, 6113, 6113, 6113, 6113, 6113, 6113, 6113, 6113,
- 6121, 6121, 6121, 6121, 6121, 6121, 6121, 6121, 6131, 6131,
- 6131, 6131, 6131, 6131, 6131, 6131, 6131, 6131, 6133, 6133,
- 6143, 6143, 6143, 6143, 6143, 6143, 6143, 6143, 6143, 6143,
- 6151, 6151, 6151, 6151, 6151, 6151, 6151, 6151, 6163, 6163,
- 6163, 6163, 6163, 6163, 6163, 6163, 6163, 6163, 6163, 6163,
- 6173, 6173, 6173, 6173, 6173, 6173, 6173, 6173, 6173, 6173,
- 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197,
- 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197,
- 6197, 6197, 6197, 6197, 6199, 6199, 6203, 6203, 6203, 6203,
- 6211, 6211, 6211, 6211, 6211, 6211, 6211, 6211, 6217, 6217,
- 6217, 6217, 6217, 6217, 6221, 6221, 6221, 6221, 6229, 6229,
- 6229, 6229, 6229, 6229, 6229, 6229, 6247, 6247, 6247, 6247,
- 6247, 6247, 6247, 6247, 6247, 6247, 6247, 6247, 6247, 6247,
- 6247, 6247, 6247, 6247, 6257, 6257, 6257, 6257, 6257, 6257,
- 6257, 6257, 6257, 6257, 6263, 6263, 6263, 6263, 6263, 6263,
- 6269, 6269, 6269, 6269, 6269, 6269, 6271, 6271, 6277, 6277,
- 6277, 6277, 6277, 6277, 6287, 6287, 6287, 6287, 6287, 6287,
- 6287, 6287, 6287, 6287, 6299, 6299, 6299, 6299, 6299, 6299,
- 6299, 6299, 6299, 6299, 6299, 6299, 6301, 6301, 6311, 6311,
- 6311, 6311, 6311, 6311, 6311, 6311, 6311, 6311, 6317, 6317,
- 6317, 6317, 6317, 6317, 6323, 6323, 6323, 6323, 6323, 6323,
- 6329, 6329, 6329, 6329, 6329, 6329, 6337, 6337, 6337, 6337,
- 6337, 6337, 6337, 6337, 6343, 6343, 6343, 6343, 6343, 6343,
- 6353, 6353, 6353, 6353, 6353, 6353, 6353, 6353, 6353, 6353,
- 6359, 6359, 6359, 6359, 6359, 6359, 6361, 6361, 6367, 6367,
- 6367, 6367, 6367, 6367, 6373, 6373, 6373, 6373, 6373, 6373,
- 6379, 6379, 6379, 6379, 6379, 6379, 6389, 6389, 6389, 6389,
- 6389, 6389, 6389, 6389, 6389, 6389, 6397, 6397, 6397, 6397,
- 6397, 6397, 6397, 6397, 6421, 6421, 6421, 6421, 6421, 6421,
- 6421, 6421, 6421, 6421, 6421, 6421, 6421, 6421, 6421, 6421,
- 6421, 6421, 6421, 6421, 6421, 6421, 6421, 6421, 6427, 6427,
- 6427, 6427, 6427, 6427, 6449, 6449, 6449, 6449, 6449, 6449,
- 6449, 6449, 6449, 6449, 6449, 6449, 6449, 6449, 6449, 6449,
- 6449, 6449, 6449, 6449, 6449, 6449, 6451, 6451, 6469, 6469,
- 6469, 6469, 6469, 6469, 6469, 6469, 6469, 6469, 6469, 6469,
- 6469, 6469, 6469, 6469, 6469, 6469, 6473, 6473, 6473, 6473,
- 6481, 6481, 6481, 6481, 6481, 6481, 6481, 6481, 6491, 6491,
- 6491, 6491, 6491, 6491, 6491, 6491, 6491, 6491, 6521, 6521,
- 6521, 6521, 6521, 6521, 6521, 6521, 6521, 6521, 6521, 6521,
- 6521, 6521, 6521, 6521, 6521, 6521, 6521, 6521, 6521, 6521,
- 6521, 6521, 6521, 6521, 6521, 6521, 6521, 6521, 6529, 6529,
- 6529, 6529, 6529, 6529, 6529, 6529, 6547, 6547, 6547, 6547,
- 6547, 6547, 6547, 6547, 6547, 6547, 6547, 6547, 6547, 6547,
- 6547, 6547, 6547, 6547, 6551, 6551, 6551, 6551, 6553, 6553,
- 6563, 6563, 6563, 6563, 6563, 6563, 6563, 6563, 6563, 6563,
- 6569, 6569, 6569, 6569, 6569, 6569, 6571, 6571, 6577, 6577,
- 6577, 6577, 6577, 6577, 6581, 6581, 6581, 6581, 6599, 6599,
- 6599, 6599, 6599, 6599, 6599, 6599, 6599, 6599, 6599, 6599,
- 6599, 6599, 6599, 6599, 6599, 6599, 6607, 6607, 6607, 6607,
- 6607, 6607, 6607, 6607, 6619, 6619, 6619, 6619, 6619, 6619,
- 6619, 6619, 6619, 6619, 6619, 6619, 6637, 6637, 6637, 6637,
- 6637, 6637, 6637, 6637, 6637, 6637, 6637, 6637, 6637, 6637,
- 6637, 6637, 6637, 6637, 6653, 6653, 6653, 6653, 6653, 6653,
- 6653, 6653, 6653, 6653, 6653, 6653, 6653, 6653, 6653, 6653,
- 6659, 6659, 6659, 6659, 6659, 6659, 6661, 6661, 6673, 6673,
- 6673, 6673, 6673, 6673, 6673, 6673, 6673, 6673, 6673, 6673,
- 6679, 6679, 6679, 6679, 6679, 6679, 6689, 6689, 6689, 6689,
- 6689, 6689, 6689, 6689, 6689, 6689, 6691, 6691, 6701, 6701,
- 6701, 6701, 6701, 6701, 6701, 6701, 6701, 6701, 6703, 6703,
- 6709, 6709, 6709, 6709, 6709, 6709, 6719, 6719, 6719, 6719,
- 6719, 6719, 6719, 6719, 6719, 6719, 6733, 6733, 6733, 6733,
- 6733, 6733, 6733, 6733, 6733, 6733, 6733, 6733, 6733, 6733,
- 6737, 6737, 6737, 6737, 6761, 6761, 6761, 6761, 6761, 6761,
- 6761, 6761, 6761, 6761, 6761, 6761, 6761, 6761, 6761, 6761,
- 6761, 6761, 6761, 6761, 6761, 6761, 6761, 6761, 6763, 6763,
- 6779, 6779, 6779, 6779, 6779, 6779, 6779, 6779, 6779, 6779,
- 6779, 6779, 6779, 6779, 6779, 6779, 6781, 6781, 6791, 6791,
- 6791, 6791, 6791, 6791, 6791, 6791, 6791, 6791, 6793, 6793,
- 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6803, 6803,
- 6823, 6823, 6823, 6823, 6823, 6823, 6823, 6823, 6823, 6823,
- 6823, 6823, 6823, 6823, 6823, 6823, 6823, 6823, 6823, 6823,
- 6827, 6827, 6827, 6827, 6829, 6829, 6833, 6833, 6833, 6833,
- 6841, 6841, 6841, 6841, 6841, 6841, 6841, 6841, 6857, 6857,
- 6857, 6857, 6857, 6857, 6857, 6857, 6857, 6857, 6857, 6857,
- 6857, 6857, 6857, 6857, 6863, 6863, 6863, 6863, 6863, 6863,
- 6869, 6869, 6869, 6869, 6869, 6869, 6871, 6871, 6883, 6883,
- 6883, 6883, 6883, 6883, 6883, 6883, 6883, 6883, 6883, 6883,
- 6899, 6899, 6899, 6899, 6899, 6899, 6899, 6899, 6899, 6899,
- 6899, 6899, 6899, 6899, 6899, 6899, 6907, 6907, 6907, 6907,
- 6907, 6907, 6907, 6907, 6911, 6911, 6911, 6911, 6917, 6917,
- 6917, 6917, 6917, 6917, 6947, 6947, 6947, 6947, 6947, 6947,
- 6947, 6947, 6947, 6947, 6947, 6947, 6947, 6947, 6947, 6947,
- 6947, 6947, 6947, 6947, 6947, 6947, 6947, 6947, 6947, 6947,
- 6947, 6947, 6947, 6947, 6949, 6949, 6959, 6959, 6959, 6959,
- 6959, 6959, 6959, 6959, 6959, 6959, 6961, 6961, 6967, 6967,
- 6967, 6967, 6967, 6967, 6971, 6971, 6971, 6971, 6977, 6977,
- 6977, 6977, 6977, 6977, 6983, 6983, 6983, 6983, 6983, 6983,
- 6991, 6991, 6991, 6991, 6991, 6991, 6991, 6991, 6997, 6997,
- 6997, 6997, 6997, 6997, 7001, 7001, 7001, 7001, 7013, 7013,
- 7013, 7013, 7013, 7013, 7013, 7013, 7013, 7013, 7013, 7013,
- 7019, 7019, 7019, 7019, 7019, 7019, 7027, 7027, 7027, 7027,
- 7027, 7027, 7027, 7027, 7039, 7039, 7039, 7039, 7039, 7039,
- 7039, 7039, 7039, 7039, 7039, 7039, 7043, 7043, 7043, 7043,
- 7057, 7057, 7057, 7057, 7057, 7057, 7057, 7057, 7057, 7057,
- 7057, 7057, 7057, 7057, 7069, 7069, 7069, 7069, 7069, 7069,
- 7069, 7069, 7069, 7069, 7069, 7069, 7079, 7079, 7079, 7079,
- 7079, 7079, 7079, 7079, 7079, 7079, 7103, 7103, 7103, 7103,
- 7103, 7103, 7103, 7103, 7103, 7103, 7103, 7103, 7103, 7103,
- 7103, 7103, 7103, 7103, 7103, 7103, 7103, 7103, 7103, 7103,
- 7109, 7109, 7109, 7109, 7109, 7109, 7121, 7121, 7121, 7121,
- 7121, 7121, 7121, 7121, 7121, 7121, 7121, 7121, 7127, 7127,
- 7127, 7127, 7127, 7127, 7129, 7129, 7151, 7151, 7151, 7151,
- 7151, 7151, 7151, 7151, 7151, 7151, 7151, 7151, 7151, 7151,
- 7151, 7151, 7151, 7151, 7151, 7151, 7151, 7151, 7159, 7159,
- 7159, 7159, 7159, 7159, 7159, 7159, 7177, 7177, 7177, 7177,
- 7177, 7177, 7177, 7177, 7177, 7177, 7177, 7177, 7177, 7177,
- 7177, 7177, 7177, 7177, 7187, 7187, 7187, 7187, 7187, 7187,
- 7187, 7187, 7187, 7187, 7193, 7193, 7193, 7193, 7193, 7193,
- 7207, 7207, 7207, 7207, 7207, 7207, 7207, 7207, 7207, 7207,
- 7207, 7207, 7207, 7207, 7211, 7211, 7211, 7211, 7213, 7213,
- 7219, 7219, 7219, 7219, 7219, 7219, 7229, 7229, 7229, 7229,
- 7229, 7229, 7229, 7229, 7229, 7229, 7237, 7237, 7237, 7237,
- 7237, 7237, 7237, 7237, 7243, 7243, 7243, 7243, 7243, 7243,
- 7247, 7247, 7247, 7247, 7253, 7253, 7253, 7253, 7253, 7253,
- 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283,
- 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283,
- 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283, 7283,
- 7297, 7297, 7297, 7297, 7297, 7297, 7297, 7297, 7297, 7297,
- 7297, 7297, 7297, 7297, 7307, 7307, 7307, 7307, 7307, 7307,
- 7307, 7307, 7307, 7307, 7309, 7309, 7321, 7321, 7321, 7321,
- 7321, 7321, 7321, 7321, 7321, 7321, 7321, 7321, 7331, 7331,
- 7331, 7331, 7331, 7331, 7331, 7331, 7331, 7331, 7333, 7333,
- 7349, 7349, 7349, 7349, 7349, 7349, 7349, 7349, 7349, 7349,
- 7349, 7349, 7349, 7349, 7349, 7349, 7351, 7351, 7369, 7369,
- 7369, 7369, 7369, 7369, 7369, 7369, 7369, 7369, 7369, 7369,
- 7369, 7369, 7369, 7369, 7369, 7369, 7393, 7393, 7393, 7393,
- 7393, 7393, 7393, 7393, 7393, 7393, 7393, 7393, 7393, 7393,
- 7393, 7393, 7393, 7393, 7393, 7393, 7393, 7393, 7393, 7393,
- 7411, 7411, 7411, 7411, 7411, 7411, 7411, 7411, 7411, 7411,
- 7411, 7411, 7411, 7411, 7411, 7411, 7411, 7411, 7417, 7417,
- 7417, 7417, 7417, 7417, 7433, 7433, 7433, 7433, 7433, 7433,
- 7433, 7433, 7433, 7433, 7433, 7433, 7433, 7433, 7433, 7433,
- 7451, 7451, 7451, 7451, 7451, 7451, 7451, 7451, 7451, 7451,
- 7451, 7451, 7451, 7451, 7451, 7451, 7451, 7451, 7457, 7457,
- 7457, 7457, 7457, 7457, 7459, 7459, 7477, 7477, 7477, 7477,
- 7477, 7477, 7477, 7477, 7477, 7477, 7477, 7477, 7477, 7477,
- 7477, 7477, 7477, 7477, 7481, 7481, 7481, 7481, 7487, 7487,
- 7487, 7487, 7487, 7487, 7489, 7489, 7499, 7499, 7499, 7499,
- 7499, 7499, 7499, 7499, 7499, 7499, 7507, 7507, 7507, 7507,
- 7507, 7507, 7507, 7507, 7517, 7517, 7517, 7517, 7517, 7517,
- 7517, 7517, 7517, 7517, 7523, 7523, 7523, 7523, 7523, 7523,
- 7529, 7529, 7529, 7529, 7529, 7529, 7537, 7537, 7537, 7537,
- 7537, 7537, 7537, 7537, 7541, 7541, 7541, 7541, 7547, 7547,
- 7547, 7547, 7547, 7547, 7549, 7549, 7559, 7559, 7559, 7559,
- 7559, 7559, 7559, 7559, 7559, 7559, 7561, 7561, 7573, 7573,
- 7573, 7573, 7573, 7573, 7573, 7573, 7573, 7573, 7573, 7573,
- 7577, 7577, 7577, 7577, 7583, 7583, 7583, 7583, 7583, 7583,
- 7589, 7589, 7589, 7589, 7589, 7589, 7591, 7591, 7603, 7603,
- 7603, 7603, 7603, 7603, 7603, 7603, 7603, 7603, 7603, 7603,
- 7607, 7607, 7607, 7607, 7621, 7621, 7621, 7621, 7621, 7621,
- 7621, 7621, 7621, 7621, 7621, 7621, 7621, 7621, 7639, 7639,
- 7639, 7639, 7639, 7639, 7639, 7639, 7639, 7639, 7639, 7639,
- 7639, 7639, 7639, 7639, 7639, 7639, 7643, 7643, 7643, 7643,
- 7649, 7649, 7649, 7649, 7649, 7649, 7669, 7669, 7669, 7669,
- 7669, 7669, 7669, 7669, 7669, 7669, 7669, 7669, 7669, 7669,
- 7669, 7669, 7669, 7669, 7669, 7669, 7673, 7673, 7673, 7673,
- 7681, 7681, 7681, 7681, 7681, 7681, 7681, 7681, 7687, 7687,
- 7687, 7687, 7687, 7687, 7691, 7691, 7691, 7691, 7699, 7699,
- 7699, 7699, 7699, 7699, 7699, 7699, 7703, 7703, 7703, 7703,
- 7717, 7717, 7717, 7717, 7717, 7717, 7717, 7717, 7717, 7717,
- 7717, 7717, 7717, 7717, 7723, 7723, 7723, 7723, 7723, 7723,
- 7727, 7727, 7727, 7727, 7741, 7741, 7741, 7741, 7741, 7741,
- 7741, 7741, 7741, 7741, 7741, 7741, 7741, 7741, 7753, 7753,
- 7753, 7753, 7753, 7753, 7753, 7753, 7753, 7753, 7753, 7753,
- 7757, 7757, 7757, 7757, 7759, 7759, 7789, 7789, 7789, 7789,
- 7789, 7789, 7789, 7789, 7789, 7789, 7789, 7789, 7789, 7789,
- 7789, 7789, 7789, 7789, 7789, 7789, 7789, 7789, 7789, 7789,
- 7789, 7789, 7789, 7789, 7789, 7789, 7793, 7793, 7793, 7793,
- 7817, 7817, 7817, 7817, 7817, 7817, 7817, 7817, 7817, 7817,
- 7817, 7817, 7817, 7817, 7817, 7817, 7817, 7817, 7817, 7817,
- 7817, 7817, 7817, 7817, 7823, 7823, 7823, 7823, 7823, 7823,
- 7829, 7829, 7829, 7829, 7829, 7829, 7841, 7841, 7841, 7841,
- 7841, 7841, 7841, 7841, 7841, 7841, 7841, 7841, 7853, 7853,
- 7853, 7853, 7853, 7853, 7853, 7853, 7853, 7853, 7853, 7853,
- 7867, 7867, 7867, 7867, 7867, 7867, 7867, 7867, 7867, 7867,
- 7867, 7867, 7867, 7867, 7873, 7873, 7873, 7873, 7873, 7873,
- 7877, 7877, 7877, 7877, 7879, 7879, 7883, 7883, 7883, 7883,
- 7901, 7901, 7901, 7901, 7901, 7901, 7901, 7901, 7901, 7901,
- 7901, 7901, 7901, 7901, 7901, 7901, 7901, 7901, 7907, 7907,
- 7907, 7907, 7907, 7907, 7919, 7919, 7919, 7919, 7919, 7919,
- 7919, 7919, 7919, 7919, 7919, 7919, 7927, 7927, 7927, 7927,
- 7927, 7927, 7927, 7927, 7933, 7933, 7933, 7933, 7933, 7933,
- 7937, 7937, 7937, 7937, 7949, 7949, 7949, 7949, 7949, 7949,
- 7949, 7949, 7949, 7949, 7949, 7949, 7951, 7951, 7963, 7963,
- 7963, 7963, 7963, 7963, 7963, 7963, 7963, 7963, 7963, 7963,
- 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993,
- 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993,
- 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993, 7993,
- 8009, 8009, 8009, 8009, 8009, 8009, 8009, 8009, 8009, 8009,
- 8009, 8009, 8009, 8009, 8009, 8009, 8011, 8011, 8017, 8017,
- 8017, 8017, 8017, 8017, 8039, 8039, 8039, 8039, 8039, 8039,
- 8039, 8039, 8039, 8039, 8039, 8039, 8039, 8039, 8039, 8039,
- 8039, 8039, 8039, 8039, 8039, 8039, 8053, 8053, 8053, 8053,
- 8053, 8053, 8053, 8053, 8053, 8053, 8053, 8053, 8053, 8053,
- 8059, 8059, 8059, 8059, 8059, 8059, 8069, 8069, 8069, 8069,
- 8069, 8069, 8069, 8069, 8069, 8069, 8081, 8081, 8081, 8081,
- 8081, 8081, 8081, 8081, 8081, 8081, 8081, 8081, 8087, 8087,
- 8087, 8087, 8087, 8087, 8089, 8089, 8093, 8093, 8093, 8093,
- 8101, 8101, 8101, 8101, 8101, 8101, 8101, 8101, 8111, 8111,
- 8111, 8111, 8111, 8111, 8111, 8111, 8111, 8111, 8117, 8117,
- 8117, 8117, 8117, 8117, 8123, 8123, 8123, 8123, 8123, 8123,
- 8147, 8147, 8147, 8147, 8147, 8147, 8147, 8147, 8147, 8147,
- 8147, 8147, 8147, 8147, 8147, 8147, 8147, 8147, 8147, 8147,
- 8147, 8147, 8147, 8147, 8161, 8161, 8161, 8161, 8161, 8161,
- 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8161, 8167, 8167,
- 8167, 8167, 8167, 8167, 8171, 8171, 8171, 8171, 8179, 8179,
- 8179, 8179, 8179, 8179, 8179, 8179, 8191, 8191, 8191, 8191,
- 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8209, 8209,
- 8209, 8209, 8209, 8209, 8209, 8209, 8209, 8209, 8209, 8209,
- 8209, 8209, 8209, 8209, 8209, 8209, 8219, 8219, 8219, 8219,
- 8219, 8219, 8219, 8219, 8219, 8219, 8221, 8221, 8231, 8231,
- 8231, 8231, 8231, 8231, 8231, 8231, 8231, 8231, 8233, 8233,
- 8237, 8237, 8237, 8237, 8243, 8243, 8243, 8243, 8243, 8243,
- 8263, 8263, 8263, 8263, 8263, 8263, 8263, 8263, 8263, 8263,
- 8263, 8263, 8263, 8263, 8263, 8263, 8263, 8263, 8263, 8263,
- 8269, 8269, 8269, 8269, 8269, 8269, 8273, 8273, 8273, 8273,
- 8287, 8287, 8287, 8287, 8287, 8287, 8287, 8287, 8287, 8287,
- 8287, 8287, 8287, 8287, 8291, 8291, 8291, 8291, 8293, 8293,
- 8297, 8297, 8297, 8297, 8311, 8311, 8311, 8311, 8311, 8311,
- 8311, 8311, 8311, 8311, 8311, 8311, 8311, 8311, 8317, 8317,
- 8317, 8317, 8317, 8317, 8329, 8329, 8329, 8329, 8329, 8329,
- 8329, 8329, 8329, 8329, 8329, 8329, 8353, 8353, 8353, 8353,
- 8353, 8353, 8353, 8353, 8353, 8353, 8353, 8353, 8353, 8353,
- 8353, 8353, 8353, 8353, 8353, 8353, 8353, 8353, 8353, 8353,
- 8363, 8363, 8363, 8363, 8363, 8363, 8363, 8363, 8363, 8363,
- 8369, 8369, 8369, 8369, 8369, 8369, 8377, 8377, 8377, 8377,
- 8377, 8377, 8377, 8377, 8387, 8387, 8387, 8387, 8387, 8387,
- 8387, 8387, 8387, 8387, 8389, 8389, 8419, 8419, 8419, 8419,
- 8419, 8419, 8419, 8419, 8419, 8419, 8419, 8419, 8419, 8419,
- 8419, 8419, 8419, 8419, 8419, 8419, 8419, 8419, 8419, 8419,
- 8419, 8419, 8419, 8419, 8419, 8419, 8423, 8423, 8423, 8423,
- 8429, 8429, 8429, 8429, 8429, 8429, 8431, 8431, 8443, 8443,
- 8443, 8443, 8443, 8443, 8443, 8443, 8443, 8443, 8443, 8443,
- 8447, 8447, 8447, 8447, 8461, 8461, 8461, 8461, 8461, 8461,
- 8461, 8461, 8461, 8461, 8461, 8461, 8461, 8461, 8467, 8467,
- 8467, 8467, 8467, 8467, 8501, 8501, 8501, 8501, 8501, 8501,
- 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501,
- 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501,
- 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8501, 8513, 8513,
- 8513, 8513, 8513, 8513, 8513, 8513, 8513, 8513, 8513, 8513,
- 8521, 8521, 8521, 8521, 8521, 8521, 8521, 8521, 8527, 8527,
- 8527, 8527, 8527, 8527, 8537, 8537, 8537, 8537, 8537, 8537,
- 8537, 8537, 8537, 8537, 8539, 8539, 8543, 8543, 8543, 8543,
- 8563, 8563, 8563, 8563, 8563, 8563, 8563, 8563, 8563, 8563,
- 8563, 8563, 8563, 8563, 8563, 8563, 8563, 8563, 8563, 8563,
- 8573, 8573, 8573, 8573, 8573, 8573, 8573, 8573, 8573, 8573,
- 8581, 8581, 8581, 8581, 8581, 8581, 8581, 8581, 8597, 8597,
- 8597, 8597, 8597, 8597, 8597, 8597, 8597, 8597, 8597, 8597,
- 8597, 8597, 8597, 8597, 8599, 8599, 8609, 8609, 8609, 8609,
- 8609, 8609, 8609, 8609, 8609, 8609, 8623, 8623, 8623, 8623,
- 8623, 8623, 8623, 8623, 8623, 8623, 8623, 8623, 8623, 8623,
- 8627, 8627, 8627, 8627, 8629, 8629, 8641, 8641, 8641, 8641,
- 8641, 8641, 8641, 8641, 8641, 8641, 8641, 8641, 8647, 8647,
- 8647, 8647, 8647, 8647, 8663, 8663, 8663, 8663, 8663, 8663,
- 8663, 8663, 8663, 8663, 8663, 8663, 8663, 8663, 8663, 8663,
- 8669, 8669, 8669, 8669, 8669, 8669, 8677, 8677, 8677, 8677,
- 8677, 8677, 8677, 8677, 8681, 8681, 8681, 8681, 8689, 8689,
- 8689, 8689, 8689, 8689, 8689, 8689, 8693, 8693, 8693, 8693,
- 8699, 8699, 8699, 8699, 8699, 8699, 8707, 8707, 8707, 8707,
- 8707, 8707, 8707, 8707, 8713, 8713, 8713, 8713, 8713, 8713,
- 8719, 8719, 8719, 8719, 8719, 8719, 8731, 8731, 8731, 8731,
- 8731, 8731, 8731, 8731, 8731, 8731, 8731, 8731, 8737, 8737,
- 8737, 8737, 8737, 8737, 8741, 8741, 8741, 8741, 8747, 8747,
- 8747, 8747, 8747, 8747, 8753, 8753, 8753, 8753, 8753, 8753,
- 8761, 8761, 8761, 8761, 8761, 8761, 8761, 8761, 8779, 8779,
- 8779, 8779, 8779, 8779, 8779, 8779, 8779, 8779, 8779, 8779,
- 8779, 8779, 8779, 8779, 8779, 8779, 8783, 8783, 8783, 8783,
- 8803, 8803, 8803, 8803, 8803, 8803, 8803, 8803, 8803, 8803,
- 8803, 8803, 8803, 8803, 8803, 8803, 8803, 8803, 8803, 8803,
- 8807, 8807, 8807, 8807, 8819, 8819, 8819, 8819, 8819, 8819,
- 8819, 8819, 8819, 8819, 8819, 8819, 8821, 8821, 8831, 8831,
- 8831, 8831, 8831, 8831, 8831, 8831, 8831, 8831, 8837, 8837,
- 8837, 8837, 8837, 8837, 8839, 8839, 8849, 8849, 8849, 8849,
- 8849, 8849, 8849, 8849, 8849, 8849, 8861, 8861, 8861, 8861,
- 8861, 8861, 8861, 8861, 8861, 8861, 8861, 8861, 8863, 8863,
- 8867, 8867, 8867, 8867, 8887, 8887, 8887, 8887, 8887, 8887,
- 8887, 8887, 8887, 8887, 8887, 8887, 8887, 8887, 8887, 8887,
- 8887, 8887, 8887, 8887, 8893, 8893, 8893, 8893, 8893, 8893,
- 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923,
- 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923,
- 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923, 8923,
- 8929, 8929, 8929, 8929, 8929, 8929, 8933, 8933, 8933, 8933,
- 8941, 8941, 8941, 8941, 8941, 8941, 8941, 8941, 8951, 8951,
- 8951, 8951, 8951, 8951, 8951, 8951, 8951, 8951, 8963, 8963,
- 8963, 8963, 8963, 8963, 8963, 8963, 8963, 8963, 8963, 8963,
- 8969, 8969, 8969, 8969, 8969, 8969, 8971, 8971, 8999, 8999,
- 8999, 8999, 8999, 8999, 8999, 8999, 8999, 8999, 8999, 8999,
- 8999, 8999, 8999, 8999, 8999, 8999, 8999, 8999, 8999, 8999,
- 8999, 8999, 8999, 8999, 8999, 8999, 9001, 9001, 9007, 9007,
- 9007, 9007, 9007, 9007, 9011, 9011, 9011, 9011, 9013, 9013,
- 9029, 9029, 9029, 9029, 9029, 9029, 9029, 9029, 9029, 9029,
- 9029, 9029, 9029, 9029, 9029, 9029, 9041, 9041, 9041, 9041,
- 9041, 9041, 9041, 9041, 9041, 9041, 9041, 9041, 9043, 9043,
- 9049, 9049, 9049, 9049, 9049, 9049, 9059, 9059, 9059, 9059,
- 9059, 9059, 9059, 9059, 9059, 9059, 9067, 9067, 9067, 9067,
- 9067, 9067, 9067, 9067, 9091, 9091, 9091, 9091, 9091, 9091,
- 9091, 9091, 9091, 9091, 9091, 9091, 9091, 9091, 9091, 9091,
- 9091, 9091, 9091, 9091, 9091, 9091, 9091, 9091, 9103, 9103,
- 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103,
- 9109, 9109, 9109, 9109, 9109, 9109, 9127, 9127, 9127, 9127,
- 9127, 9127, 9127, 9127, 9127, 9127, 9127, 9127, 9127, 9127,
- 9127, 9127, 9127, 9127, 9133, 9133, 9133, 9133, 9133, 9133,
- 9137, 9137, 9137, 9137, 9151, 9151, 9151, 9151, 9151, 9151,
- 9151, 9151, 9151, 9151, 9151, 9151, 9151, 9151, 9157, 9157,
- 9157, 9157, 9157, 9157, 9161, 9161, 9161, 9161, 9173, 9173,
- 9173, 9173, 9173, 9173, 9173, 9173, 9173, 9173, 9173, 9173,
- 9181, 9181, 9181, 9181, 9181, 9181, 9181, 9181, 9187, 9187,
- 9187, 9187, 9187, 9187, 9199, 9199, 9199, 9199, 9199, 9199,
- 9199, 9199, 9199, 9199, 9199, 9199, 9203, 9203, 9203, 9203,
- 9209, 9209, 9209, 9209, 9209, 9209, 9221, 9221, 9221, 9221,
- 9221, 9221, 9221, 9221, 9221, 9221, 9221, 9221, 9227, 9227,
- 9227, 9227, 9227, 9227, 9239, 9239, 9239, 9239, 9239, 9239,
- 9239, 9239, 9239, 9239, 9239, 9239, 9241, 9241, 9257, 9257,
- 9257, 9257, 9257, 9257, 9257, 9257, 9257, 9257, 9257, 9257,
- 9257, 9257, 9257, 9257, 9277, 9277, 9277, 9277, 9277, 9277,
- 9277, 9277, 9277, 9277, 9277, 9277, 9277, 9277, 9277, 9277,
- 9277, 9277, 9277, 9277, 9281, 9281, 9281, 9281, 9283, 9283,
- 9293, 9293, 9293, 9293, 9293, 9293, 9293, 9293, 9293, 9293,
- 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311,
- 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9311, 9319, 9319,
- 9319, 9319, 9319, 9319, 9319, 9319, 9323, 9323, 9323, 9323,
- 9337, 9337, 9337, 9337, 9337, 9337, 9337, 9337, 9337, 9337,
- 9337, 9337, 9337, 9337, 9341, 9341, 9341, 9341, 9343, 9343,
- 9349, 9349, 9349, 9349, 9349, 9349, 9371, 9371, 9371, 9371,
- 9371, 9371, 9371, 9371, 9371, 9371, 9371, 9371, 9371, 9371,
- 9371, 9371, 9371, 9371, 9371, 9371, 9371, 9371, 9377, 9377,
- 9377, 9377, 9377, 9377, 9391, 9391, 9391, 9391, 9391, 9391,
- 9391, 9391, 9391, 9391, 9391, 9391, 9391, 9391, 9397, 9397,
- 9397, 9397, 9397, 9397, 9403, 9403, 9403, 9403, 9403, 9403,
- 9413, 9413, 9413, 9413, 9413, 9413, 9413, 9413, 9413, 9413,
- 9419, 9419, 9419, 9419, 9419, 9419, 9421, 9421, 9431, 9431,
- 9431, 9431, 9431, 9431, 9431, 9431, 9431, 9431, 9433, 9433,
- 9437, 9437, 9437, 9437, 9439, 9439, 9461, 9461, 9461, 9461,
- 9461, 9461, 9461, 9461, 9461, 9461, 9461, 9461, 9461, 9461,
- 9461, 9461, 9461, 9461, 9461, 9461, 9461, 9461, 9463, 9463,
- 9467, 9467, 9467, 9467, 9473, 9473, 9473, 9473, 9473, 9473,
- 9479, 9479, 9479, 9479, 9479, 9479, 9491, 9491, 9491, 9491,
- 9491, 9491, 9491, 9491, 9491, 9491, 9491, 9491, 9497, 9497,
- 9497, 9497, 9497, 9497, 9511, 9511, 9511, 9511, 9511, 9511,
- 9511, 9511, 9511, 9511, 9511, 9511, 9511, 9511, 9521, 9521,
- 9521, 9521, 9521, 9521, 9521, 9521, 9521, 9521, 9533, 9533,
- 9533, 9533, 9533, 9533, 9533, 9533, 9533, 9533, 9533, 9533,
- 9539, 9539, 9539, 9539, 9539, 9539, 9547, 9547, 9547, 9547,
- 9547, 9547, 9547, 9547, 9551, 9551, 9551, 9551, 9587, 9587,
- 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587,
- 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587,
- 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587, 9587,
- 9587, 9587, 9587, 9587, 9601, 9601, 9601, 9601, 9601, 9601,
- 9601, 9601, 9601, 9601, 9601, 9601, 9601, 9601, 9613, 9613,
- 9613, 9613, 9613, 9613, 9613, 9613, 9613, 9613, 9613, 9613,
- 9619, 9619, 9619, 9619, 9619, 9619, 9623, 9623, 9623, 9623,
- 9629, 9629, 9629, 9629, 9629, 9629, 9631, 9631, 9643, 9643,
- 9643, 9643, 9643, 9643, 9643, 9643, 9643, 9643, 9643, 9643,
- 9649, 9649, 9649, 9649, 9649, 9649, 9661, 9661, 9661, 9661,
- 9661, 9661, 9661, 9661, 9661, 9661, 9661, 9661, 9677, 9677,
- 9677, 9677, 9677, 9677, 9677, 9677, 9677, 9677, 9677, 9677,
- 9677, 9677, 9677, 9677, 9679, 9679, 9689, 9689, 9689, 9689,
- 9689, 9689, 9689, 9689, 9689, 9689, 9697, 9697, 9697, 9697,
- 9697, 9697, 9697, 9697, 9719, 9719, 9719, 9719, 9719, 9719,
- 9719, 9719, 9719, 9719, 9719, 9719, 9719, 9719, 9719, 9719,
- 9719, 9719, 9719, 9719, 9719, 9719, 9721, 9721, 9733, 9733,
- 9733, 9733, 9733, 9733, 9733, 9733, 9733, 9733, 9733, 9733,
- 9739, 9739, 9739, 9739, 9739, 9739, 9743, 9743, 9743, 9743,
- 9749, 9749, 9749, 9749, 9749, 9749, 9767, 9767, 9767, 9767,
- 9767, 9767, 9767, 9767, 9767, 9767, 9767, 9767, 9767, 9767,
- 9767, 9767, 9767, 9767, 9769, 9769, 9781, 9781, 9781, 9781,
- 9781, 9781, 9781, 9781, 9781, 9781, 9781, 9781, 9787, 9787,
- 9787, 9787, 9787, 9787, 9791, 9791, 9791, 9791, 9803, 9803,
- 9803, 9803, 9803, 9803, 9803, 9803, 9803, 9803, 9803, 9803,
- 9811, 9811, 9811, 9811, 9811, 9811, 9811, 9811, 9817, 9817,
- 9817, 9817, 9817, 9817, 9829, 9829, 9829, 9829, 9829, 9829,
- 9829, 9829, 9829, 9829, 9829, 9829, 9833, 9833, 9833, 9833,
- 9839, 9839, 9839, 9839, 9839, 9839, 9851, 9851, 9851, 9851,
- 9851, 9851, 9851, 9851, 9851, 9851, 9851, 9851, 9857, 9857,
- 9857, 9857, 9857, 9857, 9859, 9859, 9871, 9871, 9871, 9871,
- 9871, 9871, 9871, 9871, 9871, 9871, 9871, 9871, 9883, 9883,
- 9883, 9883, 9883, 9883, 9883, 9883, 9883, 9883, 9883, 9883,
- 9887, 9887, 9887, 9887, 9901, 9901, 9901, 9901, 9901, 9901,
- 9901, 9901, 9901, 9901, 9901, 9901, 9901, 9901, 9907, 9907,
- 9907, 9907, 9907, 9907, 9923, 9923, 9923, 9923, 9923, 9923,
- 9923, 9923, 9923, 9923, 9923, 9923, 9923, 9923, 9923, 9923,
- 9929, 9929, 9929, 9929, 9929, 9929, 9931, 9931, 9941, 9941,
- 9941, 9941, 9941, 9941, 9941, 9941, 9941, 9941, 9949, 9949,
- 9949, 9949, 9949, 9949, 9949, 9949, 9967, 9967, 9967, 9967,
- 9967, 9967, 9967, 9967, 9967, 9967, 9967, 9967, 9967, 9967,
- 9967, 9967, 9967, 9967, 9973, 9973, 9973, 9973, 9973, 9973,
- 10007, 10007, 10007, 10007, 10007, 10007, 10007, 10007,
- 10007, 10007, 10007, 10007, 10007, 10007, 10007, 10007,
- 10007, 10007, 10007, 10007, 10007, 10007, 10007, 10007,
- 10007, 10007, 10007, 10007, 10007, 10007, 10007, 10007,
- 10007, 10007, 10009, 10009, 10037, 10037, 10037, 10037,
- 10037, 10037, 10037, 10037, 10037, 10037, 10037, 10037,
- 10037, 10037, 10037, 10037, 10037, 10037, 10037, 10037,
- 10037, 10037, 10037, 10037, 10037, 10037, 10037, 10037,
- 10039, 10039, 10061, 10061, 10061, 10061, 10061, 10061,
- 10061, 10061, 10061, 10061, 10061, 10061, 10061, 10061,
- 10061, 10061, 10061, 10061, 10061, 10061, 10061, 10061,
- 10067, 10067, 10067, 10067, 10067, 10067, 10069, 10069,
- 10079, 10079, 10079, 10079, 10079, 10079, 10079, 10079,
- 10079, 10079, 10091, 10091, 10091, 10091, 10091, 10091,
- 10091, 10091, 10091, 10091, 10091, 10091, 10093, 10093,
- 10099, 10099, 10099, 10099, 10099, 10099, 10103, 10103,
- 10103, 10103, 10111, 10111, 10111, 10111, 10111, 10111,
- 10111, 10111, 10133, 10133, 10133, 10133, 10133, 10133,
- 10133, 10133, 10133, 10133, 10133, 10133, 10133, 10133,
- 10133, 10133, 10133, 10133, 10133, 10133, 10133, 10133,
- 10139, 10139, 10139, 10139, 10139, 10139, 10141, 10141,
- 10151, 10151, 10151, 10151, 10151, 10151, 10151, 10151,
- 10151, 10151, 10159, 10159, 10159, 10159, 10159, 10159,
- 10159, 10159, 10163, 10163, 10163, 10163, 10169, 10169,
- 10169, 10169, 10169, 10169, 10177, 10177, 10177, 10177,
- 10177, 10177, 10177, 10177, 10181, 10181, 10181, 10181,
- 10193, 10193, 10193, 10193, 10193, 10193, 10193, 10193,
- 10193, 10193, 10193, 10193, 10211, 10211, 10211, 10211,
- 10211, 10211, 10211, 10211, 10211, 10211, 10211, 10211,
- 10211, 10211, 10211, 10211, 10211, 10211, 10223, 10223,
- 10223, 10223, 10223, 10223, 10223, 10223, 10223, 10223,
- 10223, 10223, 10243, 10243, 10243, 10243, 10243, 10243,
- 10243, 10243, 10243, 10243, 10243, 10243, 10243, 10243,
- 10243, 10243, 10243, 10243, 10243, 10243, 10247, 10247,
- 10247, 10247, 10253, 10253, 10253, 10253, 10253, 10253,
- 10259, 10259, 10259, 10259, 10259, 10259, 10267, 10267,
- 10267, 10267, 10267, 10267, 10267, 10267, 10271, 10271,
- 10271, 10271, 10273, 10273, 10289, 10289, 10289, 10289,
- 10289, 10289, 10289, 10289, 10289, 10289, 10289, 10289,
- 10289, 10289, 10289, 10289, 10301, 10301, 10301, 10301,
- 10301, 10301, 10301, 10301, 10301, 10301, 10301, 10301,
- 10303, 10303, 10313, 10313, 10313, 10313, 10313, 10313,
- 10313, 10313, 10313, 10313, 10321, 10321, 10321, 10321,
- 10321, 10321, 10321, 10321, 10331, 10331, 10331, 10331,
- 10331, 10331, 10331, 10331, 10331, 10331, 10333, 10333,
- 10337, 10337, 10337, 10337, 10343, 10343, 10343, 10343,
- 10343, 10343, 10357, 10357, 10357, 10357, 10357, 10357,
- 10357, 10357, 10357, 10357, 10357, 10357, 10357, 10357,
- 10369, 10369, 10369, 10369, 10369, 10369, 10369, 10369,
- 10369, 10369, 10369, 10369, 10391, 10391, 10391, 10391,
- 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,
- 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,
- 10391, 10391, 10399, 10399, 10399, 10399, 10399, 10399,
- 10399, 10399, 10427, 10427, 10427, 10427, 10427, 10427,
- 10427, 10427, 10427, 10427, 10427, 10427, 10427, 10427,
- 10427, 10427, 10427, 10427, 10427, 10427, 10427, 10427,
- 10427, 10427, 10427, 10427, 10427, 10427, 10429, 10429,
- 10433, 10433, 10433, 10433, 10453, 10453, 10453, 10453,
- 10453, 10453, 10453, 10453, 10453, 10453, 10453, 10453,
- 10453, 10453, 10453, 10453, 10453, 10453, 10453, 10453,
- 10457, 10457, 10457, 10457, 10459, 10459, 10463, 10463,
- 10463, 10463, 10477, 10477, 10477, 10477, 10477, 10477,
- 10477, 10477, 10477, 10477, 10477, 10477, 10477, 10477,
- 10487, 10487, 10487, 10487, 10487, 10487, 10487, 10487,
- 10487, 10487, 10499, 10499, 10499, 10499, 10499, 10499,
- 10499, 10499, 10499, 10499, 10499, 10499, 10501, 10501,
- 10513, 10513, 10513, 10513, 10513, 10513, 10513, 10513,
- 10513, 10513, 10513, 10513, 10529, 10529, 10529, 10529,
- 10529, 10529, 10529, 10529, 10529, 10529, 10529, 10529,
- 10529, 10529, 10529, 10529, 10531, 10531, 10559, 10559,
- 10559, 10559, 10559, 10559, 10559, 10559, 10559, 10559,
- 10559, 10559, 10559, 10559, 10559, 10559, 10559, 10559,
- 10559, 10559, 10559, 10559, 10559, 10559, 10559, 10559,
- 10559, 10559, 10567, 10567, 10567, 10567, 10567, 10567,
- 10567, 10567, 10589, 10589, 10589, 10589, 10589, 10589,
- 10589, 10589, 10589, 10589, 10589, 10589, 10589, 10589,
- 10589, 10589, 10589, 10589, 10589, 10589, 10589, 10589,
- 10597, 10597, 10597, 10597, 10597, 10597, 10597, 10597,
- 10601, 10601, 10601, 10601, 10607, 10607, 10607, 10607,
- 10607, 10607, 10613, 10613, 10613, 10613, 10613, 10613,
- 10627, 10627, 10627, 10627, 10627, 10627, 10627, 10627,
- 10627, 10627, 10627, 10627, 10627, 10627, 10631, 10631,
- 10631, 10631, 10639, 10639, 10639, 10639, 10639, 10639,
- 10639, 10639, 10651, 10651, 10651, 10651, 10651, 10651,
- 10651, 10651, 10651, 10651, 10651, 10651, 10657, 10657,
- 10657, 10657, 10657, 10657, 10663, 10663, 10663, 10663,
- 10663, 10663, 10667, 10667, 10667, 10667, 10687, 10687,
- 10687, 10687, 10687, 10687, 10687, 10687, 10687, 10687,
- 10687, 10687, 10687, 10687, 10687, 10687, 10687, 10687,
- 10687, 10687, 10691, 10691, 10691, 10691, 10709, 10709,
- 10709, 10709, 10709, 10709, 10709, 10709, 10709, 10709,
- 10709, 10709, 10709, 10709, 10709, 10709, 10709, 10709,
- 10711, 10711, 10723, 10723, 10723, 10723, 10723, 10723,
- 10723, 10723, 10723, 10723, 10723, 10723, 10729, 10729,
- 10729, 10729, 10729, 10729, 10733, 10733, 10733, 10733,
- 10739, 10739, 10739, 10739, 10739, 10739, 10753, 10753,
- 10753, 10753, 10753, 10753, 10753, 10753, 10753, 10753,
- 10753, 10753, 10753, 10753, 10771, 10771, 10771, 10771,
- 10771, 10771, 10771, 10771, 10771, 10771, 10771, 10771,
- 10771, 10771, 10771, 10771, 10771, 10771, 10781, 10781,
- 10781, 10781, 10781, 10781, 10781, 10781, 10781, 10781,
- 10789, 10789, 10789, 10789, 10789, 10789, 10789, 10789,
- 10799, 10799, 10799, 10799, 10799, 10799, 10799, 10799,
- 10799, 10799, 10831, 10831, 10831, 10831, 10831, 10831,
- 10831, 10831, 10831, 10831, 10831, 10831, 10831, 10831,
- 10831, 10831, 10831, 10831, 10831, 10831, 10831, 10831,
- 10831, 10831, 10831, 10831, 10831, 10831, 10831, 10831,
- 10831, 10831, 10837, 10837, 10837, 10837, 10837, 10837,
- 10847, 10847, 10847, 10847, 10847, 10847, 10847, 10847,
- 10847, 10847, 10853, 10853, 10853, 10853, 10853, 10853,
- 10859, 10859, 10859, 10859, 10859, 10859, 10861, 10861,
- 10867, 10867, 10867, 10867, 10867, 10867, 10883, 10883,
- 10883, 10883, 10883, 10883, 10883, 10883, 10883, 10883,
- 10883, 10883, 10883, 10883, 10883, 10883, 10889, 10889,
- 10889, 10889, 10889, 10889, 10891, 10891, 10903, 10903,
- 10903, 10903, 10903, 10903, 10903, 10903, 10903, 10903,
- 10903, 10903, 10909, 10909, 10909, 10909, 10909, 10909,
- 10937, 10937, 10937, 10937, 10937, 10937, 10937, 10937,
- 10937, 10937, 10937, 10937, 10937, 10937, 10937, 10937,
- 10937, 10937, 10937, 10937, 10937, 10937, 10937, 10937,
- 10937, 10937, 10937, 10937, 10939, 10939, 10949, 10949,
- 10949, 10949, 10949, 10949, 10949, 10949, 10949, 10949,
- 10957, 10957, 10957, 10957, 10957, 10957, 10957, 10957,
- 10973, 10973, 10973, 10973, 10973, 10973, 10973, 10973,
- 10973, 10973, 10973, 10973, 10973, 10973, 10973, 10973,
- 10979, 10979, 10979, 10979, 10979, 10979, 10987, 10987,
- 10987, 10987, 10987, 10987, 10987, 10987, 10993, 10993,
- 10993, 10993, 10993, 10993, 11003, 11003, 11003, 11003,
- 11003, 11003, 11003, 11003, 11003, 11003, 11027, 11027,
- 11027, 11027, 11027, 11027, 11027, 11027, 11027, 11027,
- 11027, 11027, 11027, 11027, 11027, 11027, 11027, 11027,
- 11027, 11027, 11027, 11027, 11027, 11027, 11047, 11047,
- 11047, 11047, 11047, 11047, 11047, 11047, 11047, 11047,
- 11047, 11047, 11047, 11047, 11047, 11047, 11047, 11047,
- 11047, 11047, 11057, 11057, 11057, 11057, 11057, 11057,
- 11057, 11057, 11057, 11057, 11059, 11059, 11069, 11069,
- 11069, 11069, 11069, 11069, 11069, 11069, 11069, 11069,
- 11071, 11071, 11083, 11083, 11083, 11083, 11083, 11083,
- 11083, 11083, 11083, 11083, 11083, 11083, 11087, 11087,
- 11087, 11087, 11093, 11093, 11093, 11093, 11093, 11093,
- 11113, 11113, 11113, 11113, 11113, 11113, 11113, 11113,
- 11113, 11113, 11113, 11113, 11113, 11113, 11113, 11113,
- 11113, 11113, 11113, 11113, 11117, 11117, 11117, 11117,
- 11119, 11119, 11131, 11131, 11131, 11131, 11131, 11131,
- 11131, 11131, 11131, 11131, 11131, 11131, 11149, 11149,
- 11149, 11149, 11149, 11149, 11149, 11149, 11149, 11149,
- 11149, 11149, 11149, 11149, 11149, 11149, 11149, 11149,
- 11159, 11159, 11159, 11159, 11159, 11159, 11159, 11159,
- 11159, 11159, 11161, 11161, 11171, 11171, 11171, 11171,
- 11171, 11171, 11171, 11171, 11171, 11171, 11173, 11173,
- 11177, 11177, 11177, 11177, 11197, 11197, 11197, 11197,
- 11197, 11197, 11197, 11197, 11197, 11197, 11197, 11197,
- 11197, 11197, 11197, 11197, 11197, 11197, 11197, 11197,
- 11213, 11213, 11213, 11213, 11213, 11213, 11213, 11213,
- 11213, 11213, 11213, 11213, 11213, 11213, 11213, 11213,
- 11239, 11239, 11239, 11239, 11239, 11239, 11239, 11239,
- 11239, 11239, 11239, 11239, 11239, 11239, 11239, 11239,
- 11239, 11239, 11239, 11239, 11239, 11239, 11239, 11239,
- 11239, 11239, 11243, 11243, 11243, 11243, 11251, 11251,
- 11251, 11251, 11251, 11251, 11251, 11251, 11257, 11257,
- 11257, 11257, 11257, 11257, 11261, 11261, 11261, 11261,
- 11273, 11273, 11273, 11273, 11273, 11273, 11273, 11273,
- 11273, 11273, 11273, 11273, 11279, 11279, 11279, 11279,
- 11279, 11279, 11287, 11287, 11287, 11287, 11287, 11287,
- 11287, 11287, 11299, 11299, 11299, 11299, 11299, 11299,
- 11299, 11299, 11299, 11299, 11299, 11299, 11311, 11311,
- 11311, 11311, 11311, 11311, 11311, 11311, 11311, 11311,
- 11311, 11311, 11317, 11317, 11317, 11317, 11317, 11317,
- 11321, 11321, 11321, 11321, 11329, 11329, 11329, 11329,
- 11329, 11329, 11329, 11329, 11351, 11351, 11351, 11351,
- 11351, 11351, 11351, 11351, 11351, 11351, 11351, 11351,
- 11351, 11351, 11351, 11351, 11351, 11351, 11351, 11351,
- 11351, 11351, 11353, 11353, 11369, 11369, 11369, 11369,
- 11369, 11369, 11369, 11369, 11369, 11369, 11369, 11369,
- 11369, 11369, 11369, 11369, 11383, 11383, 11383, 11383,
- 11383, 11383, 11383, 11383, 11383, 11383, 11383, 11383,
- 11383, 11383, 11393, 11393, 11393, 11393, 11393, 11393,
- 11393, 11393, 11393, 11393, 11399, 11399, 11399, 11399,
- 11399, 11399, 11411, 11411, 11411, 11411, 11411, 11411,
- 11411, 11411, 11411, 11411, 11411, 11411, 11423, 11423,
- 11423, 11423, 11423, 11423, 11423, 11423, 11423, 11423,
- 11423, 11423, 11437, 11437, 11437, 11437, 11437, 11437,
- 11437, 11437, 11437, 11437, 11437, 11437, 11437, 11437,
- 11443, 11443, 11443, 11443, 11443, 11443, 11447, 11447,
- 11447, 11447, 11467, 11467, 11467, 11467, 11467, 11467,
- 11467, 11467, 11467, 11467, 11467, 11467, 11467, 11467,
- 11467, 11467, 11467, 11467, 11467, 11467, 11471, 11471,
- 11471, 11471, 11483, 11483, 11483, 11483, 11483, 11483,
- 11483, 11483, 11483, 11483, 11483, 11483, 11489, 11489,
- 11489, 11489, 11489, 11489, 11491, 11491, 11497, 11497,
- 11497, 11497, 11497, 11497, 11503, 11503, 11503, 11503,
- 11503, 11503, 11519, 11519, 11519, 11519, 11519, 11519,
- 11519, 11519, 11519, 11519, 11519, 11519, 11519, 11519,
- 11519, 11519, 11527, 11527, 11527, 11527, 11527, 11527,
- 11527, 11527, 11549, 11549, 11549, 11549, 11549, 11549,
- 11549, 11549, 11549, 11549, 11549, 11549, 11549, 11549,
- 11549, 11549, 11549, 11549, 11549, 11549, 11549, 11549,
- 11551, 11551, 11579, 11579, 11579, 11579, 11579, 11579,
- 11579, 11579, 11579, 11579, 11579, 11579, 11579, 11579,
- 11579, 11579, 11579, 11579, 11579, 11579, 11579, 11579,
- 11579, 11579, 11579, 11579, 11579, 11579, 11587, 11587,
- 11587, 11587, 11587, 11587, 11587, 11587, 11593, 11593,
- 11593, 11593, 11593, 11593, 11597, 11597, 11597, 11597,
- 11617, 11617, 11617, 11617, 11617, 11617, 11617, 11617,
- 11617, 11617, 11617, 11617, 11617, 11617, 11617, 11617,
- 11617, 11617, 11617, 11617, 11621, 11621, 11621, 11621,
- 11633, 11633, 11633, 11633, 11633, 11633, 11633, 11633,
- 11633, 11633, 11633, 11633, 11657, 11657, 11657, 11657,
- 11657, 11657, 11657, 11657, 11657, 11657, 11657, 11657,
- 11657, 11657, 11657, 11657, 11657, 11657, 11657, 11657,
- 11657, 11657, 11657, 11657, 11677, 11677, 11677, 11677,
- 11677, 11677, 11677, 11677, 11677, 11677, 11677, 11677,
- 11677, 11677, 11677, 11677, 11677, 11677, 11677, 11677,
- 11681, 11681, 11681, 11681, 11689, 11689, 11689, 11689,
- 11689, 11689, 11689, 11689, 11699, 11699, 11699, 11699,
- 11699, 11699, 11699, 11699, 11699, 11699, 11701, 11701,
- 11717, 11717, 11717, 11717, 11717, 11717, 11717, 11717,
- 11717, 11717, 11717, 11717, 11717, 11717, 11717, 11717,
- 11719, 11719, 11731, 11731, 11731, 11731, 11731, 11731,
- 11731, 11731, 11731, 11731, 11731, 11731, 11743, 11743,
- 11743, 11743, 11743, 11743, 11743, 11743, 11743, 11743,
- 11743, 11743, 11777, 11777, 11777, 11777, 11777, 11777,
- 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777,
- 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777,
- 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777,
- 11777, 11777, 11777, 11777, 11779, 11779, 11783, 11783,
- 11783, 11783, 11789, 11789, 11789, 11789, 11789, 11789,
- 11801, 11801, 11801, 11801, 11801, 11801, 11801, 11801,
- 11801, 11801, 11801, 11801, 11807, 11807, 11807, 11807,
- 11807, 11807, 11813, 11813, 11813, 11813, 11813, 11813,
- 11821, 11821, 11821, 11821, 11821, 11821, 11821, 11821,
- 11827, 11827, 11827, 11827, 11827, 11827, 11831, 11831,
- 11831, 11831, 11833, 11833, 11839, 11839, 11839, 11839,
- 11839, 11839, 11863, 11863, 11863, 11863, 11863, 11863,
- 11863, 11863, 11863, 11863, 11863, 11863, 11863, 11863,
- 11863, 11863, 11863, 11863, 11863, 11863, 11863, 11863,
- 11863, 11863, 11867, 11867, 11867, 11867, 11887, 11887,
- 11887, 11887, 11887, 11887, 11887, 11887, 11887, 11887,
- 11887, 11887, 11887, 11887, 11887, 11887, 11887, 11887,
- 11887, 11887, 11897, 11897, 11897, 11897, 11897, 11897,
- 11897, 11897, 11897, 11897, 11903, 11903, 11903, 11903,
- 11903, 11903, 11909, 11909, 11909, 11909, 11909, 11909,
- 11923, 11923, 11923, 11923, 11923, 11923, 11923, 11923,
- 11923, 11923, 11923, 11923, 11923, 11923, 11927, 11927,
- 11927, 11927, 11933, 11933, 11933, 11933, 11933, 11933,
- 11939, 11939, 11939, 11939, 11939, 11939, 11941, 11941,
- 11953, 11953, 11953, 11953, 11953, 11953, 11953, 11953,
- 11953, 11953, 11953, 11953, 11959, 11959, 11959, 11959,
- 11959, 11959, 11969, 11969, 11969, 11969, 11969, 11969,
- 11969, 11969, 11969, 11969, 11971, 11971, 11981, 11981,
- 11981, 11981, 11981, 11981, 11981, 11981, 11981, 11981,
- 11987, 11987, 11987, 11987, 11987, 11987, 12007, 12007,
- 12007, 12007, 12007, 12007, 12007, 12007, 12007, 12007,
- 12007, 12007, 12007, 12007, 12007, 12007, 12007, 12007,
- 12007, 12007, 12011, 12011, 12011, 12011, 12037, 12037,
- 12037, 12037, 12037, 12037, 12037, 12037, 12037, 12037,
- 12037, 12037, 12037, 12037, 12037, 12037, 12037, 12037,
- 12037, 12037, 12037, 12037, 12037, 12037, 12037, 12037,
- 12041, 12041, 12041, 12041, 12043, 12043, 12049, 12049,
- 12049, 12049, 12049, 12049, 12071, 12071, 12071, 12071,
- 12071, 12071, 12071, 12071, 12071, 12071, 12071, 12071,
- 12071, 12071, 12071, 12071, 12071, 12071, 12071, 12071,
- 12071, 12071, 12073, 12073, 12097, 12097, 12097, 12097,
- 12097, 12097, 12097, 12097, 12097, 12097, 12097, 12097,
- 12097, 12097, 12097, 12097, 12097, 12097, 12097, 12097,
- 12097, 12097, 12097, 12097, 12101, 12101, 12101, 12101,
- 12107, 12107, 12107, 12107, 12107, 12107, 12109, 12109,
- 12113, 12113, 12113, 12113, 12119, 12119, 12119, 12119,
- 12119, 12119, 12143, 12143, 12143, 12143, 12143, 12143,
- 12143, 12143, 12143, 12143, 12143, 12143, 12143, 12143,
- 12143, 12143, 12143, 12143, 12143, 12143, 12143, 12143,
- 12143, 12143, 12149, 12149, 12149, 12149, 12149, 12149,
- 12157, 12157, 12157, 12157, 12157, 12157, 12157, 12157,
- 12161, 12161, 12161, 12161, 12163, 12163, 12197, 12197,
- 12197, 12197, 12197, 12197, 12197, 12197, 12197, 12197,
- 12197, 12197, 12197, 12197, 12197, 12197, 12197, 12197,
- 12197, 12197, 12197, 12197, 12197, 12197, 12197, 12197,
- 12197, 12197, 12197, 12197, 12197, 12197, 12197, 12197,
- 12203, 12203, 12203, 12203, 12203, 12203, 12211, 12211,
- 12211, 12211, 12211, 12211, 12211, 12211, 12227, 12227,
- 12227, 12227, 12227, 12227, 12227, 12227, 12227, 12227,
- 12227, 12227, 12227, 12227, 12227, 12227, 12239, 12239,
- 12239, 12239, 12239, 12239, 12239, 12239, 12239, 12239,
- 12239, 12239, 12241, 12241, 12251, 12251, 12251, 12251,
- 12251, 12251, 12251, 12251, 12251, 12251, 12253, 12253,
- 12263, 12263, 12263, 12263, 12263, 12263, 12263, 12263,
- 12263, 12263, 12269, 12269, 12269, 12269, 12269, 12269,
- 12277, 12277, 12277, 12277, 12277, 12277, 12277, 12277,
- 12281, 12281, 12281, 12281, 12289, 12289, 12289, 12289,
- 12289, 12289, 12289, 12289, 12301, 12301, 12301, 12301,
- 12301, 12301, 12301, 12301, 12301, 12301, 12301, 12301,
- 12323, 12323, 12323, 12323, 12323, 12323, 12323, 12323,
- 12323, 12323, 12323, 12323, 12323, 12323, 12323, 12323,
- 12323, 12323, 12323, 12323, 12323, 12323, 12329, 12329,
- 12329, 12329, 12329, 12329, 12343, 12343, 12343, 12343,
- 12343, 12343, 12343, 12343, 12343, 12343, 12343, 12343,
- 12343, 12343, 12347, 12347, 12347, 12347, 12373, 12373,
- 12373, 12373, 12373, 12373, 12373, 12373, 12373, 12373,
- 12373, 12373, 12373, 12373, 12373, 12373, 12373, 12373,
- 12373, 12373, 12373, 12373, 12373, 12373, 12373, 12373,
- 12377, 12377, 12377, 12377, 12379, 12379, 12391, 12391,
- 12391, 12391, 12391, 12391, 12391, 12391, 12391, 12391,
- 12391, 12391, 12401, 12401, 12401, 12401, 12401, 12401,
- 12401, 12401, 12401, 12401, 12409, 12409, 12409, 12409,
- 12409, 12409, 12409, 12409, 12413, 12413, 12413, 12413,
- 12421, 12421, 12421, 12421, 12421, 12421, 12421, 12421,
- 12433, 12433, 12433, 12433, 12433, 12433, 12433, 12433,
- 12433, 12433, 12433, 12433, 12437, 12437, 12437, 12437,
- 12451, 12451, 12451, 12451, 12451, 12451, 12451, 12451,
- 12451, 12451, 12451, 12451, 12451, 12451, 12457, 12457,
- 12457, 12457, 12457, 12457, 12473, 12473, 12473, 12473,
- 12473, 12473, 12473, 12473, 12473, 12473, 12473, 12473,
- 12473, 12473, 12473, 12473, 12479, 12479, 12479, 12479,
- 12479, 12479, 12487, 12487, 12487, 12487, 12487, 12487,
- 12487, 12487, 12491, 12491, 12491, 12491, 12497, 12497,
- 12497, 12497, 12497, 12497, 12503, 12503, 12503, 12503,
- 12503, 12503, 12511, 12511, 12511, 12511, 12511, 12511,
- 12511, 12511, 12517, 12517, 12517, 12517, 12517, 12517,
- 12527, 12527, 12527, 12527, 12527, 12527, 12527, 12527,
- 12527, 12527, 12539, 12539, 12539, 12539, 12539, 12539,
- 12539, 12539, 12539, 12539, 12539, 12539, 12541, 12541,
- 12547, 12547, 12547, 12547, 12547, 12547, 12553, 12553,
- 12553, 12553, 12553, 12553, 12569, 12569, 12569, 12569,
- 12569, 12569, 12569, 12569, 12569, 12569, 12569, 12569,
- 12569, 12569, 12569, 12569, 12577, 12577, 12577, 12577,
- 12577, 12577, 12577, 12577, 12583, 12583, 12583, 12583,
- 12583, 12583, 12589, 12589, 12589, 12589, 12589, 12589,
- 12601, 12601, 12601, 12601, 12601, 12601, 12601, 12601,
- 12601, 12601, 12601, 12601, 12611, 12611, 12611, 12611,
- 12611, 12611, 12611, 12611, 12611, 12611, 12613, 12613,
- 12619, 12619, 12619, 12619, 12619, 12619, 12637, 12637,
- 12637, 12637, 12637, 12637, 12637, 12637, 12637, 12637,
- 12637, 12637, 12637, 12637, 12637, 12637, 12637, 12637,
- 12641, 12641, 12641, 12641, 12647, 12647, 12647, 12647,
- 12647, 12647, 12653, 12653, 12653, 12653, 12653, 12653,
- 12659, 12659, 12659, 12659, 12659, 12659, 12671, 12671,
- 12671, 12671, 12671, 12671, 12671, 12671, 12671, 12671,
- 12671, 12671, 12689, 12689, 12689, 12689, 12689, 12689,
- 12689, 12689, 12689, 12689, 12689, 12689, 12689, 12689,
- 12689, 12689, 12689, 12689, 12697, 12697, 12697, 12697,
- 12697, 12697, 12697, 12697, 12703, 12703, 12703, 12703,
- 12703, 12703, 12713, 12713, 12713, 12713, 12713, 12713,
- 12713, 12713, 12713, 12713, 12721, 12721, 12721, 12721,
- 12721, 12721, 12721, 12721, 12739, 12739, 12739, 12739,
- 12739, 12739, 12739, 12739, 12739, 12739, 12739, 12739,
- 12739, 12739, 12739, 12739, 12739, 12739, 12743, 12743,
- 12743, 12743, 12757, 12757, 12757, 12757, 12757, 12757,
- 12757, 12757, 12757, 12757, 12757, 12757, 12757, 12757,
- 12763, 12763, 12763, 12763, 12763, 12763, 12781, 12781,
- 12781, 12781, 12781, 12781, 12781, 12781, 12781, 12781,
- 12781, 12781, 12781, 12781, 12781, 12781, 12781, 12781,
- 12791, 12791, 12791, 12791, 12791, 12791, 12791, 12791,
- 12791, 12791, 12799, 12799, 12799, 12799, 12799, 12799,
- 12799, 12799, 12809, 12809, 12809, 12809, 12809, 12809,
- 12809, 12809, 12809, 12809, 12821, 12821, 12821, 12821,
- 12821, 12821, 12821, 12821, 12821, 12821, 12821, 12821,
- 12823, 12823, 12829, 12829, 12829, 12829, 12829, 12829,
- 12841, 12841, 12841, 12841, 12841, 12841, 12841, 12841,
- 12841, 12841, 12841, 12841, 12853, 12853, 12853, 12853,
- 12853, 12853, 12853, 12853, 12853, 12853, 12853, 12853,
- 12889, 12889, 12889, 12889, 12889, 12889, 12889, 12889,
- 12889, 12889, 12889, 12889, 12889, 12889, 12889, 12889,
- 12889, 12889, 12889, 12889, 12889, 12889, 12889, 12889,
- 12889, 12889, 12889, 12889, 12889, 12889, 12889, 12889,
- 12889, 12889, 12889, 12889, 12893, 12893, 12893, 12893,
- 12899, 12899, 12899, 12899, 12899, 12899, 12907, 12907,
- 12907, 12907, 12907, 12907, 12907, 12907, 12911, 12911,
- 12911, 12911, 12917, 12917, 12917, 12917, 12917, 12917,
- 12919, 12919, 12923, 12923, 12923, 12923, 12941, 12941,
- 12941, 12941, 12941, 12941, 12941, 12941, 12941, 12941,
- 12941, 12941, 12941, 12941, 12941, 12941, 12941, 12941,
- 12953, 12953, 12953, 12953, 12953, 12953, 12953, 12953,
- 12953, 12953, 12953, 12953, 12959, 12959, 12959, 12959,
- 12959, 12959, 12967, 12967, 12967, 12967, 12967, 12967,
- 12967, 12967, 12973, 12973, 12973, 12973, 12973, 12973,
- 12979, 12979, 12979, 12979, 12979, 12979, 12983, 12983,
- 12983, 12983, 13001, 13001, 13001, 13001, 13001, 13001,
- 13001, 13001, 13001, 13001, 13001, 13001, 13001, 13001,
- 13001, 13001, 13001, 13001, 13003, 13003, 13007, 13007,
- 13007, 13007, 13009, 13009, 13033, 13033, 13033, 13033,
- 13033, 13033, 13033, 13033, 13033, 13033, 13033, 13033,
- 13033, 13033, 13033, 13033, 13033, 13033, 13033, 13033,
- 13033, 13033, 13033, 13033, 13037, 13037, 13037, 13037,
- 13043, 13043, 13043, 13043, 13043, 13043, 13049, 13049,
- 13049, 13049, 13049, 13049, 13063, 13063, 13063, 13063,
- 13063, 13063, 13063, 13063, 13063, 13063, 13063, 13063,
- 13063, 13063, 13093, 13093, 13093, 13093, 13093, 13093,
- 13093, 13093, 13093, 13093, 13093, 13093, 13093, 13093,
- 13093, 13093, 13093, 13093, 13093, 13093, 13093, 13093,
- 13093, 13093, 13093, 13093, 13093, 13093, 13093, 13093,
- 13099, 13099, 13099, 13099, 13099, 13099, 13103, 13103,
- 13103, 13103, 13109, 13109, 13109, 13109, 13109, 13109,
- 13121, 13121, 13121, 13121, 13121, 13121, 13121, 13121,
- 13121, 13121, 13121, 13121, 13127, 13127, 13127, 13127,
- 13127, 13127, 13147, 13147, 13147, 13147, 13147, 13147,
- 13147, 13147, 13147, 13147, 13147, 13147, 13147, 13147,
- 13147, 13147, 13147, 13147, 13147, 13147, 13151, 13151,
- 13151, 13151, 13159, 13159, 13159, 13159, 13159, 13159,
- 13159, 13159, 13163, 13163, 13163, 13163, 13171, 13171,
- 13171, 13171, 13171, 13171, 13171, 13171, 13177, 13177,
- 13177, 13177, 13177, 13177, 13183, 13183, 13183, 13183,
- 13183, 13183, 13187, 13187, 13187, 13187, 13217, 13217,
- 13217, 13217, 13217, 13217, 13217, 13217, 13217, 13217,
- 13217, 13217, 13217, 13217, 13217, 13217, 13217, 13217,
- 13217, 13217, 13217, 13217, 13217, 13217, 13217, 13217,
- 13217, 13217, 13217, 13217, 13219, 13219, 13229, 13229,
- 13229, 13229, 13229, 13229, 13229, 13229, 13229, 13229,
- 13241, 13241, 13241, 13241, 13241, 13241, 13241, 13241,
- 13241, 13241, 13241, 13241, 13249, 13249, 13249, 13249,
- 13249, 13249, 13249, 13249, 13259, 13259, 13259, 13259,
- 13259, 13259, 13259, 13259, 13259, 13259, 13267, 13267,
- 13267, 13267, 13267, 13267, 13267, 13267, 13291, 13291,
- 13291, 13291, 13291, 13291, 13291, 13291, 13291, 13291,
- 13291, 13291, 13291, 13291, 13291, 13291, 13291, 13291,
- 13291, 13291, 13291, 13291, 13291, 13291, 13297, 13297,
- 13297, 13297, 13297, 13297, 13309, 13309, 13309, 13309,
- 13309, 13309, 13309, 13309, 13309, 13309, 13309, 13309,
- 13313, 13313, 13313, 13313, 13327, 13327, 13327, 13327,
- 13327, 13327, 13327, 13327, 13327, 13327, 13327, 13327,
- 13327, 13327, 13331, 13331, 13331, 13331, 13337, 13337,
- 13337, 13337, 13337, 13337, 13339, 13339, 13367, 13367,
- 13367, 13367, 13367, 13367, 13367, 13367, 13367, 13367,
- 13367, 13367, 13367, 13367, 13367, 13367, 13367, 13367,
- 13367, 13367, 13367, 13367, 13367, 13367, 13367, 13367,
- 13367, 13367, 13381, 13381, 13381, 13381, 13381, 13381,
- 13381, 13381, 13381, 13381, 13381, 13381, 13381, 13381,
- 13397, 13397, 13397, 13397, 13397, 13397, 13397, 13397,
- 13397, 13397, 13397, 13397, 13397, 13397, 13397, 13397,
- 13399, 13399, 13411, 13411, 13411, 13411, 13411, 13411,
- 13411, 13411, 13411, 13411, 13411, 13411, 13417, 13417,
- 13417, 13417, 13417, 13417, 13421, 13421, 13421, 13421,
- 13441, 13441, 13441, 13441, 13441, 13441, 13441, 13441,
- 13441, 13441, 13441, 13441, 13441, 13441, 13441, 13441,
- 13441, 13441, 13441, 13441, 13451, 13451, 13451, 13451,
- 13451, 13451, 13451, 13451, 13451, 13451, 13457, 13457,
- 13457, 13457, 13457, 13457, 13463, 13463, 13463, 13463,
- 13463, 13463, 13469, 13469, 13469, 13469, 13469, 13469,
- 13477, 13477, 13477, 13477, 13477, 13477, 13477, 13477,
- 13487, 13487, 13487, 13487, 13487, 13487, 13487, 13487,
- 13487, 13487, 13499, 13499, 13499, 13499, 13499, 13499,
- 13499, 13499, 13499, 13499, 13499, 13499, 13513, 13513,
- 13513, 13513, 13513, 13513, 13513, 13513, 13513, 13513,
- 13513, 13513, 13513, 13513, 13523, 13523, 13523, 13523,
- 13523, 13523, 13523, 13523, 13523, 13523, 13537, 13537,
- 13537, 13537, 13537, 13537, 13537, 13537, 13537, 13537,
- 13537, 13537, 13537, 13537, 13553, 13553, 13553, 13553,
- 13553, 13553, 13553, 13553, 13553, 13553, 13553, 13553,
- 13553, 13553, 13553, 13553, 13567, 13567, 13567, 13567,
- 13567, 13567, 13567, 13567, 13567, 13567, 13567, 13567,
- 13567, 13567, 13577, 13577, 13577, 13577, 13577, 13577,
- 13577, 13577, 13577, 13577, 13591, 13591, 13591, 13591,
- 13591, 13591, 13591, 13591, 13591, 13591, 13591, 13591,
- 13591, 13591, 13597, 13597, 13597, 13597, 13597, 13597,
- 13613, 13613, 13613, 13613, 13613, 13613, 13613, 13613,
- 13613, 13613, 13613, 13613, 13613, 13613, 13613, 13613,
- 13619, 13619, 13619, 13619, 13619, 13619, 13627, 13627,
- 13627, 13627, 13627, 13627, 13627, 13627, 13633, 13633,
- 13633, 13633, 13633, 13633, 13649, 13649, 13649, 13649,
- 13649, 13649, 13649, 13649, 13649, 13649, 13649, 13649,
- 13649, 13649, 13649, 13649, 13669, 13669, 13669, 13669,
- 13669, 13669, 13669, 13669, 13669, 13669, 13669, 13669,
- 13669, 13669, 13669, 13669, 13669, 13669, 13669, 13669,
- 13679, 13679, 13679, 13679, 13679, 13679, 13679, 13679,
- 13679, 13679, 13681, 13681, 13687, 13687, 13687, 13687,
- 13687, 13687, 13691, 13691, 13691, 13691, 13693, 13693,
- 13697, 13697, 13697, 13697, 13709, 13709, 13709, 13709,
- 13709, 13709, 13709, 13709, 13709, 13709, 13709, 13709,
- 13711, 13711, 13721, 13721, 13721, 13721, 13721, 13721,
- 13721, 13721, 13721, 13721, 13723, 13723, 13729, 13729,
- 13729, 13729, 13729, 13729, 13751, 13751, 13751, 13751,
- 13751, 13751, 13751, 13751, 13751, 13751, 13751, 13751,
- 13751, 13751, 13751, 13751, 13751, 13751, 13751, 13751,
- 13751, 13751, 13757, 13757, 13757, 13757, 13757, 13757,
- 13759, 13759, 13763, 13763, 13763, 13763, 13781, 13781,
- 13781, 13781, 13781, 13781, 13781, 13781, 13781, 13781,
- 13781, 13781, 13781, 13781, 13781, 13781, 13781, 13781,
- 13789, 13789, 13789, 13789, 13789, 13789, 13789, 13789,
- 13799, 13799, 13799, 13799, 13799, 13799, 13799, 13799,
- 13799, 13799, 13807, 13807, 13807, 13807, 13807, 13807,
- 13807, 13807, 13829, 13829, 13829, 13829, 13829, 13829,
- 13829, 13829, 13829, 13829, 13829, 13829, 13829, 13829,
- 13829, 13829, 13829, 13829, 13829, 13829, 13829, 13829,
- 13831, 13831, 13841, 13841, 13841, 13841, 13841, 13841,
- 13841, 13841, 13841, 13841, 13859, 13859, 13859, 13859,
- 13859, 13859, 13859, 13859, 13859, 13859, 13859, 13859,
- 13859, 13859, 13859, 13859, 13859, 13859, 13873, 13873,
- 13873, 13873, 13873, 13873, 13873, 13873, 13873, 13873,
- 13873, 13873, 13873, 13873, 13877, 13877, 13877, 13877,
- 13879, 13879, 13883, 13883, 13883, 13883, 13901, 13901,
- 13901, 13901, 13901, 13901, 13901, 13901, 13901, 13901,
- 13901, 13901, 13901, 13901, 13901, 13901, 13901, 13901,
- 13903, 13903, 13907, 13907, 13907, 13907, 13913, 13913,
- 13913, 13913, 13913, 13913, 13921, 13921, 13921, 13921,
- 13921, 13921, 13921, 13921, 13931, 13931, 13931, 13931,
- 13931, 13931, 13931, 13931, 13931, 13931, 13933, 13933,
- 13963, 13963, 13963, 13963, 13963, 13963, 13963, 13963,
- 13963, 13963, 13963, 13963, 13963, 13963, 13963, 13963,
- 13963, 13963, 13963, 13963, 13963, 13963, 13963, 13963,
- 13963, 13963, 13963, 13963, 13963, 13963, 13967, 13967,
- 13967, 13967, 13997, 13997, 13997, 13997, 13997, 13997,
- 13997, 13997, 13997, 13997, 13997, 13997, 13997, 13997,
- 13997, 13997, 13997, 13997, 13997, 13997, 13997, 13997,
- 13997, 13997, 13997, 13997, 13997, 13997, 13997, 13997,
- 13999, 13999, 14009, 14009, 14009, 14009, 14009, 14009,
- 14009, 14009, 14009, 14009, 14011, 14011, 14029, 14029,
- 14029, 14029, 14029, 14029, 14029, 14029, 14029, 14029,
- 14029, 14029, 14029, 14029, 14029, 14029, 14029, 14029,
- 14033, 14033, 14033, 14033, 14051, 14051, 14051, 14051,
- 14051, 14051, 14051, 14051, 14051, 14051, 14051, 14051,
- 14051, 14051, 14051, 14051, 14051, 14051, 14057, 14057,
- 14057, 14057, 14057, 14057, 14071, 14071, 14071, 14071,
- 14071, 14071, 14071, 14071, 14071, 14071, 14071, 14071,
- 14071, 14071, 14081, 14081, 14081, 14081, 14081, 14081,
- 14081, 14081, 14081, 14081, 14083, 14083, 14087, 14087,
- 14087, 14087, 14107, 14107, 14107, 14107, 14107, 14107,
- 14107, 14107, 14107, 14107, 14107, 14107, 14107, 14107,
- 14107, 14107, 14107, 14107, 14107, 14107, 14143, 14143,
- 14143, 14143, 14143, 14143, 14143, 14143, 14143, 14143,
- 14143, 14143, 14143, 14143, 14143, 14143, 14143, 14143,
- 14143, 14143, 14143, 14143, 14143, 14143, 14143, 14143,
- 14143, 14143, 14143, 14143, 14143, 14143, 14143, 14143,
- 14143, 14143, 14149, 14149, 14149, 14149, 14149, 14149,
- 14153, 14153, 14153, 14153, 14159, 14159, 14159, 14159,
- 14159, 14159, 14173, 14173, 14173, 14173, 14173, 14173,
- 14173, 14173, 14173, 14173, 14173, 14173, 14173, 14173,
- 14177, 14177, 14177, 14177, 14197, 14197, 14197, 14197,
- 14197, 14197, 14197, 14197, 14197, 14197, 14197, 14197,
- 14197, 14197, 14197, 14197, 14197, 14197, 14197, 14197,
- 14207, 14207, 14207, 14207, 14207, 14207, 14207, 14207,
- 14207, 14207, 14221, 14221, 14221, 14221, 14221, 14221,
- 14221, 14221, 14221, 14221, 14221, 14221, 14221, 14221,
- 14243, 14243, 14243, 14243, 14243, 14243, 14243, 14243,
- 14243, 14243, 14243, 14243, 14243, 14243, 14243, 14243,
- 14243, 14243, 14243, 14243, 14243, 14243, 14249, 14249,
- 14249, 14249, 14249, 14249, 14251, 14251, 14281, 14281,
- 14281, 14281, 14281, 14281, 14281, 14281, 14281, 14281,
- 14281, 14281, 14281, 14281, 14281, 14281, 14281, 14281,
- 14281, 14281, 14281, 14281, 14281, 14281, 14281, 14281,
- 14281, 14281, 14281, 14281, 14293, 14293, 14293, 14293,
- 14293, 14293, 14293, 14293, 14293, 14293, 14293, 14293,
- 14303, 14303, 14303, 14303, 14303, 14303, 14303, 14303,
- 14303, 14303, 14321, 14321, 14321, 14321, 14321, 14321,
- 14321, 14321, 14321, 14321, 14321, 14321, 14321, 14321,
- 14321, 14321, 14321, 14321, 14323, 14323, 14327, 14327,
- 14327, 14327, 14341, 14341, 14341, 14341, 14341, 14341,
- 14341, 14341, 14341, 14341, 14341, 14341, 14341, 14341,
- 14347, 14347, 14347, 14347, 14347, 14347, 14369, 14369,
- 14369, 14369, 14369, 14369, 14369, 14369, 14369, 14369,
- 14369, 14369, 14369, 14369, 14369, 14369, 14369, 14369,
- 14369, 14369, 14369, 14369, 14387, 14387, 14387, 14387,
- 14387, 14387, 14387, 14387, 14387, 14387, 14387, 14387,
- 14387, 14387, 14387, 14387, 14387, 14387, 14389, 14389,
- 14401, 14401, 14401, 14401, 14401, 14401, 14401, 14401,
- 14401, 14401, 14401, 14401, 14407, 14407, 14407, 14407,
- 14407, 14407, 14411, 14411, 14411, 14411, 14419, 14419,
- 14419, 14419, 14419, 14419, 14419, 14419, 14423, 14423,
- 14423, 14423, 14431, 14431, 14431, 14431, 14431, 14431,
- 14431, 14431, 14437, 14437, 14437, 14437, 14437, 14437,
- 14447, 14447, 14447, 14447, 14447, 14447, 14447, 14447,
- 14447, 14447, 14449, 14449, 14461, 14461, 14461, 14461,
- 14461, 14461, 14461, 14461, 14461, 14461, 14461, 14461,
- 14479, 14479, 14479, 14479, 14479, 14479, 14479, 14479,
- 14479, 14479, 14479, 14479, 14479, 14479, 14479, 14479,
- 14479, 14479, 14489, 14489, 14489, 14489, 14489, 14489,
- 14489, 14489, 14489, 14489, 14503, 14503, 14503, 14503,
- 14503, 14503, 14503, 14503, 14503, 14503, 14503, 14503,
- 14503, 14503, 14519, 14519, 14519, 14519, 14519, 14519,
- 14519, 14519, 14519, 14519, 14519, 14519, 14519, 14519,
- 14519, 14519, 14533, 14533, 14533, 14533, 14533, 14533,
- 14533, 14533, 14533, 14533, 14533, 14533, 14533, 14533,
- 14537, 14537, 14537, 14537, 14543, 14543, 14543, 14543,
- 14543, 14543, 14549, 14549, 14549, 14549, 14549, 14549,
- 14551, 14551, 14557, 14557, 14557, 14557, 14557, 14557,
- 14561, 14561, 14561, 14561, 14563, 14563, 14591, 14591,
- 14591, 14591, 14591, 14591, 14591, 14591, 14591, 14591,
- 14591, 14591, 14591, 14591, 14591, 14591, 14591, 14591,
- 14591, 14591, 14591, 14591, 14591, 14591, 14591, 14591,
- 14591, 14591, 14593, 14593, 14621, 14621, 14621, 14621,
- 14621, 14621, 14621, 14621, 14621, 14621, 14621, 14621,
- 14621, 14621, 14621, 14621, 14621, 14621, 14621, 14621,
- 14621, 14621, 14621, 14621, 14621, 14621, 14621, 14621,
- 14627, 14627, 14627, 14627, 14627, 14627, 14629, 14629,
- 14633, 14633, 14633, 14633, 14639, 14639, 14639, 14639,
- 14639, 14639, 14653, 14653, 14653, 14653, 14653, 14653,
- 14653, 14653, 14653, 14653, 14653, 14653, 14653, 14653,
- 14657, 14657, 14657, 14657, 14669, 14669, 14669, 14669,
- 14669, 14669, 14669, 14669, 14669, 14669, 14669, 14669,
- 14683, 14683, 14683, 14683, 14683, 14683, 14683, 14683,
- 14683, 14683, 14683, 14683, 14683, 14683, 14699, 14699,
- 14699, 14699, 14699, 14699, 14699, 14699, 14699, 14699,
- 14699, 14699, 14699, 14699, 14699, 14699, 14713, 14713,
- 14713, 14713, 14713, 14713, 14713, 14713, 14713, 14713,
- 14713, 14713, 14713, 14713, 14717, 14717, 14717, 14717,
- 14723, 14723, 14723, 14723, 14723, 14723, 14731, 14731,
- 14731, 14731, 14731, 14731, 14731, 14731, 14737, 14737,
- 14737, 14737, 14737, 14737, 14741, 14741, 14741, 14741,
- 14747, 14747, 14747, 14747, 14747, 14747, 14753, 14753,
- 14753, 14753, 14753, 14753, 14759, 14759, 14759, 14759,
- 14759, 14759, 14767, 14767, 14767, 14767, 14767, 14767,
- 14767, 14767, 14771, 14771, 14771, 14771, 14779, 14779,
- 14779, 14779, 14779, 14779, 14779, 14779, 14783, 14783,
- 14783, 14783, 14797, 14797, 14797, 14797, 14797, 14797,
- 14797, 14797, 14797, 14797, 14797, 14797, 14797, 14797,
- 14813, 14813, 14813, 14813, 14813, 14813, 14813, 14813,
- 14813, 14813, 14813, 14813, 14813, 14813, 14813, 14813,
- 14821, 14821, 14821, 14821, 14821, 14821, 14821, 14821,
- 14827, 14827, 14827, 14827, 14827, 14827, 14831, 14831,
- 14831, 14831, 14843, 14843, 14843, 14843, 14843, 14843,
- 14843, 14843, 14843, 14843, 14843, 14843, 14851, 14851,
- 14851, 14851, 14851, 14851, 14851, 14851, 14867, 14867,
- 14867, 14867, 14867, 14867, 14867, 14867, 14867, 14867,
- 14867, 14867, 14867, 14867, 14867, 14867, 14869, 14869,
- 14879, 14879, 14879, 14879, 14879, 14879, 14879, 14879,
- 14879, 14879, 14887, 14887, 14887, 14887, 14887, 14887,
- 14887, 14887, 14891, 14891, 14891, 14891, 14897, 14897,
- 14897, 14897, 14897, 14897, 14923, 14923, 14923, 14923,
- 14923, 14923, 14923, 14923, 14923, 14923, 14923, 14923,
- 14923, 14923, 14923, 14923, 14923, 14923, 14923, 14923,
- 14923, 14923, 14923, 14923, 14923, 14923, 14929, 14929,
- 14929, 14929, 14929, 14929, 14939, 14939, 14939, 14939,
- 14939, 14939, 14939, 14939, 14939, 14939, 14947, 14947,
- 14947, 14947, 14947, 14947, 14947, 14947, 14951, 14951,
- 14951, 14951, 14957, 14957, 14957, 14957, 14957, 14957,
- 14969, 14969, 14969, 14969, 14969, 14969, 14969, 14969,
- 14969, 14969, 14969, 14969, 14983, 14983, 14983, 14983,
- 14983, 14983, 14983, 14983, 14983, 14983, 14983, 14983,
- 14983, 14983, 15013, 15013, 15013, 15013, 15013, 15013,
- 15013, 15013, 15013, 15013, 15013, 15013, 15013, 15013,
- 15013, 15013, 15013, 15013, 15013, 15013, 15013, 15013,
- 15013, 15013, 15013, 15013, 15013, 15013, 15013, 15013,
- 15017, 15017, 15017, 15017, 15031, 15031, 15031, 15031,
- 15031, 15031, 15031, 15031, 15031, 15031, 15031, 15031,
- 15031, 15031, 15053, 15053, 15053, 15053, 15053, 15053,
- 15053, 15053, 15053, 15053, 15053, 15053, 15053, 15053,
- 15053, 15053, 15053, 15053, 15053, 15053, 15053, 15053,
- 15061, 15061, 15061, 15061, 15061, 15061, 15061, 15061,
- 15073, 15073, 15073, 15073, 15073, 15073, 15073, 15073,
- 15073, 15073, 15073, 15073, 15077, 15077, 15077, 15077,
- 15083, 15083, 15083, 15083, 15083, 15083, 15091, 15091,
- 15091, 15091, 15091, 15091, 15091, 15091, 15101, 15101,
- 15101, 15101, 15101, 15101, 15101, 15101, 15101, 15101,
- 15107, 15107, 15107, 15107, 15107, 15107, 15121, 15121,
- 15121, 15121, 15121, 15121, 15121, 15121, 15121, 15121,
- 15121, 15121, 15121, 15121, 15131, 15131, 15131, 15131,
- 15131, 15131, 15131, 15131, 15131, 15131, 15137, 15137,
- 15137, 15137, 15137, 15137, 15139, 15139, 15149, 15149,
- 15149, 15149, 15149, 15149, 15149, 15149, 15149, 15149,
- 15161, 15161, 15161, 15161, 15161, 15161, 15161, 15161,
- 15161, 15161, 15161, 15161, 15173, 15173, 15173, 15173,
- 15173, 15173, 15173, 15173, 15173, 15173, 15173, 15173,
- 15187, 15187, 15187, 15187, 15187, 15187, 15187, 15187,
- 15187, 15187, 15187, 15187, 15187, 15187, 15193, 15193,
- 15193, 15193, 15193, 15193, 15199, 15199, 15199, 15199,
- 15199, 15199, 15217, 15217, 15217, 15217, 15217, 15217,
- 15217, 15217, 15217, 15217, 15217, 15217, 15217, 15217,
- 15217, 15217, 15217, 15217, 15227, 15227, 15227, 15227,
- 15227, 15227, 15227, 15227, 15227, 15227, 15233, 15233,
- 15233, 15233, 15233, 15233, 15241, 15241, 15241, 15241,
- 15241, 15241, 15241, 15241, 15259, 15259, 15259, 15259,
- 15259, 15259, 15259, 15259, 15259, 15259, 15259, 15259,
- 15259, 15259, 15259, 15259, 15259, 15259, 15263, 15263,
- 15263, 15263, 15269, 15269, 15269, 15269, 15269, 15269,
- 15271, 15271, 15277, 15277, 15277, 15277, 15277, 15277,
- 15287, 15287, 15287, 15287, 15287, 15287, 15287, 15287,
- 15287, 15287, 15289, 15289, 15299, 15299, 15299, 15299,
- 15299, 15299, 15299, 15299, 15299, 15299, 15307, 15307,
- 15307, 15307, 15307, 15307, 15307, 15307, 15313, 15313,
- 15313, 15313, 15313, 15313, 15319, 15319, 15319, 15319,
- 15319, 15319, 15329, 15329, 15329, 15329, 15329, 15329,
- 15329, 15329, 15329, 15329, 15331, 15331, 15349, 15349,
- 15349, 15349, 15349, 15349, 15349, 15349, 15349, 15349,
- 15349, 15349, 15349, 15349, 15349, 15349, 15349, 15349,
- 15359, 15359, 15359, 15359, 15359, 15359, 15359, 15359,
- 15359, 15359, 15361, 15361, 15373, 15373, 15373, 15373,
- 15373, 15373, 15373, 15373, 15373, 15373, 15373, 15373,
- 15377, 15377, 15377, 15377, 15383, 15383, 15383, 15383,
- 15383, 15383, 15391, 15391, 15391, 15391, 15391, 15391,
- 15391, 15391, 15401, 15401, 15401, 15401, 15401, 15401,
- 15401, 15401, 15401, 15401, 15413, 15413, 15413, 15413,
- 15413, 15413, 15413, 15413, 15413, 15413, 15413, 15413,
- 15427, 15427, 15427, 15427, 15427, 15427, 15427, 15427,
- 15427, 15427, 15427, 15427, 15427, 15427, 15439, 15439,
- 15439, 15439, 15439, 15439, 15439, 15439, 15439, 15439,
- 15439, 15439, 15443, 15443, 15443, 15443, 15451, 15451,
- 15451, 15451, 15451, 15451, 15451, 15451, 15461, 15461,
- 15461, 15461, 15461, 15461, 15461, 15461, 15461, 15461,
- 15467, 15467, 15467, 15467, 15467, 15467, 15473, 15473,
- 15473, 15473, 15473, 15473, 15493, 15493, 15493, 15493,
- 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493,
- 15493, 15493, 15493, 15493, 15493, 15493, 15493, 15493,
- 15497, 15497, 15497, 15497, 15511, 15511, 15511, 15511,
- 15511, 15511, 15511, 15511, 15511, 15511, 15511, 15511,
- 15511, 15511, 15527, 15527, 15527, 15527, 15527, 15527,
- 15527, 15527, 15527, 15527, 15527, 15527, 15527, 15527,
- 15527, 15527, 15541, 15541, 15541, 15541, 15541, 15541,
- 15541, 15541, 15541, 15541, 15541, 15541, 15541, 15541,
- 15551, 15551, 15551, 15551, 15551, 15551, 15551, 15551,
- 15551, 15551, 15559, 15559, 15559, 15559, 15559, 15559,
- 15559, 15559, 15569, 15569, 15569, 15569, 15569, 15569,
- 15569, 15569, 15569, 15569, 15581, 15581, 15581, 15581,
- 15581, 15581, 15581, 15581, 15581, 15581, 15581, 15581,
- 15583, 15583, 15601, 15601, 15601, 15601, 15601, 15601,
- 15601, 15601, 15601, 15601, 15601, 15601, 15601, 15601,
- 15601, 15601, 15601, 15601, 15607, 15607, 15607, 15607,
- 15607, 15607, 15619, 15619, 15619, 15619, 15619, 15619,
- 15619, 15619, 15619, 15619, 15619, 15619, 15629, 15629,
- 15629, 15629, 15629, 15629, 15629, 15629, 15629, 15629,
- 15641, 15641, 15641, 15641, 15641, 15641, 15641, 15641,
- 15641, 15641, 15641, 15641, 15643, 15643, 15647, 15647,
- 15647, 15647, 15649, 15649, 15661, 15661, 15661, 15661,
- 15661, 15661, 15661, 15661, 15661, 15661, 15661, 15661,
- 15667, 15667, 15667, 15667, 15667, 15667, 15671, 15671,
- 15671, 15671, 15679, 15679, 15679, 15679, 15679, 15679,
- 15679, 15679, 15683, 15683, 15683, 15683, 15727, 15727,
- 15727, 15727, 15727, 15727, 15727, 15727, 15727, 15727,
- 15727, 15727, 15727, 15727, 15727, 15727, 15727, 15727,
- 15727, 15727, 15727, 15727, 15727, 15727, 15727, 15727,
- 15727, 15727, 15727, 15727, 15727, 15727, 15727, 15727,
- 15727, 15727, 15727, 15727, 15727, 15727, 15727, 15727,
- 15727, 15727, 15731, 15731, 15731, 15731, 15733, 15733,
- 15737, 15737, 15737, 15737, 15739, 15739, 15749, 15749,
- 15749, 15749, 15749, 15749, 15749, 15749, 15749, 15749,
- 15761, 15761, 15761, 15761, 15761, 15761, 15761, 15761,
- 15761, 15761, 15761, 15761, 15767, 15767, 15767, 15767,
- 15767, 15767, 15773, 15773, 15773, 15773, 15773, 15773,
- 15787, 15787, 15787, 15787, 15787, 15787, 15787, 15787,
- 15787, 15787, 15787, 15787, 15787, 15787, 15791, 15791,
- 15791, 15791, 15797, 15797, 15797, 15797, 15797, 15797,
- 15803, 15803, 15803, 15803, 15803, 15803, 15809, 15809,
- 15809, 15809, 15809, 15809, 15817, 15817, 15817, 15817,
- 15817, 15817, 15817, 15817, 15823, 15823, 15823, 15823,
- 15823, 15823, 15859, 15859, 15859, 15859, 15859, 15859,
- 15859, 15859, 15859, 15859, 15859, 15859, 15859, 15859,
- 15859, 15859, 15859, 15859, 15859, 15859, 15859, 15859,
- 15859, 15859, 15859, 15859, 15859, 15859, 15859, 15859,
- 15859, 15859, 15859, 15859, 15859, 15859, 15877, 15877,
- 15877, 15877, 15877, 15877, 15877, 15877, 15877, 15877,
- 15877, 15877, 15877, 15877, 15877, 15877, 15877, 15877,
- 15881, 15881, 15881, 15881, 15887, 15887, 15887, 15887,
- 15887, 15887, 15889, 15889, 15901, 15901, 15901, 15901,
- 15901, 15901, 15901, 15901, 15901, 15901, 15901, 15901,
- 15907, 15907, 15907, 15907, 15907, 15907, 15913, 15913,
- 15913, 15913, 15913, 15913, 15919, 15919, 15919, 15919,
- 15919, 15919, 15923, 15923, 15923, 15923, 15937, 15937,
- 15937, 15937, 15937, 15937, 15937, 15937, 15937, 15937,
- 15937, 15937, 15937, 15937, 15959, 15959, 15959, 15959,
- 15959, 15959, 15959, 15959, 15959, 15959, 15959, 15959,
- 15959, 15959, 15959, 15959, 15959, 15959, 15959, 15959,
- 15959, 15959, 15971, 15971, 15971, 15971, 15971, 15971,
- 15971, 15971, 15971, 15971, 15971, 15971, 15973, 15973,
- 15991, 15991, 15991, 15991, 15991, 15991, 15991, 15991,
- 15991, 15991, 15991, 15991, 15991, 15991, 15991, 15991,
- 15991, 15991, 16001, 16001, 16001, 16001, 16001, 16001,
- 16001, 16001, 16001, 16001, 16007, 16007, 16007, 16007,
- 16007, 16007, 16033, 16033, 16033, 16033, 16033, 16033,
- 16033, 16033, 16033, 16033, 16033, 16033, 16033, 16033,
- 16033, 16033, 16033, 16033, 16033, 16033, 16033, 16033,
- 16033, 16033, 16033, 16033, 16057, 16057, 16057, 16057,
- 16057, 16057, 16057, 16057, 16057, 16057, 16057, 16057,
- 16057, 16057, 16057, 16057, 16057, 16057, 16057, 16057,
- 16057, 16057, 16057, 16057, 16061, 16061, 16061, 16061,
- 16063, 16063, 16067, 16067, 16067, 16067, 16069, 16069,
- 16073, 16073, 16073, 16073, 16087, 16087, 16087, 16087,
- 16087, 16087, 16087, 16087, 16087, 16087, 16087, 16087,
- 16087, 16087, 16091, 16091, 16091, 16091, 16097, 16097,
- 16097, 16097, 16097, 16097, 16103, 16103, 16103, 16103,
- 16103, 16103, 16111, 16111, 16111, 16111, 16111, 16111,
- 16111, 16111, 16127, 16127, 16127, 16127, 16127, 16127,
- 16127, 16127, 16127, 16127, 16127, 16127, 16127, 16127,
- 16127, 16127, 16139, 16139, 16139, 16139, 16139, 16139,
- 16139, 16139, 16139, 16139, 16139, 16139, 16141, 16141,
- 16183, 16183, 16183, 16183, 16183, 16183, 16183, 16183,
- 16183, 16183, 16183, 16183, 16183, 16183, 16183, 16183,
- 16183, 16183, 16183, 16183, 16183, 16183, 16183, 16183,
- 16183, 16183, 16183, 16183, 16183, 16183, 16183, 16183,
- 16183, 16183, 16183, 16183, 16183, 16183, 16183, 16183,
- 16183, 16183, 16187, 16187, 16187, 16187, 16189, 16189,
- 16193, 16193, 16193, 16193, 16217, 16217, 16217, 16217,
- 16217, 16217, 16217, 16217, 16217, 16217, 16217, 16217,
- 16217, 16217, 16217, 16217, 16217, 16217, 16217, 16217,
- 16217, 16217, 16217, 16217, 16223, 16223, 16223, 16223,
- 16223, 16223, 16229, 16229, 16229, 16229, 16229, 16229,
- 16231, 16231, 16249, 16249, 16249, 16249, 16249, 16249,
- 16249, 16249, 16249, 16249, 16249, 16249, 16249, 16249,
- 16249, 16249, 16249, 16249, 16253, 16253, 16253, 16253,
- 16267, 16267, 16267, 16267, 16267, 16267, 16267, 16267,
- 16267, 16267, 16267, 16267, 16267, 16267, 16273, 16273,
- 16273, 16273, 16273, 16273, 16301, 16301, 16301, 16301,
- 16301, 16301, 16301, 16301, 16301, 16301, 16301, 16301,
- 16301, 16301, 16301, 16301, 16301, 16301, 16301, 16301,
- 16301, 16301, 16301, 16301, 16301, 16301, 16301, 16301,
- 16319, 16319, 16319, 16319, 16319, 16319, 16319, 16319,
- 16319, 16319, 16319, 16319, 16319, 16319, 16319, 16319,
- 16319, 16319, 16333, 16333, 16333, 16333, 16333, 16333,
- 16333, 16333, 16333, 16333, 16333, 16333, 16333, 16333,
- 16339, 16339, 16339, 16339, 16339, 16339, 16349, 16349,
- 16349, 16349, 16349, 16349, 16349, 16349, 16349, 16349,
- 16361, 16361, 16361, 16361, 16361, 16361, 16361, 16361,
- 16361, 16361, 16361, 16361, 16363, 16363, 16369, 16369,
- 16369, 16369, 16369, 16369, 16381, 16381, 16381, 16381,
- 16381, 16381, 16381, 16381, 16381, 16381, 16381, 16381,
- 16411, 16411, 16411, 16411, 16411, 16411, 16411, 16411,
- 16411, 16411, 16411, 16411, 16411, 16411, 16411, 16411,
- 16411, 16411, 16411, 16411, 16411, 16411, 16411, 16411,
- 16411, 16411, 16411, 16411, 16411, 16411, 16417, 16417,
- 16417, 16417, 16417, 16417, 16421, 16421, 16421, 16421,
- 16427, 16427, 16427, 16427, 16427, 16427, 16433, 16433,
- 16433, 16433, 16433, 16433, 16447, 16447, 16447, 16447,
- 16447, 16447, 16447, 16447, 16447, 16447, 16447, 16447,
- 16447, 16447, 16451, 16451, 16451, 16451, 16453, 16453,
- 16477, 16477, 16477, 16477, 16477, 16477, 16477, 16477,
- 16477, 16477, 16477, 16477, 16477, 16477, 16477, 16477,
- 16477, 16477, 16477, 16477, 16477, 16477, 16477, 16477,
- 16481, 16481, 16481, 16481, 16487, 16487, 16487, 16487,
- 16487, 16487, 16493, 16493, 16493, 16493, 16493, 16493,
- 16519, 16519, 16519, 16519, 16519, 16519, 16519, 16519,
- 16519, 16519, 16519, 16519, 16519, 16519, 16519, 16519,
- 16519, 16519, 16519, 16519, 16519, 16519, 16519, 16519,
- 16519, 16519, 16529, 16529, 16529, 16529, 16529, 16529,
- 16529, 16529, 16529, 16529, 16547, 16547, 16547, 16547,
- 16547, 16547, 16547, 16547, 16547, 16547, 16547, 16547,
- 16547, 16547, 16547, 16547, 16547, 16547, 16553, 16553,
- 16553, 16553, 16553, 16553, 16561, 16561, 16561, 16561,
- 16561, 16561, 16561, 16561, 16567, 16567, 16567, 16567,
- 16567, 16567, 16573, 16573, 16573, 16573, 16573, 16573,
- 16603, 16603, 16603, 16603, 16603, 16603, 16603, 16603,
- 16603, 16603, 16603, 16603, 16603, 16603, 16603, 16603,
- 16603, 16603, 16603, 16603, 16603, 16603, 16603, 16603,
- 16603, 16603, 16603, 16603, 16603, 16603, 16607, 16607,
- 16607, 16607, 16619, 16619, 16619, 16619, 16619, 16619,
- 16619, 16619, 16619, 16619, 16619, 16619, 16631, 16631,
- 16631, 16631, 16631, 16631, 16631, 16631, 16631, 16631,
- 16631, 16631, 16633, 16633, 16649, 16649, 16649, 16649,
- 16649, 16649, 16649, 16649, 16649, 16649, 16649, 16649,
- 16649, 16649, 16649, 16649, 16651, 16651, 16657, 16657,
- 16657, 16657, 16657, 16657, 16661, 16661, 16661, 16661,
- 16673, 16673, 16673, 16673, 16673, 16673, 16673, 16673,
- 16673, 16673, 16673, 16673, 16691, 16691, 16691, 16691,
- 16691, 16691, 16691, 16691, 16691, 16691, 16691, 16691,
- 16691, 16691, 16691, 16691, 16691, 16691, 16693, 16693,
- 16699, 16699, 16699, 16699, 16699, 16699, 16703, 16703,
- 16703, 16703, 16729, 16729, 16729, 16729, 16729, 16729,
- 16729, 16729, 16729, 16729, 16729, 16729, 16729, 16729,
- 16729, 16729, 16729, 16729, 16729, 16729, 16729, 16729,
- 16729, 16729, 16729, 16729, 16741, 16741, 16741, 16741,
- 16741, 16741, 16741, 16741, 16741, 16741, 16741, 16741,
- 16747, 16747, 16747, 16747, 16747, 16747, 16759, 16759,
- 16759, 16759, 16759, 16759, 16759, 16759, 16759, 16759,
- 16759, 16759, 16763, 16763, 16763, 16763, 16787, 16787,
- 16787, 16787, 16787, 16787, 16787, 16787, 16787, 16787,
- 16787, 16787, 16787, 16787, 16787, 16787, 16787, 16787,
- 16787, 16787, 16787, 16787, 16787, 16787, 16811, 16811,
- 16811, 16811, 16811, 16811, 16811, 16811, 16811, 16811,
- 16811, 16811, 16811, 16811, 16811, 16811, 16811, 16811,
- 16811, 16811, 16811, 16811, 16811, 16811, 16823, 16823,
- 16823, 16823, 16823, 16823, 16823, 16823, 16823, 16823,
- 16823, 16823, 16829, 16829, 16829, 16829, 16829, 16829,
- 16831, 16831, 16843, 16843, 16843, 16843, 16843, 16843,
- 16843, 16843, 16843, 16843, 16843, 16843, 16871, 16871,
- 16871, 16871, 16871, 16871, 16871, 16871, 16871, 16871,
- 16871, 16871, 16871, 16871, 16871, 16871, 16871, 16871,
- 16871, 16871, 16871, 16871, 16871, 16871, 16871, 16871,
- 16871, 16871, 16879, 16879, 16879, 16879, 16879, 16879,
- 16879, 16879, 16883, 16883, 16883, 16883, 16889, 16889,
- 16889, 16889, 16889, 16889, 16901, 16901, 16901, 16901,
- 16901, 16901, 16901, 16901, 16901, 16901, 16901, 16901,
- 16903, 16903, 16921, 16921, 16921, 16921, 16921, 16921,
- 16921, 16921, 16921, 16921, 16921, 16921, 16921, 16921,
- 16921, 16921, 16921, 16921, 16927, 16927, 16927, 16927,
- 16927, 16927, 16931, 16931, 16931, 16931, 16937, 16937,
- 16937, 16937, 16937, 16937, 16943, 16943, 16943, 16943,
- 16943, 16943, 16963, 16963, 16963, 16963, 16963, 16963,
- 16963, 16963, 16963, 16963, 16963, 16963, 16963, 16963,
- 16963, 16963, 16963, 16963, 16963, 16963, 16979, 16979,
- 16979, 16979, 16979, 16979, 16979, 16979, 16979, 16979,
- 16979, 16979, 16979, 16979, 16979, 16979, 16981, 16981,
- 16987, 16987, 16987, 16987, 16987, 16987, 16993, 16993,
- 16993, 16993, 16993, 16993, 17011, 17011, 17011, 17011,
- 17011, 17011, 17011, 17011, 17011, 17011, 17011, 17011,
- 17011, 17011, 17011, 17011, 17011, 17011, 17021, 17021,
- 17021, 17021, 17021, 17021, 17021, 17021, 17021, 17021,
- 17027, 17027, 17027, 17027, 17027, 17027, 17029, 17029,
- 17033, 17033, 17033, 17033, 17041, 17041, 17041, 17041,
- 17041, 17041, 17041, 17041, 17047, 17047, 17047, 17047,
- 17047, 17047, 17053, 17053, 17053, 17053, 17053, 17053,
- 17077, 17077, 17077, 17077, 17077, 17077, 17077, 17077,
- 17077, 17077, 17077, 17077, 17077, 17077, 17077, 17077,
- 17077, 17077, 17077, 17077, 17077, 17077, 17077, 17077,
- 17093, 17093, 17093, 17093, 17093, 17093, 17093, 17093,
- 17093, 17093, 17093, 17093, 17093, 17093, 17093, 17093,
- 17099, 17099, 17099, 17099, 17099, 17099, 17107, 17107,
- 17107, 17107, 17107, 17107, 17107, 17107, 17117, 17117,
- 17117, 17117, 17117, 17117, 17117, 17117, 17117, 17117,
- 17123, 17123, 17123, 17123, 17123, 17123, 17137, 17137,
- 17137, 17137, 17137, 17137, 17137, 17137, 17137, 17137,
- 17137, 17137, 17137, 17137, 17159, 17159, 17159, 17159,
- 17159, 17159, 17159, 17159, 17159, 17159, 17159, 17159,
- 17159, 17159, 17159, 17159, 17159, 17159, 17159, 17159,
- 17159, 17159, 17167, 17167, 17167, 17167, 17167, 17167,
- 17167, 17167, 17183, 17183, 17183, 17183, 17183, 17183,
- 17183, 17183, 17183, 17183, 17183, 17183, 17183, 17183,
- 17183, 17183, 17189, 17189, 17189, 17189, 17189, 17189,
- 17191, 17191, 17203, 17203, 17203, 17203, 17203, 17203,
- 17203, 17203, 17203, 17203, 17203, 17203, 17207, 17207,
- 17207, 17207, 17209, 17209, 17231, 17231, 17231, 17231,
- 17231, 17231, 17231, 17231, 17231, 17231, 17231, 17231,
- 17231, 17231, 17231, 17231, 17231, 17231, 17231, 17231,
- 17231, 17231, 17239, 17239, 17239, 17239, 17239, 17239,
- 17239, 17239, 17257, 17257, 17257, 17257, 17257, 17257,
- 17257, 17257, 17257, 17257, 17257, 17257, 17257, 17257,
- 17257, 17257, 17257, 17257, 17291, 17291, 17291, 17291,
- 17291, 17291, 17291, 17291, 17291, 17291, 17291, 17291,
- 17291, 17291, 17291, 17291, 17291, 17291, 17291, 17291,
- 17291, 17291, 17291, 17291, 17291, 17291, 17291, 17291,
- 17291, 17291, 17291, 17291, 17291, 17291, 17293, 17293,
- 17299, 17299, 17299, 17299, 17299, 17299, 17317, 17317,
- 17317, 17317, 17317, 17317, 17317, 17317, 17317, 17317,
- 17317, 17317, 17317, 17317, 17317, 17317, 17317, 17317,
- 17321, 17321, 17321, 17321, 17327, 17327, 17327, 17327,
- 17327, 17327, 17333, 17333, 17333, 17333, 17333, 17333,
- 17341, 17341, 17341, 17341, 17341, 17341, 17341, 17341,
- 17351, 17351, 17351, 17351, 17351, 17351, 17351, 17351,
- 17351, 17351, 17359, 17359, 17359, 17359, 17359, 17359,
- 17359, 17359, 17377, 17377, 17377, 17377, 17377, 17377,
- 17377, 17377, 17377, 17377, 17377, 17377, 17377, 17377,
- 17377, 17377, 17377, 17377, 17383, 17383, 17383, 17383,
- 17383, 17383, 17387, 17387, 17387, 17387, 17389, 17389,
- 17393, 17393, 17393, 17393, 17401, 17401, 17401, 17401,
- 17401, 17401, 17401, 17401, 17417, 17417, 17417, 17417,
- 17417, 17417, 17417, 17417, 17417, 17417, 17417, 17417,
- 17417, 17417, 17417, 17417, 17419, 17419, 17431, 17431,
- 17431, 17431, 17431, 17431, 17431, 17431, 17431, 17431,
- 17431, 17431, 17443, 17443, 17443, 17443, 17443, 17443,
- 17443, 17443, 17443, 17443, 17443, 17443, 17449, 17449,
- 17449, 17449, 17449, 17449, 17467, 17467, 17467, 17467,
- 17467, 17467, 17467, 17467, 17467, 17467, 17467, 17467,
- 17467, 17467, 17467, 17467, 17467, 17467, 17471, 17471,
- 17471, 17471, 17477, 17477, 17477, 17477, 17477, 17477,
- 17483, 17483, 17483, 17483, 17483, 17483, 17489, 17489,
- 17489, 17489, 17489, 17489, 17491, 17491, 17497, 17497,
- 17497, 17497, 17497, 17497, 17509, 17509, 17509, 17509,
- 17509, 17509, 17509, 17509, 17509, 17509, 17509, 17509,
- 17519, 17519, 17519, 17519, 17519, 17519, 17519, 17519,
- 17519, 17519, 17539, 17539, 17539, 17539, 17539, 17539,
- 17539, 17539, 17539, 17539, 17539, 17539, 17539, 17539,
- 17539, 17539, 17539, 17539, 17539, 17539, 17551, 17551,
- 17551, 17551, 17551, 17551, 17551, 17551, 17551, 17551,
- 17551, 17551, 17569, 17569, 17569, 17569, 17569, 17569,
- 17569, 17569, 17569, 17569, 17569, 17569, 17569, 17569,
- 17569, 17569, 17569, 17569, 17573, 17573, 17573, 17573,
- 17579, 17579, 17579, 17579, 17579, 17579, 17581, 17581,
- 17597, 17597, 17597, 17597, 17597, 17597, 17597, 17597,
- 17597, 17597, 17597, 17597, 17597, 17597, 17597, 17597,
- 17599, 17599, 17609, 17609, 17609, 17609, 17609, 17609,
- 17609, 17609, 17609, 17609, 17623, 17623, 17623, 17623,
- 17623, 17623, 17623, 17623, 17623, 17623, 17623, 17623,
- 17623, 17623, 17627, 17627, 17627, 17627, 17657, 17657,
- 17657, 17657, 17657, 17657, 17657, 17657, 17657, 17657,
- 17657, 17657, 17657, 17657, 17657, 17657, 17657, 17657,
- 17657, 17657, 17657, 17657, 17657, 17657, 17657, 17657,
- 17657, 17657, 17657, 17657, 17659, 17659, 17669, 17669,
- 17669, 17669, 17669, 17669, 17669, 17669, 17669, 17669,
- 17681, 17681, 17681, 17681, 17681, 17681, 17681, 17681,
- 17681, 17681, 17681, 17681, 17683, 17683, 17707, 17707,
- 17707, 17707, 17707, 17707, 17707, 17707, 17707, 17707,
- 17707, 17707, 17707, 17707, 17707, 17707, 17707, 17707,
- 17707, 17707, 17707, 17707, 17707, 17707, 17713, 17713,
- 17713, 17713, 17713, 17713, 17729, 17729, 17729, 17729,
- 17729, 17729, 17729, 17729, 17729, 17729, 17729, 17729,
- 17729, 17729, 17729, 17729, 17737, 17737, 17737, 17737,
- 17737, 17737, 17737, 17737, 17747, 17747, 17747, 17747,
- 17747, 17747, 17747, 17747, 17747, 17747, 17749, 17749,
- 17761, 17761, 17761, 17761, 17761, 17761, 17761, 17761,
- 17761, 17761, 17761, 17761, 17783, 17783, 17783, 17783,
- 17783, 17783, 17783, 17783, 17783, 17783, 17783, 17783,
- 17783, 17783, 17783, 17783, 17783, 17783, 17783, 17783,
- 17783, 17783, 17789, 17789, 17789, 17789, 17789, 17789,
- 17791, 17791, 17807, 17807, 17807, 17807, 17807, 17807,
- 17807, 17807, 17807, 17807, 17807, 17807, 17807, 17807,
- 17807, 17807, 17827, 17827, 17827, 17827, 17827, 17827,
- 17827, 17827, 17827, 17827, 17827, 17827, 17827, 17827,
- 17827, 17827, 17827, 17827, 17827, 17827, 17837, 17837,
- 17837, 17837, 17837, 17837, 17837, 17837, 17837, 17837,
- 17839, 17839, 17851, 17851, 17851, 17851, 17851, 17851,
- 17851, 17851, 17851, 17851, 17851, 17851, 17863, 17863,
- 17863, 17863, 17863, 17863, 17863, 17863, 17863, 17863,
- 17863, 17863, 17881, 17881, 17881, 17881, 17881, 17881,
- 17881, 17881, 17881, 17881, 17881, 17881, 17881, 17881,
- 17881, 17881, 17881, 17881, 17891, 17891, 17891, 17891,
- 17891, 17891, 17891, 17891, 17891, 17891, 17903, 17903,
- 17903, 17903, 17903, 17903, 17903, 17903, 17903, 17903,
- 17903, 17903, 17909, 17909, 17909, 17909, 17909, 17909,
- 17911, 17911, 17921, 17921, 17921, 17921, 17921, 17921,
- 17921, 17921, 17921, 17921, 17923, 17923, 17929, 17929,
- 17929, 17929, 17929, 17929, 17939, 17939, 17939, 17939,
- 17939, 17939, 17939, 17939, 17939, 17939, 17957, 17957,
- 17957, 17957, 17957, 17957, 17957, 17957, 17957, 17957,
- 17957, 17957, 17957, 17957, 17957, 17957, 17957, 17957,
- 17959, 17959, 17971, 17971, 17971, 17971, 17971, 17971,
- 17971, 17971, 17971, 17971, 17971, 17971, 17977, 17977,
- 17977, 17977, 17977, 17977, 17981, 17981, 17981, 17981,
- 17987, 17987, 17987, 17987, 17987, 17987, 17989, 17989,
- 18013, 18013, 18013, 18013, 18013, 18013, 18013, 18013,
- 18013, 18013, 18013, 18013, 18013, 18013, 18013, 18013,
- 18013, 18013, 18013, 18013, 18013, 18013, 18013, 18013,
- 18041, 18041, 18041, 18041, 18041, 18041, 18041, 18041,
- 18041, 18041, 18041, 18041, 18041, 18041, 18041, 18041,
- 18041, 18041, 18041, 18041, 18041, 18041, 18041, 18041,
- 18041, 18041, 18041, 18041, 18043, 18043, 18047, 18047,
- 18047, 18047, 18049, 18049, 18059, 18059, 18059, 18059,
- 18059, 18059, 18059, 18059, 18059, 18059, 18061, 18061,
- 18077, 18077, 18077, 18077, 18077, 18077, 18077, 18077,
- 18077, 18077, 18077, 18077, 18077, 18077, 18077, 18077,
- 18089, 18089, 18089, 18089, 18089, 18089, 18089, 18089,
- 18089, 18089, 18089, 18089, 18097, 18097, 18097, 18097,
- 18097, 18097, 18097, 18097, 18119, 18119, 18119, 18119,
- 18119, 18119, 18119, 18119, 18119, 18119, 18119, 18119,
- 18119, 18119, 18119, 18119, 18119, 18119, 18119, 18119,
- 18119, 18119, 18121, 18121, 18127, 18127, 18127, 18127,
- 18127, 18127, 18131, 18131, 18131, 18131, 18133, 18133,
- 18143, 18143, 18143, 18143, 18143, 18143, 18143, 18143,
- 18143, 18143, 18149, 18149, 18149, 18149, 18149, 18149,
- 18169, 18169, 18169, 18169, 18169, 18169, 18169, 18169,
- 18169, 18169, 18169, 18169, 18169, 18169, 18169, 18169,
- 18169, 18169, 18169, 18169, 18181, 18181, 18181, 18181,
- 18181, 18181, 18181, 18181, 18181, 18181, 18181, 18181,
- 18191, 18191, 18191, 18191, 18191, 18191, 18191, 18191,
- 18191, 18191, 18199, 18199, 18199, 18199, 18199, 18199,
- 18199, 18199, 18211, 18211, 18211, 18211, 18211, 18211,
- 18211, 18211, 18211, 18211, 18211, 18211, 18217, 18217,
- 18217, 18217, 18217, 18217, 18223, 18223, 18223, 18223,
- 18223, 18223, 18229, 18229, 18229, 18229, 18229, 18229,
- 18233, 18233, 18233, 18233, 18251, 18251, 18251, 18251,
- 18251, 18251, 18251, 18251, 18251, 18251, 18251, 18251,
- 18251, 18251, 18251, 18251, 18251, 18251, 18253, 18253,
- 18257, 18257, 18257, 18257, 18269, 18269, 18269, 18269,
- 18269, 18269, 18269, 18269, 18269, 18269, 18269, 18269,
- 18287, 18287, 18287, 18287, 18287, 18287, 18287, 18287,
- 18287, 18287, 18287, 18287, 18287, 18287, 18287, 18287,
- 18287, 18287, 18289, 18289, 18301, 18301, 18301, 18301,
- 18301, 18301, 18301, 18301, 18301, 18301, 18301, 18301,
- 18307, 18307, 18307, 18307, 18307, 18307, 18311, 18311,
- 18311, 18311, 18313, 18313, 18329, 18329, 18329, 18329,
- 18329, 18329, 18329, 18329, 18329, 18329, 18329, 18329,
- 18329, 18329, 18329, 18329, 18341, 18341, 18341, 18341,
- 18341, 18341, 18341, 18341, 18341, 18341, 18341, 18341,
- 18353, 18353, 18353, 18353, 18353, 18353, 18353, 18353,
- 18353, 18353, 18353, 18353, 18367, 18367, 18367, 18367,
- 18367, 18367, 18367, 18367, 18367, 18367, 18367, 18367,
- 18367, 18367, 18371, 18371, 18371, 18371, 18379, 18379,
- 18379, 18379, 18379, 18379, 18379, 18379, 18397, 18397,
- 18397, 18397, 18397, 18397, 18397, 18397, 18397, 18397,
- 18397, 18397, 18397, 18397, 18397, 18397, 18397, 18397,
- 18401, 18401, 18401, 18401, 18413, 18413, 18413, 18413,
- 18413, 18413, 18413, 18413, 18413, 18413, 18413, 18413,
- 18427, 18427, 18427, 18427, 18427, 18427, 18427, 18427,
- 18427, 18427, 18427, 18427, 18427, 18427, 18433, 18433,
- 18433, 18433, 18433, 18433, 18439, 18439, 18439, 18439,
- 18439, 18439, 18443, 18443, 18443, 18443, 18451, 18451,
- 18451, 18451, 18451, 18451, 18451, 18451, 18457, 18457,
- 18457, 18457, 18457, 18457, 18461, 18461, 18461, 18461,
- 18481, 18481, 18481, 18481, 18481, 18481, 18481, 18481,
- 18481, 18481, 18481, 18481, 18481, 18481, 18481, 18481,
- 18481, 18481, 18481, 18481, 18493, 18493, 18493, 18493,
- 18493, 18493, 18493, 18493, 18493, 18493, 18493, 18493,
- 18503, 18503, 18503, 18503, 18503, 18503, 18503, 18503,
- 18503, 18503, 18517, 18517, 18517, 18517, 18517, 18517,
- 18517, 18517, 18517, 18517, 18517, 18517, 18517, 18517,
- 18521, 18521, 18521, 18521, 18523, 18523, 18539, 18539,
- 18539, 18539, 18539, 18539, 18539, 18539, 18539, 18539,
- 18539, 18539, 18539, 18539, 18539, 18539, 18541, 18541,
- 18553, 18553, 18553, 18553, 18553, 18553, 18553, 18553,
- 18553, 18553, 18553, 18553, 18583, 18583, 18583, 18583,
- 18583, 18583, 18583, 18583, 18583, 18583, 18583, 18583,
- 18583, 18583, 18583, 18583, 18583, 18583, 18583, 18583,
- 18583, 18583, 18583, 18583, 18583, 18583, 18583, 18583,
- 18583, 18583, 18587, 18587, 18587, 18587, 18593, 18593,
- 18593, 18593, 18593, 18593, 18617, 18617, 18617, 18617,
- 18617, 18617, 18617, 18617, 18617, 18617, 18617, 18617,
- 18617, 18617, 18617, 18617, 18617, 18617, 18617, 18617,
- 18617, 18617, 18617, 18617, 18637, 18637, 18637, 18637,
- 18637, 18637, 18637, 18637, 18637, 18637, 18637, 18637,
- 18637, 18637, 18637, 18637, 18637, 18637, 18637, 18637,
- 18661, 18661, 18661, 18661, 18661, 18661, 18661, 18661,
- 18661, 18661, 18661, 18661, 18661, 18661, 18661, 18661,
- 18661, 18661, 18661, 18661, 18661, 18661, 18661, 18661,
- 18671, 18671, 18671, 18671, 18671, 18671, 18671, 18671,
- 18671, 18671, 18679, 18679, 18679, 18679, 18679, 18679,
- 18679, 18679, 18691, 18691, 18691, 18691, 18691, 18691,
- 18691, 18691, 18691, 18691, 18691, 18691, 18701, 18701,
- 18701, 18701, 18701, 18701, 18701, 18701, 18701, 18701,
- 18713, 18713, 18713, 18713, 18713, 18713, 18713, 18713,
- 18713, 18713, 18713, 18713, 18719, 18719, 18719, 18719,
- 18719, 18719, 18731, 18731, 18731, 18731, 18731, 18731,
- 18731, 18731, 18731, 18731, 18731, 18731, 18743, 18743,
- 18743, 18743, 18743, 18743, 18743, 18743, 18743, 18743,
- 18743, 18743, 18749, 18749, 18749, 18749, 18749, 18749,
- 18757, 18757, 18757, 18757, 18757, 18757, 18757, 18757,
- 18773, 18773, 18773, 18773, 18773, 18773, 18773, 18773,
- 18773, 18773, 18773, 18773, 18773, 18773, 18773, 18773,
- 18787, 18787, 18787, 18787, 18787, 18787, 18787, 18787,
- 18787, 18787, 18787, 18787, 18787, 18787, 18793, 18793,
- 18793, 18793, 18793, 18793, 18797, 18797, 18797, 18797,
- 18803, 18803, 18803, 18803, 18803, 18803, 18839, 18839,
- 18839, 18839, 18839, 18839, 18839, 18839, 18839, 18839,
- 18839, 18839, 18839, 18839, 18839, 18839, 18839, 18839,
- 18839, 18839, 18839, 18839, 18839, 18839, 18839, 18839,
- 18839, 18839, 18839, 18839, 18839, 18839, 18839, 18839,
- 18839, 18839, 18859, 18859, 18859, 18859, 18859, 18859,
- 18859, 18859, 18859, 18859, 18859, 18859, 18859, 18859,
- 18859, 18859, 18859, 18859, 18859, 18859, 18869, 18869,
- 18869, 18869, 18869, 18869, 18869, 18869, 18869, 18869,
- 18899, 18899, 18899, 18899, 18899, 18899, 18899, 18899,
- 18899, 18899, 18899, 18899, 18899, 18899, 18899, 18899,
- 18899, 18899, 18899, 18899, 18899, 18899, 18899, 18899,
- 18899, 18899, 18899, 18899, 18899, 18899, 18911, 18911,
- 18911, 18911, 18911, 18911, 18911, 18911, 18911, 18911,
- 18911, 18911, 18913, 18913, 18917, 18917, 18917, 18917,
- 18919, 18919, 18947, 18947, 18947, 18947, 18947, 18947,
- 18947, 18947, 18947, 18947, 18947, 18947, 18947, 18947,
- 18947, 18947, 18947, 18947, 18947, 18947, 18947, 18947,
- 18947, 18947, 18947, 18947, 18947, 18947, 18959, 18959,
- 18959, 18959, 18959, 18959, 18959, 18959, 18959, 18959,
- 18959, 18959, 18973, 18973, 18973, 18973, 18973, 18973,
- 18973, 18973, 18973, 18973, 18973, 18973, 18973, 18973,
- 18979, 18979, 18979, 18979, 18979, 18979, 19001, 19001,
- 19001, 19001, 19001, 19001, 19001, 19001, 19001, 19001,
- 19001, 19001, 19001, 19001, 19001, 19001, 19001, 19001,
- 19001, 19001, 19001, 19001, 19009, 19009, 19009, 19009,
- 19009, 19009, 19009, 19009, 19013, 19013, 19013, 19013,
- 19031, 19031, 19031, 19031, 19031, 19031, 19031, 19031,
- 19031, 19031, 19031, 19031, 19031, 19031, 19031, 19031,
- 19031, 19031, 19037, 19037, 19037, 19037, 19037, 19037,
- 19051, 19051, 19051, 19051, 19051, 19051, 19051, 19051,
- 19051, 19051, 19051, 19051, 19051, 19051, 19069, 19069,
- 19069, 19069, 19069, 19069, 19069, 19069, 19069, 19069,
- 19069, 19069, 19069, 19069, 19069, 19069, 19069, 19069,
- 19073, 19073, 19073, 19073, 19079, 19079, 19079, 19079,
- 19079, 19079, 19081, 19081, 19087, 19087, 19087, 19087,
- 19087, 19087, 19121, 19121, 19121, 19121, 19121, 19121,
- 19121, 19121, 19121, 19121, 19121, 19121, 19121, 19121,
- 19121, 19121, 19121, 19121, 19121, 19121, 19121, 19121,
- 19121, 19121, 19121, 19121, 19121, 19121, 19121, 19121,
- 19121, 19121, 19121, 19121, 19139, 19139, 19139, 19139,
- 19139, 19139, 19139, 19139, 19139, 19139, 19139, 19139,
- 19139, 19139, 19139, 19139, 19139, 19139, 19141, 19141,
- 19157, 19157, 19157, 19157, 19157, 19157, 19157, 19157,
- 19157, 19157, 19157, 19157, 19157, 19157, 19157, 19157,
- 19163, 19163, 19163, 19163, 19163, 19163, 19181, 19181,
- 19181, 19181, 19181, 19181, 19181, 19181, 19181, 19181,
- 19181, 19181, 19181, 19181, 19181, 19181, 19181, 19181,
- 19183, 19183, 19207, 19207, 19207, 19207, 19207, 19207,
- 19207, 19207, 19207, 19207, 19207, 19207, 19207, 19207,
- 19207, 19207, 19207, 19207, 19207, 19207, 19207, 19207,
- 19207, 19207, 19211, 19211, 19211, 19211, 19213, 19213,
- 19219, 19219, 19219, 19219, 19219, 19219, 19231, 19231,
- 19231, 19231, 19231, 19231, 19231, 19231, 19231, 19231,
- 19231, 19231, 19237, 19237, 19237, 19237, 19237, 19237,
- 19249, 19249, 19249, 19249, 19249, 19249, 19249, 19249,
- 19249, 19249, 19249, 19249, 19259, 19259, 19259, 19259,
- 19259, 19259, 19259, 19259, 19259, 19259, 19267, 19267,
- 19267, 19267, 19267, 19267, 19267, 19267, 19273, 19273,
- 19273, 19273, 19273, 19273, 19289, 19289, 19289, 19289,
- 19289, 19289, 19289, 19289, 19289, 19289, 19289, 19289,
- 19289, 19289, 19289, 19289, 19301, 19301, 19301, 19301,
- 19301, 19301, 19301, 19301, 19301, 19301, 19301, 19301,
- 19309, 19309, 19309, 19309, 19309, 19309, 19309, 19309,
- 19319, 19319, 19319, 19319, 19319, 19319, 19319, 19319,
- 19319, 19319, 19333, 19333, 19333, 19333, 19333, 19333,
- 19333, 19333, 19333, 19333, 19333, 19333, 19333, 19333,
- 19373, 19373, 19373, 19373, 19373, 19373, 19373, 19373,
- 19373, 19373, 19373, 19373, 19373, 19373, 19373, 19373,
- 19373, 19373, 19373, 19373, 19373, 19373, 19373, 19373,
- 19373, 19373, 19373, 19373, 19373, 19373, 19373, 19373,
- 19373, 19373, 19373, 19373, 19373, 19373, 19373, 19373,
- 19379, 19379, 19379, 19379, 19379, 19379, 19381, 19381,
- 19387, 19387, 19387, 19387, 19387, 19387, 19391, 19391,
- 19391, 19391, 19403, 19403, 19403, 19403, 19403, 19403,
- 19403, 19403, 19403, 19403, 19403, 19403, 19417, 19417,
- 19417, 19417, 19417, 19417, 19417, 19417, 19417, 19417,
- 19417, 19417, 19417, 19417, 19421, 19421, 19421, 19421,
- 19423, 19423, 19427, 19427, 19427, 19427, 19429, 19429,
- 19433, 19433, 19433, 19433, 19441, 19441, 19441, 19441,
- 19441, 19441, 19441, 19441, 19447, 19447, 19447, 19447,
- 19447, 19447, 19457, 19457, 19457, 19457, 19457, 19457,
- 19457, 19457, 19457, 19457, 19463, 19463, 19463, 19463,
- 19463, 19463, 19469, 19469, 19469, 19469, 19469, 19469,
- 19471, 19471, 19477, 19477, 19477, 19477, 19477, 19477,
- 19483, 19483, 19483, 19483, 19483, 19483, 19489, 19489,
- 19489, 19489, 19489, 19489, 19501, 19501, 19501, 19501,
- 19501, 19501, 19501, 19501, 19501, 19501, 19501, 19501,
- 19507, 19507, 19507, 19507, 19507, 19507, 19531, 19531,
- 19531, 19531, 19531, 19531, 19531, 19531, 19531, 19531,
- 19531, 19531, 19531, 19531, 19531, 19531, 19531, 19531,
- 19531, 19531, 19531, 19531, 19531, 19531, 19541, 19541,
- 19541, 19541, 19541, 19541, 19541, 19541, 19541, 19541,
- 19543, 19543, 19553, 19553, 19553, 19553, 19553, 19553,
- 19553, 19553, 19553, 19553, 19559, 19559, 19559, 19559,
- 19559, 19559, 19571, 19571, 19571, 19571, 19571, 19571,
- 19571, 19571, 19571, 19571, 19571, 19571, 19577, 19577,
- 19577, 19577, 19577, 19577, 19583, 19583, 19583, 19583,
- 19583, 19583, 19597, 19597, 19597, 19597, 19597, 19597,
- 19597, 19597, 19597, 19597, 19597, 19597, 19597, 19597,
- 19603, 19603, 19603, 19603, 19603, 19603, 19609, 19609,
- 19609, 19609, 19609, 19609, 19661, 19661, 19661, 19661,
- 19661, 19661, 19661, 19661, 19661, 19661, 19661, 19661,
- 19661, 19661, 19661, 19661, 19661, 19661, 19661, 19661,
- 19661, 19661, 19661, 19661, 19661, 19661, 19661, 19661,
- 19661, 19661, 19661, 19661, 19661, 19661, 19661, 19661,
- 19661, 19661, 19661, 19661, 19661, 19661, 19661, 19661,
- 19661, 19661, 19661, 19661, 19661, 19661, 19661, 19661,
- 19681, 19681, 19681, 19681, 19681, 19681, 19681, 19681,
- 19681, 19681, 19681, 19681, 19681, 19681, 19681, 19681,
- 19681, 19681, 19681, 19681, 19687, 19687, 19687, 19687,
- 19687, 19687, 19697, 19697, 19697, 19697, 19697, 19697,
- 19697, 19697, 19697, 19697, 19699, 19699, 19709, 19709,
- 19709, 19709, 19709, 19709, 19709, 19709, 19709, 19709,
- 19717, 19717, 19717, 19717, 19717, 19717, 19717, 19717,
- 19727, 19727, 19727, 19727, 19727, 19727, 19727, 19727,
- 19727, 19727, 19739, 19739, 19739, 19739, 19739, 19739,
- 19739, 19739, 19739, 19739, 19739, 19739, 19751, 19751,
- 19751, 19751, 19751, 19751, 19751, 19751, 19751, 19751,
- 19751, 19751, 19753, 19753, 19759, 19759, 19759, 19759,
- 19759, 19759, 19763, 19763, 19763, 19763, 19777, 19777,
- 19777, 19777, 19777, 19777, 19777, 19777, 19777, 19777,
- 19777, 19777, 19777, 19777, 19793, 19793, 19793, 19793,
- 19793, 19793, 19793, 19793, 19793, 19793, 19793, 19793,
- 19793, 19793, 19793, 19793, 19801, 19801, 19801, 19801,
- 19801, 19801, 19801, 19801, 19813, 19813, 19813, 19813,
- 19813, 19813, 19813, 19813, 19813, 19813, 19813, 19813,
- 19819, 19819, 19819, 19819, 19819, 19819, 19841, 19841,
- 19841, 19841, 19841, 19841, 19841, 19841, 19841, 19841,
- 19841, 19841, 19841, 19841, 19841, 19841, 19841, 19841,
- 19841, 19841, 19841, 19841, 19843, 19843, 19853, 19853,
- 19853, 19853, 19853, 19853, 19853, 19853, 19853, 19853,
- 19861, 19861, 19861, 19861, 19861, 19861, 19861, 19861,
- 19867, 19867, 19867, 19867, 19867, 19867, 19889, 19889,
- 19889, 19889, 19889, 19889, 19889, 19889, 19889, 19889,
- 19889, 19889, 19889, 19889, 19889, 19889, 19889, 19889,
- 19889, 19889, 19889, 19889, 19891, 19891, 19913, 19913,
- 19913, 19913, 19913, 19913, 19913, 19913, 19913, 19913,
- 19913, 19913, 19913, 19913, 19913, 19913, 19913, 19913,
- 19913, 19913, 19913, 19913, 19919, 19919, 19919, 19919,
- 19919, 19919, 19927, 19927, 19927, 19927, 19927, 19927,
- 19927, 19927, 19937, 19937, 19937, 19937, 19937, 19937,
- 19937, 19937, 19937, 19937, 19949, 19949, 19949, 19949,
- 19949, 19949, 19949, 19949, 19949, 19949, 19949, 19949,
- 19961, 19961, 19961, 19961, 19961, 19961, 19961, 19961,
- 19961, 19961, 19961, 19961, 19963, 19963, 19973, 19973,
- 19973, 19973, 19973, 19973, 19973, 19973, 19973, 19973,
- 19979, 19979, 19979, 19979, 19979, 19979, 19991, 19991,
- 19991, 19991, 19991, 19991, 19991, 19991, 19991, 19991,
- 19991, 19991, 19993, 19993, 19997, 19997, 19997, 19997,
- 20011, 20011, 20011, 20011, 20011, 20011, 20011, 20011,
- 20011, 20011, 20011, 20011, 20011, 20011, 20021, 20021,
- 20021, 20021, 20021, 20021, 20021, 20021, 20021, 20021,
- 20023, 20023, 20029, 20029, 20029, 20029, 20029, 20029,
- 20047, 20047, 20047, 20047, 20047, 20047, 20047, 20047,
- 20047, 20047, 20047, 20047, 20047, 20047, 20047, 20047,
- 20047, 20047, 20051, 20051, 20051, 20051, 20063, 20063,
- 20063, 20063, 20063, 20063, 20063, 20063, 20063, 20063,
- 20063, 20063, 20071, 20071, 20071, 20071, 20071, 20071,
- 20071, 20071, 20089, 20089, 20089, 20089, 20089, 20089,
- 20089, 20089, 20089, 20089, 20089, 20089, 20089, 20089,
- 20089, 20089, 20089, 20089, 20101, 20101, 20101, 20101,
- 20101, 20101, 20101, 20101, 20101, 20101, 20101, 20101,
- 20107, 20107, 20107, 20107, 20107, 20107, 20113, 20113,
- 20113, 20113, 20113, 20113, 20117, 20117, 20117, 20117,
- 20123, 20123, 20123, 20123, 20123, 20123, 20129, 20129,
- 20129, 20129, 20129, 20129, 20143, 20143, 20143, 20143,
- 20143, 20143, 20143, 20143, 20143, 20143, 20143, 20143,
- 20143, 20143, 20147, 20147, 20147, 20147, 20149, 20149,
- 20161, 20161, 20161, 20161, 20161, 20161, 20161, 20161,
- 20161, 20161, 20161, 20161, 20173, 20173, 20173, 20173,
- 20173, 20173, 20173, 20173, 20173, 20173, 20173, 20173,
- 20177, 20177, 20177, 20177, 20183, 20183, 20183, 20183,
- 20183, 20183, 20201, 20201, 20201, 20201, 20201, 20201,
- 20201, 20201, 20201, 20201, 20201, 20201, 20201, 20201,
- 20201, 20201, 20201, 20201, 20219, 20219, 20219, 20219,
- 20219, 20219, 20219, 20219, 20219, 20219, 20219, 20219,
- 20219, 20219, 20219, 20219, 20219, 20219, 20231, 20231,
- 20231, 20231, 20231, 20231, 20231, 20231, 20231, 20231,
- 20231, 20231, 20233, 20233, 20249, 20249, 20249, 20249,
- 20249, 20249, 20249, 20249, 20249, 20249, 20249, 20249,
- 20249, 20249, 20249, 20249, 20261, 20261, 20261, 20261,
- 20261, 20261, 20261, 20261, 20261, 20261, 20261, 20261,
- 20269, 20269, 20269, 20269, 20269, 20269, 20269, 20269,
- 20287, 20287, 20287, 20287, 20287, 20287, 20287, 20287,
- 20287, 20287, 20287, 20287, 20287, 20287, 20287, 20287,
- 20287, 20287, 20297, 20297, 20297, 20297, 20297, 20297,
- 20297, 20297, 20297, 20297, 20323, 20323, 20323, 20323,
- 20323, 20323, 20323, 20323, 20323, 20323, 20323, 20323,
- 20323, 20323, 20323, 20323, 20323, 20323, 20323, 20323,
- 20323, 20323, 20323, 20323, 20323, 20323, 20327, 20327,
- 20327, 20327, 20333, 20333, 20333, 20333, 20333, 20333,
- 20341, 20341, 20341, 20341, 20341, 20341, 20341, 20341,
- 20347, 20347, 20347, 20347, 20347, 20347, 20353, 20353,
- 20353, 20353, 20353, 20353, 20357, 20357, 20357, 20357,
- 20359, 20359, 20369, 20369, 20369, 20369, 20369, 20369,
- 20369, 20369, 20369, 20369, 20389, 20389, 20389, 20389,
- 20389, 20389, 20389, 20389, 20389, 20389, 20389, 20389,
- 20389, 20389, 20389, 20389, 20389, 20389, 20389, 20389,
- 20393, 20393, 20393, 20393, 20399, 20399, 20399, 20399,
- 20399, 20399, 20407, 20407, 20407, 20407, 20407, 20407,
- 20407, 20407, 20411, 20411, 20411, 20411, 20431, 20431,
- 20431, 20431, 20431, 20431, 20431, 20431, 20431, 20431,
- 20431, 20431, 20431, 20431, 20431, 20431, 20431, 20431,
- 20431, 20431, 20441, 20441, 20441, 20441, 20441, 20441,
- 20441, 20441, 20441, 20441, 20443, 20443, 20477, 20477,
- 20477, 20477, 20477, 20477, 20477, 20477, 20477, 20477,
- 20477, 20477, 20477, 20477, 20477, 20477, 20477, 20477,
- 20477, 20477, 20477, 20477, 20477, 20477, 20477, 20477,
- 20477, 20477, 20477, 20477, 20477, 20477, 20477, 20477,
- 20479, 20479, 20483, 20483, 20483, 20483, 20507, 20507,
- 20507, 20507, 20507, 20507, 20507, 20507, 20507, 20507,
- 20507, 20507, 20507, 20507, 20507, 20507, 20507, 20507,
- 20507, 20507, 20507, 20507, 20507, 20507, 20509, 20509,
- 20521, 20521, 20521, 20521, 20521, 20521, 20521, 20521,
- 20521, 20521, 20521, 20521, 20533, 20533, 20533, 20533,
- 20533, 20533, 20533, 20533, 20533, 20533, 20533, 20533,
- 20543, 20543, 20543, 20543, 20543, 20543, 20543, 20543,
- 20543, 20543, 20549, 20549, 20549, 20549, 20549, 20549,
- 20551, 20551, 20563, 20563, 20563, 20563, 20563, 20563,
- 20563, 20563, 20563, 20563, 20563, 20563, 20593, 20593,
- 20593, 20593, 20593, 20593, 20593, 20593, 20593, 20593,
- 20593, 20593, 20593, 20593, 20593, 20593, 20593, 20593,
- 20593, 20593, 20593, 20593, 20593, 20593, 20593, 20593,
- 20593, 20593, 20593, 20593, 20599, 20599, 20599, 20599,
- 20599, 20599, 20611, 20611, 20611, 20611, 20611, 20611,
- 20611, 20611, 20611, 20611, 20611, 20611, 20627, 20627,
- 20627, 20627, 20627, 20627, 20627, 20627, 20627, 20627,
- 20627, 20627, 20627, 20627, 20627, 20627, 20639, 20639,
- 20639, 20639, 20639, 20639, 20639, 20639, 20639, 20639,
- 20639, 20639, 20641, 20641, 20663, 20663, 20663, 20663,
- 20663, 20663, 20663, 20663, 20663, 20663, 20663, 20663,
- 20663, 20663, 20663, 20663, 20663, 20663, 20663, 20663,
- 20663, 20663, 20681, 20681, 20681, 20681, 20681, 20681,
- 20681, 20681, 20681, 20681, 20681, 20681, 20681, 20681,
- 20681, 20681, 20681, 20681, 20693, 20693, 20693, 20693,
- 20693, 20693, 20693, 20693, 20693, 20693, 20693, 20693,
- 20707, 20707, 20707, 20707, 20707, 20707, 20707, 20707,
- 20707, 20707, 20707, 20707, 20707, 20707, 20717, 20717,
- 20717, 20717, 20717, 20717, 20717, 20717, 20717, 20717,
- 20719, 20719, 20731, 20731, 20731, 20731, 20731, 20731,
- 20731, 20731, 20731, 20731, 20731, 20731, 20743, 20743,
- 20743, 20743, 20743, 20743, 20743, 20743, 20743, 20743,
- 20743, 20743, 20747, 20747, 20747, 20747, 20749, 20749,
- 20753, 20753, 20753, 20753, 20759, 20759, 20759, 20759,
- 20759, 20759, 20771, 20771, 20771, 20771, 20771, 20771,
- 20771, 20771, 20771, 20771, 20771, 20771, 20773, 20773,
- 20789, 20789, 20789, 20789, 20789, 20789, 20789, 20789,
- 20789, 20789, 20789, 20789, 20789, 20789, 20789, 20789,
- 20807, 20807, 20807, 20807, 20807, 20807, 20807, 20807,
- 20807, 20807, 20807, 20807, 20807, 20807, 20807, 20807,
- 20807, 20807, 20809, 20809, 20849, 20849, 20849, 20849,
- 20849, 20849, 20849, 20849, 20849, 20849, 20849, 20849,
- 20849, 20849, 20849, 20849, 20849, 20849, 20849, 20849,
- 20849, 20849, 20849, 20849, 20849, 20849, 20849, 20849,
- 20849, 20849, 20849, 20849, 20849, 20849, 20849, 20849,
- 20849, 20849, 20849, 20849, 20857, 20857, 20857, 20857,
- 20857, 20857, 20857, 20857, 20873, 20873, 20873, 20873,
- 20873, 20873, 20873, 20873, 20873, 20873, 20873, 20873,
- 20873, 20873, 20873, 20873, 20879, 20879, 20879, 20879,
- 20879, 20879, 20887, 20887, 20887, 20887, 20887, 20887,
- 20887, 20887, 20897, 20897, 20897, 20897, 20897, 20897,
- 20897, 20897, 20897, 20897, 20899, 20899, 20903, 20903,
- 20903, 20903, 20921, 20921, 20921, 20921, 20921, 20921,
- 20921, 20921, 20921, 20921, 20921, 20921, 20921, 20921,
- 20921, 20921, 20921, 20921, 20929, 20929, 20929, 20929,
- 20929, 20929, 20929, 20929, 20939, 20939, 20939, 20939,
- 20939, 20939, 20939, 20939, 20939, 20939, 20947, 20947,
- 20947, 20947, 20947, 20947, 20947, 20947, 20959, 20959,
- 20959, 20959, 20959, 20959, 20959, 20959, 20959, 20959,
- 20959, 20959, 20963, 20963, 20963, 20963, 20981, 20981,
- 20981, 20981, 20981, 20981, 20981, 20981, 20981, 20981,
- 20981, 20981, 20981, 20981, 20981, 20981, 20981, 20981,
- 20983, 20983, 21001, 21001, 21001, 21001, 21001, 21001,
- 21001, 21001, 21001, 21001, 21001, 21001, 21001, 21001,
- 21001, 21001, 21001, 21001, 21011, 21011, 21011, 21011,
- 21011, 21011, 21011, 21011, 21011, 21011, 21013, 21013,
- 21017, 21017, 21017, 21017, 21019, 21019, 21023, 21023,
- 21023, 21023, 21031, 21031, 21031, 21031, 21031, 21031,
- 21031, 21031, 21059, 21059, 21059, 21059, 21059, 21059,
- 21059, 21059, 21059, 21059, 21059, 21059, 21059, 21059,
- 21059, 21059, 21059, 21059, 21059, 21059, 21059, 21059,
- 21059, 21059, 21059, 21059, 21059, 21059, 21061, 21061,
- 21067, 21067, 21067, 21067, 21067, 21067, 21089, 21089,
- 21089, 21089, 21089, 21089, 21089, 21089, 21089, 21089,
- 21089, 21089, 21089, 21089, 21089, 21089, 21089, 21089,
- 21089, 21089, 21089, 21089, 21101, 21101, 21101, 21101,
- 21101, 21101, 21101, 21101, 21101, 21101, 21101, 21101,
- 21107, 21107, 21107, 21107, 21107, 21107, 21121, 21121,
- 21121, 21121, 21121, 21121, 21121, 21121, 21121, 21121,
- 21121, 21121, 21121, 21121, 21139, 21139, 21139, 21139,
- 21139, 21139, 21139, 21139, 21139, 21139, 21139, 21139,
- 21139, 21139, 21139, 21139, 21139, 21139, 21143, 21143,
- 21143, 21143, 21149, 21149, 21149, 21149, 21149, 21149,
- 21157, 21157, 21157, 21157, 21157, 21157, 21157, 21157,
- 21163, 21163, 21163, 21163, 21163, 21163, 21169, 21169,
- 21169, 21169, 21169, 21169, 21179, 21179, 21179, 21179,
- 21179, 21179, 21179, 21179, 21179, 21179, 21187, 21187,
- 21187, 21187, 21187, 21187, 21187, 21187, 21191, 21191,
- 21191, 21191, 21193, 21193, 21211, 21211, 21211, 21211,
- 21211, 21211, 21211, 21211, 21211, 21211, 21211, 21211,
- 21211, 21211, 21211, 21211, 21211, 21211, 21221, 21221,
- 21221, 21221, 21221, 21221, 21221, 21221, 21221, 21221,
- 21227, 21227, 21227, 21227, 21227, 21227, 21247, 21247,
- 21247, 21247, 21247, 21247, 21247, 21247, 21247, 21247,
- 21247, 21247, 21247, 21247, 21247, 21247, 21247, 21247,
- 21247, 21247, 21269, 21269, 21269, 21269, 21269, 21269,
- 21269, 21269, 21269, 21269, 21269, 21269, 21269, 21269,
- 21269, 21269, 21269, 21269, 21269, 21269, 21269, 21269,
- 21277, 21277, 21277, 21277, 21277, 21277, 21277, 21277,
- 21283, 21283, 21283, 21283, 21283, 21283, 21313, 21313,
- 21313, 21313, 21313, 21313, 21313, 21313, 21313, 21313,
- 21313, 21313, 21313, 21313, 21313, 21313, 21313, 21313,
- 21313, 21313, 21313, 21313, 21313, 21313, 21313, 21313,
- 21313, 21313, 21313, 21313, 21317, 21317, 21317, 21317,
- 21319, 21319, 21323, 21323, 21323, 21323, 21341, 21341,
- 21341, 21341, 21341, 21341, 21341, 21341, 21341, 21341,
- 21341, 21341, 21341, 21341, 21341, 21341, 21341, 21341,
- 21347, 21347, 21347, 21347, 21347, 21347, 21377, 21377,
- 21377, 21377, 21377, 21377, 21377, 21377, 21377, 21377,
- 21377, 21377, 21377, 21377, 21377, 21377, 21377, 21377,
- 21377, 21377, 21377, 21377, 21377, 21377, 21377, 21377,
- 21377, 21377, 21377, 21377, 21379, 21379, 21383, 21383,
- 21383, 21383, 21391, 21391, 21391, 21391, 21391, 21391,
- 21391, 21391, 21397, 21397, 21397, 21397, 21397, 21397,
- 21401, 21401, 21401, 21401, 21407, 21407, 21407, 21407,
- 21407, 21407, 21419, 21419, 21419, 21419, 21419, 21419,
- 21419, 21419, 21419, 21419, 21419, 21419, 21433, 21433,
- 21433, 21433, 21433, 21433, 21433, 21433, 21433, 21433,
- 21433, 21433, 21433, 21433, 21467, 21467, 21467, 21467,
- 21467, 21467, 21467, 21467, 21467, 21467, 21467, 21467,
- 21467, 21467, 21467, 21467, 21467, 21467, 21467, 21467,
- 21467, 21467, 21467, 21467, 21467, 21467, 21467, 21467,
- 21467, 21467, 21467, 21467, 21467, 21467, 21481, 21481,
- 21481, 21481, 21481, 21481, 21481, 21481, 21481, 21481,
- 21481, 21481, 21481, 21481, 21487, 21487, 21487, 21487,
- 21487, 21487, 21491, 21491, 21491, 21491, 21493, 21493,
- 21499, 21499, 21499, 21499, 21499, 21499, 21503, 21503,
- 21503, 21503, 21517, 21517, 21517, 21517, 21517, 21517,
- 21517, 21517, 21517, 21517, 21517, 21517, 21517, 21517,
- 21521, 21521, 21521, 21521, 21523, 21523, 21529, 21529,
- 21529, 21529, 21529, 21529, 21557, 21557, 21557, 21557,
- 21557, 21557, 21557, 21557, 21557, 21557, 21557, 21557,
- 21557, 21557, 21557, 21557, 21557, 21557, 21557, 21557,
- 21557, 21557, 21557, 21557, 21557, 21557, 21557, 21557,
- 21559, 21559, 21563, 21563, 21563, 21563, 21569, 21569,
- 21569, 21569, 21569, 21569, 21577, 21577, 21577, 21577,
- 21577, 21577, 21577, 21577, 21587, 21587, 21587, 21587,
- 21587, 21587, 21587, 21587, 21587, 21587, 21589, 21589,
- 21599, 21599, 21599, 21599, 21599, 21599, 21599, 21599,
- 21599, 21599, 21601, 21601, 21611, 21611, 21611, 21611,
- 21611, 21611, 21611, 21611, 21611, 21611, 21613, 21613,
- 21617, 21617, 21617, 21617, 21647, 21647, 21647, 21647,
- 21647, 21647, 21647, 21647, 21647, 21647, 21647, 21647,
- 21647, 21647, 21647, 21647, 21647, 21647, 21647, 21647,
- 21647, 21647, 21647, 21647, 21647, 21647, 21647, 21647,
- 21647, 21647, 21649, 21649, 21661, 21661, 21661, 21661,
- 21661, 21661, 21661, 21661, 21661, 21661, 21661, 21661,
- 21673, 21673, 21673, 21673, 21673, 21673, 21673, 21673,
- 21673, 21673, 21673, 21673, 21683, 21683, 21683, 21683,
- 21683, 21683, 21683, 21683, 21683, 21683, 21701, 21701,
- 21701, 21701, 21701, 21701, 21701, 21701, 21701, 21701,
- 21701, 21701, 21701, 21701, 21701, 21701, 21701, 21701,
- 21713, 21713, 21713, 21713, 21713, 21713, 21713, 21713,
- 21713, 21713, 21713, 21713, 21727, 21727, 21727, 21727,
- 21727, 21727, 21727, 21727, 21727, 21727, 21727, 21727,
- 21727, 21727, 21737, 21737, 21737, 21737, 21737, 21737,
- 21737, 21737, 21737, 21737, 21739, 21739, 21751, 21751,
- 21751, 21751, 21751, 21751, 21751, 21751, 21751, 21751,
- 21751, 21751, 21757, 21757, 21757, 21757, 21757, 21757,
- 21767, 21767, 21767, 21767, 21767, 21767, 21767, 21767,
- 21767, 21767, 21773, 21773, 21773, 21773, 21773, 21773,
- 21787, 21787, 21787, 21787, 21787, 21787, 21787, 21787,
- 21787, 21787, 21787, 21787, 21787, 21787, 21799, 21799,
- 21799, 21799, 21799, 21799, 21799, 21799, 21799, 21799,
- 21799, 21799, 21803, 21803, 21803, 21803, 21817, 21817,
- 21817, 21817, 21817, 21817, 21817, 21817, 21817, 21817,
- 21817, 21817, 21817, 21817, 21821, 21821, 21821, 21821,
- 21839, 21839, 21839, 21839, 21839, 21839, 21839, 21839,
- 21839, 21839, 21839, 21839, 21839, 21839, 21839, 21839,
- 21839, 21839, 21841, 21841, 21851, 21851, 21851, 21851,
- 21851, 21851, 21851, 21851, 21851, 21851, 21859, 21859,
- 21859, 21859, 21859, 21859, 21859, 21859, 21863, 21863,
- 21863, 21863, 21871, 21871, 21871, 21871, 21871, 21871,
- 21871, 21871, 21881, 21881, 21881, 21881, 21881, 21881,
- 21881, 21881, 21881, 21881, 21893, 21893, 21893, 21893,
- 21893, 21893, 21893, 21893, 21893, 21893, 21893, 21893,
- 21911, 21911, 21911, 21911, 21911, 21911, 21911, 21911,
- 21911, 21911, 21911, 21911, 21911, 21911, 21911, 21911,
- 21911, 21911, 21929, 21929, 21929, 21929, 21929, 21929,
- 21929, 21929, 21929, 21929, 21929, 21929, 21929, 21929,
- 21929, 21929, 21929, 21929, 21937, 21937, 21937, 21937,
- 21937, 21937, 21937, 21937, 21943, 21943, 21943, 21943,
- 21943, 21943, 21961, 21961, 21961, 21961, 21961, 21961,
- 21961, 21961, 21961, 21961, 21961, 21961, 21961, 21961,
- 21961, 21961, 21961, 21961, 21977, 21977, 21977, 21977,
- 21977, 21977, 21977, 21977, 21977, 21977, 21977, 21977,
- 21977, 21977, 21977, 21977, 21991, 21991, 21991, 21991,
- 21991, 21991, 21991, 21991, 21991, 21991, 21991, 21991,
- 21991, 21991, 21997, 21997, 21997, 21997, 21997, 21997,
- 22003, 22003, 22003, 22003, 22003, 22003, 22013, 22013,
- 22013, 22013, 22013, 22013, 22013, 22013, 22013, 22013,
- 22027, 22027, 22027, 22027, 22027, 22027, 22027, 22027,
- 22027, 22027, 22027, 22027, 22027, 22027, 22031, 22031,
- 22031, 22031, 22037, 22037, 22037, 22037, 22037, 22037,
- 22039, 22039, 22051, 22051, 22051, 22051, 22051, 22051,
- 22051, 22051, 22051, 22051, 22051, 22051, 22063, 22063,
- 22063, 22063, 22063, 22063, 22063, 22063, 22063, 22063,
- 22063, 22063, 22067, 22067, 22067, 22067, 22073, 22073,
- 22073, 22073, 22073, 22073, 22079, 22079, 22079, 22079,
- 22079, 22079, 22091, 22091, 22091, 22091, 22091, 22091,
- 22091, 22091, 22091, 22091, 22091, 22091, 22093, 22093,
- 22109, 22109, 22109, 22109, 22109, 22109, 22109, 22109,
- 22109, 22109, 22109, 22109, 22109, 22109, 22109, 22109,
- 22111, 22111, 22123, 22123, 22123, 22123, 22123, 22123,
- 22123, 22123, 22123, 22123, 22123, 22123, 22129, 22129,
- 22129, 22129, 22129, 22129, 22133, 22133, 22133, 22133,
- 22147, 22147, 22147, 22147, 22147, 22147, 22147, 22147,
- 22147, 22147, 22147, 22147, 22147, 22147, 22153, 22153,
- 22153, 22153, 22153, 22153, 22157, 22157, 22157, 22157,
- 22159, 22159, 22171, 22171, 22171, 22171, 22171, 22171,
- 22171, 22171, 22171, 22171, 22171, 22171, 22189, 22189,
- 22189, 22189, 22189, 22189, 22189, 22189, 22189, 22189,
- 22189, 22189, 22189, 22189, 22189, 22189, 22189, 22189,
- 22193, 22193, 22193, 22193, 22229, 22229, 22229, 22229,
- 22229, 22229, 22229, 22229, 22229, 22229, 22229, 22229,
- 22229, 22229, 22229, 22229, 22229, 22229, 22229, 22229,
- 22229, 22229, 22229, 22229, 22229, 22229, 22229, 22229,
- 22229, 22229, 22229, 22229, 22229, 22229, 22229, 22229,
- 22247, 22247, 22247, 22247, 22247, 22247, 22247, 22247,
- 22247, 22247, 22247, 22247, 22247, 22247, 22247, 22247,
- 22247, 22247, 22259, 22259, 22259, 22259, 22259, 22259,
- 22259, 22259, 22259, 22259, 22259, 22259, 22271, 22271,
- 22271, 22271, 22271, 22271, 22271, 22271, 22271, 22271,
- 22271, 22271, 22273, 22273, 22277, 22277, 22277, 22277,
- 22279, 22279, 22283, 22283, 22283, 22283, 22291, 22291,
- 22291, 22291, 22291, 22291, 22291, 22291, 22303, 22303,
- 22303, 22303, 22303, 22303, 22303, 22303, 22303, 22303,
- 22303, 22303, 22307, 22307, 22307, 22307, 22343, 22343,
- 22343, 22343, 22343, 22343, 22343, 22343, 22343, 22343,
- 22343, 22343, 22343, 22343, 22343, 22343, 22343, 22343,
- 22343, 22343, 22343, 22343, 22343, 22343, 22343, 22343,
- 22343, 22343, 22343, 22343, 22343, 22343, 22343, 22343,
- 22343, 22343, 22349, 22349, 22349, 22349, 22349, 22349,
- 22367, 22367, 22367, 22367, 22367, 22367, 22367, 22367,
- 22367, 22367, 22367, 22367, 22367, 22367, 22367, 22367,
- 22367, 22367, 22369, 22369, 22381, 22381, 22381, 22381,
- 22381, 22381, 22381, 22381, 22381, 22381, 22381, 22381,
- 22391, 22391, 22391, 22391, 22391, 22391, 22391, 22391,
- 22391, 22391, 22397, 22397, 22397, 22397, 22397, 22397,
- 22409, 22409, 22409, 22409, 22409, 22409, 22409, 22409,
- 22409, 22409, 22409, 22409, 22433, 22433, 22433, 22433,
- 22433, 22433, 22433, 22433, 22433, 22433, 22433, 22433,
- 22433, 22433, 22433, 22433, 22433, 22433, 22433, 22433,
- 22433, 22433, 22433, 22433, 22441, 22441, 22441, 22441,
- 22441, 22441, 22441, 22441, 22447, 22447, 22447, 22447,
- 22447, 22447, 22453, 22453, 22453, 22453, 22453, 22453,
- 22469, 22469, 22469, 22469, 22469, 22469, 22469, 22469,
- 22469, 22469, 22469, 22469, 22469, 22469, 22469, 22469,
- 22481, 22481, 22481, 22481, 22481, 22481, 22481, 22481,
- 22481, 22481, 22481, 22481, 22483, 22483, 22501, 22501,
- 22501, 22501, 22501, 22501, 22501, 22501, 22501, 22501,
- 22501, 22501, 22501, 22501, 22501, 22501, 22501, 22501,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22531, 22531, 22531, 22531, 22531, 22531,
- 22531, 22531, 22531, 22531, 22531, 22531, 22531, 22531,
- 22531, 22531, 22531, 22531, 22531, 22531, 22541, 22541,
- 22541, 22541, 22541, 22541, 22541, 22541, 22541, 22541,
- 22543, 22543, 22549, 22549, 22549, 22549, 22549, 22549,
- 22567, 22567, 22567, 22567, 22567, 22567, 22567, 22567,
- 22567, 22567, 22567, 22567, 22567, 22567, 22567, 22567,
- 22567, 22567, 22571, 22571, 22571, 22571, 22573, 22573,
- 22613, 22613, 22613, 22613, 22613, 22613, 22613, 22613,
- 22613, 22613, 22613, 22613, 22613, 22613, 22613, 22613,
- 22613, 22613, 22613, 22613, 22613, 22613, 22613, 22613,
- 22613, 22613, 22613, 22613, 22613, 22613, 22613, 22613,
- 22613, 22613, 22613, 22613, 22613, 22613, 22613, 22613,
- 22619, 22619, 22619, 22619, 22619, 22619, 22621, 22621,
- 22637, 22637, 22637, 22637, 22637, 22637, 22637, 22637,
- 22637, 22637, 22637, 22637, 22637, 22637, 22637, 22637,
- 22639, 22639, 22643, 22643, 22643, 22643, 22651, 22651,
- 22651, 22651, 22651, 22651, 22651, 22651, 22669, 22669,
- 22669, 22669, 22669, 22669, 22669, 22669, 22669, 22669,
- 22669, 22669, 22669, 22669, 22669, 22669, 22669, 22669,
- 22679, 22679, 22679, 22679, 22679, 22679, 22679, 22679,
- 22679, 22679, 22691, 22691, 22691, 22691, 22691, 22691,
- 22691, 22691, 22691, 22691, 22691, 22691, 22697, 22697,
- 22697, 22697, 22697, 22697, 22699, 22699, 22709, 22709,
- 22709, 22709, 22709, 22709, 22709, 22709, 22709, 22709,
- 22717, 22717, 22717, 22717, 22717, 22717, 22717, 22717,
- 22721, 22721, 22721, 22721, 22727, 22727, 22727, 22727,
- 22727, 22727, 22739, 22739, 22739, 22739, 22739, 22739,
- 22739, 22739, 22739, 22739, 22739, 22739, 22741, 22741,
- 22751, 22751, 22751, 22751, 22751, 22751, 22751, 22751,
- 22751, 22751, 22769, 22769, 22769, 22769, 22769, 22769,
- 22769, 22769, 22769, 22769, 22769, 22769, 22769, 22769,
- 22769, 22769, 22769, 22769, 22777, 22777, 22777, 22777,
- 22777, 22777, 22777, 22777, 22783, 22783, 22783, 22783,
- 22783, 22783, 22787, 22787, 22787, 22787, 22807, 22807,
- 22807, 22807, 22807, 22807, 22807, 22807, 22807, 22807,
- 22807, 22807, 22807, 22807, 22807, 22807, 22807, 22807,
- 22807, 22807, 22811, 22811, 22811, 22811, 22817, 22817,
- 22817, 22817, 22817, 22817, 22853, 22853, 22853, 22853,
- 22853, 22853, 22853, 22853, 22853, 22853, 22853, 22853,
- 22853, 22853, 22853, 22853, 22853, 22853, 22853, 22853,
- 22853, 22853, 22853, 22853, 22853, 22853, 22853, 22853,
- 22853, 22853, 22853, 22853, 22853, 22853, 22853, 22853,
- 22859, 22859, 22859, 22859, 22859, 22859, 22861, 22861,
- 22871, 22871, 22871, 22871, 22871, 22871, 22871, 22871,
- 22871, 22871, 22877, 22877, 22877, 22877, 22877, 22877,
- 22901, 22901, 22901, 22901, 22901, 22901, 22901, 22901,
- 22901, 22901, 22901, 22901, 22901, 22901, 22901, 22901,
- 22901, 22901, 22901, 22901, 22901, 22901, 22901, 22901,
- 22907, 22907, 22907, 22907, 22907, 22907, 22921, 22921,
- 22921, 22921, 22921, 22921, 22921, 22921, 22921, 22921,
- 22921, 22921, 22921, 22921, 22937, 22937, 22937, 22937,
- 22937, 22937, 22937, 22937, 22937, 22937, 22937, 22937,
- 22937, 22937, 22937, 22937, 22943, 22943, 22943, 22943,
- 22943, 22943, 22961, 22961, 22961, 22961, 22961, 22961,
- 22961, 22961, 22961, 22961, 22961, 22961, 22961, 22961,
- 22961, 22961, 22961, 22961, 22963, 22963, 22973, 22973,
- 22973, 22973, 22973, 22973, 22973, 22973, 22973, 22973,
- 22993, 22993, 22993, 22993, 22993, 22993, 22993, 22993,
- 22993, 22993, 22993, 22993, 22993, 22993, 22993, 22993,
- 22993, 22993, 22993, 22993, 23003, 23003, 23003, 23003,
- 23003, 23003, 23003, 23003, 23003, 23003, 23011, 23011,
- 23011, 23011, 23011, 23011, 23011, 23011, 23017, 23017,
- 23017, 23017, 23017, 23017, 23021, 23021, 23021, 23021,
- 23027, 23027, 23027, 23027, 23027, 23027, 23029, 23029,
- 23039, 23039, 23039, 23039, 23039, 23039, 23039, 23039,
- 23039, 23039, 23041, 23041, 23053, 23053, 23053, 23053,
- 23053, 23053, 23053, 23053, 23053, 23053, 23053, 23053,
- 23057, 23057, 23057, 23057, 23059, 23059, 23063, 23063,
- 23063, 23063, 23071, 23071, 23071, 23071, 23071, 23071,
- 23071, 23071, 23081, 23081, 23081, 23081, 23081, 23081,
- 23081, 23081, 23081, 23081, 23087, 23087, 23087, 23087,
- 23087, 23087, 23099, 23099, 23099, 23099, 23099, 23099,
- 23099, 23099, 23099, 23099, 23099, 23099, 23117, 23117,
- 23117, 23117, 23117, 23117, 23117, 23117, 23117, 23117,
- 23117, 23117, 23117, 23117, 23117, 23117, 23117, 23117,
- 23131, 23131, 23131, 23131, 23131, 23131, 23131, 23131,
- 23131, 23131, 23131, 23131, 23131, 23131, 23143, 23143,
- 23143, 23143, 23143, 23143, 23143, 23143, 23143, 23143,
- 23143, 23143, 23159, 23159, 23159, 23159, 23159, 23159,
- 23159, 23159, 23159, 23159, 23159, 23159, 23159, 23159,
- 23159, 23159, 23167, 23167, 23167, 23167, 23167, 23167,
- 23167, 23167, 23173, 23173, 23173, 23173, 23173, 23173,
- 23189, 23189, 23189, 23189, 23189, 23189, 23189, 23189,
- 23189, 23189, 23189, 23189, 23189, 23189, 23189, 23189,
- 23197, 23197, 23197, 23197, 23197, 23197, 23197, 23197,
- 23201, 23201, 23201, 23201, 23203, 23203, 23209, 23209,
- 23209, 23209, 23209, 23209, 23227, 23227, 23227, 23227,
- 23227, 23227, 23227, 23227, 23227, 23227, 23227, 23227,
- 23227, 23227, 23227, 23227, 23227, 23227, 23251, 23251,
- 23251, 23251, 23251, 23251, 23251, 23251, 23251, 23251,
- 23251, 23251, 23251, 23251, 23251, 23251, 23251, 23251,
- 23251, 23251, 23251, 23251, 23251, 23251, 23269, 23269,
- 23269, 23269, 23269, 23269, 23269, 23269, 23269, 23269,
- 23269, 23269, 23269, 23269, 23269, 23269, 23269, 23269,
- 23279, 23279, 23279, 23279, 23279, 23279, 23279, 23279,
- 23279, 23279, 23291, 23291, 23291, 23291, 23291, 23291,
- 23291, 23291, 23291, 23291, 23291, 23291, 23293, 23293,
- 23297, 23297, 23297, 23297, 23311, 23311, 23311, 23311,
- 23311, 23311, 23311, 23311, 23311, 23311, 23311, 23311,
- 23311, 23311, 23321, 23321, 23321, 23321, 23321, 23321,
- 23321, 23321, 23321, 23321, 23327, 23327, 23327, 23327,
- 23327, 23327, 23333, 23333, 23333, 23333, 23333, 23333,
- 23339, 23339, 23339, 23339, 23339, 23339, 23357, 23357,
- 23357, 23357, 23357, 23357, 23357, 23357, 23357, 23357,
- 23357, 23357, 23357, 23357, 23357, 23357, 23357, 23357,
- 23369, 23369, 23369, 23369, 23369, 23369, 23369, 23369,
- 23369, 23369, 23369, 23369, 23371, 23371, 23399, 23399,
- 23399, 23399, 23399, 23399, 23399, 23399, 23399, 23399,
- 23399, 23399, 23399, 23399, 23399, 23399, 23399, 23399,
- 23399, 23399, 23399, 23399, 23399, 23399, 23399, 23399,
- 23399, 23399, 23417, 23417, 23417, 23417, 23417, 23417,
- 23417, 23417, 23417, 23417, 23417, 23417, 23417, 23417,
- 23417, 23417, 23417, 23417, 23431, 23431, 23431, 23431,
- 23431, 23431, 23431, 23431, 23431, 23431, 23431, 23431,
- 23431, 23431, 23447, 23447, 23447, 23447, 23447, 23447,
- 23447, 23447, 23447, 23447, 23447, 23447, 23447, 23447,
- 23447, 23447, 23459, 23459, 23459, 23459, 23459, 23459,
- 23459, 23459, 23459, 23459, 23459, 23459, 23473, 23473,
- 23473, 23473, 23473, 23473, 23473, 23473, 23473, 23473,
- 23473, 23473, 23473, 23473, 23497, 23497, 23497, 23497,
- 23497, 23497, 23497, 23497, 23497, 23497, 23497, 23497,
- 23497, 23497, 23497, 23497, 23497, 23497, 23497, 23497,
- 23497, 23497, 23497, 23497, 23509, 23509, 23509, 23509,
- 23509, 23509, 23509, 23509, 23509, 23509, 23509, 23509,
- 23531, 23531, 23531, 23531, 23531, 23531, 23531, 23531,
- 23531, 23531, 23531, 23531, 23531, 23531, 23531, 23531,
- 23531, 23531, 23531, 23531, 23531, 23531, 23537, 23537,
- 23537, 23537, 23537, 23537, 23539, 23539, 23549, 23549,
- 23549, 23549, 23549, 23549, 23549, 23549, 23549, 23549,
- 23557, 23557, 23557, 23557, 23557, 23557, 23557, 23557,
- 23561, 23561, 23561, 23561, 23563, 23563, 23567, 23567,
- 23567, 23567, 23581, 23581, 23581, 23581, 23581, 23581,
- 23581, 23581, 23581, 23581, 23581, 23581, 23581, 23581,
- 23593, 23593, 23593, 23593, 23593, 23593, 23593, 23593,
- 23593, 23593, 23593, 23593, 23599, 23599, 23599, 23599,
- 23599, 23599, 23603, 23603, 23603, 23603, 23609, 23609,
- 23609, 23609, 23609, 23609, 23623, 23623, 23623, 23623,
- 23623, 23623, 23623, 23623, 23623, 23623, 23623, 23623,
- 23623, 23623, 23627, 23627, 23627, 23627, 23629, 23629,
- 23633, 23633, 23633, 23633, 23663, 23663, 23663, 23663,
- 23663, 23663, 23663, 23663, 23663, 23663, 23663, 23663,
- 23663, 23663, 23663, 23663, 23663, 23663, 23663, 23663,
- 23663, 23663, 23663, 23663, 23663, 23663, 23663, 23663,
- 23663, 23663, 23669, 23669, 23669, 23669, 23669, 23669,
- 23671, 23671, 23677, 23677, 23677, 23677, 23677, 23677,
- 23687, 23687, 23687, 23687, 23687, 23687, 23687, 23687,
- 23687, 23687, 23689, 23689, 23719, 23719, 23719, 23719,
- 23719, 23719, 23719, 23719, 23719, 23719, 23719, 23719,
- 23719, 23719, 23719, 23719, 23719, 23719, 23719, 23719,
- 23719, 23719, 23719, 23719, 23719, 23719, 23719, 23719,
- 23719, 23719, 23741, 23741, 23741, 23741, 23741, 23741,
- 23741, 23741, 23741, 23741, 23741, 23741, 23741, 23741,
- 23741, 23741, 23741, 23741, 23741, 23741, 23741, 23741,
- 23743, 23743, 23747, 23747, 23747, 23747, 23753, 23753,
- 23753, 23753, 23753, 23753, 23761, 23761, 23761, 23761,
- 23761, 23761, 23761, 23761, 23767, 23767, 23767, 23767,
- 23767, 23767, 23773, 23773, 23773, 23773, 23773, 23773,
- 23789, 23789, 23789, 23789, 23789, 23789, 23789, 23789,
- 23789, 23789, 23789, 23789, 23789, 23789, 23789, 23789,
- 23801, 23801, 23801, 23801, 23801, 23801, 23801, 23801,
- 23801, 23801, 23801, 23801, 23813, 23813, 23813, 23813,
- 23813, 23813, 23813, 23813, 23813, 23813, 23813, 23813,
- 23819, 23819, 23819, 23819, 23819, 23819, 23827, 23827,
- 23827, 23827, 23827, 23827, 23827, 23827, 23831, 23831,
- 23831, 23831, 23833, 23833, 23857, 23857, 23857, 23857,
- 23857, 23857, 23857, 23857, 23857, 23857, 23857, 23857,
- 23857, 23857, 23857, 23857, 23857, 23857, 23857, 23857,
- 23857, 23857, 23857, 23857, 23869, 23869, 23869, 23869,
- 23869, 23869, 23869, 23869, 23869, 23869, 23869, 23869,
- 23873, 23873, 23873, 23873, 23879, 23879, 23879, 23879,
- 23879, 23879, 23887, 23887, 23887, 23887, 23887, 23887,
- 23887, 23887, 23893, 23893, 23893, 23893, 23893, 23893,
- 23899, 23899, 23899, 23899, 23899, 23899, 23909, 23909,
- 23909, 23909, 23909, 23909, 23909, 23909, 23909, 23909,
- 23911, 23911, 23917, 23917, 23917, 23917, 23917, 23917,
- 23929, 23929, 23929, 23929, 23929, 23929, 23929, 23929,
- 23929, 23929, 23929, 23929, 23957, 23957, 23957, 23957,
- 23957, 23957, 23957, 23957, 23957, 23957, 23957, 23957,
- 23957, 23957, 23957, 23957, 23957, 23957, 23957, 23957,
- 23957, 23957, 23957, 23957, 23957, 23957, 23957, 23957,
- 23971, 23971, 23971, 23971, 23971, 23971, 23971, 23971,
- 23971, 23971, 23971, 23971, 23971, 23971, 23977, 23977,
- 23977, 23977, 23977, 23977, 23981, 23981, 23981, 23981,
- 23993, 23993, 23993, 23993, 23993, 23993, 23993, 23993,
- 23993, 23993, 23993, 23993, 24001, 24001, 24001, 24001,
- 24001, 24001, 24001, 24001, 24007, 24007, 24007, 24007,
- 24007, 24007, 24019, 24019, 24019, 24019, 24019, 24019,
- 24019, 24019, 24019, 24019, 24019, 24019, 24023, 24023,
- 24023, 24023, 24029, 24029, 24029, 24029, 24029, 24029,
- 24043, 24043, 24043, 24043, 24043, 24043, 24043, 24043,
- 24043, 24043, 24043, 24043, 24043, 24043, 24049, 24049,
- 24049, 24049, 24049, 24049, 24061, 24061, 24061, 24061,
- 24061, 24061, 24061, 24061, 24061, 24061, 24061, 24061,
- 24071, 24071, 24071, 24071, 24071, 24071, 24071, 24071,
- 24071, 24071, 24077, 24077, 24077, 24077, 24077, 24077,
- 24083, 24083, 24083, 24083, 24083, 24083, 24091, 24091,
- 24091, 24091, 24091, 24091, 24091, 24091, 24097, 24097,
- 24097, 24097, 24097, 24097, 24103, 24103, 24103, 24103,
- 24103, 24103, 24107, 24107, 24107, 24107, 24109, 24109,
- 24113, 24113, 24113, 24113, 24121, 24121, 24121, 24121,
- 24121, 24121, 24121, 24121, 24133, 24133, 24133, 24133,
- 24133, 24133, 24133, 24133, 24133, 24133, 24133, 24133,
- 24137, 24137, 24137, 24137, 24151, 24151, 24151, 24151,
- 24151, 24151, 24151, 24151, 24151, 24151, 24151, 24151,
- 24151, 24151, 24169, 24169, 24169, 24169, 24169, 24169,
- 24169, 24169, 24169, 24169, 24169, 24169, 24169, 24169,
- 24169, 24169, 24169, 24169, 24179, 24179, 24179, 24179,
- 24179, 24179, 24179, 24179, 24179, 24179, 24181, 24181,
- 24197, 24197, 24197, 24197, 24197, 24197, 24197, 24197,
- 24197, 24197, 24197, 24197, 24197, 24197, 24197, 24197,
- 24203, 24203, 24203, 24203, 24203, 24203, 24223, 24223,
- 24223, 24223, 24223, 24223, 24223, 24223, 24223, 24223,
- 24223, 24223, 24223, 24223, 24223, 24223, 24223, 24223,
- 24223, 24223, 24229, 24229, 24229, 24229, 24229, 24229,
- 24239, 24239, 24239, 24239, 24239, 24239, 24239, 24239,
- 24239, 24239, 24247, 24247, 24247, 24247, 24247, 24247,
- 24247, 24247, 24251, 24251, 24251, 24251, 24281, 24281,
- 24281, 24281, 24281, 24281, 24281, 24281, 24281, 24281,
- 24281, 24281, 24281, 24281, 24281, 24281, 24281, 24281,
- 24281, 24281, 24281, 24281, 24281, 24281, 24281, 24281,
- 24281, 24281, 24281, 24281, 24317, 24317, 24317, 24317,
- 24317, 24317, 24317, 24317, 24317, 24317, 24317, 24317,
- 24317, 24317, 24317, 24317, 24317, 24317, 24317, 24317,
- 24317, 24317, 24317, 24317, 24317, 24317, 24317, 24317,
- 24317, 24317, 24317, 24317, 24317, 24317, 24317, 24317,
- 24329, 24329, 24329, 24329, 24329, 24329, 24329, 24329,
- 24329, 24329, 24329, 24329, 24337, 24337, 24337, 24337,
- 24337, 24337, 24337, 24337, 24359, 24359, 24359, 24359,
- 24359, 24359, 24359, 24359, 24359, 24359, 24359, 24359,
- 24359, 24359, 24359, 24359, 24359, 24359, 24359, 24359,
- 24359, 24359, 24371, 24371, 24371, 24371, 24371, 24371,
- 24371, 24371, 24371, 24371, 24371, 24371, 24373, 24373,
- 24379, 24379, 24379, 24379, 24379, 24379, 24391, 24391,
- 24391, 24391, 24391, 24391, 24391, 24391, 24391, 24391,
- 24391, 24391, 24407, 24407, 24407, 24407, 24407, 24407,
- 24407, 24407, 24407, 24407, 24407, 24407, 24407, 24407,
- 24407, 24407, 24413, 24413, 24413, 24413, 24413, 24413,
- 24419, 24419, 24419, 24419, 24419, 24419, 24421, 24421,
- 24439, 24439, 24439, 24439, 24439, 24439, 24439, 24439,
- 24439, 24439, 24439, 24439, 24439, 24439, 24439, 24439,
- 24439, 24439, 24443, 24443, 24443, 24443, 24469, 24469,
- 24469, 24469, 24469, 24469, 24469, 24469, 24469, 24469,
- 24469, 24469, 24469, 24469, 24469, 24469, 24469, 24469,
- 24469, 24469, 24469, 24469, 24469, 24469, 24469, 24469,
- 24473, 24473, 24473, 24473, 24481, 24481, 24481, 24481,
- 24481, 24481, 24481, 24481, 24499, 24499, 24499, 24499,
- 24499, 24499, 24499, 24499, 24499, 24499, 24499, 24499,
- 24499, 24499, 24499, 24499, 24499, 24499, 24509, 24509,
- 24509, 24509, 24509, 24509, 24509, 24509, 24509, 24509,
- 24517, 24517, 24517, 24517, 24517, 24517, 24517, 24517,
- 24527, 24527, 24527, 24527, 24527, 24527, 24527, 24527,
- 24527, 24527, 24533, 24533, 24533, 24533, 24533, 24533,
- 24547, 24547, 24547, 24547, 24547, 24547, 24547, 24547,
- 24547, 24547, 24547, 24547, 24547, 24547, 24551, 24551,
- 24551, 24551, 24571, 24571, 24571, 24571, 24571, 24571,
- 24571, 24571, 24571, 24571, 24571, 24571, 24571, 24571,
- 24571, 24571, 24571, 24571, 24571, 24571, 24593, 24593,
- 24593, 24593, 24593, 24593, 24593, 24593, 24593, 24593,
- 24593, 24593, 24593, 24593, 24593, 24593, 24593, 24593,
- 24593, 24593, 24593, 24593, 24611, 24611, 24611, 24611,
- 24611, 24611, 24611, 24611, 24611, 24611, 24611, 24611,
- 24611, 24611, 24611, 24611, 24611, 24611, 24623, 24623,
- 24623, 24623, 24623, 24623, 24623, 24623, 24623, 24623,
- 24623, 24623, 24631, 24631, 24631, 24631, 24631, 24631,
- 24631, 24631, 24659, 24659, 24659, 24659, 24659, 24659,
- 24659, 24659, 24659, 24659, 24659, 24659, 24659, 24659,
- 24659, 24659, 24659, 24659, 24659, 24659, 24659, 24659,
- 24659, 24659, 24659, 24659, 24659, 24659, 24671, 24671,
- 24671, 24671, 24671, 24671, 24671, 24671, 24671, 24671,
- 24671, 24671, 24677, 24677, 24677, 24677, 24677, 24677,
- 24683, 24683, 24683, 24683, 24683, 24683, 24691, 24691,
- 24691, 24691, 24691, 24691, 24691, 24691, 24697, 24697,
- 24697, 24697, 24697, 24697, 24709, 24709, 24709, 24709,
- 24709, 24709, 24709, 24709, 24709, 24709, 24709, 24709,
- 24733, 24733, 24733, 24733, 24733, 24733, 24733, 24733,
- 24733, 24733, 24733, 24733, 24733, 24733, 24733, 24733,
- 24733, 24733, 24733, 24733, 24733, 24733, 24733, 24733,
- 24749, 24749, 24749, 24749, 24749, 24749, 24749, 24749,
- 24749, 24749, 24749, 24749, 24749, 24749, 24749, 24749,
- 24763, 24763, 24763, 24763, 24763, 24763, 24763, 24763,
- 24763, 24763, 24763, 24763, 24763, 24763, 24767, 24767,
- 24767, 24767, 24781, 24781, 24781, 24781, 24781, 24781,
- 24781, 24781, 24781, 24781, 24781, 24781, 24781, 24781,
- 24793, 24793, 24793, 24793, 24793, 24793, 24793, 24793,
- 24793, 24793, 24793, 24793, 24799, 24799, 24799, 24799,
- 24799, 24799, 24809, 24809, 24809, 24809, 24809, 24809,
- 24809, 24809, 24809, 24809, 24821, 24821, 24821, 24821,
- 24821, 24821, 24821, 24821, 24821, 24821, 24821, 24821,
- 24841, 24841, 24841, 24841, 24841, 24841, 24841, 24841,
- 24841, 24841, 24841, 24841, 24841, 24841, 24841, 24841,
- 24841, 24841, 24841, 24841, 24847, 24847, 24847, 24847,
- 24847, 24847, 24851, 24851, 24851, 24851, 24859, 24859,
- 24859, 24859, 24859, 24859, 24859, 24859, 24877, 24877,
- 24877, 24877, 24877, 24877, 24877, 24877, 24877, 24877,
- 24877, 24877, 24877, 24877, 24877, 24877, 24877, 24877,
- 24889, 24889, 24889, 24889, 24889, 24889, 24889, 24889,
- 24889, 24889, 24889, 24889, 24907, 24907, 24907, 24907,
- 24907, 24907, 24907, 24907, 24907, 24907, 24907, 24907,
- 24907, 24907, 24907, 24907, 24907, 24907, 24917, 24917,
- 24917, 24917, 24917, 24917, 24917, 24917, 24917, 24917,
- 24919, 24919, 24923, 24923, 24923, 24923, 24943, 24943,
- 24943, 24943, 24943, 24943, 24943, 24943, 24943, 24943,
- 24943, 24943, 24943, 24943, 24943, 24943, 24943, 24943,
- 24943, 24943, 24953, 24953, 24953, 24953, 24953, 24953,
- 24953, 24953, 24953, 24953, 24967, 24967, 24967, 24967,
- 24967, 24967, 24967, 24967, 24967, 24967, 24967, 24967,
- 24967, 24967, 24971, 24971, 24971, 24971, 24977, 24977,
- 24977, 24977, 24977, 24977, 24979, 24979, 24989, 24989,
- 24989, 24989, 24989, 24989, 24989, 24989, 24989, 24989,
- 25013, 25013, 25013, 25013, 25013, 25013, 25013, 25013,
- 25013, 25013, 25013, 25013, 25013, 25013, 25013, 25013,
- 25013, 25013, 25013, 25013, 25013, 25013, 25013, 25013,
- 25031, 25031, 25031, 25031, 25031, 25031, 25031, 25031,
- 25031, 25031, 25031, 25031, 25031, 25031, 25031, 25031,
- 25031, 25031, 25033, 25033, 25037, 25037, 25037, 25037,
- 25057, 25057, 25057, 25057, 25057, 25057, 25057, 25057,
- 25057, 25057, 25057, 25057, 25057, 25057, 25057, 25057,
- 25057, 25057, 25057, 25057, 25073, 25073, 25073, 25073,
- 25073, 25073, 25073, 25073, 25073, 25073, 25073, 25073,
- 25073, 25073, 25073, 25073, 25087, 25087, 25087, 25087,
- 25087, 25087, 25087, 25087, 25087, 25087, 25087, 25087,
- 25087, 25087, 25097, 25097, 25097, 25097, 25097, 25097,
- 25097, 25097, 25097, 25097, 25111, 25111, 25111, 25111,
- 25111, 25111, 25111, 25111, 25111, 25111, 25111, 25111,
- 25111, 25111, 25117, 25117, 25117, 25117, 25117, 25117,
- 25121, 25121, 25121, 25121, 25127, 25127, 25127, 25127,
- 25127, 25127, 25147, 25147, 25147, 25147, 25147, 25147,
- 25147, 25147, 25147, 25147, 25147, 25147, 25147, 25147,
- 25147, 25147, 25147, 25147, 25147, 25147, 25153, 25153,
- 25153, 25153, 25153, 25153, 25163, 25163, 25163, 25163,
- 25163, 25163, 25163, 25163, 25163, 25163, 25169, 25169,
- 25169, 25169, 25169, 25169, 25171, 25171, 25183, 25183,
- 25183, 25183, 25183, 25183, 25183, 25183, 25183, 25183,
- 25183, 25183, 25189, 25189, 25189, 25189, 25189, 25189,
- 25219, 25219, 25219, 25219, 25219, 25219, 25219, 25219,
- 25219, 25219, 25219, 25219, 25219, 25219, 25219, 25219,
- 25219, 25219, 25219, 25219, 25219, 25219, 25219, 25219,
- 25219, 25219, 25219, 25219, 25219, 25219, 25229, 25229,
- 25229, 25229, 25229, 25229, 25229, 25229, 25229, 25229,
- 25237, 25237, 25237, 25237, 25237, 25237, 25237, 25237,
- 25243, 25243, 25243, 25243, 25243, 25243, 25247, 25247,
- 25247, 25247, 25253, 25253, 25253, 25253, 25253, 25253,
- 25261, 25261, 25261, 25261, 25261, 25261, 25261, 25261,
- 25301, 25301, 25301, 25301, 25301, 25301, 25301, 25301,
- 25301, 25301, 25301, 25301, 25301, 25301, 25301, 25301,
- 25301, 25301, 25301, 25301, 25301, 25301, 25301, 25301,
- 25301, 25301, 25301, 25301, 25301, 25301, 25301, 25301,
- 25301, 25301, 25301, 25301, 25301, 25301, 25301, 25301,
- 25303, 25303, 25307, 25307, 25307, 25307, 25309, 25309,
- 25321, 25321, 25321, 25321, 25321, 25321, 25321, 25321,
- 25321, 25321, 25321, 25321, 25339, 25339, 25339, 25339,
- 25339, 25339, 25339, 25339, 25339, 25339, 25339, 25339,
- 25339, 25339, 25339, 25339, 25339, 25339, 25343, 25343,
- 25343, 25343, 25349, 25349, 25349, 25349, 25349, 25349,
- 25357, 25357, 25357, 25357, 25357, 25357, 25357, 25357,
- 25367, 25367, 25367, 25367, 25367, 25367, 25367, 25367,
- 25367, 25367, 25373, 25373, 25373, 25373, 25373, 25373,
- 25391, 25391, 25391, 25391, 25391, 25391, 25391, 25391,
- 25391, 25391, 25391, 25391, 25391, 25391, 25391, 25391,
- 25391, 25391, 25409, 25409, 25409, 25409, 25409, 25409,
- 25409, 25409, 25409, 25409, 25409, 25409, 25409, 25409,
- 25409, 25409, 25409, 25409, 25411, 25411, 25423, 25423,
- 25423, 25423, 25423, 25423, 25423, 25423, 25423, 25423,
- 25423, 25423, 25439, 25439, 25439, 25439, 25439, 25439,
- 25439, 25439, 25439, 25439, 25439, 25439, 25439, 25439,
- 25439, 25439, 25447, 25447, 25447, 25447, 25447, 25447,
- 25447, 25447, 25453, 25453, 25453, 25453, 25453, 25453,
- 25457, 25457, 25457, 25457, 25463, 25463, 25463, 25463,
- 25463, 25463, 25469, 25469, 25469, 25469, 25469, 25469,
- 25471, 25471, 25523, 25523, 25523, 25523, 25523, 25523,
- 25523, 25523, 25523, 25523, 25523, 25523, 25523, 25523,
- 25523, 25523, 25523, 25523, 25523, 25523, 25523, 25523,
- 25523, 25523, 25523, 25523, 25523, 25523, 25523, 25523,
- 25523, 25523, 25523, 25523, 25523, 25523, 25523, 25523,
- 25523, 25523, 25523, 25523, 25523, 25523, 25523, 25523,
- 25523, 25523, 25523, 25523, 25523, 25523, 25537, 25537,
- 25537, 25537, 25537, 25537, 25537, 25537, 25537, 25537,
- 25537, 25537, 25537, 25537, 25541, 25541, 25541, 25541,
- 25561, 25561, 25561, 25561, 25561, 25561, 25561, 25561,
- 25561, 25561, 25561, 25561, 25561, 25561, 25561, 25561,
- 25561, 25561, 25561, 25561, 25577, 25577, 25577, 25577,
- 25577, 25577, 25577, 25577, 25577, 25577, 25577, 25577,
- 25577, 25577, 25577, 25577, 25579, 25579, 25583, 25583,
- 25583, 25583, 25589, 25589, 25589, 25589, 25589, 25589,
- 25601, 25601, 25601, 25601, 25601, 25601, 25601, 25601,
- 25601, 25601, 25601, 25601, 25603, 25603, 25609, 25609,
- 25609, 25609, 25609, 25609, 25621, 25621, 25621, 25621,
- 25621, 25621, 25621, 25621, 25621, 25621, 25621, 25621,
- 25633, 25633, 25633, 25633, 25633, 25633, 25633, 25633,
- 25633, 25633, 25633, 25633, 25639, 25639, 25639, 25639,
- 25639, 25639, 25643, 25643, 25643, 25643, 25657, 25657,
- 25657, 25657, 25657, 25657, 25657, 25657, 25657, 25657,
- 25657, 25657, 25657, 25657, 25667, 25667, 25667, 25667,
- 25667, 25667, 25667, 25667, 25667, 25667, 25673, 25673,
- 25673, 25673, 25673, 25673, 25679, 25679, 25679, 25679,
- 25679, 25679, 25693, 25693, 25693, 25693, 25693, 25693,
- 25693, 25693, 25693, 25693, 25693, 25693, 25693, 25693,
- 25703, 25703, 25703, 25703, 25703, 25703, 25703, 25703,
- 25703, 25703, 25717, 25717, 25717, 25717, 25717, 25717,
- 25717, 25717, 25717, 25717, 25717, 25717, 25717, 25717,
- 25733, 25733, 25733, 25733, 25733, 25733, 25733, 25733,
- 25733, 25733, 25733, 25733, 25733, 25733, 25733, 25733,
- 25741, 25741, 25741, 25741, 25741, 25741, 25741, 25741,
- 25747, 25747, 25747, 25747, 25747, 25747, 25759, 25759,
- 25759, 25759, 25759, 25759, 25759, 25759, 25759, 25759,
- 25759, 25759, 25763, 25763, 25763, 25763, 25771, 25771,
- 25771, 25771, 25771, 25771, 25771, 25771, 25793, 25793,
- 25793, 25793, 25793, 25793, 25793, 25793, 25793, 25793,
- 25793, 25793, 25793, 25793, 25793, 25793, 25793, 25793,
- 25793, 25793, 25793, 25793, 25799, 25799, 25799, 25799,
- 25799, 25799, 25801, 25801, 25819, 25819, 25819, 25819,
- 25819, 25819, 25819, 25819, 25819, 25819, 25819, 25819,
- 25819, 25819, 25819, 25819, 25819, 25819, 25841, 25841,
- 25841, 25841, 25841, 25841, 25841, 25841, 25841, 25841,
- 25841, 25841, 25841, 25841, 25841, 25841, 25841, 25841,
- 25841, 25841, 25841, 25841, 25847, 25847, 25847, 25847,
- 25847, 25847, 25849, 25849, 25867, 25867, 25867, 25867,
- 25867, 25867, 25867, 25867, 25867, 25867, 25867, 25867,
- 25867, 25867, 25867, 25867, 25867, 25867, 25873, 25873,
- 25873, 25873, 25873, 25873, 25889, 25889, 25889, 25889,
- 25889, 25889, 25889, 25889, 25889, 25889, 25889, 25889,
- 25889, 25889, 25889, 25889, 25903, 25903, 25903, 25903,
- 25903, 25903, 25903, 25903, 25903, 25903, 25903, 25903,
- 25903, 25903, 25913, 25913, 25913, 25913, 25913, 25913,
- 25913, 25913, 25913, 25913, 25919, 25919, 25919, 25919,
- 25919, 25919, 25931, 25931, 25931, 25931, 25931, 25931,
- 25931, 25931, 25931, 25931, 25931, 25931, 25933, 25933,
- 25939, 25939, 25939, 25939, 25939, 25939, 25943, 25943,
- 25943, 25943, 25951, 25951, 25951, 25951, 25951, 25951,
- 25951, 25951, 25969, 25969, 25969, 25969, 25969, 25969,
- 25969, 25969, 25969, 25969, 25969, 25969, 25969, 25969,
- 25969, 25969, 25969, 25969, 25981, 25981, 25981, 25981,
- 25981, 25981, 25981, 25981, 25981, 25981, 25981, 25981,
- 25997, 25997, 25997, 25997, 25997, 25997, 25997, 25997,
- 25997, 25997, 25997, 25997, 25997, 25997, 25997, 25997,
- 25999, 25999, 26003, 26003, 26003, 26003, 26017, 26017,
- 26017, 26017, 26017, 26017, 26017, 26017, 26017, 26017,
- 26017, 26017, 26017, 26017, 26021, 26021, 26021, 26021,
- 26029, 26029, 26029, 26029, 26029, 26029, 26029, 26029,
- 26041, 26041, 26041, 26041, 26041, 26041, 26041, 26041,
- 26041, 26041, 26041, 26041, 26053, 26053, 26053, 26053,
- 26053, 26053, 26053, 26053, 26053, 26053, 26053, 26053,
- 26083, 26083, 26083, 26083, 26083, 26083, 26083, 26083,
- 26083, 26083, 26083, 26083, 26083, 26083, 26083, 26083,
- 26083, 26083, 26083, 26083, 26083, 26083, 26083, 26083,
- 26083, 26083, 26083, 26083, 26083, 26083, 26099, 26099,
- 26099, 26099, 26099, 26099, 26099, 26099, 26099, 26099,
- 26099, 26099, 26099, 26099, 26099, 26099, 26107, 26107,
- 26107, 26107, 26107, 26107, 26107, 26107, 26111, 26111,
- 26111, 26111, 26113, 26113, 26119, 26119, 26119, 26119,
- 26119, 26119, 26141, 26141, 26141, 26141, 26141, 26141,
- 26141, 26141, 26141, 26141, 26141, 26141, 26141, 26141,
- 26141, 26141, 26141, 26141, 26141, 26141, 26141, 26141,
- 26153, 26153, 26153, 26153, 26153, 26153, 26153, 26153,
- 26153, 26153, 26153, 26153, 26161, 26161, 26161, 26161,
- 26161, 26161, 26161, 26161, 26171, 26171, 26171, 26171,
- 26171, 26171, 26171, 26171, 26171, 26171, 26177, 26177,
- 26177, 26177, 26177, 26177, 26183, 26183, 26183, 26183,
- 26183, 26183, 26189, 26189, 26189, 26189, 26189, 26189,
- 26203, 26203, 26203, 26203, 26203, 26203, 26203, 26203,
- 26203, 26203, 26203, 26203, 26203, 26203, 26209, 26209,
- 26209, 26209, 26209, 26209, 26227, 26227, 26227, 26227,
- 26227, 26227, 26227, 26227, 26227, 26227, 26227, 26227,
- 26227, 26227, 26227, 26227, 26227, 26227, 26237, 26237,
- 26237, 26237, 26237, 26237, 26237, 26237, 26237, 26237,
- 26249, 26249, 26249, 26249, 26249, 26249, 26249, 26249,
- 26249, 26249, 26249, 26249, 26251, 26251, 26261, 26261,
- 26261, 26261, 26261, 26261, 26261, 26261, 26261, 26261,
- 26263, 26263, 26267, 26267, 26267, 26267, 26293, 26293,
- 26293, 26293, 26293, 26293, 26293, 26293, 26293, 26293,
- 26293, 26293, 26293, 26293, 26293, 26293, 26293, 26293,
- 26293, 26293, 26293, 26293, 26293, 26293, 26293, 26293,
- 26297, 26297, 26297, 26297, 26309, 26309, 26309, 26309,
- 26309, 26309, 26309, 26309, 26309, 26309, 26309, 26309,
- 26317, 26317, 26317, 26317, 26317, 26317, 26317, 26317,
- 26321, 26321, 26321, 26321, 26339, 26339, 26339, 26339,
- 26339, 26339, 26339, 26339, 26339, 26339, 26339, 26339,
- 26339, 26339, 26339, 26339, 26339, 26339, 26347, 26347,
- 26347, 26347, 26347, 26347, 26347, 26347, 26357, 26357,
- 26357, 26357, 26357, 26357, 26357, 26357, 26357, 26357,
- 26371, 26371, 26371, 26371, 26371, 26371, 26371, 26371,
- 26371, 26371, 26371, 26371, 26371, 26371, 26387, 26387,
- 26387, 26387, 26387, 26387, 26387, 26387, 26387, 26387,
- 26387, 26387, 26387, 26387, 26387, 26387, 26393, 26393,
- 26393, 26393, 26393, 26393, 26399, 26399, 26399, 26399,
- 26399, 26399, 26407, 26407, 26407, 26407, 26407, 26407,
- 26407, 26407, 26417, 26417, 26417, 26417, 26417, 26417,
- 26417, 26417, 26417, 26417, 26423, 26423, 26423, 26423,
- 26423, 26423, 26431, 26431, 26431, 26431, 26431, 26431,
- 26431, 26431, 26437, 26437, 26437, 26437, 26437, 26437,
- 26449, 26449, 26449, 26449, 26449, 26449, 26449, 26449,
- 26449, 26449, 26449, 26449, 26459, 26459, 26459, 26459,
- 26459, 26459, 26459, 26459, 26459, 26459, 26479, 26479,
- 26479, 26479, 26479, 26479, 26479, 26479, 26479, 26479,
- 26479, 26479, 26479, 26479, 26479, 26479, 26479, 26479,
- 26479, 26479, 26489, 26489, 26489, 26489, 26489, 26489,
- 26489, 26489, 26489, 26489, 26497, 26497, 26497, 26497,
- 26497, 26497, 26497, 26497, 26501, 26501, 26501, 26501,
- 26513, 26513, 26513, 26513, 26513, 26513, 26513, 26513,
- 26513, 26513, 26513, 26513, 26539, 26539, 26539, 26539,
- 26539, 26539, 26539, 26539, 26539, 26539, 26539, 26539,
- 26539, 26539, 26539, 26539, 26539, 26539, 26539, 26539,
- 26539, 26539, 26539, 26539, 26539, 26539, 26557, 26557,
- 26557, 26557, 26557, 26557, 26557, 26557, 26557, 26557,
- 26557, 26557, 26557, 26557, 26557, 26557, 26557, 26557,
- 26561, 26561, 26561, 26561, 26573, 26573, 26573, 26573,
- 26573, 26573, 26573, 26573, 26573, 26573, 26573, 26573,
- 26591, 26591, 26591, 26591, 26591, 26591, 26591, 26591,
- 26591, 26591, 26591, 26591, 26591, 26591, 26591, 26591,
- 26591, 26591, 26597, 26597, 26597, 26597, 26597, 26597,
- 26627, 26627, 26627, 26627, 26627, 26627, 26627, 26627,
- 26627, 26627, 26627, 26627, 26627, 26627, 26627, 26627,
- 26627, 26627, 26627, 26627, 26627, 26627, 26627, 26627,
- 26627, 26627, 26627, 26627, 26627, 26627, 26633, 26633,
- 26633, 26633, 26633, 26633, 26641, 26641, 26641, 26641,
- 26641, 26641, 26641, 26641, 26647, 26647, 26647, 26647,
- 26647, 26647, 26669, 26669, 26669, 26669, 26669, 26669,
- 26669, 26669, 26669, 26669, 26669, 26669, 26669, 26669,
- 26669, 26669, 26669, 26669, 26669, 26669, 26669, 26669,
- 26681, 26681, 26681, 26681, 26681, 26681, 26681, 26681,
- 26681, 26681, 26681, 26681, 26683, 26683, 26687, 26687,
- 26687, 26687, 26693, 26693, 26693, 26693, 26693, 26693,
- 26699, 26699, 26699, 26699, 26699, 26699, 26701, 26701,
- 26711, 26711, 26711, 26711, 26711, 26711, 26711, 26711,
- 26711, 26711, 26713, 26713, 26717, 26717, 26717, 26717,
- 26723, 26723, 26723, 26723, 26723, 26723, 26729, 26729,
- 26729, 26729, 26729, 26729, 26731, 26731, 26737, 26737,
- 26737, 26737, 26737, 26737, 26759, 26759, 26759, 26759,
- 26759, 26759, 26759, 26759, 26759, 26759, 26759, 26759,
- 26759, 26759, 26759, 26759, 26759, 26759, 26759, 26759,
- 26759, 26759, 26777, 26777, 26777, 26777, 26777, 26777,
- 26777, 26777, 26777, 26777, 26777, 26777, 26777, 26777,
- 26777, 26777, 26777, 26777, 26783, 26783, 26783, 26783,
- 26783, 26783, 26801, 26801, 26801, 26801, 26801, 26801,
- 26801, 26801, 26801, 26801, 26801, 26801, 26801, 26801,
- 26801, 26801, 26801, 26801, 26813, 26813, 26813, 26813,
- 26813, 26813, 26813, 26813, 26813, 26813, 26813, 26813,
- 26821, 26821, 26821, 26821, 26821, 26821, 26821, 26821,
- 26833, 26833, 26833, 26833, 26833, 26833, 26833, 26833,
- 26833, 26833, 26833, 26833, 26839, 26839, 26839, 26839,
- 26839, 26839, 26849, 26849, 26849, 26849, 26849, 26849,
- 26849, 26849, 26849, 26849, 26861, 26861, 26861, 26861,
- 26861, 26861, 26861, 26861, 26861, 26861, 26861, 26861,
- 26863, 26863, 26879, 26879, 26879, 26879, 26879, 26879,
- 26879, 26879, 26879, 26879, 26879, 26879, 26879, 26879,
- 26879, 26879, 26881, 26881, 26891, 26891, 26891, 26891,
- 26891, 26891, 26891, 26891, 26891, 26891, 26893, 26893,
- 26903, 26903, 26903, 26903, 26903, 26903, 26903, 26903,
- 26903, 26903, 26921, 26921, 26921, 26921, 26921, 26921,
- 26921, 26921, 26921, 26921, 26921, 26921, 26921, 26921,
- 26921, 26921, 26921, 26921, 26927, 26927, 26927, 26927,
- 26927, 26927, 26947, 26947, 26947, 26947, 26947, 26947,
- 26947, 26947, 26947, 26947, 26947, 26947, 26947, 26947,
- 26947, 26947, 26947, 26947, 26947, 26947, 26951, 26951,
- 26951, 26951, 26953, 26953, 26959, 26959, 26959, 26959,
- 26959, 26959, 26981, 26981, 26981, 26981, 26981, 26981,
- 26981, 26981, 26981, 26981, 26981, 26981, 26981, 26981,
- 26981, 26981, 26981, 26981, 26981, 26981, 26981, 26981,
- 26987, 26987, 26987, 26987, 26987, 26987, 26993, 26993,
- 26993, 26993, 26993, 26993, 27011, 27011, 27011, 27011,
- 27011, 27011, 27011, 27011, 27011, 27011, 27011, 27011,
- 27011, 27011, 27011, 27011, 27011, 27011, 27017, 27017,
- 27017, 27017, 27017, 27017, 27031, 27031, 27031, 27031,
- 27031, 27031, 27031, 27031, 27031, 27031, 27031, 27031,
- 27031, 27031, 27043, 27043, 27043, 27043, 27043, 27043,
- 27043, 27043, 27043, 27043, 27043, 27043, 27059, 27059,
- 27059, 27059, 27059, 27059, 27059, 27059, 27059, 27059,
- 27059, 27059, 27059, 27059, 27059, 27059, 27061, 27061,
- 27067, 27067, 27067, 27067, 27067, 27067, 27073, 27073,
- 27073, 27073, 27073, 27073, 27077, 27077, 27077, 27077,
- 27091, 27091, 27091, 27091, 27091, 27091, 27091, 27091,
- 27091, 27091, 27091, 27091, 27091, 27091, 27103, 27103,
- 27103, 27103, 27103, 27103, 27103, 27103, 27103, 27103,
- 27103, 27103, 27107, 27107, 27107, 27107, 27109, 27109,
- 27127, 27127, 27127, 27127, 27127, 27127, 27127, 27127,
- 27127, 27127, 27127, 27127, 27127, 27127, 27127, 27127,
- 27127, 27127, 27143, 27143, 27143, 27143, 27143, 27143,
- 27143, 27143, 27143, 27143, 27143, 27143, 27143, 27143,
- 27143, 27143, 27179, 27179, 27179, 27179, 27179, 27179,
- 27179, 27179, 27179, 27179, 27179, 27179, 27179, 27179,
- 27179, 27179, 27179, 27179, 27179, 27179, 27179, 27179,
- 27179, 27179, 27179, 27179, 27179, 27179, 27179, 27179,
- 27179, 27179, 27179, 27179, 27179, 27179, 27191, 27191,
- 27191, 27191, 27191, 27191, 27191, 27191, 27191, 27191,
- 27191, 27191, 27197, 27197, 27197, 27197, 27197, 27197,
- 27211, 27211, 27211, 27211, 27211, 27211, 27211, 27211,
- 27211, 27211, 27211, 27211, 27211, 27211, 27239, 27239,
- 27239, 27239, 27239, 27239, 27239, 27239, 27239, 27239,
- 27239, 27239, 27239, 27239, 27239, 27239, 27239, 27239,
- 27239, 27239, 27239, 27239, 27239, 27239, 27239, 27239,
- 27239, 27239, 27241, 27241, 27253, 27253, 27253, 27253,
- 27253, 27253, 27253, 27253, 27253, 27253, 27253, 27253,
- 27259, 27259, 27259, 27259, 27259, 27259, 27271, 27271,
- 27271, 27271, 27271, 27271, 27271, 27271, 27271, 27271,
- 27271, 27271, 27277, 27277, 27277, 27277, 27277, 27277,
- 27281, 27281, 27281, 27281, 27283, 27283, 27299, 27299,
- 27299, 27299, 27299, 27299, 27299, 27299, 27299, 27299,
- 27299, 27299, 27299, 27299, 27299, 27299, 27329, 27329,
- 27329, 27329, 27329, 27329, 27329, 27329, 27329, 27329,
- 27329, 27329, 27329, 27329, 27329, 27329, 27329, 27329,
- 27329, 27329, 27329, 27329, 27329, 27329, 27329, 27329,
- 27329, 27329, 27329, 27329, 27337, 27337, 27337, 27337,
- 27337, 27337, 27337, 27337, 27361, 27361, 27361, 27361,
- 27361, 27361, 27361, 27361, 27361, 27361, 27361, 27361,
- 27361, 27361, 27361, 27361, 27361, 27361, 27361, 27361,
- 27361, 27361, 27361, 27361, 27367, 27367, 27367, 27367,
- 27367, 27367, 27397, 27397, 27397, 27397, 27397, 27397,
- 27397, 27397, 27397, 27397, 27397, 27397, 27397, 27397,
- 27397, 27397, 27397, 27397, 27397, 27397, 27397, 27397,
- 27397, 27397, 27397, 27397, 27397, 27397, 27397, 27397,
- 27407, 27407, 27407, 27407, 27407, 27407, 27407, 27407,
- 27407, 27407, 27409, 27409, 27427, 27427, 27427, 27427,
- 27427, 27427, 27427, 27427, 27427, 27427, 27427, 27427,
- 27427, 27427, 27427, 27427, 27427, 27427, 27431, 27431,
- 27431, 27431, 27437, 27437, 27437, 27437, 27437, 27437,
- 27449, 27449, 27449, 27449, 27449, 27449, 27449, 27449,
- 27449, 27449, 27449, 27449, 27457, 27457, 27457, 27457,
- 27457, 27457, 27457, 27457, 27479, 27479, 27479, 27479,
- 27479, 27479, 27479, 27479, 27479, 27479, 27479, 27479,
- 27479, 27479, 27479, 27479, 27479, 27479, 27479, 27479,
- 27479, 27479, 27481, 27481, 27487, 27487, 27487, 27487,
- 27487, 27487, 27509, 27509, 27509, 27509, 27509, 27509,
- 27509, 27509, 27509, 27509, 27509, 27509, 27509, 27509,
- 27509, 27509, 27509, 27509, 27509, 27509, 27509, 27509,
- 27527, 27527, 27527, 27527, 27527, 27527, 27527, 27527,
- 27527, 27527, 27527, 27527, 27527, 27527, 27527, 27527,
- 27527, 27527, 27529, 27529, 27539, 27539, 27539, 27539,
- 27539, 27539, 27539, 27539, 27539, 27539, 27541, 27541,
- 27551, 27551, 27551, 27551, 27551, 27551, 27551, 27551,
- 27551, 27551, 27581, 27581, 27581, 27581, 27581, 27581,
- 27581, 27581, 27581, 27581, 27581, 27581, 27581, 27581,
- 27581, 27581, 27581, 27581, 27581, 27581, 27581, 27581,
- 27581, 27581, 27581, 27581, 27581, 27581, 27581, 27581,
- 27583, 27583, 27611, 27611, 27611, 27611, 27611, 27611,
- 27611, 27611, 27611, 27611, 27611, 27611, 27611, 27611,
- 27611, 27611, 27611, 27611, 27611, 27611, 27611, 27611,
- 27611, 27611, 27611, 27611, 27611, 27611, 27617, 27617,
- 27617, 27617, 27617, 27617, 27631, 27631, 27631, 27631,
- 27631, 27631, 27631, 27631, 27631, 27631, 27631, 27631,
- 27631, 27631, 27647, 27647, 27647, 27647, 27647, 27647,
- 27647, 27647, 27647, 27647, 27647, 27647, 27647, 27647,
- 27647, 27647, 27653, 27653, 27653, 27653, 27653, 27653,
- 27673, 27673, 27673, 27673, 27673, 27673, 27673, 27673,
- 27673, 27673, 27673, 27673, 27673, 27673, 27673, 27673,
- 27673, 27673, 27673, 27673, 27689, 27689, 27689, 27689,
- 27689, 27689, 27689, 27689, 27689, 27689, 27689, 27689,
- 27689, 27689, 27689, 27689, 27691, 27691, 27697, 27697,
- 27697, 27697, 27697, 27697, 27701, 27701, 27701, 27701,
- 27733, 27733, 27733, 27733, 27733, 27733, 27733, 27733,
- 27733, 27733, 27733, 27733, 27733, 27733, 27733, 27733,
- 27733, 27733, 27733, 27733, 27733, 27733, 27733, 27733,
- 27733, 27733, 27733, 27733, 27733, 27733, 27733, 27733,
- 27737, 27737, 27737, 27737, 27739, 27739, 27743, 27743,
- 27743, 27743, 27749, 27749, 27749, 27749, 27749, 27749,
- 27751, 27751, 27763, 27763, 27763, 27763, 27763, 27763,
- 27763, 27763, 27763, 27763, 27763, 27763, 27767, 27767,
- 27767, 27767, 27773, 27773, 27773, 27773, 27773, 27773,
- 27779, 27779, 27779, 27779, 27779, 27779, 27791, 27791,
- 27791, 27791, 27791, 27791, 27791, 27791, 27791, 27791,
- 27791, 27791, 27793, 27793, 27799, 27799, 27799, 27799,
- 27799, 27799, 27803, 27803, 27803, 27803, 27809, 27809,
- 27809, 27809, 27809, 27809, 27817, 27817, 27817, 27817,
- 27817, 27817, 27817, 27817, 27823, 27823, 27823, 27823,
- 27823, 27823, 27827, 27827, 27827, 27827, 27847, 27847,
- 27847, 27847, 27847, 27847, 27847, 27847, 27847, 27847,
- 27847, 27847, 27847, 27847, 27847, 27847, 27847, 27847,
- 27847, 27847, 27851, 27851, 27851, 27851, 27883, 27883,
- 27883, 27883, 27883, 27883, 27883, 27883, 27883, 27883,
- 27883, 27883, 27883, 27883, 27883, 27883, 27883, 27883,
- 27883, 27883, 27883, 27883, 27883, 27883, 27883, 27883,
- 27883, 27883, 27883, 27883, 27883, 27883, 27893, 27893,
- 27893, 27893, 27893, 27893, 27893, 27893, 27893, 27893,
- 27901, 27901, 27901, 27901, 27901, 27901, 27901, 27901,
- 27917, 27917, 27917, 27917, 27917, 27917, 27917, 27917,
- 27917, 27917, 27917, 27917, 27917, 27917, 27917, 27917,
- 27919, 27919, 27941, 27941, 27941, 27941, 27941, 27941,
- 27941, 27941, 27941, 27941, 27941, 27941, 27941, 27941,
- 27941, 27941, 27941, 27941, 27941, 27941, 27941, 27941,
- 27943, 27943, 27947, 27947, 27947, 27947, 27953, 27953,
- 27953, 27953, 27953, 27953, 27961, 27961, 27961, 27961,
- 27961, 27961, 27961, 27961, 27967, 27967, 27967, 27967,
- 27967, 27967, 27983, 27983, 27983, 27983, 27983, 27983,
- 27983, 27983, 27983, 27983, 27983, 27983, 27983, 27983,
- 27983, 27983, 27997, 27997, 27997, 27997, 27997, 27997,
- 27997, 27997, 27997, 27997, 27997, 27997, 27997, 27997,
- 28001, 28001, 28001, 28001, 28019, 28019, 28019, 28019,
- 28019, 28019, 28019, 28019, 28019, 28019, 28019, 28019,
- 28019, 28019, 28019, 28019, 28019, 28019, 28027, 28027,
- 28027, 28027, 28027, 28027, 28027, 28027, 28031, 28031,
- 28031, 28031, 28051, 28051, 28051, 28051, 28051, 28051,
- 28051, 28051, 28051, 28051, 28051, 28051, 28051, 28051,
- 28051, 28051, 28051, 28051, 28051, 28051, 28057, 28057,
- 28057, 28057, 28057, 28057, 28069, 28069, 28069, 28069,
- 28069, 28069, 28069, 28069, 28069, 28069, 28069, 28069,
- 28081, 28081, 28081, 28081, 28081, 28081, 28081, 28081,
- 28081, 28081, 28081, 28081, 28087, 28087, 28087, 28087,
- 28087, 28087, 28097, 28097, 28097, 28097, 28097, 28097,
- 28097, 28097, 28097, 28097, 28099, 28099, 28109, 28109,
- 28109, 28109, 28109, 28109, 28109, 28109, 28109, 28109,
- 28111, 28111, 28123, 28123, 28123, 28123, 28123, 28123,
- 28123, 28123, 28123, 28123, 28123, 28123, 28151, 28151,
- 28151, 28151, 28151, 28151, 28151, 28151, 28151, 28151,
- 28151, 28151, 28151, 28151, 28151, 28151, 28151, 28151,
- 28151, 28151, 28151, 28151, 28151, 28151, 28151, 28151,
- 28151, 28151, 28163, 28163, 28163, 28163, 28163, 28163,
- 28163, 28163, 28163, 28163, 28163, 28163, 28181, 28181,
- 28181, 28181, 28181, 28181, 28181, 28181, 28181, 28181,
- 28181, 28181, 28181, 28181, 28181, 28181, 28181, 28181,
- 28183, 28183, 28201, 28201, 28201, 28201, 28201, 28201,
- 28201, 28201, 28201, 28201, 28201, 28201, 28201, 28201,
- 28201, 28201, 28201, 28201, 28211, 28211, 28211, 28211,
- 28211, 28211, 28211, 28211, 28211, 28211, 28219, 28219,
- 28219, 28219, 28219, 28219, 28219, 28219, 28229, 28229,
- 28229, 28229, 28229, 28229, 28229, 28229, 28229, 28229,
- 28277, 28277, 28277, 28277, 28277, 28277, 28277, 28277,
- 28277, 28277, 28277, 28277, 28277, 28277, 28277, 28277,
- 28277, 28277, 28277, 28277, 28277, 28277, 28277, 28277,
- 28277, 28277, 28277, 28277, 28277, 28277, 28277, 28277,
- 28277, 28277, 28277, 28277, 28277, 28277, 28277, 28277,
- 28277, 28277, 28277, 28277, 28277, 28277, 28277, 28277,
- 28279, 28279, 28283, 28283, 28283, 28283, 28289, 28289,
- 28289, 28289, 28289, 28289, 28297, 28297, 28297, 28297,
- 28297, 28297, 28297, 28297, 28307, 28307, 28307, 28307,
- 28307, 28307, 28307, 28307, 28307, 28307, 28309, 28309,
- 28319, 28319, 28319, 28319, 28319, 28319, 28319, 28319,
- 28319, 28319, 28349, 28349, 28349, 28349, 28349, 28349,
- 28349, 28349, 28349, 28349, 28349, 28349, 28349, 28349,
- 28349, 28349, 28349, 28349, 28349, 28349, 28349, 28349,
- 28349, 28349, 28349, 28349, 28349, 28349, 28349, 28349,
- 28351, 28351, 28387, 28387, 28387, 28387, 28387, 28387,
- 28387, 28387, 28387, 28387, 28387, 28387, 28387, 28387,
- 28387, 28387, 28387, 28387, 28387, 28387, 28387, 28387,
- 28387, 28387, 28387, 28387, 28387, 28387, 28387, 28387,
- 28387, 28387, 28387, 28387, 28387, 28387, 28393, 28393,
- 28393, 28393, 28393, 28393, 28403, 28403, 28403, 28403,
- 28403, 28403, 28403, 28403, 28403, 28403, 28409, 28409,
- 28409, 28409, 28409, 28409, 28411, 28411, 28429, 28429,
- 28429, 28429, 28429, 28429, 28429, 28429, 28429, 28429,
- 28429, 28429, 28429, 28429, 28429, 28429, 28429, 28429,
- 28433, 28433, 28433, 28433, 28439, 28439, 28439, 28439,
- 28439, 28439, 28447, 28447, 28447, 28447, 28447, 28447,
- 28447, 28447, 28463, 28463, 28463, 28463, 28463, 28463,
- 28463, 28463, 28463, 28463, 28463, 28463, 28463, 28463,
- 28463, 28463, 28477, 28477, 28477, 28477, 28477, 28477,
- 28477, 28477, 28477, 28477, 28477, 28477, 28477, 28477,
- 28493, 28493, 28493, 28493, 28493, 28493, 28493, 28493,
- 28493, 28493, 28493, 28493, 28493, 28493, 28493, 28493,
- 28499, 28499, 28499, 28499, 28499, 28499, 28513, 28513,
- 28513, 28513, 28513, 28513, 28513, 28513, 28513, 28513,
- 28513, 28513, 28513, 28513, 28517, 28517, 28517, 28517,
- 28537, 28537, 28537, 28537, 28537, 28537, 28537, 28537,
- 28537, 28537, 28537, 28537, 28537, 28537, 28537, 28537,
- 28537, 28537, 28537, 28537, 28541, 28541, 28541, 28541,
- 28547, 28547, 28547, 28547, 28547, 28547, 28549, 28549,
- 28559, 28559, 28559, 28559, 28559, 28559, 28559, 28559,
- 28559, 28559, 28571, 28571, 28571, 28571, 28571, 28571,
- 28571, 28571, 28571, 28571, 28571, 28571, 28573, 28573,
- 28579, 28579, 28579, 28579, 28579, 28579, 28591, 28591,
- 28591, 28591, 28591, 28591, 28591, 28591, 28591, 28591,
- 28591, 28591, 28597, 28597, 28597, 28597, 28597, 28597,
- 28603, 28603, 28603, 28603, 28603, 28603, 28607, 28607,
- 28607, 28607, 28619, 28619, 28619, 28619, 28619, 28619,
- 28619, 28619, 28619, 28619, 28619, 28619, 28621, 28621,
- 28627, 28627, 28627, 28627, 28627, 28627, 28631, 28631,
- 28631, 28631, 28643, 28643, 28643, 28643, 28643, 28643,
- 28643, 28643, 28643, 28643, 28643, 28643, 28649, 28649,
- 28649, 28649, 28649, 28649, 28657, 28657, 28657, 28657,
- 28657, 28657, 28657, 28657, 28661, 28661, 28661, 28661,
- 28663, 28663, 28669, 28669, 28669, 28669, 28669, 28669,
- 28687, 28687, 28687, 28687, 28687, 28687, 28687, 28687,
- 28687, 28687, 28687, 28687, 28687, 28687, 28687, 28687,
- 28687, 28687, 28697, 28697, 28697, 28697, 28697, 28697,
- 28697, 28697, 28697, 28697, 28703, 28703, 28703, 28703,
- 28703, 28703, 28711, 28711, 28711, 28711, 28711, 28711,
- 28711, 28711, 28723, 28723, 28723, 28723, 28723, 28723,
- 28723, 28723, 28723, 28723, 28723, 28723, 28729, 28729,
- 28729, 28729, 28729, 28729, 28751, 28751, 28751, 28751,
- 28751, 28751, 28751, 28751, 28751, 28751, 28751, 28751,
- 28751, 28751, 28751, 28751, 28751, 28751, 28751, 28751,
- 28751, 28751, 28753, 28753, 28759, 28759, 28759, 28759,
- 28759, 28759, 28771, 28771, 28771, 28771, 28771, 28771,
- 28771, 28771, 28771, 28771, 28771, 28771, 28789, 28789,
- 28789, 28789, 28789, 28789, 28789, 28789, 28789, 28789,
- 28789, 28789, 28789, 28789, 28789, 28789, 28789, 28789,
- 28793, 28793, 28793, 28793, 28807, 28807, 28807, 28807,
- 28807, 28807, 28807, 28807, 28807, 28807, 28807, 28807,
- 28807, 28807, 28813, 28813, 28813, 28813, 28813, 28813,
- 28817, 28817, 28817, 28817, 28837, 28837, 28837, 28837,
- 28837, 28837, 28837, 28837, 28837, 28837, 28837, 28837,
- 28837, 28837, 28837, 28837, 28837, 28837, 28837, 28837,
- 28843, 28843, 28843, 28843, 28843, 28843, 28859, 28859,
- 28859, 28859, 28859, 28859, 28859, 28859, 28859, 28859,
- 28859, 28859, 28859, 28859, 28859, 28859, 28867, 28867,
- 28867, 28867, 28867, 28867, 28867, 28867, 28871, 28871,
- 28871, 28871, 28879, 28879, 28879, 28879, 28879, 28879,
- 28879, 28879, 28901, 28901, 28901, 28901, 28901, 28901,
- 28901, 28901, 28901, 28901, 28901, 28901, 28901, 28901,
- 28901, 28901, 28901, 28901, 28901, 28901, 28901, 28901,
- 28909, 28909, 28909, 28909, 28909, 28909, 28909, 28909,
- 28921, 28921, 28921, 28921, 28921, 28921, 28921, 28921,
- 28921, 28921, 28921, 28921, 28927, 28927, 28927, 28927,
- 28927, 28927, 28933, 28933, 28933, 28933, 28933, 28933,
- 28949, 28949, 28949, 28949, 28949, 28949, 28949, 28949,
- 28949, 28949, 28949, 28949, 28949, 28949, 28949, 28949,
- 28961, 28961, 28961, 28961, 28961, 28961, 28961, 28961,
- 28961, 28961, 28961, 28961, 28979, 28979, 28979, 28979,
- 28979, 28979, 28979, 28979, 28979, 28979, 28979, 28979,
- 28979, 28979, 28979, 28979, 28979, 28979, 29009, 29009,
- 29009, 29009, 29009, 29009, 29009, 29009, 29009, 29009,
- 29009, 29009, 29009, 29009, 29009, 29009, 29009, 29009,
- 29009, 29009, 29009, 29009, 29009, 29009, 29009, 29009,
- 29009, 29009, 29009, 29009, 29017, 29017, 29017, 29017,
- 29017, 29017, 29017, 29017, 29021, 29021, 29021, 29021,
- 29023, 29023, 29027, 29027, 29027, 29027, 29033, 29033,
- 29033, 29033, 29033, 29033, 29059, 29059, 29059, 29059,
- 29059, 29059, 29059, 29059, 29059, 29059, 29059, 29059,
- 29059, 29059, 29059, 29059, 29059, 29059, 29059, 29059,
- 29059, 29059, 29059, 29059, 29059, 29059, 29063, 29063,
- 29063, 29063, 29077, 29077, 29077, 29077, 29077, 29077,
- 29077, 29077, 29077, 29077, 29077, 29077, 29077, 29077,
- 29101, 29101, 29101, 29101, 29101, 29101, 29101, 29101,
- 29101, 29101, 29101, 29101, 29101, 29101, 29101, 29101,
- 29101, 29101, 29101, 29101, 29101, 29101, 29101, 29101,
- 29123, 29123, 29123, 29123, 29123, 29123, 29123, 29123,
- 29123, 29123, 29123, 29123, 29123, 29123, 29123, 29123,
- 29123, 29123, 29123, 29123, 29123, 29123, 29129, 29129,
- 29129, 29129, 29129, 29129, 29131, 29131, 29137, 29137,
- 29137, 29137, 29137, 29137, 29147, 29147, 29147, 29147,
- 29147, 29147, 29147, 29147, 29147, 29147, 29153, 29153,
- 29153, 29153, 29153, 29153, 29167, 29167, 29167, 29167,
- 29167, 29167, 29167, 29167, 29167, 29167, 29167, 29167,
- 29167, 29167, 29173, 29173, 29173, 29173, 29173, 29173,
- 29179, 29179, 29179, 29179, 29179, 29179, 29191, 29191,
- 29191, 29191, 29191, 29191, 29191, 29191, 29191, 29191,
- 29191, 29191, 29201, 29201, 29201, 29201, 29201, 29201,
- 29201, 29201, 29201, 29201, 29207, 29207, 29207, 29207,
- 29207, 29207, 29209, 29209, 29221, 29221, 29221, 29221,
- 29221, 29221, 29221, 29221, 29221, 29221, 29221, 29221,
- 29231, 29231, 29231, 29231, 29231, 29231, 29231, 29231,
- 29231, 29231, 29243, 29243, 29243, 29243, 29243, 29243,
- 29243, 29243, 29243, 29243, 29243, 29243, 29251, 29251,
- 29251, 29251, 29251, 29251, 29251, 29251, 29269, 29269,
- 29269, 29269, 29269, 29269, 29269, 29269, 29269, 29269,
- 29269, 29269, 29269, 29269, 29269, 29269, 29269, 29269,
- 29287, 29287, 29287, 29287, 29287, 29287, 29287, 29287,
- 29287, 29287, 29287, 29287, 29287, 29287, 29287, 29287,
- 29287, 29287, 29297, 29297, 29297, 29297, 29297, 29297,
- 29297, 29297, 29297, 29297, 29303, 29303, 29303, 29303,
- 29303, 29303, 29311, 29311, 29311, 29311, 29311, 29311,
- 29311, 29311, 29327, 29327, 29327, 29327, 29327, 29327,
- 29327, 29327, 29327, 29327, 29327, 29327, 29327, 29327,
- 29327, 29327, 29333, 29333, 29333, 29333, 29333, 29333,
- 29339, 29339, 29339, 29339, 29339, 29339, 29347, 29347,
- 29347, 29347, 29347, 29347, 29347, 29347, 29363, 29363,
- 29363, 29363, 29363, 29363, 29363, 29363, 29363, 29363,
- 29363, 29363, 29363, 29363, 29363, 29363, 29383, 29383,
- 29383, 29383, 29383, 29383, 29383, 29383, 29383, 29383,
- 29383, 29383, 29383, 29383, 29383, 29383, 29383, 29383,
- 29383, 29383, 29387, 29387, 29387, 29387, 29389, 29389,
- 29399, 29399, 29399, 29399, 29399, 29399, 29399, 29399,
- 29399, 29399, 29401, 29401, 29411, 29411, 29411, 29411,
- 29411, 29411, 29411, 29411, 29411, 29411, 29423, 29423,
- 29423, 29423, 29423, 29423, 29423, 29423, 29423, 29423,
- 29423, 29423, 29429, 29429, 29429, 29429, 29429, 29429,
- 29437, 29437, 29437, 29437, 29437, 29437, 29437, 29437,
- 29443, 29443, 29443, 29443, 29443, 29443, 29453, 29453,
- 29453, 29453, 29453, 29453, 29453, 29453, 29453, 29453,
- 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473,
- 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473,
- 29473, 29473, 29473, 29473, 29483, 29483, 29483, 29483,
- 29483, 29483, 29483, 29483, 29483, 29483, 29501, 29501,
- 29501, 29501, 29501, 29501, 29501, 29501, 29501, 29501,
- 29501, 29501, 29501, 29501, 29501, 29501, 29501, 29501,
- 29527, 29527, 29527, 29527, 29527, 29527, 29527, 29527,
- 29527, 29527, 29527, 29527, 29527, 29527, 29527, 29527,
- 29527, 29527, 29527, 29527, 29527, 29527, 29527, 29527,
- 29527, 29527, 29531, 29531, 29531, 29531, 29537, 29537,
- 29537, 29537, 29537, 29537, 29567, 29567, 29567, 29567,
- 29567, 29567, 29567, 29567, 29567, 29567, 29567, 29567,
- 29567, 29567, 29567, 29567, 29567, 29567, 29567, 29567,
- 29567, 29567, 29567, 29567, 29567, 29567, 29567, 29567,
- 29567, 29567, 29569, 29569, 29573, 29573, 29573, 29573,
- 29581, 29581, 29581, 29581, 29581, 29581, 29581, 29581,
- 29587, 29587, 29587, 29587, 29587, 29587, 29599, 29599,
- 29599, 29599, 29599, 29599, 29599, 29599, 29599, 29599,
- 29599, 29599, 29611, 29611, 29611, 29611, 29611, 29611,
- 29611, 29611, 29611, 29611, 29611, 29611, 29629, 29629,
- 29629, 29629, 29629, 29629, 29629, 29629, 29629, 29629,
- 29629, 29629, 29629, 29629, 29629, 29629, 29629, 29629,
- 29633, 29633, 29633, 29633, 29641, 29641, 29641, 29641,
- 29641, 29641, 29641, 29641, 29663, 29663, 29663, 29663,
- 29663, 29663, 29663, 29663, 29663, 29663, 29663, 29663,
- 29663, 29663, 29663, 29663, 29663, 29663, 29663, 29663,
- 29663, 29663, 29669, 29669, 29669, 29669, 29669, 29669,
- 29671, 29671, 29683, 29683, 29683, 29683, 29683, 29683,
- 29683, 29683, 29683, 29683, 29683, 29683, 29717, 29717,
- 29717, 29717, 29717, 29717, 29717, 29717, 29717, 29717,
- 29717, 29717, 29717, 29717, 29717, 29717, 29717, 29717,
- 29717, 29717, 29717, 29717, 29717, 29717, 29717, 29717,
- 29717, 29717, 29717, 29717, 29717, 29717, 29717, 29717,
- 29723, 29723, 29723, 29723, 29723, 29723, 29741, 29741,
- 29741, 29741, 29741, 29741, 29741, 29741, 29741, 29741,
- 29741, 29741, 29741, 29741, 29741, 29741, 29741, 29741,
- 29753, 29753, 29753, 29753, 29753, 29753, 29753, 29753,
- 29753, 29753, 29753, 29753, 29759, 29759, 29759, 29759,
- 29759, 29759, 29761, 29761, 29789, 29789, 29789, 29789,
- 29789, 29789, 29789, 29789, 29789, 29789, 29789, 29789,
- 29789, 29789, 29789, 29789, 29789, 29789, 29789, 29789,
- 29789, 29789, 29789, 29789, 29789, 29789, 29789, 29789,
- 29803, 29803, 29803, 29803, 29803, 29803, 29803, 29803,
- 29803, 29803, 29803, 29803, 29803, 29803, 29819, 29819,
- 29819, 29819, 29819, 29819, 29819, 29819, 29819, 29819,
- 29819, 29819, 29819, 29819, 29819, 29819, 29833, 29833,
- 29833, 29833, 29833, 29833, 29833, 29833, 29833, 29833,
- 29833, 29833, 29833, 29833, 29837, 29837, 29837, 29837,
- 29851, 29851, 29851, 29851, 29851, 29851, 29851, 29851,
- 29851, 29851, 29851, 29851, 29851, 29851, 29863, 29863,
- 29863, 29863, 29863, 29863, 29863, 29863, 29863, 29863,
- 29863, 29863, 29867, 29867, 29867, 29867, 29873, 29873,
- 29873, 29873, 29873, 29873, 29879, 29879, 29879, 29879,
- 29879, 29879, 29881, 29881, 29917, 29917, 29917, 29917,
- 29917, 29917, 29917, 29917, 29917, 29917, 29917, 29917,
- 29917, 29917, 29917, 29917, 29917, 29917, 29917, 29917,
- 29917, 29917, 29917, 29917, 29917, 29917, 29917, 29917,
- 29917, 29917, 29917, 29917, 29917, 29917, 29917, 29917,
- 29921, 29921, 29921, 29921, 29927, 29927, 29927, 29927,
- 29927, 29927, 29947, 29947, 29947, 29947, 29947, 29947,
- 29947, 29947, 29947, 29947, 29947, 29947, 29947, 29947,
- 29947, 29947, 29947, 29947, 29947, 29947, 29959, 29959,
- 29959, 29959, 29959, 29959, 29959, 29959, 29959, 29959,
- 29959, 29959, 29983, 29983, 29983, 29983, 29983, 29983,
- 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983,
- 29983, 29983, 29983, 29983, 29983, 29983, 29983, 29983,
- 29983, 29983, 29989, 29989, 29989, 29989, 29989, 29989,
- 30011, 30011, 30011, 30011, 30011, 30011, 30011, 30011,
- 30011, 30011, 30011, 30011, 30011, 30011, 30011, 30011,
- 30011, 30011, 30011, 30011, 30011, 30011, 30013, 30013,
- 30029, 30029, 30029, 30029, 30029, 30029, 30029, 30029,
- 30029, 30029, 30029, 30029, 30029, 30029, 30029, 30029,
- 30047, 30047, 30047, 30047, 30047, 30047, 30047, 30047,
- 30047, 30047, 30047, 30047, 30047, 30047, 30047, 30047,
- 30047, 30047, 30059, 30059, 30059, 30059, 30059, 30059,
- 30059, 30059, 30059, 30059, 30059, 30059, 30071, 30071,
- 30071, 30071, 30071, 30071, 30071, 30071, 30071, 30071,
- 30071, 30071, 30089, 30089, 30089, 30089, 30089, 30089,
- 30089, 30089, 30089, 30089, 30089, 30089, 30089, 30089,
- 30089, 30089, 30089, 30089, 30091, 30091, 30097, 30097,
- 30097, 30097, 30097, 30097, 30103, 30103, 30103, 30103,
- 30103, 30103, 30109, 30109, 30109, 30109, 30109, 30109,
- 30113, 30113, 30113, 30113, 30119, 30119, 30119, 30119,
- 30119, 30119, 30133, 30133, 30133, 30133, 30133, 30133,
- 30133, 30133, 30133, 30133, 30133, 30133, 30133, 30133,
- 30137, 30137, 30137, 30137, 30139, 30139, 30161, 30161,
- 30161, 30161, 30161, 30161, 30161, 30161, 30161, 30161,
- 30161, 30161, 30161, 30161, 30161, 30161, 30161, 30161,
- 30161, 30161, 30161, 30161, 30169, 30169, 30169, 30169,
- 30169, 30169, 30169, 30169, 30181, 30181, 30181, 30181,
- 30181, 30181, 30181, 30181, 30181, 30181, 30181, 30181,
- 30187, 30187, 30187, 30187, 30187, 30187, 30197, 30197,
- 30197, 30197, 30197, 30197, 30197, 30197, 30197, 30197,
- 30203, 30203, 30203, 30203, 30203, 30203, 30211, 30211,
- 30211, 30211, 30211, 30211, 30211, 30211, 30223, 30223,
- 30223, 30223, 30223, 30223, 30223, 30223, 30223, 30223,
- 30223, 30223, 30241, 30241, 30241, 30241, 30241, 30241,
- 30241, 30241, 30241, 30241, 30241, 30241, 30241, 30241,
- 30241, 30241, 30241, 30241, 30253, 30253, 30253, 30253,
- 30253, 30253, 30253, 30253, 30253, 30253, 30253, 30253,
- 30259, 30259, 30259, 30259, 30259, 30259, 30269, 30269,
- 30269, 30269, 30269, 30269, 30269, 30269, 30269, 30269,
- 30271, 30271, 30293, 30293, 30293, 30293, 30293, 30293,
- 30293, 30293, 30293, 30293, 30293, 30293, 30293, 30293,
- 30293, 30293, 30293, 30293, 30293, 30293, 30293, 30293,
- 30307, 30307, 30307, 30307, 30307, 30307, 30307, 30307,
- 30307, 30307, 30307, 30307, 30307, 30307, 30313, 30313,
- 30313, 30313, 30313, 30313, 30319, 30319, 30319, 30319,
- 30319, 30319, 30323, 30323, 30323, 30323, 30341, 30341,
- 30341, 30341, 30341, 30341, 30341, 30341, 30341, 30341,
- 30341, 30341, 30341, 30341, 30341, 30341, 30341, 30341,
- 30347, 30347, 30347, 30347, 30347, 30347, 30367, 30367,
- 30367, 30367, 30367, 30367, 30367, 30367, 30367, 30367,
- 30367, 30367, 30367, 30367, 30367, 30367, 30367, 30367,
- 30367, 30367, 30389, 30389, 30389, 30389, 30389, 30389,
- 30389, 30389, 30389, 30389, 30389, 30389, 30389, 30389,
- 30389, 30389, 30389, 30389, 30389, 30389, 30389, 30389,
- 30391, 30391, 30403, 30403, 30403, 30403, 30403, 30403,
- 30403, 30403, 30403, 30403, 30403, 30403, 30427, 30427,
- 30427, 30427, 30427, 30427, 30427, 30427, 30427, 30427,
- 30427, 30427, 30427, 30427, 30427, 30427, 30427, 30427,
- 30427, 30427, 30427, 30427, 30427, 30427, 30431, 30431,
- 30431, 30431, 30449, 30449, 30449, 30449, 30449, 30449,
- 30449, 30449, 30449, 30449, 30449, 30449, 30449, 30449,
- 30449, 30449, 30449, 30449, 30467, 30467, 30467, 30467,
- 30467, 30467, 30467, 30467, 30467, 30467, 30467, 30467,
- 30467, 30467, 30467, 30467, 30467, 30467, 30469, 30469,
- 30491, 30491, 30491, 30491, 30491, 30491, 30491, 30491,
- 30491, 30491, 30491, 30491, 30491, 30491, 30491, 30491,
- 30491, 30491, 30491, 30491, 30491, 30491, 30493, 30493,
- 30497, 30497, 30497, 30497, 30509, 30509, 30509, 30509,
- 30509, 30509, 30509, 30509, 30509, 30509, 30509, 30509,
- 30517, 30517, 30517, 30517, 30517, 30517, 30517, 30517,
- 30529, 30529, 30529, 30529, 30529, 30529, 30529, 30529,
- 30529, 30529, 30529, 30529, 30539, 30539, 30539, 30539,
- 30539, 30539, 30539, 30539, 30539, 30539, 30553, 30553,
- 30553, 30553, 30553, 30553, 30553, 30553, 30553, 30553,
- 30553, 30553, 30553, 30553, 30557, 30557, 30557, 30557,
- 30559, 30559, 30577, 30577, 30577, 30577, 30577, 30577,
- 30577, 30577, 30577, 30577, 30577, 30577, 30577, 30577,
- 30577, 30577, 30577, 30577, 30593, 30593, 30593, 30593,
- 30593, 30593, 30593, 30593, 30593, 30593, 30593, 30593,
- 30593, 30593, 30593, 30593, 30631, 30631, 30631, 30631,
- 30631, 30631, 30631, 30631, 30631, 30631, 30631, 30631,
- 30631, 30631, 30631, 30631, 30631, 30631, 30631, 30631,
- 30631, 30631, 30631, 30631, 30631, 30631, 30631, 30631,
- 30631, 30631, 30631, 30631, 30631, 30631, 30631, 30631,
- 30631, 30631, 30637, 30637, 30637, 30637, 30637, 30637,
- 30643, 30643, 30643, 30643, 30643, 30643, 30649, 30649,
- 30649, 30649, 30649, 30649, 30661, 30661, 30661, 30661,
- 30661, 30661, 30661, 30661, 30661, 30661, 30661, 30661,
- 30671, 30671, 30671, 30671, 30671, 30671, 30671, 30671,
- 30671, 30671, 30677, 30677, 30677, 30677, 30677, 30677,
- 30689, 30689, 30689, 30689, 30689, 30689, 30689, 30689,
- 30689, 30689, 30689, 30689, 30697, 30697, 30697, 30697,
- 30697, 30697, 30697, 30697, 30703, 30703, 30703, 30703,
- 30703, 30703, 30707, 30707, 30707, 30707, 30713, 30713,
- 30713, 30713, 30713, 30713, 30727, 30727, 30727, 30727,
- 30727, 30727, 30727, 30727, 30727, 30727, 30727, 30727,
- 30727, 30727, 30757, 30757, 30757, 30757, 30757, 30757,
- 30757, 30757, 30757, 30757, 30757, 30757, 30757, 30757,
- 30757, 30757, 30757, 30757, 30757, 30757, 30757, 30757,
- 30757, 30757, 30757, 30757, 30757, 30757, 30757, 30757,
- 30763, 30763, 30763, 30763, 30763, 30763, 30773, 30773,
- 30773, 30773, 30773, 30773, 30773, 30773, 30773, 30773,
- 30781, 30781, 30781, 30781, 30781, 30781, 30781, 30781,
- 30803, 30803, 30803, 30803, 30803, 30803, 30803, 30803,
- 30803, 30803, 30803, 30803, 30803, 30803, 30803, 30803,
- 30803, 30803, 30803, 30803, 30803, 30803, 30809, 30809,
- 30809, 30809, 30809, 30809, 30817, 30817, 30817, 30817,
- 30817, 30817, 30817, 30817, 30829, 30829, 30829, 30829,
- 30829, 30829, 30829, 30829, 30829, 30829, 30829, 30829,
- 30839, 30839, 30839, 30839, 30839, 30839, 30839, 30839,
- 30839, 30839, 30841, 30841, 30851, 30851, 30851, 30851,
- 30851, 30851, 30851, 30851, 30851, 30851, 30853, 30853,
- 30859, 30859, 30859, 30859, 30859, 30859, 30869, 30869,
- 30869, 30869, 30869, 30869, 30869, 30869, 30869, 30869,
- 30871, 30871, 30881, 30881, 30881, 30881, 30881, 30881,
- 30881, 30881, 30881, 30881, 30893, 30893, 30893, 30893,
- 30893, 30893, 30893, 30893, 30893, 30893, 30893, 30893,
- 30911, 30911, 30911, 30911, 30911, 30911, 30911, 30911,
- 30911, 30911, 30911, 30911, 30911, 30911, 30911, 30911,
- 30911, 30911, 30931, 30931, 30931, 30931, 30931, 30931,
- 30931, 30931, 30931, 30931, 30931, 30931, 30931, 30931,
- 30931, 30931, 30931, 30931, 30931, 30931, 30937, 30937,
- 30937, 30937, 30937, 30937, 30941, 30941, 30941, 30941,
- 30949, 30949, 30949, 30949, 30949, 30949, 30949, 30949,
- 30971, 30971, 30971, 30971, 30971, 30971, 30971, 30971,
- 30971, 30971, 30971, 30971, 30971, 30971, 30971, 30971,
- 30971, 30971, 30971, 30971, 30971, 30971, 30977, 30977,
- 30977, 30977, 30977, 30977, 30983, 30983, 30983, 30983,
- 30983, 30983, 31013, 31013, 31013, 31013, 31013, 31013,
- 31013, 31013, 31013, 31013, 31013, 31013, 31013, 31013,
- 31013, 31013, 31013, 31013, 31013, 31013, 31013, 31013,
- 31013, 31013, 31013, 31013, 31013, 31013, 31013, 31013,
- 31019, 31019, 31019, 31019, 31019, 31019, 31033, 31033,
- 31033, 31033, 31033, 31033, 31033, 31033, 31033, 31033,
- 31033, 31033, 31033, 31033, 31039, 31039, 31039, 31039,
- 31039, 31039, 31051, 31051, 31051, 31051, 31051, 31051,
- 31051, 31051, 31051, 31051, 31051, 31051, 31063, 31063,
- 31063, 31063, 31063, 31063, 31063, 31063, 31063, 31063,
- 31063, 31063, 31069, 31069, 31069, 31069, 31069, 31069,
- 31079, 31079, 31079, 31079, 31079, 31079, 31079, 31079,
- 31079, 31079, 31081, 31081, 31091, 31091, 31091, 31091,
- 31091, 31091, 31091, 31091, 31091, 31091, 31121, 31121,
- 31121, 31121, 31121, 31121, 31121, 31121, 31121, 31121,
- 31121, 31121, 31121, 31121, 31121, 31121, 31121, 31121,
- 31121, 31121, 31121, 31121, 31121, 31121, 31121, 31121,
- 31121, 31121, 31121, 31121, 31123, 31123, 31139, 31139,
- 31139, 31139, 31139, 31139, 31139, 31139, 31139, 31139,
- 31139, 31139, 31139, 31139, 31139, 31139, 31147, 31147,
- 31147, 31147, 31147, 31147, 31147, 31147, 31151, 31151,
- 31151, 31151, 31153, 31153, 31159, 31159, 31159, 31159,
- 31159, 31159, 31177, 31177, 31177, 31177, 31177, 31177,
- 31177, 31177, 31177, 31177, 31177, 31177, 31177, 31177,
- 31177, 31177, 31177, 31177, 31181, 31181, 31181, 31181,
- 31183, 31183, 31189, 31189, 31189, 31189, 31189, 31189,
- 31193, 31193, 31193, 31193, 31219, 31219, 31219, 31219,
- 31219, 31219, 31219, 31219, 31219, 31219, 31219, 31219,
- 31219, 31219, 31219, 31219, 31219, 31219, 31219, 31219,
- 31219, 31219, 31219, 31219, 31219, 31219, 31223, 31223,
- 31223, 31223, 31231, 31231, 31231, 31231, 31231, 31231,
- 31231, 31231, 31237, 31237, 31237, 31237, 31237, 31237,
- 31247, 31247, 31247, 31247, 31247, 31247, 31247, 31247,
- 31247, 31247, 31249, 31249, 31253, 31253, 31253, 31253,
- 31259, 31259, 31259, 31259, 31259, 31259, 31267, 31267,
- 31267, 31267, 31267, 31267, 31267, 31267, 31271, 31271,
- 31271, 31271, 31277, 31277, 31277, 31277, 31277, 31277,
- 31307, 31307, 31307, 31307, 31307, 31307, 31307, 31307,
- 31307, 31307, 31307, 31307, 31307, 31307, 31307, 31307,
- 31307, 31307, 31307, 31307, 31307, 31307, 31307, 31307,
- 31307, 31307, 31307, 31307, 31307, 31307, 31319, 31319,
- 31319, 31319, 31319, 31319, 31319, 31319, 31319, 31319,
- 31319, 31319, 31321, 31321, 31327, 31327, 31327, 31327,
- 31327, 31327, 31333, 31333, 31333, 31333, 31333, 31333,
- 31337, 31337, 31337, 31337, 31357, 31357, 31357, 31357,
- 31357, 31357, 31357, 31357, 31357, 31357, 31357, 31357,
- 31357, 31357, 31357, 31357, 31357, 31357, 31357, 31357,
- 31379, 31379, 31379, 31379, 31379, 31379, 31379, 31379,
- 31379, 31379, 31379, 31379, 31379, 31379, 31379, 31379,
- 31379, 31379, 31379, 31379, 31379, 31379, 31387, 31387,
- 31387, 31387, 31387, 31387, 31387, 31387, 31391, 31391,
- 31391, 31391, 31393, 31393, 31397, 31397, 31397, 31397,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31469, 31469, 31469, 31469, 31469, 31469, 31469, 31469,
- 31477, 31477, 31477, 31477, 31477, 31477, 31477, 31477,
- 31481, 31481, 31481, 31481, 31489, 31489, 31489, 31489,
- 31489, 31489, 31489, 31489, 31511, 31511, 31511, 31511,
- 31511, 31511, 31511, 31511, 31511, 31511, 31511, 31511,
- 31511, 31511, 31511, 31511, 31511, 31511, 31511, 31511,
- 31511, 31511, 31513, 31513, 31517, 31517, 31517, 31517,
- 31531, 31531, 31531, 31531, 31531, 31531, 31531, 31531,
- 31531, 31531, 31531, 31531, 31531, 31531, 31541, 31541,
- 31541, 31541, 31541, 31541, 31541, 31541, 31541, 31541,
- 31543, 31543, 31547, 31547, 31547, 31547, 31567, 31567,
- 31567, 31567, 31567, 31567, 31567, 31567, 31567, 31567,
- 31567, 31567, 31567, 31567, 31567, 31567, 31567, 31567,
- 31567, 31567, 31573, 31573, 31573, 31573, 31573, 31573,
- 31583, 31583, 31583, 31583, 31583, 31583, 31583, 31583,
- 31583, 31583, 31601, 31601, 31601, 31601, 31601, 31601,
- 31601, 31601, 31601, 31601, 31601, 31601, 31601, 31601,
- 31601, 31601, 31601, 31601, 31607, 31607, 31607, 31607,
- 31607, 31607, 31627, 31627, 31627, 31627, 31627, 31627,
- 31627, 31627, 31627, 31627, 31627, 31627, 31627, 31627,
- 31627, 31627, 31627, 31627, 31627, 31627, 31643, 31643,
- 31643, 31643, 31643, 31643, 31643, 31643, 31643, 31643,
- 31643, 31643, 31643, 31643, 31643, 31643, 31649, 31649,
- 31649, 31649, 31649, 31649, 31657, 31657, 31657, 31657,
- 31657, 31657, 31657, 31657, 31663, 31663, 31663, 31663,
- 31663, 31663, 31667, 31667, 31667, 31667, 31687, 31687,
- 31687, 31687, 31687, 31687, 31687, 31687, 31687, 31687,
- 31687, 31687, 31687, 31687, 31687, 31687, 31687, 31687,
- 31687, 31687, 31699, 31699, 31699, 31699, 31699, 31699,
- 31699, 31699, 31699, 31699, 31699, 31699, 31721, 31721,
- 31721, 31721, 31721, 31721, 31721, 31721, 31721, 31721,
- 31721, 31721, 31721, 31721, 31721, 31721, 31721, 31721,
- 31721, 31721, 31721, 31721, 31723, 31723, 31727, 31727,
- 31727, 31727, 31729, 31729, 31741, 31741, 31741, 31741,
- 31741, 31741, 31741, 31741, 31741, 31741, 31741, 31741,
- 31751, 31751, 31751, 31751, 31751, 31751, 31751, 31751,
- 31751, 31751, 31769, 31769, 31769, 31769, 31769, 31769,
- 31769, 31769, 31769, 31769, 31769, 31769, 31769, 31769,
- 31769, 31769, 31769, 31769, 31771, 31771, 31793, 31793,
- 31793, 31793, 31793, 31793, 31793, 31793, 31793, 31793,
- 31793, 31793, 31793, 31793, 31793, 31793, 31793, 31793,
- 31793, 31793, 31793, 31793, 31799, 31799, 31799, 31799,
- 31799, 31799, 31817, 31817, 31817, 31817, 31817, 31817,
- 31817, 31817, 31817, 31817, 31817, 31817, 31817, 31817,
- 31817, 31817, 31817, 31817, 31847, 31847, 31847, 31847,
- 31847, 31847, 31847, 31847, 31847, 31847, 31847, 31847,
- 31847, 31847, 31847, 31847, 31847, 31847, 31847, 31847,
- 31847, 31847, 31847, 31847, 31847, 31847, 31847, 31847,
- 31847, 31847, 31849, 31849, 31859, 31859, 31859, 31859,
- 31859, 31859, 31859, 31859, 31859, 31859, 31873, 31873,
- 31873, 31873, 31873, 31873, 31873, 31873, 31873, 31873,
- 31873, 31873, 31873, 31873, 31883, 31883, 31883, 31883,
- 31883, 31883, 31883, 31883, 31883, 31883, 31891, 31891,
- 31891, 31891, 31891, 31891, 31891, 31891, 31907, 31907,
- 31907, 31907, 31907, 31907, 31907, 31907, 31907, 31907,
- 31907, 31907, 31907, 31907, 31907, 31907, 31957, 31957,
- 31957, 31957, 31957, 31957, 31957, 31957, 31957, 31957,
- 31957, 31957, 31957, 31957, 31957, 31957, 31957, 31957,
- 31957, 31957, 31957, 31957, 31957, 31957, 31957, 31957,
- 31957, 31957, 31957, 31957, 31957, 31957, 31957, 31957,
- 31957, 31957, 31957, 31957, 31957, 31957, 31957, 31957,
- 31957, 31957, 31957, 31957, 31957, 31957, 31957, 31957,
- 31963, 31963, 31963, 31963, 31963, 31963, 31973, 31973,
- 31973, 31973, 31973, 31973, 31973, 31973, 31973, 31973,
- 31981, 31981, 31981, 31981, 31981, 31981, 31981, 31981,
- 31991, 31991, 31991, 31991, 31991, 31991, 31991, 31991,
- 31991, 31991, 32003, 32003, 32003, 32003, 32003, 32003,
- 32003, 32003, 32003, 32003, 32003, 32003, 32009, 32009,
- 32009, 32009, 32009, 32009, 32027, 32027, 32027, 32027,
- 32027, 32027, 32027, 32027, 32027, 32027, 32027, 32027,
- 32027, 32027, 32027, 32027, 32027, 32027, 32029, 32029,
- 32051, 32051, 32051, 32051, 32051, 32051, 32051, 32051,
- 32051, 32051, 32051, 32051, 32051, 32051, 32051, 32051,
- 32051, 32051, 32051, 32051, 32051, 32051, 32057, 32057,
- 32057, 32057, 32057, 32057, 32059, 32059, 32063, 32063,
- 32063, 32063, 32069, 32069, 32069, 32069, 32069, 32069,
- 32077, 32077, 32077, 32077, 32077, 32077, 32077, 32077,
- 32083, 32083, 32083, 32083, 32083, 32083, 32089, 32089,
- 32089, 32089, 32089, 32089, 32099, 32099, 32099, 32099,
- 32099, 32099, 32099, 32099, 32099, 32099, 32117, 32117,
- 32117, 32117, 32117, 32117, 32117, 32117, 32117, 32117,
- 32117, 32117, 32117, 32117, 32117, 32117, 32117, 32117,
- 32119, 32119, 32141, 32141, 32141, 32141, 32141, 32141,
- 32141, 32141, 32141, 32141, 32141, 32141, 32141, 32141,
- 32141, 32141, 32141, 32141, 32141, 32141, 32141, 32141,
- 32143, 32143, 32159, 32159, 32159, 32159, 32159, 32159,
- 32159, 32159, 32159, 32159, 32159, 32159, 32159, 32159,
- 32159, 32159, 32173, 32173, 32173, 32173, 32173, 32173,
- 32173, 32173, 32173, 32173, 32173, 32173, 32173, 32173,
- 32183, 32183, 32183, 32183, 32183, 32183, 32183, 32183,
- 32183, 32183, 32189, 32189, 32189, 32189, 32189, 32189,
- 32191, 32191, 32203, 32203, 32203, 32203, 32203, 32203,
- 32203, 32203, 32203, 32203, 32203, 32203, 32213, 32213,
- 32213, 32213, 32213, 32213, 32213, 32213, 32213, 32213,
- 32233, 32233, 32233, 32233, 32233, 32233, 32233, 32233,
- 32233, 32233, 32233, 32233, 32233, 32233, 32233, 32233,
- 32233, 32233, 32233, 32233, 32237, 32237, 32237, 32237,
- 32251, 32251, 32251, 32251, 32251, 32251, 32251, 32251,
- 32251, 32251, 32251, 32251, 32251, 32251, 32257, 32257,
- 32257, 32257, 32257, 32257, 32261, 32261, 32261, 32261,
- 32297, 32297, 32297, 32297, 32297, 32297, 32297, 32297,
- 32297, 32297, 32297, 32297, 32297, 32297, 32297, 32297,
- 32297, 32297, 32297, 32297, 32297, 32297, 32297, 32297,
- 32297, 32297, 32297, 32297, 32297, 32297, 32297, 32297,
- 32297, 32297, 32297, 32297, 32299, 32299, 32303, 32303,
- 32303, 32303, 32309, 32309, 32309, 32309, 32309, 32309,
- 32321, 32321, 32321, 32321, 32321, 32321, 32321, 32321,
- 32321, 32321, 32321, 32321, 32323, 32323, 32327, 32327,
- 32327, 32327, 32341, 32341, 32341, 32341, 32341, 32341,
- 32341, 32341, 32341, 32341, 32341, 32341, 32341, 32341,
- 32353, 32353, 32353, 32353, 32353, 32353, 32353, 32353,
- 32353, 32353, 32353, 32353, 32359, 32359, 32359, 32359,
- 32359, 32359, 32363, 32363, 32363, 32363, 32369, 32369,
- 32369, 32369, 32369, 32369, 32371, 32371, 32377, 32377,
- 32377, 32377, 32377, 32377, 32381, 32381, 32381, 32381,
- 32401, 32401, 32401, 32401, 32401, 32401, 32401, 32401,
- 32401, 32401, 32401, 32401, 32401, 32401, 32401, 32401,
- 32401, 32401, 32401, 32401, 32411, 32411, 32411, 32411,
- 32411, 32411, 32411, 32411, 32411, 32411, 32413, 32413,
- 32423, 32423, 32423, 32423, 32423, 32423, 32423, 32423,
- 32423, 32423, 32429, 32429, 32429, 32429, 32429, 32429,
- 32441, 32441, 32441, 32441, 32441, 32441, 32441, 32441,
- 32441, 32441, 32441, 32441, 32443, 32443, 32467, 32467,
- 32467, 32467, 32467, 32467, 32467, 32467, 32467, 32467,
- 32467, 32467, 32467, 32467, 32467, 32467, 32467, 32467,
- 32467, 32467, 32467, 32467, 32467, 32467, 32479, 32479,
- 32479, 32479, 32479, 32479, 32479, 32479, 32479, 32479,
- 32479, 32479, 32491, 32491, 32491, 32491, 32491, 32491,
- 32491, 32491, 32491, 32491, 32491, 32491, 32497, 32497,
- 32497, 32497, 32497, 32497, 32503, 32503, 32503, 32503,
- 32503, 32503, 32507, 32507, 32507, 32507, 32531, 32531,
- 32531, 32531, 32531, 32531, 32531, 32531, 32531, 32531,
- 32531, 32531, 32531, 32531, 32531, 32531, 32531, 32531,
- 32531, 32531, 32531, 32531, 32531, 32531, 32533, 32533,
- 32537, 32537, 32537, 32537, 32561, 32561, 32561, 32561,
- 32561, 32561, 32561, 32561, 32561, 32561, 32561, 32561,
- 32561, 32561, 32561, 32561, 32561, 32561, 32561, 32561,
- 32561, 32561, 32561, 32561, 32563, 32563, 32569, 32569,
- 32569, 32569, 32569, 32569, 32573, 32573, 32573, 32573,
- 32579, 32579, 32579, 32579, 32579, 32579, 32587, 32587,
- 32587, 32587, 32587, 32587, 32587, 32587, 32603, 32603,
- 32603, 32603, 32603, 32603, 32603, 32603, 32603, 32603,
- 32603, 32603, 32603, 32603, 32603, 32603, 32609, 32609,
- 32609, 32609, 32609, 32609, 32611, 32611, 32621, 32621,
- 32621, 32621, 32621, 32621, 32621, 32621, 32621, 32621,
- 32633, 32633, 32633, 32633, 32633, 32633, 32633, 32633,
- 32633, 32633, 32633, 32633, 32647, 32647, 32647, 32647,
- 32647, 32647, 32647, 32647, 32647, 32647, 32647, 32647,
- 32647, 32647, 32653, 32653, 32653, 32653, 32653, 32653,
- 32687, 32687, 32687, 32687, 32687, 32687, 32687, 32687,
- 32687, 32687, 32687, 32687, 32687, 32687, 32687, 32687,
- 32687, 32687, 32687, 32687, 32687, 32687, 32687, 32687,
- 32687, 32687, 32687, 32687, 32687, 32687, 32687, 32687,
- 32687, 32687, 32693, 32693, 32693, 32693, 32693, 32693,
- 32707, 32707, 32707, 32707, 32707, 32707, 32707, 32707,
- 32707, 32707, 32707, 32707, 32707, 32707, 32713, 32713,
- 32713, 32713, 32713, 32713, 32717, 32717, 32717, 32717,
- 32719, 32719, 32749, 32749, 32749, 32749, 32749, 32749,
- 32749, 32749, 32749, 32749, 32749, 32749, 32749, 32749,
- 32749, 32749, 32749, 32749, 32749, 32749, 32749, 32749,
- 32749, 32749, 32749, 32749, 32749, 32749, 32749, 32749,
- 32771, 32771, 32771, 32771, 32771, 32771, 32771, 32771,
- 32771, 32771, 32771, 32771, 32771, 32771, 32771, 32771,
- 32771, 32771, 32771, 32771, 32771, 32771, 32779, 32779,
- 32779, 32779, 32779, 32779, 32779, 32779, 32783, 32783,
- 32783, 32783, 32789, 32789, 32789, 32789, 32789, 32789,
- 32797, 32797, 32797, 32797, 32797, 32797, 32797, 32797,
- 32801, 32801, 32801, 32801, 32803, 32803, 32831, 32831,
- 32831, 32831, 32831, 32831, 32831, 32831, 32831, 32831,
- 32831, 32831, 32831, 32831, 32831, 32831, 32831, 32831,
- 32831, 32831, 32831, 32831, 32831, 32831, 32831, 32831,
- 32831, 32831, 32833, 32833, 32839, 32839, 32839, 32839,
- 32839, 32839, 32843, 32843, 32843, 32843, 32869, 32869,
- 32869, 32869, 32869, 32869, 32869, 32869, 32869, 32869,
- 32869, 32869, 32869, 32869, 32869, 32869, 32869, 32869,
- 32869, 32869, 32869, 32869, 32869, 32869, 32869, 32869,
- 32887, 32887, 32887, 32887, 32887, 32887, 32887, 32887,
- 32887, 32887, 32887, 32887, 32887, 32887, 32887, 32887,
- 32887, 32887, 32909, 32909, 32909, 32909, 32909, 32909,
- 32909, 32909, 32909, 32909, 32909, 32909, 32909, 32909,
- 32909, 32909, 32909, 32909, 32909, 32909, 32909, 32909,
- 32911, 32911, 32917, 32917, 32917, 32917, 32917, 32917,
- 32933, 32933, 32933, 32933, 32933, 32933, 32933, 32933,
- 32933, 32933, 32933, 32933, 32933, 32933, 32933, 32933,
- 32939, 32939, 32939, 32939, 32939, 32939, 32941, 32941,
- 32957, 32957, 32957, 32957, 32957, 32957, 32957, 32957,
- 32957, 32957, 32957, 32957, 32957, 32957, 32957, 32957,
- 32969, 32969, 32969, 32969, 32969, 32969, 32969, 32969,
- 32969, 32969, 32969, 32969, 32971, 32971, 32983, 32983,
- 32983, 32983, 32983, 32983, 32983, 32983, 32983, 32983,
- 32983, 32983, 32987, 32987, 32987, 32987, 32993, 32993,
- 32993, 32993, 32993, 32993, 32999, 32999, 32999, 32999,
- 32999, 32999, 33013, 33013, 33013, 33013, 33013, 33013,
- 33013, 33013, 33013, 33013, 33013, 33013, 33013, 33013,
- 33023, 33023, 33023, 33023, 33023, 33023, 33023, 33023,
- 33023, 33023, 33029, 33029, 33029, 33029, 33029, 33029,
- 33037, 33037, 33037, 33037, 33037, 33037, 33037, 33037,
- 33049, 33049, 33049, 33049, 33049, 33049, 33049, 33049,
- 33049, 33049, 33049, 33049, 33053, 33053, 33053, 33053,
- 33071, 33071, 33071, 33071, 33071, 33071, 33071, 33071,
- 33071, 33071, 33071, 33071, 33071, 33071, 33071, 33071,
- 33071, 33071, 33073, 33073, 33083, 33083, 33083, 33083,
- 33083, 33083, 33083, 33083, 33083, 33083, 33091, 33091,
- 33091, 33091, 33091, 33091, 33091, 33091, 33107, 33107,
- 33107, 33107, 33107, 33107, 33107, 33107, 33107, 33107,
- 33107, 33107, 33107, 33107, 33107, 33107, 33113, 33113,
- 33113, 33113, 33113, 33113, 33119, 33119, 33119, 33119,
- 33119, 33119, 33149, 33149, 33149, 33149, 33149, 33149,
- 33149, 33149, 33149, 33149, 33149, 33149, 33149, 33149,
- 33149, 33149, 33149, 33149, 33149, 33149, 33149, 33149,
- 33149, 33149, 33149, 33149, 33149, 33149, 33149, 33149,
- 33151, 33151, 33161, 33161, 33161, 33161, 33161, 33161,
- 33161, 33161, 33161, 33161, 33179, 33179, 33179, 33179,
- 33179, 33179, 33179, 33179, 33179, 33179, 33179, 33179,
- 33179, 33179, 33179, 33179, 33179, 33179, 33181, 33181,
- 33191, 33191, 33191, 33191, 33191, 33191, 33191, 33191,
- 33191, 33191, 33199, 33199, 33199, 33199, 33199, 33199,
- 33199, 33199, 33203, 33203, 33203, 33203, 33211, 33211,
- 33211, 33211, 33211, 33211, 33211, 33211, 33223, 33223,
- 33223, 33223, 33223, 33223, 33223, 33223, 33223, 33223,
- 33223, 33223, 33247, 33247, 33247, 33247, 33247, 33247,
- 33247, 33247, 33247, 33247, 33247, 33247, 33247, 33247,
- 33247, 33247, 33247, 33247, 33247, 33247, 33247, 33247,
- 33247, 33247, 33287, 33287, 33287, 33287, 33287, 33287,
- 33287, 33287, 33287, 33287, 33287, 33287, 33287, 33287,
- 33287, 33287, 33287, 33287, 33287, 33287, 33287, 33287,
- 33287, 33287, 33287, 33287, 33287, 33287, 33287, 33287,
- 33287, 33287, 33287, 33287, 33287, 33287, 33287, 33287,
- 33287, 33287, 33289, 33289, 33301, 33301, 33301, 33301,
- 33301, 33301, 33301, 33301, 33301, 33301, 33301, 33301,
- 33311, 33311, 33311, 33311, 33311, 33311, 33311, 33311,
- 33311, 33311, 33317, 33317, 33317, 33317, 33317, 33317,
- 33329, 33329, 33329, 33329, 33329, 33329, 33329, 33329,
- 33329, 33329, 33329, 33329, 33331, 33331, 33343, 33343,
- 33343, 33343, 33343, 33343, 33343, 33343, 33343, 33343,
- 33343, 33343, 33347, 33347, 33347, 33347, 33349, 33349,
- 33353, 33353, 33353, 33353, 33359, 33359, 33359, 33359,
- 33359, 33359, 33377, 33377, 33377, 33377, 33377, 33377,
- 33377, 33377, 33377, 33377, 33377, 33377, 33377, 33377,
- 33377, 33377, 33377, 33377, 33391, 33391, 33391, 33391,
- 33391, 33391, 33391, 33391, 33391, 33391, 33391, 33391,
- 33391, 33391, 33403, 33403, 33403, 33403, 33403, 33403,
- 33403, 33403, 33403, 33403, 33403, 33403, 33409, 33409,
- 33409, 33409, 33409, 33409, 33413, 33413, 33413, 33413,
- 33427, 33427, 33427, 33427, 33427, 33427, 33427, 33427,
- 33427, 33427, 33427, 33427, 33427, 33427, 33457, 33457,
- 33457, 33457, 33457, 33457, 33457, 33457, 33457, 33457,
- 33457, 33457, 33457, 33457, 33457, 33457, 33457, 33457,
- 33457, 33457, 33457, 33457, 33457, 33457, 33457, 33457,
- 33457, 33457, 33457, 33457, 33461, 33461, 33461, 33461,
- 33469, 33469, 33469, 33469, 33469, 33469, 33469, 33469,
- 33479, 33479, 33479, 33479, 33479, 33479, 33479, 33479,
- 33479, 33479, 33487, 33487, 33487, 33487, 33487, 33487,
- 33487, 33487, 33493, 33493, 33493, 33493, 33493, 33493,
- 33503, 33503, 33503, 33503, 33503, 33503, 33503, 33503,
- 33503, 33503, 33521, 33521, 33521, 33521, 33521, 33521,
- 33521, 33521, 33521, 33521, 33521, 33521, 33521, 33521,
- 33521, 33521, 33521, 33521, 33529, 33529, 33529, 33529,
- 33529, 33529, 33529, 33529, 33533, 33533, 33533, 33533,
- 33547, 33547, 33547, 33547, 33547, 33547, 33547, 33547,
- 33547, 33547, 33547, 33547, 33547, 33547, 33563, 33563,
- 33563, 33563, 33563, 33563, 33563, 33563, 33563, 33563,
- 33563, 33563, 33563, 33563, 33563, 33563, 33569, 33569,
- 33569, 33569, 33569, 33569, 33577, 33577, 33577, 33577,
- 33577, 33577, 33577, 33577, 33581, 33581, 33581, 33581,
- 33587, 33587, 33587, 33587, 33587, 33587, 33589, 33589,
- 33599, 33599, 33599, 33599, 33599, 33599, 33599, 33599,
- 33599, 33599, 33601, 33601, 33613, 33613, 33613, 33613,
- 33613, 33613, 33613, 33613, 33613, 33613, 33613, 33613,
- 33617, 33617, 33617, 33617, 33619, 33619, 33623, 33623,
- 33623, 33623, 33629, 33629, 33629, 33629, 33629, 33629,
- 33637, 33637, 33637, 33637, 33637, 33637, 33637, 33637,
- 33641, 33641, 33641, 33641, 33647, 33647, 33647, 33647,
- 33647, 33647, 33679, 33679, 33679, 33679, 33679, 33679,
- 33679, 33679, 33679, 33679, 33679, 33679, 33679, 33679,
- 33679, 33679, 33679, 33679, 33679, 33679, 33679, 33679,
- 33679, 33679, 33679, 33679, 33679, 33679, 33679, 33679,
- 33679, 33679, 33703, 33703, 33703, 33703, 33703, 33703,
- 33703, 33703, 33703, 33703, 33703, 33703, 33703, 33703,
- 33703, 33703, 33703, 33703, 33703, 33703, 33703, 33703,
- 33703, 33703, 33713, 33713, 33713, 33713, 33713, 33713,
- 33713, 33713, 33713, 33713, 33721, 33721, 33721, 33721,
- 33721, 33721, 33721, 33721, 33739, 33739, 33739, 33739,
- 33739, 33739, 33739, 33739, 33739, 33739, 33739, 33739,
- 33739, 33739, 33739, 33739, 33739, 33739, 33749, 33749,
- 33749, 33749, 33749, 33749, 33749, 33749, 33749, 33749,
- 33751, 33751, 33757, 33757, 33757, 33757, 33757, 33757,
- 33767, 33767, 33767, 33767, 33767, 33767, 33767, 33767,
- 33767, 33767, 33769, 33769, 33773, 33773, 33773, 33773,
- 33791, 33791, 33791, 33791, 33791, 33791, 33791, 33791,
- 33791, 33791, 33791, 33791, 33791, 33791, 33791, 33791,
- 33791, 33791, 33797, 33797, 33797, 33797, 33797, 33797,
- 33809, 33809, 33809, 33809, 33809, 33809, 33809, 33809,
- 33809, 33809, 33809, 33809, 33811, 33811, 33827, 33827,
- 33827, 33827, 33827, 33827, 33827, 33827, 33827, 33827,
- 33827, 33827, 33827, 33827, 33827, 33827, 33829, 33829,
- 33851, 33851, 33851, 33851, 33851, 33851, 33851, 33851,
- 33851, 33851, 33851, 33851, 33851, 33851, 33851, 33851,
- 33851, 33851, 33851, 33851, 33851, 33851, 33857, 33857,
- 33857, 33857, 33857, 33857, 33863, 33863, 33863, 33863,
- 33863, 33863, 33871, 33871, 33871, 33871, 33871, 33871,
- 33871, 33871, 33889, 33889, 33889, 33889, 33889, 33889,
- 33889, 33889, 33889, 33889, 33889, 33889, 33889, 33889,
- 33889, 33889, 33889, 33889, 33893, 33893, 33893, 33893,
- 33911, 33911, 33911, 33911, 33911, 33911, 33911, 33911,
- 33911, 33911, 33911, 33911, 33911, 33911, 33911, 33911,
- 33911, 33911, 33923, 33923, 33923, 33923, 33923, 33923,
- 33923, 33923, 33923, 33923, 33923, 33923, 33931, 33931,
- 33931, 33931, 33931, 33931, 33931, 33931, 33937, 33937,
- 33937, 33937, 33937, 33937, 33941, 33941, 33941, 33941,
- 33961, 33961, 33961, 33961, 33961, 33961, 33961, 33961,
- 33961, 33961, 33961, 33961, 33961, 33961, 33961, 33961,
- 33961, 33961, 33961, 33961, 33967, 33967, 33967, 33967,
- 33967, 33967, 33997, 33997, 33997, 33997, 33997, 33997,
- 33997, 33997, 33997, 33997, 33997, 33997, 33997, 33997,
- 33997, 33997, 33997, 33997, 33997, 33997, 33997, 33997,
- 33997, 33997, 33997, 33997, 33997, 33997, 33997, 33997,
- 34019, 34019, 34019, 34019, 34019, 34019, 34019, 34019,
- 34019, 34019, 34019, 34019, 34019, 34019, 34019, 34019,
- 34019, 34019, 34019, 34019, 34019, 34019, 34031, 34031,
- 34031, 34031, 34031, 34031, 34031, 34031, 34031, 34031,
- 34031, 34031, 34033, 34033, 34039, 34039, 34039, 34039,
- 34039, 34039, 34057, 34057, 34057, 34057, 34057, 34057,
- 34057, 34057, 34057, 34057, 34057, 34057, 34057, 34057,
- 34057, 34057, 34057, 34057, 34061, 34061, 34061, 34061,
- 34123, 34123, 34123, 34123, 34123, 34123, 34123, 34123,
- 34123, 34123, 34123, 34123, 34123, 34123, 34123, 34123,
- 34123, 34123, 34123, 34123, 34123, 34123, 34123, 34123,
- 34123, 34123, 34123, 34123, 34123, 34123, 34123, 34123,
- 34123, 34123, 34123, 34123, 34123, 34123, 34123, 34123,
- 34123, 34123, 34123, 34123, 34123, 34123, 34123, 34123,
- 34123, 34123, 34123, 34123, 34123, 34123, 34123, 34123,
- 34123, 34123, 34123, 34123, 34123, 34123, 34127, 34127,
- 34127, 34127, 34129, 34129, 34141, 34141, 34141, 34141,
- 34141, 34141, 34141, 34141, 34141, 34141, 34141, 34141,
- 34147, 34147, 34147, 34147, 34147, 34147, 34157, 34157,
- 34157, 34157, 34157, 34157, 34157, 34157, 34157, 34157,
- 34159, 34159, 34171, 34171, 34171, 34171, 34171, 34171,
- 34171, 34171, 34171, 34171, 34171, 34171, 34183, 34183,
- 34183, 34183, 34183, 34183, 34183, 34183, 34183, 34183,
- 34183, 34183, 34211, 34211, 34211, 34211, 34211, 34211,
- 34211, 34211, 34211, 34211, 34211, 34211, 34211, 34211,
- 34211, 34211, 34211, 34211, 34211, 34211, 34211, 34211,
- 34211, 34211, 34211, 34211, 34211, 34211, 34213, 34213,
- 34217, 34217, 34217, 34217, 34231, 34231, 34231, 34231,
- 34231, 34231, 34231, 34231, 34231, 34231, 34231, 34231,
- 34231, 34231, 34253, 34253, 34253, 34253, 34253, 34253,
- 34253, 34253, 34253, 34253, 34253, 34253, 34253, 34253,
- 34253, 34253, 34253, 34253, 34253, 34253, 34253, 34253,
- 34259, 34259, 34259, 34259, 34259, 34259, 34261, 34261,
- 34267, 34267, 34267, 34267, 34267, 34267, 34273, 34273,
- 34273, 34273, 34273, 34273, 34283, 34283, 34283, 34283,
- 34283, 34283, 34283, 34283, 34283, 34283, 34297, 34297,
- 34297, 34297, 34297, 34297, 34297, 34297, 34297, 34297,
- 34297, 34297, 34297, 34297, 34301, 34301, 34301, 34301,
- 34303, 34303, 34313, 34313, 34313, 34313, 34313, 34313,
- 34313, 34313, 34313, 34313, 34319, 34319, 34319, 34319,
- 34319, 34319, 34327, 34327, 34327, 34327, 34327, 34327,
- 34327, 34327, 34337, 34337, 34337, 34337, 34337, 34337,
- 34337, 34337, 34337, 34337, 34351, 34351, 34351, 34351,
- 34351, 34351, 34351, 34351, 34351, 34351, 34351, 34351,
- 34351, 34351, 34361, 34361, 34361, 34361, 34361, 34361,
- 34361, 34361, 34361, 34361, 34367, 34367, 34367, 34367,
- 34367, 34367, 34369, 34369, 34381, 34381, 34381, 34381,
- 34381, 34381, 34381, 34381, 34381, 34381, 34381, 34381,
- 34403, 34403, 34403, 34403, 34403, 34403, 34403, 34403,
- 34403, 34403, 34403, 34403, 34403, 34403, 34403, 34403,
- 34403, 34403, 34403, 34403, 34403, 34403, 34421, 34421,
- 34421, 34421, 34421, 34421, 34421, 34421, 34421, 34421,
- 34421, 34421, 34421, 34421, 34421, 34421, 34421, 34421,
- 34429, 34429, 34429, 34429, 34429, 34429, 34429, 34429,
- 34439, 34439, 34439, 34439, 34439, 34439, 34439, 34439,
- 34439, 34439, 34457, 34457, 34457, 34457, 34457, 34457,
- 34457, 34457, 34457, 34457, 34457, 34457, 34457, 34457,
- 34457, 34457, 34457, 34457, 34469, 34469, 34469, 34469,
- 34469, 34469, 34469, 34469, 34469, 34469, 34469, 34469,
- 34471, 34471, 34483, 34483, 34483, 34483, 34483, 34483,
- 34483, 34483, 34483, 34483, 34483, 34483, 34487, 34487,
- 34487, 34487, 34499, 34499, 34499, 34499, 34499, 34499,
- 34499, 34499, 34499, 34499, 34499, 34499, 34501, 34501,
- 34511, 34511, 34511, 34511, 34511, 34511, 34511, 34511,
- 34511, 34511, 34513, 34513, 34519, 34519, 34519, 34519,
- 34519, 34519, 34537, 34537, 34537, 34537, 34537, 34537,
- 34537, 34537, 34537, 34537, 34537, 34537, 34537, 34537,
- 34537, 34537, 34537, 34537, 34543, 34543, 34543, 34543,
- 34543, 34543, 34549, 34549, 34549, 34549, 34549, 34549,
- 34583, 34583, 34583, 34583, 34583, 34583, 34583, 34583,
- 34583, 34583, 34583, 34583, 34583, 34583, 34583, 34583,
- 34583, 34583, 34583, 34583, 34583, 34583, 34583, 34583,
- 34583, 34583, 34583, 34583, 34583, 34583, 34583, 34583,
- 34583, 34583, 34589, 34589, 34589, 34589, 34589, 34589,
- 34591, 34591, 34603, 34603, 34603, 34603, 34603, 34603,
- 34603, 34603, 34603, 34603, 34603, 34603, 34607, 34607,
- 34607, 34607, 34613, 34613, 34613, 34613, 34613, 34613,
- 34631, 34631, 34631, 34631, 34631, 34631, 34631, 34631,
- 34631, 34631, 34631, 34631, 34631, 34631, 34631, 34631,
- 34631, 34631, 34649, 34649, 34649, 34649, 34649, 34649,
- 34649, 34649, 34649, 34649, 34649, 34649, 34649, 34649,
- 34649, 34649, 34649, 34649, 34651, 34651, 34667, 34667,
- 34667, 34667, 34667, 34667, 34667, 34667, 34667, 34667,
- 34667, 34667, 34667, 34667, 34667, 34667, 34673, 34673,
- 34673, 34673, 34673, 34673, 34679, 34679, 34679, 34679,
- 34679, 34679, 34687, 34687, 34687, 34687, 34687, 34687,
- 34687, 34687, 34693, 34693, 34693, 34693, 34693, 34693,
- 34703, 34703, 34703, 34703, 34703, 34703, 34703, 34703,
- 34703, 34703, 34721, 34721, 34721, 34721, 34721, 34721,
- 34721, 34721, 34721, 34721, 34721, 34721, 34721, 34721,
- 34721, 34721, 34721, 34721, 34729, 34729, 34729, 34729,
- 34729, 34729, 34729, 34729, 34739, 34739, 34739, 34739,
- 34739, 34739, 34739, 34739, 34739, 34739, 34747, 34747,
- 34747, 34747, 34747, 34747, 34747, 34747, 34757, 34757,
- 34757, 34757, 34757, 34757, 34757, 34757, 34757, 34757,
- 34759, 34759, 34763, 34763, 34763, 34763, 34781, 34781,
- 34781, 34781, 34781, 34781, 34781, 34781, 34781, 34781,
- 34781, 34781, 34781, 34781, 34781, 34781, 34781, 34781,
- 34807, 34807, 34807, 34807, 34807, 34807, 34807, 34807,
- 34807, 34807, 34807, 34807, 34807, 34807, 34807, 34807,
- 34807, 34807, 34807, 34807, 34807, 34807, 34807, 34807,
- 34807, 34807, 34819, 34819, 34819, 34819, 34819, 34819,
- 34819, 34819, 34819, 34819, 34819, 34819, 34841, 34841,
- 34841, 34841, 34841, 34841, 34841, 34841, 34841, 34841,
- 34841, 34841, 34841, 34841, 34841, 34841, 34841, 34841,
- 34841, 34841, 34841, 34841, 34843, 34843, 34847, 34847,
- 34847, 34847, 34849, 34849, 34871, 34871, 34871, 34871,
- 34871, 34871, 34871, 34871, 34871, 34871, 34871, 34871,
- 34871, 34871, 34871, 34871, 34871, 34871, 34871, 34871,
- 34871, 34871, 34877, 34877, 34877, 34877, 34877, 34877,
- 34883, 34883, 34883, 34883, 34883, 34883, 34897, 34897,
- 34897, 34897, 34897, 34897, 34897, 34897, 34897, 34897,
- 34897, 34897, 34897, 34897, 34913, 34913, 34913, 34913,
- 34913, 34913, 34913, 34913, 34913, 34913, 34913, 34913,
- 34913, 34913, 34913, 34913, 34919, 34919, 34919, 34919,
- 34919, 34919, 34939, 34939, 34939, 34939, 34939, 34939,
- 34939, 34939, 34939, 34939, 34939, 34939, 34939, 34939,
- 34939, 34939, 34939, 34939, 34939, 34939, 34949, 34949,
- 34949, 34949, 34949, 34949, 34949, 34949, 34949, 34949,
- 34961, 34961, 34961, 34961, 34961, 34961, 34961, 34961,
- 34961, 34961, 34961, 34961, 34963, 34963, 34981, 34981,
- 34981, 34981, 34981, 34981, 34981, 34981, 34981, 34981,
- 34981, 34981, 34981, 34981, 34981, 34981, 34981, 34981,
- 35023, 35023, 35023, 35023, 35023, 35023, 35023, 35023,
- 35023, 35023, 35023, 35023, 35023, 35023, 35023, 35023,
- 35023, 35023, 35023, 35023, 35023, 35023, 35023, 35023,
- 35023, 35023, 35023, 35023, 35023, 35023, 35023, 35023,
- 35023, 35023, 35023, 35023, 35023, 35023, 35023, 35023,
- 35023, 35023, 35027, 35027, 35027, 35027, 35051, 35051,
- 35051, 35051, 35051, 35051, 35051, 35051, 35051, 35051,
- 35051, 35051, 35051, 35051, 35051, 35051, 35051, 35051,
- 35051, 35051, 35051, 35051, 35051, 35051, 35053, 35053,
- 35059, 35059, 35059, 35059, 35059, 35059, 35069, 35069,
- 35069, 35069, 35069, 35069, 35069, 35069, 35069, 35069,
- 35081, 35081, 35081, 35081, 35081, 35081, 35081, 35081,
- 35081, 35081, 35081, 35081, 35083, 35083, 35089, 35089,
- 35089, 35089, 35089, 35089, 35099, 35099, 35099, 35099,
- 35099, 35099, 35099, 35099, 35099, 35099, 35107, 35107,
- 35107, 35107, 35107, 35107, 35107, 35107, 35111, 35111,
- 35111, 35111, 35117, 35117, 35117, 35117, 35117, 35117,
- 35129, 35129, 35129, 35129, 35129, 35129, 35129, 35129,
- 35129, 35129, 35129, 35129, 35141, 35141, 35141, 35141,
- 35141, 35141, 35141, 35141, 35141, 35141, 35141, 35141,
- 35149, 35149, 35149, 35149, 35149, 35149, 35149, 35149,
- 35153, 35153, 35153, 35153, 35159, 35159, 35159, 35159,
- 35159, 35159, 35171, 35171, 35171, 35171, 35171, 35171,
- 35171, 35171, 35171, 35171, 35171, 35171, 35201, 35201,
- 35201, 35201, 35201, 35201, 35201, 35201, 35201, 35201,
- 35201, 35201, 35201, 35201, 35201, 35201, 35201, 35201,
- 35201, 35201, 35201, 35201, 35201, 35201, 35201, 35201,
- 35201, 35201, 35201, 35201, 35221, 35221, 35221, 35221,
- 35221, 35221, 35221, 35221, 35221, 35221, 35221, 35221,
- 35221, 35221, 35221, 35221, 35221, 35221, 35221, 35221,
- 35227, 35227, 35227, 35227, 35227, 35227, 35251, 35251,
- 35251, 35251, 35251, 35251, 35251, 35251, 35251, 35251,
- 35251, 35251, 35251, 35251, 35251, 35251, 35251, 35251,
- 35251, 35251, 35251, 35251, 35251, 35251, 35257, 35257,
- 35257, 35257, 35257, 35257, 35267, 35267, 35267, 35267,
- 35267, 35267, 35267, 35267, 35267, 35267, 35279, 35279,
- 35279, 35279, 35279, 35279, 35279, 35279, 35279, 35279,
- 35279, 35279, 35281, 35281, 35291, 35291, 35291, 35291,
- 35291, 35291, 35291, 35291, 35291, 35291, 35311, 35311,
- 35311, 35311, 35311, 35311, 35311, 35311, 35311, 35311,
- 35311, 35311, 35311, 35311, 35311, 35311, 35311, 35311,
- 35311, 35311, 35317, 35317, 35317, 35317, 35317, 35317,
- 35323, 35323, 35323, 35323, 35323, 35323, 35327, 35327,
- 35327, 35327, 35339, 35339, 35339, 35339, 35339, 35339,
- 35339, 35339, 35339, 35339, 35339, 35339, 35353, 35353,
- 35353, 35353, 35353, 35353, 35353, 35353, 35353, 35353,
- 35353, 35353, 35353, 35353, 35363, 35363, 35363, 35363,
- 35363, 35363, 35363, 35363, 35363, 35363, 35381, 35381,
- 35381, 35381, 35381, 35381, 35381, 35381, 35381, 35381,
- 35381, 35381, 35381, 35381, 35381, 35381, 35381, 35381,
- 35393, 35393, 35393, 35393, 35393, 35393, 35393, 35393,
- 35393, 35393, 35393, 35393, 35401, 35401, 35401, 35401,
- 35401, 35401, 35401, 35401, 35407, 35407, 35407, 35407,
- 35407, 35407, 35419, 35419, 35419, 35419, 35419, 35419,
- 35419, 35419, 35419, 35419, 35419, 35419, 35423, 35423,
- 35423, 35423, 35437, 35437, 35437, 35437, 35437, 35437,
- 35437, 35437, 35437, 35437, 35437, 35437, 35437, 35437,
- 35447, 35447, 35447, 35447, 35447, 35447, 35447, 35447,
- 35447, 35447, 35449, 35449, 35461, 35461, 35461, 35461,
- 35461, 35461, 35461, 35461, 35461, 35461, 35461, 35461,
- 35491, 35491, 35491, 35491, 35491, 35491, 35491, 35491,
- 35491, 35491, 35491, 35491, 35491, 35491, 35491, 35491,
- 35491, 35491, 35491, 35491, 35491, 35491, 35491, 35491,
- 35491, 35491, 35491, 35491, 35491, 35491, 35507, 35507,
- 35507, 35507, 35507, 35507, 35507, 35507, 35507, 35507,
- 35507, 35507, 35507, 35507, 35507, 35507, 35509, 35509,
- 35521, 35521, 35521, 35521, 35521, 35521, 35521, 35521,
- 35521, 35521, 35521, 35521, 35527, 35527, 35527, 35527,
- 35527, 35527, 35531, 35531, 35531, 35531, 35533, 35533,
- 35537, 35537, 35537, 35537, 35543, 35543, 35543, 35543,
- 35543, 35543, 35569, 35569, 35569, 35569, 35569, 35569,
- 35569, 35569, 35569, 35569, 35569, 35569, 35569, 35569,
- 35569, 35569, 35569, 35569, 35569, 35569, 35569, 35569,
- 35569, 35569, 35569, 35569, 35573, 35573, 35573, 35573,
- 35591, 35591, 35591, 35591, 35591, 35591, 35591, 35591,
- 35591, 35591, 35591, 35591, 35591, 35591, 35591, 35591,
- 35591, 35591, 35593, 35593, 35597, 35597, 35597, 35597,
- 35603, 35603, 35603, 35603, 35603, 35603, 35617, 35617,
- 35617, 35617, 35617, 35617, 35617, 35617, 35617, 35617,
- 35617, 35617, 35617, 35617, 35671, 35671, 35671, 35671,
- 35671, 35671, 35671, 35671, 35671, 35671, 35671, 35671,
- 35671, 35671, 35671, 35671, 35671, 35671, 35671, 35671,
- 35671, 35671, 35671, 35671, 35671, 35671, 35671, 35671,
- 35671, 35671, 35671, 35671, 35671, 35671, 35671, 35671,
- 35671, 35671, 35671, 35671, 35671, 35671, 35671, 35671,
- 35671, 35671, 35671, 35671, 35671, 35671, 35671, 35671,
- 35671, 35671, 35677, 35677, 35677, 35677, 35677, 35677,
- 35729, 35729, 35729, 35729, 35729, 35729, 35729, 35729,
- 35729, 35729, 35729, 35729, 35729, 35729, 35729, 35729,
- 35729, 35729, 35729, 35729, 35729, 35729, 35729, 35729,
- 35729, 35729, 35729, 35729, 35729, 35729, 35729, 35729,
- 35729, 35729, 35729, 35729, 35729, 35729, 35729, 35729,
- 35729, 35729, 35729, 35729, 35729, 35729, 35729, 35729,
- 35729, 35729, 35729, 35729, 35731, 35731, 35747, 35747,
- 35747, 35747, 35747, 35747, 35747, 35747, 35747, 35747,
- 35747, 35747, 35747, 35747, 35747, 35747, 35753, 35753,
- 35753, 35753, 35753, 35753, 35759, 35759, 35759, 35759,
- 35759, 35759, 35771, 35771, 35771, 35771, 35771, 35771,
- 35771, 35771, 35771, 35771, 35771, 35771, 35797, 35797,
- 35797, 35797, 35797, 35797, 35797, 35797, 35797, 35797,
- 35797, 35797, 35797, 35797, 35797, 35797, 35797, 35797,
- 35797, 35797, 35797, 35797, 35797, 35797, 35797, 35797,
- 35801, 35801, 35801, 35801, 35803, 35803, 35809, 35809,
- 35809, 35809, 35809, 35809, 35831, 35831, 35831, 35831,
- 35831, 35831, 35831, 35831, 35831, 35831, 35831, 35831,
- 35831, 35831, 35831, 35831, 35831, 35831, 35831, 35831,
- 35831, 35831, 35837, 35837, 35837, 35837, 35837, 35837,
- 35839, 35839, 35851, 35851, 35851, 35851, 35851, 35851,
- 35851, 35851, 35851, 35851, 35851, 35851, 35863, 35863,
- 35863, 35863, 35863, 35863, 35863, 35863, 35863, 35863,
- 35863, 35863, 35869, 35869, 35869, 35869, 35869, 35869,
- 35879, 35879, 35879, 35879, 35879, 35879, 35879, 35879,
- 35879, 35879, 35897, 35897, 35897, 35897, 35897, 35897,
- 35897, 35897, 35897, 35897, 35897, 35897, 35897, 35897,
- 35897, 35897, 35897, 35897, 35899, 35899, 35911, 35911,
- 35911, 35911, 35911, 35911, 35911, 35911, 35911, 35911,
- 35911, 35911, 35923, 35923, 35923, 35923, 35923, 35923,
- 35923, 35923, 35923, 35923, 35923, 35923, 35933, 35933,
- 35933, 35933, 35933, 35933, 35933, 35933, 35933, 35933,
- 35951, 35951, 35951, 35951, 35951, 35951, 35951, 35951,
- 35951, 35951, 35951, 35951, 35951, 35951, 35951, 35951,
- 35951, 35951, 35963, 35963, 35963, 35963, 35963, 35963,
- 35963, 35963, 35963, 35963, 35963, 35963, 35969, 35969,
- 35969, 35969, 35969, 35969, 35977, 35977, 35977, 35977,
- 35977, 35977, 35977, 35977, 35983, 35983, 35983, 35983,
- 35983, 35983, 35993, 35993, 35993, 35993, 35993, 35993,
- 35993, 35993, 35993, 35993, 35999, 35999, 35999, 35999,
- 35999, 35999, 36007, 36007, 36007, 36007, 36007, 36007,
- 36007, 36007, 36011, 36011, 36011, 36011, 36013, 36013,
- 36017, 36017, 36017, 36017, 36037, 36037, 36037, 36037,
- 36037, 36037, 36037, 36037, 36037, 36037, 36037, 36037,
- 36037, 36037, 36037, 36037, 36037, 36037, 36037, 36037,
- 36061, 36061, 36061, 36061, 36061, 36061, 36061, 36061,
- 36061, 36061, 36061, 36061, 36061, 36061, 36061, 36061,
- 36061, 36061, 36061, 36061, 36061, 36061, 36061, 36061,
- 36067, 36067, 36067, 36067, 36067, 36067, 36073, 36073,
- 36073, 36073, 36073, 36073, 36083, 36083, 36083, 36083,
- 36083, 36083, 36083, 36083, 36083, 36083, 36097, 36097,
- 36097, 36097, 36097, 36097, 36097, 36097, 36097, 36097,
- 36097, 36097, 36097, 36097, 36107, 36107, 36107, 36107,
- 36107, 36107, 36107, 36107, 36107, 36107, 36109, 36109,
- 36131, 36131, 36131, 36131, 36131, 36131, 36131, 36131,
- 36131, 36131, 36131, 36131, 36131, 36131, 36131, 36131,
- 36131, 36131, 36131, 36131, 36131, 36131, 36137, 36137,
- 36137, 36137, 36137, 36137, 36151, 36151, 36151, 36151,
- 36151, 36151, 36151, 36151, 36151, 36151, 36151, 36151,
- 36151, 36151, 36161, 36161, 36161, 36161, 36161, 36161,
- 36161, 36161, 36161, 36161, 36187, 36187, 36187, 36187,
- 36187, 36187, 36187, 36187, 36187, 36187, 36187, 36187,
- 36187, 36187, 36187, 36187, 36187, 36187, 36187, 36187,
- 36187, 36187, 36187, 36187, 36187, 36187, 36191, 36191,
- 36191, 36191, 36209, 36209, 36209, 36209, 36209, 36209,
- 36209, 36209, 36209, 36209, 36209, 36209, 36209, 36209,
- 36209, 36209, 36209, 36209, 36217, 36217, 36217, 36217,
- 36217, 36217, 36217, 36217, 36229, 36229, 36229, 36229,
- 36229, 36229, 36229, 36229, 36229, 36229, 36229, 36229,
- 36241, 36241, 36241, 36241, 36241, 36241, 36241, 36241,
- 36241, 36241, 36241, 36241, 36251, 36251, 36251, 36251,
- 36251, 36251, 36251, 36251, 36251, 36251, 36263, 36263,
- 36263, 36263, 36263, 36263, 36263, 36263, 36263, 36263,
- 36263, 36263, 36269, 36269, 36269, 36269, 36269, 36269,
- 36277, 36277, 36277, 36277, 36277, 36277, 36277, 36277,
- 36293, 36293, 36293, 36293, 36293, 36293, 36293, 36293,
- 36293, 36293, 36293, 36293, 36293, 36293, 36293, 36293,
- 36299, 36299, 36299, 36299, 36299, 36299, 36307, 36307,
- 36307, 36307, 36307, 36307, 36307, 36307, 36313, 36313,
- 36313, 36313, 36313, 36313, 36319, 36319, 36319, 36319,
- 36319, 36319, 36341, 36341, 36341, 36341, 36341, 36341,
- 36341, 36341, 36341, 36341, 36341, 36341, 36341, 36341,
- 36341, 36341, 36341, 36341, 36341, 36341, 36341, 36341,
- 36343, 36343, 36353, 36353, 36353, 36353, 36353, 36353,
- 36353, 36353, 36353, 36353, 36373, 36373, 36373, 36373,
- 36373, 36373, 36373, 36373, 36373, 36373, 36373, 36373,
- 36373, 36373, 36373, 36373, 36373, 36373, 36373, 36373,
- 36383, 36383, 36383, 36383, 36383, 36383, 36383, 36383,
- 36383, 36383, 36389, 36389, 36389, 36389, 36389, 36389,
- 36433, 36433, 36433, 36433, 36433, 36433, 36433, 36433,
- 36433, 36433, 36433, 36433, 36433, 36433, 36433, 36433,
- 36433, 36433, 36433, 36433, 36433, 36433, 36433, 36433,
- 36433, 36433, 36433, 36433, 36433, 36433, 36433, 36433,
- 36433, 36433, 36433, 36433, 36433, 36433, 36433, 36433,
- 36433, 36433, 36433, 36433, 36451, 36451, 36451, 36451,
- 36451, 36451, 36451, 36451, 36451, 36451, 36451, 36451,
- 36451, 36451, 36451, 36451, 36451, 36451, 36457, 36457,
- 36457, 36457, 36457, 36457, 36467, 36467, 36467, 36467,
- 36467, 36467, 36467, 36467, 36467, 36467, 36469, 36469,
- 36473, 36473, 36473, 36473, 36479, 36479, 36479, 36479,
- 36479, 36479, 36493, 36493, 36493, 36493, 36493, 36493,
- 36493, 36493, 36493, 36493, 36493, 36493, 36493, 36493,
- 36497, 36497, 36497, 36497, 36523, 36523, 36523, 36523,
- 36523, 36523, 36523, 36523, 36523, 36523, 36523, 36523,
- 36523, 36523, 36523, 36523, 36523, 36523, 36523, 36523,
- 36523, 36523, 36523, 36523, 36523, 36523, 36527, 36527,
- 36527, 36527, 36529, 36529, 36541, 36541, 36541, 36541,
- 36541, 36541, 36541, 36541, 36541, 36541, 36541, 36541,
- 36551, 36551, 36551, 36551, 36551, 36551, 36551, 36551,
- 36551, 36551, 36559, 36559, 36559, 36559, 36559, 36559,
- 36559, 36559, 36563, 36563, 36563, 36563, 36571, 36571,
- 36571, 36571, 36571, 36571, 36571, 36571, 36583, 36583,
- 36583, 36583, 36583, 36583, 36583, 36583, 36583, 36583,
- 36583, 36583, 36587, 36587, 36587, 36587, 36599, 36599,
- 36599, 36599, 36599, 36599, 36599, 36599, 36599, 36599,
- 36599, 36599, 36607, 36607, 36607, 36607, 36607, 36607,
- 36607, 36607, 36629, 36629, 36629, 36629, 36629, 36629,
- 36629, 36629, 36629, 36629, 36629, 36629, 36629, 36629,
- 36629, 36629, 36629, 36629, 36629, 36629, 36629, 36629,
- 36637, 36637, 36637, 36637, 36637, 36637, 36637, 36637,
- 36643, 36643, 36643, 36643, 36643, 36643, 36653, 36653,
- 36653, 36653, 36653, 36653, 36653, 36653, 36653, 36653,
- 36671, 36671, 36671, 36671, 36671, 36671, 36671, 36671,
- 36671, 36671, 36671, 36671, 36671, 36671, 36671, 36671,
- 36671, 36671, 36677, 36677, 36677, 36677, 36677, 36677,
- 36683, 36683, 36683, 36683, 36683, 36683, 36691, 36691,
- 36691, 36691, 36691, 36691, 36691, 36691, 36697, 36697,
- 36697, 36697, 36697, 36697, 36709, 36709, 36709, 36709,
- 36709, 36709, 36709, 36709, 36709, 36709, 36709, 36709,
- 36713, 36713, 36713, 36713, 36721, 36721, 36721, 36721,
- 36721, 36721, 36721, 36721, 36739, 36739, 36739, 36739,
- 36739, 36739, 36739, 36739, 36739, 36739, 36739, 36739,
- 36739, 36739, 36739, 36739, 36739, 36739, 36749, 36749,
- 36749, 36749, 36749, 36749, 36749, 36749, 36749, 36749,
- 36761, 36761, 36761, 36761, 36761, 36761, 36761, 36761,
- 36761, 36761, 36761, 36761, 36767, 36767, 36767, 36767,
- 36767, 36767, 36779, 36779, 36779, 36779, 36779, 36779,
- 36779, 36779, 36779, 36779, 36779, 36779, 36781, 36781,
- 36787, 36787, 36787, 36787, 36787, 36787, 36791, 36791,
- 36791, 36791, 36793, 36793, 36809, 36809, 36809, 36809,
- 36809, 36809, 36809, 36809, 36809, 36809, 36809, 36809,
- 36809, 36809, 36809, 36809, 36821, 36821, 36821, 36821,
- 36821, 36821, 36821, 36821, 36821, 36821, 36821, 36821,
- 36833, 36833, 36833, 36833, 36833, 36833, 36833, 36833,
- 36833, 36833, 36833, 36833, 36847, 36847, 36847, 36847,
- 36847, 36847, 36847, 36847, 36847, 36847, 36847, 36847,
- 36847, 36847, 36857, 36857, 36857, 36857, 36857, 36857,
- 36857, 36857, 36857, 36857, 36871, 36871, 36871, 36871,
- 36871, 36871, 36871, 36871, 36871, 36871, 36871, 36871,
- 36871, 36871, 36877, 36877, 36877, 36877, 36877, 36877,
- 36887, 36887, 36887, 36887, 36887, 36887, 36887, 36887,
- 36887, 36887, 36899, 36899, 36899, 36899, 36899, 36899,
- 36899, 36899, 36899, 36899, 36899, 36899, 36901, 36901,
- 36913, 36913, 36913, 36913, 36913, 36913, 36913, 36913,
- 36913, 36913, 36913, 36913, 36919, 36919, 36919, 36919,
- 36919, 36919, 36923, 36923, 36923, 36923, 36929, 36929,
- 36929, 36929, 36929, 36929, 36931, 36931, 36943, 36943,
- 36943, 36943, 36943, 36943, 36943, 36943, 36943, 36943,
- 36943, 36943, 36947, 36947, 36947, 36947, 36973, 36973,
- 36973, 36973, 36973, 36973, 36973, 36973, 36973, 36973,
- 36973, 36973, 36973, 36973, 36973, 36973, 36973, 36973,
- 36973, 36973, 36973, 36973, 36973, 36973, 36973, 36973,
- 36979, 36979, 36979, 36979, 36979, 36979, 36997, 36997,
- 36997, 36997, 36997, 36997, 36997, 36997, 36997, 36997,
- 36997, 36997, 36997, 36997, 36997, 36997, 36997, 36997,
- 37003, 37003, 37003, 37003, 37003, 37003, 37013, 37013,
- 37013, 37013, 37013, 37013, 37013, 37013, 37013, 37013,
- 37019, 37019, 37019, 37019, 37019, 37019, 37021, 37021,
- 37039, 37039, 37039, 37039, 37039, 37039, 37039, 37039,
- 37039, 37039, 37039, 37039, 37039, 37039, 37039, 37039,
- 37039, 37039, 37049, 37049, 37049, 37049, 37049, 37049,
- 37049, 37049, 37049, 37049, 37057, 37057, 37057, 37057,
- 37057, 37057, 37057, 37057, 37061, 37061, 37061, 37061,
- 37087, 37087, 37087, 37087, 37087, 37087, 37087, 37087,
- 37087, 37087, 37087, 37087, 37087, 37087, 37087, 37087,
- 37087, 37087, 37087, 37087, 37087, 37087, 37087, 37087,
- 37087, 37087, 37097, 37097, 37097, 37097, 37097, 37097,
- 37097, 37097, 37097, 37097, 37117, 37117, 37117, 37117,
- 37117, 37117, 37117, 37117, 37117, 37117, 37117, 37117,
- 37117, 37117, 37117, 37117, 37117, 37117, 37117, 37117,
- 37123, 37123, 37123, 37123, 37123, 37123, 37139, 37139,
- 37139, 37139, 37139, 37139, 37139, 37139, 37139, 37139,
- 37139, 37139, 37139, 37139, 37139, 37139, 37159, 37159,
- 37159, 37159, 37159, 37159, 37159, 37159, 37159, 37159,
- 37159, 37159, 37159, 37159, 37159, 37159, 37159, 37159,
- 37159, 37159, 37171, 37171, 37171, 37171, 37171, 37171,
- 37171, 37171, 37171, 37171, 37171, 37171, 37181, 37181,
- 37181, 37181, 37181, 37181, 37181, 37181, 37181, 37181,
- 37189, 37189, 37189, 37189, 37189, 37189, 37189, 37189,
- 37199, 37199, 37199, 37199, 37199, 37199, 37199, 37199,
- 37199, 37199, 37201, 37201, 37217, 37217, 37217, 37217,
- 37217, 37217, 37217, 37217, 37217, 37217, 37217, 37217,
- 37217, 37217, 37217, 37217, 37223, 37223, 37223, 37223,
- 37223, 37223, 37243, 37243, 37243, 37243, 37243, 37243,
- 37243, 37243, 37243, 37243, 37243, 37243, 37243, 37243,
- 37243, 37243, 37243, 37243, 37243, 37243, 37253, 37253,
- 37253, 37253, 37253, 37253, 37253, 37253, 37253, 37253,
- 37273, 37273, 37273, 37273, 37273, 37273, 37273, 37273,
- 37273, 37273, 37273, 37273, 37273, 37273, 37273, 37273,
- 37273, 37273, 37273, 37273, 37277, 37277, 37277, 37277,
- 37307, 37307, 37307, 37307, 37307, 37307, 37307, 37307,
- 37307, 37307, 37307, 37307, 37307, 37307, 37307, 37307,
- 37307, 37307, 37307, 37307, 37307, 37307, 37307, 37307,
- 37307, 37307, 37307, 37307, 37307, 37307, 37309, 37309,
- 37313, 37313, 37313, 37313, 37321, 37321, 37321, 37321,
- 37321, 37321, 37321, 37321, 37337, 37337, 37337, 37337,
- 37337, 37337, 37337, 37337, 37337, 37337, 37337, 37337,
- 37337, 37337, 37337, 37337, 37339, 37339, 37357, 37357,
- 37357, 37357, 37357, 37357, 37357, 37357, 37357, 37357,
- 37357, 37357, 37357, 37357, 37357, 37357, 37357, 37357,
- 37361, 37361, 37361, 37361, 37363, 37363, 37369, 37369,
- 37369, 37369, 37369, 37369, 37379, 37379, 37379, 37379,
- 37379, 37379, 37379, 37379, 37379, 37379, 37397, 37397,
- 37397, 37397, 37397, 37397, 37397, 37397, 37397, 37397,
- 37397, 37397, 37397, 37397, 37397, 37397, 37397, 37397,
- 37409, 37409, 37409, 37409, 37409, 37409, 37409, 37409,
- 37409, 37409, 37409, 37409, 37423, 37423, 37423, 37423,
- 37423, 37423, 37423, 37423, 37423, 37423, 37423, 37423,
- 37423, 37423, 37441, 37441, 37441, 37441, 37441, 37441,
- 37441, 37441, 37441, 37441, 37441, 37441, 37441, 37441,
- 37441, 37441, 37441, 37441, 37447, 37447, 37447, 37447,
- 37447, 37447, 37463, 37463, 37463, 37463, 37463, 37463,
- 37463, 37463, 37463, 37463, 37463, 37463, 37463, 37463,
- 37463, 37463, 37483, 37483, 37483, 37483, 37483, 37483,
- 37483, 37483, 37483, 37483, 37483, 37483, 37483, 37483,
- 37483, 37483, 37483, 37483, 37483, 37483, 37489, 37489,
- 37489, 37489, 37489, 37489, 37493, 37493, 37493, 37493,
- 37501, 37501, 37501, 37501, 37501, 37501, 37501, 37501,
- 37507, 37507, 37507, 37507, 37507, 37507, 37511, 37511,
- 37511, 37511, 37517, 37517, 37517, 37517, 37517, 37517,
- 37529, 37529, 37529, 37529, 37529, 37529, 37529, 37529,
- 37529, 37529, 37529, 37529, 37537, 37537, 37537, 37537,
- 37537, 37537, 37537, 37537, 37547, 37547, 37547, 37547,
- 37547, 37547, 37547, 37547, 37547, 37547, 37549, 37549,
- 37561, 37561, 37561, 37561, 37561, 37561, 37561, 37561,
- 37561, 37561, 37561, 37561, 37567, 37567, 37567, 37567,
- 37567, 37567, 37571, 37571, 37571, 37571, 37573, 37573,
- 37579, 37579, 37579, 37579, 37579, 37579, 37589, 37589,
- 37589, 37589, 37589, 37589, 37589, 37589, 37589, 37589,
- 37591, 37591, 37607, 37607, 37607, 37607, 37607, 37607,
- 37607, 37607, 37607, 37607, 37607, 37607, 37607, 37607,
- 37607, 37607, 37619, 37619, 37619, 37619, 37619, 37619,
- 37619, 37619, 37619, 37619, 37619, 37619, 37633, 37633,
- 37633, 37633, 37633, 37633, 37633, 37633, 37633, 37633,
- 37633, 37633, 37633, 37633, 37643, 37643, 37643, 37643,
- 37643, 37643, 37643, 37643, 37643, 37643, 37649, 37649,
- 37649, 37649, 37649, 37649, 37657, 37657, 37657, 37657,
- 37657, 37657, 37657, 37657, 37663, 37663, 37663, 37663,
- 37663, 37663, 37691, 37691, 37691, 37691, 37691, 37691,
- 37691, 37691, 37691, 37691, 37691, 37691, 37691, 37691,
- 37691, 37691, 37691, 37691, 37691, 37691, 37691, 37691,
- 37691, 37691, 37691, 37691, 37691, 37691, 37693, 37693,
- 37699, 37699, 37699, 37699, 37699, 37699, 37717, 37717,
- 37717, 37717, 37717, 37717, 37717, 37717, 37717, 37717,
- 37717, 37717, 37717, 37717, 37717, 37717, 37717, 37717,
- 37747, 37747, 37747, 37747, 37747, 37747, 37747, 37747,
- 37747, 37747, 37747, 37747, 37747, 37747, 37747, 37747,
- 37747, 37747, 37747, 37747, 37747, 37747, 37747, 37747,
- 37747, 37747, 37747, 37747, 37747, 37747, 37781, 37781,
- 37781, 37781, 37781, 37781, 37781, 37781, 37781, 37781,
- 37781, 37781, 37781, 37781, 37781, 37781, 37781, 37781,
- 37781, 37781, 37781, 37781, 37781, 37781, 37781, 37781,
- 37781, 37781, 37781, 37781, 37781, 37781, 37781, 37781,
- 37783, 37783, 37799, 37799, 37799, 37799, 37799, 37799,
- 37799, 37799, 37799, 37799, 37799, 37799, 37799, 37799,
- 37799, 37799, 37811, 37811, 37811, 37811, 37811, 37811,
- 37811, 37811, 37811, 37811, 37811, 37811, 37813, 37813,
- 37831, 37831, 37831, 37831, 37831, 37831, 37831, 37831,
- 37831, 37831, 37831, 37831, 37831, 37831, 37831, 37831,
- 37831, 37831, 37847, 37847, 37847, 37847, 37847, 37847,
- 37847, 37847, 37847, 37847, 37847, 37847, 37847, 37847,
- 37847, 37847, 37853, 37853, 37853, 37853, 37853, 37853,
- 37861, 37861, 37861, 37861, 37861, 37861, 37861, 37861,
- 37871, 37871, 37871, 37871, 37871, 37871, 37871, 37871,
- 37871, 37871, 37879, 37879, 37879, 37879, 37879, 37879,
- 37879, 37879, 37889, 37889, 37889, 37889, 37889, 37889,
- 37889, 37889, 37889, 37889, 37897, 37897, 37897, 37897,
- 37897, 37897, 37897, 37897, 37907, 37907, 37907, 37907,
- 37907, 37907, 37907, 37907, 37907, 37907, 37951, 37951,
- 37951, 37951, 37951, 37951, 37951, 37951, 37951, 37951,
- 37951, 37951, 37951, 37951, 37951, 37951, 37951, 37951,
- 37951, 37951, 37951, 37951, 37951, 37951, 37951, 37951,
- 37951, 37951, 37951, 37951, 37951, 37951, 37951, 37951,
- 37951, 37951, 37951, 37951, 37951, 37951, 37951, 37951,
- 37951, 37951, 37957, 37957, 37957, 37957, 37957, 37957,
- 37963, 37963, 37963, 37963, 37963, 37963, 37967, 37967,
- 37967, 37967, 37987, 37987, 37987, 37987, 37987, 37987,
- 37987, 37987, 37987, 37987, 37987, 37987, 37987, 37987,
- 37987, 37987, 37987, 37987, 37987, 37987, 37991, 37991,
- 37991, 37991, 37993, 37993, 37997, 37997, 37997, 37997,
- 38011, 38011, 38011, 38011, 38011, 38011, 38011, 38011,
- 38011, 38011, 38011, 38011, 38011, 38011, 38039, 38039,
- 38039, 38039, 38039, 38039, 38039, 38039, 38039, 38039,
- 38039, 38039, 38039, 38039, 38039, 38039, 38039, 38039,
- 38039, 38039, 38039, 38039, 38039, 38039, 38039, 38039,
- 38039, 38039, 38047, 38047, 38047, 38047, 38047, 38047,
- 38047, 38047, 38053, 38053, 38053, 38053, 38053, 38053,
- 38069, 38069, 38069, 38069, 38069, 38069, 38069, 38069,
- 38069, 38069, 38069, 38069, 38069, 38069, 38069, 38069,
- 38083, 38083, 38083, 38083, 38083, 38083, 38083, 38083,
- 38083, 38083, 38083, 38083, 38083, 38083, 38113, 38113,
- 38113, 38113, 38113, 38113, 38113, 38113, 38113, 38113,
- 38113, 38113, 38113, 38113, 38113, 38113, 38113, 38113,
- 38113, 38113, 38113, 38113, 38113, 38113, 38113, 38113,
- 38113, 38113, 38113, 38113, 38119, 38119, 38119, 38119,
- 38119, 38119, 38149, 38149, 38149, 38149, 38149, 38149,
- 38149, 38149, 38149, 38149, 38149, 38149, 38149, 38149,
- 38149, 38149, 38149, 38149, 38149, 38149, 38149, 38149,
- 38149, 38149, 38149, 38149, 38149, 38149, 38149, 38149,
- 38153, 38153, 38153, 38153, 38167, 38167, 38167, 38167,
- 38167, 38167, 38167, 38167, 38167, 38167, 38167, 38167,
- 38167, 38167, 38177, 38177, 38177, 38177, 38177, 38177,
- 38177, 38177, 38177, 38177, 38183, 38183, 38183, 38183,
- 38183, 38183, 38189, 38189, 38189, 38189, 38189, 38189,
- 38197, 38197, 38197, 38197, 38197, 38197, 38197, 38197,
- 38201, 38201, 38201, 38201, 38219, 38219, 38219, 38219,
- 38219, 38219, 38219, 38219, 38219, 38219, 38219, 38219,
- 38219, 38219, 38219, 38219, 38219, 38219, 38231, 38231,
- 38231, 38231, 38231, 38231, 38231, 38231, 38231, 38231,
- 38231, 38231, 38237, 38237, 38237, 38237, 38237, 38237,
- 38239, 38239, 38261, 38261, 38261, 38261, 38261, 38261,
- 38261, 38261, 38261, 38261, 38261, 38261, 38261, 38261,
- 38261, 38261, 38261, 38261, 38261, 38261, 38261, 38261,
- 38273, 38273, 38273, 38273, 38273, 38273, 38273, 38273,
- 38273, 38273, 38273, 38273, 38281, 38281, 38281, 38281,
- 38281, 38281, 38281, 38281, 38287, 38287, 38287, 38287,
- 38287, 38287, 38299, 38299, 38299, 38299, 38299, 38299,
- 38299, 38299, 38299, 38299, 38299, 38299, 38303, 38303,
- 38303, 38303, 38317, 38317, 38317, 38317, 38317, 38317,
- 38317, 38317, 38317, 38317, 38317, 38317, 38317, 38317,
- 38321, 38321, 38321, 38321, 38327, 38327, 38327, 38327,
- 38327, 38327, 38329, 38329, 38333, 38333, 38333, 38333,
- 38351, 38351, 38351, 38351, 38351, 38351, 38351, 38351,
- 38351, 38351, 38351, 38351, 38351, 38351, 38351, 38351,
- 38351, 38351, 38371, 38371, 38371, 38371, 38371, 38371,
- 38371, 38371, 38371, 38371, 38371, 38371, 38371, 38371,
- 38371, 38371, 38371, 38371, 38371, 38371, 38377, 38377,
- 38377, 38377, 38377, 38377, 38393, 38393, 38393, 38393,
- 38393, 38393, 38393, 38393, 38393, 38393, 38393, 38393,
- 38393, 38393, 38393, 38393, 38431, 38431, 38431, 38431,
- 38431, 38431, 38431, 38431, 38431, 38431, 38431, 38431,
- 38431, 38431, 38431, 38431, 38431, 38431, 38431, 38431,
- 38431, 38431, 38431, 38431, 38431, 38431, 38431, 38431,
- 38431, 38431, 38431, 38431, 38431, 38431, 38431, 38431,
- 38431, 38431, 38447, 38447, 38447, 38447, 38447, 38447,
- 38447, 38447, 38447, 38447, 38447, 38447, 38447, 38447,
- 38447, 38447, 38449, 38449, 38453, 38453, 38453, 38453,
- 38459, 38459, 38459, 38459, 38459, 38459, 38461, 38461,
- 38501, 38501, 38501, 38501, 38501, 38501, 38501, 38501,
- 38501, 38501, 38501, 38501, 38501, 38501, 38501, 38501,
- 38501, 38501, 38501, 38501, 38501, 38501, 38501, 38501,
- 38501, 38501, 38501, 38501, 38501, 38501, 38501, 38501,
- 38501, 38501, 38501, 38501, 38501, 38501, 38501, 38501,
- 38543, 38543, 38543, 38543, 38543, 38543, 38543, 38543,
- 38543, 38543, 38543, 38543, 38543, 38543, 38543, 38543,
- 38543, 38543, 38543, 38543, 38543, 38543, 38543, 38543,
- 38543, 38543, 38543, 38543, 38543, 38543, 38543, 38543,
- 38543, 38543, 38543, 38543, 38543, 38543, 38543, 38543,
- 38543, 38543, 38557, 38557, 38557, 38557, 38557, 38557,
- 38557, 38557, 38557, 38557, 38557, 38557, 38557, 38557,
- 38561, 38561, 38561, 38561, 38567, 38567, 38567, 38567,
- 38567, 38567, 38569, 38569, 38593, 38593, 38593, 38593,
- 38593, 38593, 38593, 38593, 38593, 38593, 38593, 38593,
- 38593, 38593, 38593, 38593, 38593, 38593, 38593, 38593,
- 38593, 38593, 38593, 38593, 38603, 38603, 38603, 38603,
- 38603, 38603, 38603, 38603, 38603, 38603, 38609, 38609,
- 38609, 38609, 38609, 38609, 38611, 38611, 38629, 38629,
- 38629, 38629, 38629, 38629, 38629, 38629, 38629, 38629,
- 38629, 38629, 38629, 38629, 38629, 38629, 38629, 38629,
- 38639, 38639, 38639, 38639, 38639, 38639, 38639, 38639,
- 38639, 38639, 38651, 38651, 38651, 38651, 38651, 38651,
- 38651, 38651, 38651, 38651, 38651, 38651, 38653, 38653,
- 38669, 38669, 38669, 38669, 38669, 38669, 38669, 38669,
- 38669, 38669, 38669, 38669, 38669, 38669, 38669, 38669,
- 38671, 38671, 38677, 38677, 38677, 38677, 38677, 38677,
- 38693, 38693, 38693, 38693, 38693, 38693, 38693, 38693,
- 38693, 38693, 38693, 38693, 38693, 38693, 38693, 38693,
- 38699, 38699, 38699, 38699, 38699, 38699, 38707, 38707,
- 38707, 38707, 38707, 38707, 38707, 38707, 38711, 38711,
- 38711, 38711, 38713, 38713, 38723, 38723, 38723, 38723,
- 38723, 38723, 38723, 38723, 38723, 38723, 38729, 38729,
- 38729, 38729, 38729, 38729, 38737, 38737, 38737, 38737,
- 38737, 38737, 38737, 38737, 38747, 38747, 38747, 38747,
- 38747, 38747, 38747, 38747, 38747, 38747, 38749, 38749,
- 38767, 38767, 38767, 38767, 38767, 38767, 38767, 38767,
- 38767, 38767, 38767, 38767, 38767, 38767, 38767, 38767,
- 38767, 38767, 38783, 38783, 38783, 38783, 38783, 38783,
- 38783, 38783, 38783, 38783, 38783, 38783, 38783, 38783,
- 38783, 38783, 38791, 38791, 38791, 38791, 38791, 38791,
- 38791, 38791, 38803, 38803, 38803, 38803, 38803, 38803,
- 38803, 38803, 38803, 38803, 38803, 38803, 38821, 38821,
- 38821, 38821, 38821, 38821, 38821, 38821, 38821, 38821,
- 38821, 38821, 38821, 38821, 38821, 38821, 38821, 38821,
- 38833, 38833, 38833, 38833, 38833, 38833, 38833, 38833,
- 38833, 38833, 38833, 38833, 38839, 38839, 38839, 38839,
- 38839, 38839, 38851, 38851, 38851, 38851, 38851, 38851,
- 38851, 38851, 38851, 38851, 38851, 38851, 38861, 38861,
- 38861, 38861, 38861, 38861, 38861, 38861, 38861, 38861,
- 38867, 38867, 38867, 38867, 38867, 38867, 38873, 38873,
- 38873, 38873, 38873, 38873, 38891, 38891, 38891, 38891,
- 38891, 38891, 38891, 38891, 38891, 38891, 38891, 38891,
- 38891, 38891, 38891, 38891, 38891, 38891, 38903, 38903,
- 38903, 38903, 38903, 38903, 38903, 38903, 38903, 38903,
- 38903, 38903, 38917, 38917, 38917, 38917, 38917, 38917,
- 38917, 38917, 38917, 38917, 38917, 38917, 38917, 38917,
- 38921, 38921, 38921, 38921, 38923, 38923, 38933, 38933,
- 38933, 38933, 38933, 38933, 38933, 38933, 38933, 38933,
- 38953, 38953, 38953, 38953, 38953, 38953, 38953, 38953,
- 38953, 38953, 38953, 38953, 38953, 38953, 38953, 38953,
- 38953, 38953, 38953, 38953, 38959, 38959, 38959, 38959,
- 38959, 38959, 38971, 38971, 38971, 38971, 38971, 38971,
- 38971, 38971, 38971, 38971, 38971, 38971, 38977, 38977,
- 38977, 38977, 38977, 38977, 38993, 38993, 38993, 38993,
- 38993, 38993, 38993, 38993, 38993, 38993, 38993, 38993,
- 38993, 38993, 38993, 38993, 39019, 39019, 39019, 39019,
- 39019, 39019, 39019, 39019, 39019, 39019, 39019, 39019,
- 39019, 39019, 39019, 39019, 39019, 39019, 39019, 39019,
- 39019, 39019, 39019, 39019, 39019, 39019, 39023, 39023,
- 39023, 39023, 39041, 39041, 39041, 39041, 39041, 39041,
- 39041, 39041, 39041, 39041, 39041, 39041, 39041, 39041,
- 39041, 39041, 39041, 39041, 39043, 39043, 39047, 39047,
- 39047, 39047, 39079, 39079, 39079, 39079, 39079, 39079,
- 39079, 39079, 39079, 39079, 39079, 39079, 39079, 39079,
- 39079, 39079, 39079, 39079, 39079, 39079, 39079, 39079,
- 39079, 39079, 39079, 39079, 39079, 39079, 39079, 39079,
- 39079, 39079, 39089, 39089, 39089, 39089, 39089, 39089,
- 39089, 39089, 39089, 39089, 39097, 39097, 39097, 39097,
- 39097, 39097, 39097, 39097, 39103, 39103, 39103, 39103,
- 39103, 39103, 39107, 39107, 39107, 39107, 39113, 39113,
- 39113, 39113, 39113, 39113, 39119, 39119, 39119, 39119,
- 39119, 39119, 39133, 39133, 39133, 39133, 39133, 39133,
- 39133, 39133, 39133, 39133, 39133, 39133, 39133, 39133,
- 39139, 39139, 39139, 39139, 39139, 39139, 39157, 39157,
- 39157, 39157, 39157, 39157, 39157, 39157, 39157, 39157,
- 39157, 39157, 39157, 39157, 39157, 39157, 39157, 39157,
- 39161, 39161, 39161, 39161, 39163, 39163, 39181, 39181,
- 39181, 39181, 39181, 39181, 39181, 39181, 39181, 39181,
- 39181, 39181, 39181, 39181, 39181, 39181, 39181, 39181,
- 39191, 39191, 39191, 39191, 39191, 39191, 39191, 39191,
- 39191, 39191, 39199, 39199, 39199, 39199, 39199, 39199,
- 39199, 39199, 39209, 39209, 39209, 39209, 39209, 39209,
- 39209, 39209, 39209, 39209, 39217, 39217, 39217, 39217,
- 39217, 39217, 39217, 39217, 39227, 39227, 39227, 39227,
- 39227, 39227, 39227, 39227, 39227, 39227, 39229, 39229,
- 39233, 39233, 39233, 39233, 39239, 39239, 39239, 39239,
- 39239, 39239, 39241, 39241, 39251, 39251, 39251, 39251,
- 39251, 39251, 39251, 39251, 39251, 39251, 39293, 39293,
- 39293, 39293, 39293, 39293, 39293, 39293, 39293, 39293,
- 39293, 39293, 39293, 39293, 39293, 39293, 39293, 39293,
- 39293, 39293, 39293, 39293, 39293, 39293, 39293, 39293,
- 39293, 39293, 39293, 39293, 39293, 39293, 39293, 39293,
- 39293, 39293, 39293, 39293, 39293, 39293, 39293, 39293,
- 39301, 39301, 39301, 39301, 39301, 39301, 39301, 39301,
- 39313, 39313, 39313, 39313, 39313, 39313, 39313, 39313,
- 39313, 39313, 39313, 39313, 39317, 39317, 39317, 39317,
- 39323, 39323, 39323, 39323, 39323, 39323, 39341, 39341,
- 39341, 39341, 39341, 39341, 39341, 39341, 39341, 39341,
- 39341, 39341, 39341, 39341, 39341, 39341, 39341, 39341,
- 39343, 39343, 39359, 39359, 39359, 39359, 39359, 39359,
- 39359, 39359, 39359, 39359, 39359, 39359, 39359, 39359,
- 39359, 39359, 39367, 39367, 39367, 39367, 39367, 39367,
- 39367, 39367, 39371, 39371, 39371, 39371, 39373, 39373,
- 39383, 39383, 39383, 39383, 39383, 39383, 39383, 39383,
- 39383, 39383, 39397, 39397, 39397, 39397, 39397, 39397,
- 39397, 39397, 39397, 39397, 39397, 39397, 39397, 39397,
- 39409, 39409, 39409, 39409, 39409, 39409, 39409, 39409,
- 39409, 39409, 39409, 39409, 39419, 39419, 39419, 39419,
- 39419, 39419, 39419, 39419, 39419, 39419, 39439, 39439,
- 39439, 39439, 39439, 39439, 39439, 39439, 39439, 39439,
- 39439, 39439, 39439, 39439, 39439, 39439, 39439, 39439,
- 39439, 39439, 39443, 39443, 39443, 39443, 39451, 39451,
- 39451, 39451, 39451, 39451, 39451, 39451, 39461, 39461,
- 39461, 39461, 39461, 39461, 39461, 39461, 39461, 39461,
- 39499, 39499, 39499, 39499, 39499, 39499, 39499, 39499,
- 39499, 39499, 39499, 39499, 39499, 39499, 39499, 39499,
- 39499, 39499, 39499, 39499, 39499, 39499, 39499, 39499,
- 39499, 39499, 39499, 39499, 39499, 39499, 39499, 39499,
- 39499, 39499, 39499, 39499, 39499, 39499, 39503, 39503,
- 39503, 39503, 39509, 39509, 39509, 39509, 39509, 39509,
- 39511, 39511, 39521, 39521, 39521, 39521, 39521, 39521,
- 39521, 39521, 39521, 39521, 39541, 39541, 39541, 39541,
- 39541, 39541, 39541, 39541, 39541, 39541, 39541, 39541,
- 39541, 39541, 39541, 39541, 39541, 39541, 39541, 39541,
- 39551, 39551, 39551, 39551, 39551, 39551, 39551, 39551,
- 39551, 39551, 39563, 39563, 39563, 39563, 39563, 39563,
- 39563, 39563, 39563, 39563, 39563, 39563, 39569, 39569,
- 39569, 39569, 39569, 39569, 39581, 39581, 39581, 39581,
- 39581, 39581, 39581, 39581, 39581, 39581, 39581, 39581,
- 39607, 39607, 39607, 39607, 39607, 39607, 39607, 39607,
- 39607, 39607, 39607, 39607, 39607, 39607, 39607, 39607,
- 39607, 39607, 39607, 39607, 39607, 39607, 39607, 39607,
- 39607, 39607, 39619, 39619, 39619, 39619, 39619, 39619,
- 39619, 39619, 39619, 39619, 39619, 39619, 39623, 39623,
- 39623, 39623, 39631, 39631, 39631, 39631, 39631, 39631,
- 39631, 39631, 39659, 39659, 39659, 39659, 39659, 39659,
- 39659, 39659, 39659, 39659, 39659, 39659, 39659, 39659,
- 39659, 39659, 39659, 39659, 39659, 39659, 39659, 39659,
- 39659, 39659, 39659, 39659, 39659, 39659, 39667, 39667,
- 39667, 39667, 39667, 39667, 39667, 39667, 39671, 39671,
- 39671, 39671, 39679, 39679, 39679, 39679, 39679, 39679,
- 39679, 39679, 39703, 39703, 39703, 39703, 39703, 39703,
- 39703, 39703, 39703, 39703, 39703, 39703, 39703, 39703,
- 39703, 39703, 39703, 39703, 39703, 39703, 39703, 39703,
- 39703, 39703, 39709, 39709, 39709, 39709, 39709, 39709,
- 39719, 39719, 39719, 39719, 39719, 39719, 39719, 39719,
- 39719, 39719, 39727, 39727, 39727, 39727, 39727, 39727,
- 39727, 39727, 39733, 39733, 39733, 39733, 39733, 39733,
- 39749, 39749, 39749, 39749, 39749, 39749, 39749, 39749,
- 39749, 39749, 39749, 39749, 39749, 39749, 39749, 39749,
- 39761, 39761, 39761, 39761, 39761, 39761, 39761, 39761,
- 39761, 39761, 39761, 39761, 39769, 39769, 39769, 39769,
- 39769, 39769, 39769, 39769, 39779, 39779, 39779, 39779,
- 39779, 39779, 39779, 39779, 39779, 39779, 39791, 39791,
- 39791, 39791, 39791, 39791, 39791, 39791, 39791, 39791,
- 39791, 39791, 39799, 39799, 39799, 39799, 39799, 39799,
- 39799, 39799, 39821, 39821, 39821, 39821, 39821, 39821,
- 39821, 39821, 39821, 39821, 39821, 39821, 39821, 39821,
- 39821, 39821, 39821, 39821, 39821, 39821, 39821, 39821,
- 39827, 39827, 39827, 39827, 39827, 39827, 39829, 39829,
- 39839, 39839, 39839, 39839, 39839, 39839, 39839, 39839,
- 39839, 39839, 39841, 39841, 39847, 39847, 39847, 39847,
- 39847, 39847, 39857, 39857, 39857, 39857, 39857, 39857,
- 39857, 39857, 39857, 39857, 39863, 39863, 39863, 39863,
- 39863, 39863, 39869, 39869, 39869, 39869, 39869, 39869,
- 39877, 39877, 39877, 39877, 39877, 39877, 39877, 39877,
- 39883, 39883, 39883, 39883, 39883, 39883, 39887, 39887,
- 39887, 39887, 39901, 39901, 39901, 39901, 39901, 39901,
- 39901, 39901, 39901, 39901, 39901, 39901, 39901, 39901,
- 39929, 39929, 39929, 39929, 39929, 39929, 39929, 39929,
- 39929, 39929, 39929, 39929, 39929, 39929, 39929, 39929,
- 39929, 39929, 39929, 39929, 39929, 39929, 39929, 39929,
- 39929, 39929, 39929, 39929, 39937, 39937, 39937, 39937,
- 39937, 39937, 39937, 39937, 39953, 39953, 39953, 39953,
- 39953, 39953, 39953, 39953, 39953, 39953, 39953, 39953,
- 39953, 39953, 39953, 39953, 39971, 39971, 39971, 39971,
- 39971, 39971, 39971, 39971, 39971, 39971, 39971, 39971,
- 39971, 39971, 39971, 39971, 39971, 39971, 39979, 39979,
- 39979, 39979, 39979, 39979, 39979, 39979, 39983, 39983,
- 39983, 39983, 39989, 39989, 39989, 39989, 39989, 39989,
- 40009, 40009, 40009, 40009, 40009, 40009, 40009, 40009,
- 40009, 40009, 40009, 40009, 40009, 40009, 40009, 40009,
- 40009, 40009, 40009, 40009, 40013, 40013, 40013, 40013,
- 40031, 40031, 40031, 40031, 40031, 40031, 40031, 40031,
- 40031, 40031, 40031, 40031, 40031, 40031, 40031, 40031,
- 40031, 40031, 40037, 40037, 40037, 40037, 40037, 40037,
- 40039, 40039, 40063, 40063, 40063, 40063, 40063, 40063,
- 40063, 40063, 40063, 40063, 40063, 40063, 40063, 40063,
- 40063, 40063, 40063, 40063, 40063, 40063, 40063, 40063,
- 40063, 40063, 40087, 40087, 40087, 40087, 40087, 40087,
- 40087, 40087, 40087, 40087, 40087, 40087, 40087, 40087,
- 40087, 40087, 40087, 40087, 40087, 40087, 40087, 40087,
- 40087, 40087, 40093, 40093, 40093, 40093, 40093, 40093,
- 40099, 40099, 40099, 40099, 40099, 40099, 40111, 40111,
- 40111, 40111, 40111, 40111, 40111, 40111, 40111, 40111,
- 40111, 40111, 40123, 40123, 40123, 40123, 40123, 40123,
- 40123, 40123, 40123, 40123, 40123, 40123, 40127, 40127,
- 40127, 40127, 40129, 40129, 40151, 40151, 40151, 40151,
- 40151, 40151, 40151, 40151, 40151, 40151, 40151, 40151,
- 40151, 40151, 40151, 40151, 40151, 40151, 40151, 40151,
- 40151, 40151, 40153, 40153, 40163, 40163, 40163, 40163,
- 40163, 40163, 40163, 40163, 40163, 40163, 40169, 40169,
- 40169, 40169, 40169, 40169, 40177, 40177, 40177, 40177,
- 40177, 40177, 40177, 40177, 40189, 40189, 40189, 40189,
- 40189, 40189, 40189, 40189, 40189, 40189, 40189, 40189,
- 40193, 40193, 40193, 40193, 40213, 40213, 40213, 40213,
- 40213, 40213, 40213, 40213, 40213, 40213, 40213, 40213,
- 40213, 40213, 40213, 40213, 40213, 40213, 40213, 40213,
- 40231, 40231, 40231, 40231, 40231, 40231, 40231, 40231,
- 40231, 40231, 40231, 40231, 40231, 40231, 40231, 40231,
- 40231, 40231, 40237, 40237, 40237, 40237, 40237, 40237,
- 40241, 40241, 40241, 40241, 40253, 40253, 40253, 40253,
- 40253, 40253, 40253, 40253, 40253, 40253, 40253, 40253,
- 40277, 40277, 40277, 40277, 40277, 40277, 40277, 40277,
- 40277, 40277, 40277, 40277, 40277, 40277, 40277, 40277,
- 40277, 40277, 40277, 40277, 40277, 40277, 40277, 40277,
- 40283, 40283, 40283, 40283, 40283, 40283, 40289, 40289,
- 40289, 40289, 40289, 40289, 40343, 40343, 40343, 40343,
- 40343, 40343, 40343, 40343, 40343, 40343, 40343, 40343,
- 40343, 40343, 40343, 40343, 40343, 40343, 40343, 40343,
- 40343, 40343, 40343, 40343, 40343, 40343, 40343, 40343,
- 40343, 40343, 40343, 40343, 40343, 40343, 40343, 40343,
- 40343, 40343, 40343, 40343, 40343, 40343, 40343, 40343,
- 40343, 40343, 40343, 40343, 40343, 40343, 40343, 40343,
- 40343, 40343, 40351, 40351, 40351, 40351, 40351, 40351,
- 40351, 40351, 40357, 40357, 40357, 40357, 40357, 40357,
- 40361, 40361, 40361, 40361, 40387, 40387, 40387, 40387,
- 40387, 40387, 40387, 40387, 40387, 40387, 40387, 40387,
- 40387, 40387, 40387, 40387, 40387, 40387, 40387, 40387,
- 40387, 40387, 40387, 40387, 40387, 40387, 40423, 40423,
- 40423, 40423, 40423, 40423, 40423, 40423, 40423, 40423,
- 40423, 40423, 40423, 40423, 40423, 40423, 40423, 40423,
- 40423, 40423, 40423, 40423, 40423, 40423, 40423, 40423,
- 40423, 40423, 40423, 40423, 40423, 40423, 40423, 40423,
- 40423, 40423, 40427, 40427, 40427, 40427, 40429, 40429,
- 40433, 40433, 40433, 40433, 40459, 40459, 40459, 40459,
- 40459, 40459, 40459, 40459, 40459, 40459, 40459, 40459,
- 40459, 40459, 40459, 40459, 40459, 40459, 40459, 40459,
- 40459, 40459, 40459, 40459, 40459, 40459, 40471, 40471,
- 40471, 40471, 40471, 40471, 40471, 40471, 40471, 40471,
- 40471, 40471, 40483, 40483, 40483, 40483, 40483, 40483,
- 40483, 40483, 40483, 40483, 40483, 40483, 40487, 40487,
- 40487, 40487, 40493, 40493, 40493, 40493, 40493, 40493,
- 40499, 40499, 40499, 40499, 40499, 40499, 40507, 40507,
- 40507, 40507, 40507, 40507, 40507, 40507, 40519, 40519,
- 40519, 40519, 40519, 40519, 40519, 40519, 40519, 40519,
- 40519, 40519, 40529, 40529, 40529, 40529, 40529, 40529,
- 40529, 40529, 40529, 40529, 40531, 40531, 40543, 40543,
- 40543, 40543, 40543, 40543, 40543, 40543, 40543, 40543,
- 40543, 40543, 40559, 40559, 40559, 40559, 40559, 40559,
- 40559, 40559, 40559, 40559, 40559, 40559, 40559, 40559,
- 40559, 40559, 40577, 40577, 40577, 40577, 40577, 40577,
- 40577, 40577, 40577, 40577, 40577, 40577, 40577, 40577,
- 40577, 40577, 40577, 40577, 40583, 40583, 40583, 40583,
- 40583, 40583, 40591, 40591, 40591, 40591, 40591, 40591,
- 40591, 40591, 40597, 40597, 40597, 40597, 40597, 40597,
- 40609, 40609, 40609, 40609, 40609, 40609, 40609, 40609,
- 40609, 40609, 40609, 40609, 40627, 40627, 40627, 40627,
- 40627, 40627, 40627, 40627, 40627, 40627, 40627, 40627,
- 40627, 40627, 40627, 40627, 40627, 40627, 40637, 40637,
- 40637, 40637, 40637, 40637, 40637, 40637, 40637, 40637,
- 40639, 40639, 40693, 40693, 40693, 40693, 40693, 40693,
- 40693, 40693, 40693, 40693, 40693, 40693, 40693, 40693,
- 40693, 40693, 40693, 40693, 40693, 40693, 40693, 40693,
- 40693, 40693, 40693, 40693, 40693, 40693, 40693, 40693,
- 40693, 40693, 40693, 40693, 40693, 40693, 40693, 40693,
- 40693, 40693, 40693, 40693, 40693, 40693, 40693, 40693,
- 40693, 40693, 40693, 40693, 40693, 40693, 40693, 40693,
- 40697, 40697, 40697, 40697, 40699, 40699, 40709, 40709,
- 40709, 40709, 40709, 40709, 40709, 40709, 40709, 40709,
- 40739, 40739, 40739, 40739, 40739, 40739, 40739, 40739,
- 40739, 40739, 40739, 40739, 40739, 40739, 40739, 40739,
- 40739, 40739, 40739, 40739, 40739, 40739, 40739, 40739,
- 40739, 40739, 40739, 40739, 40739, 40739, 40751, 40751,
- 40751, 40751, 40751, 40751, 40751, 40751, 40751, 40751,
- 40751, 40751, 40759, 40759, 40759, 40759, 40759, 40759,
- 40759, 40759, 40763, 40763, 40763, 40763, 40771, 40771,
- 40771, 40771, 40771, 40771, 40771, 40771, 40787, 40787,
- 40787, 40787, 40787, 40787, 40787, 40787, 40787, 40787,
- 40787, 40787, 40787, 40787, 40787, 40787, 40801, 40801,
- 40801, 40801, 40801, 40801, 40801, 40801, 40801, 40801,
- 40801, 40801, 40801, 40801, 40813, 40813, 40813, 40813,
- 40813, 40813, 40813, 40813, 40813, 40813, 40813, 40813,
- 40819, 40819, 40819, 40819, 40819, 40819, 40823, 40823,
- 40823, 40823, 40829, 40829, 40829, 40829, 40829, 40829,
- 40841, 40841, 40841, 40841, 40841, 40841, 40841, 40841,
- 40841, 40841, 40841, 40841, 40847, 40847, 40847, 40847,
- 40847, 40847, 40849, 40849, 40853, 40853, 40853, 40853,
- 40867, 40867, 40867, 40867, 40867, 40867, 40867, 40867,
- 40867, 40867, 40867, 40867, 40867, 40867, 40879, 40879,
- 40879, 40879, 40879, 40879, 40879, 40879, 40879, 40879,
- 40879, 40879, 40883, 40883, 40883, 40883, 40897, 40897,
- 40897, 40897, 40897, 40897, 40897, 40897, 40897, 40897,
- 40897, 40897, 40897, 40897, 40903, 40903, 40903, 40903,
- 40903, 40903, 40927, 40927, 40927, 40927, 40927, 40927,
- 40927, 40927, 40927, 40927, 40927, 40927, 40927, 40927,
- 40927, 40927, 40927, 40927, 40927, 40927, 40927, 40927,
- 40927, 40927, 40933, 40933, 40933, 40933, 40933, 40933,
- 40939, 40939, 40939, 40939, 40939, 40939, 40949, 40949,
- 40949, 40949, 40949, 40949, 40949, 40949, 40949, 40949,
- 40961, 40961, 40961, 40961, 40961, 40961, 40961, 40961,
- 40961, 40961, 40961, 40961, 40973, 40973, 40973, 40973,
- 40973, 40973, 40973, 40973, 40973, 40973, 40973, 40973,
- 40993, 40993, 40993, 40993, 40993, 40993, 40993, 40993,
- 40993, 40993, 40993, 40993, 40993, 40993, 40993, 40993,
- 40993, 40993, 40993, 40993, 41011, 41011, 41011, 41011,
- 41011, 41011, 41011, 41011, 41011, 41011, 41011, 41011,
- 41011, 41011, 41011, 41011, 41011, 41011, 41017, 41017,
- 41017, 41017, 41017, 41017, 41023, 41023, 41023, 41023,
- 41023, 41023, 41039, 41039, 41039, 41039, 41039, 41039,
- 41039, 41039, 41039, 41039, 41039, 41039, 41039, 41039,
- 41039, 41039, 41047, 41047, 41047, 41047, 41047, 41047,
- 41047, 41047, 41051, 41051, 41051, 41051, 41057, 41057,
- 41057, 41057, 41057, 41057, 41077, 41077, 41077, 41077,
- 41077, 41077, 41077, 41077, 41077, 41077, 41077, 41077,
- 41077, 41077, 41077, 41077, 41077, 41077, 41077, 41077,
- 41081, 41081, 41081, 41081, 41113, 41113, 41113, 41113,
- 41113, 41113, 41113, 41113, 41113, 41113, 41113, 41113,
- 41113, 41113, 41113, 41113, 41113, 41113, 41113, 41113,
- 41113, 41113, 41113, 41113, 41113, 41113, 41113, 41113,
- 41113, 41113, 41113, 41113, 41117, 41117, 41117, 41117,
- 41131, 41131, 41131, 41131, 41131, 41131, 41131, 41131,
- 41131, 41131, 41131, 41131, 41131, 41131, 41141, 41141,
- 41141, 41141, 41141, 41141, 41141, 41141, 41141, 41141,
- 41143, 41143, 41149, 41149, 41149, 41149, 41149, 41149,
- 41161, 41161, 41161, 41161, 41161, 41161, 41161, 41161,
- 41161, 41161, 41161, 41161, 41177, 41177, 41177, 41177,
- 41177, 41177, 41177, 41177, 41177, 41177, 41177, 41177,
- 41177, 41177, 41177, 41177, 41179, 41179, 41183, 41183,
- 41183, 41183, 41189, 41189, 41189, 41189, 41189, 41189,
- 41201, 41201, 41201, 41201, 41201, 41201, 41201, 41201,
- 41201, 41201, 41201, 41201, 41203, 41203, 41213, 41213,
- 41213, 41213, 41213, 41213, 41213, 41213, 41213, 41213,
- 41221, 41221, 41221, 41221, 41221, 41221, 41221, 41221,
- 41227, 41227, 41227, 41227, 41227, 41227, 41231, 41231,
- 41231, 41231, 41233, 41233, 41243, 41243, 41243, 41243,
- 41243, 41243, 41243, 41243, 41243, 41243, 41257, 41257,
- 41257, 41257, 41257, 41257, 41257, 41257, 41257, 41257,
- 41257, 41257, 41257, 41257, 41263, 41263, 41263, 41263,
- 41263, 41263, 41269, 41269, 41269, 41269, 41269, 41269,
- 41281, 41281, 41281, 41281, 41281, 41281, 41281, 41281,
- 41281, 41281, 41281, 41281, 41299, 41299, 41299, 41299,
- 41299, 41299, 41299, 41299, 41299, 41299, 41299, 41299,
- 41299, 41299, 41299, 41299, 41299, 41299, 41333, 41333,
- 41333, 41333, 41333, 41333, 41333, 41333, 41333, 41333,
- 41333, 41333, 41333, 41333, 41333, 41333, 41333, 41333,
- 41333, 41333, 41333, 41333, 41333, 41333, 41333, 41333,
- 41333, 41333, 41333, 41333, 41333, 41333, 41333, 41333,
- 41341, 41341, 41341, 41341, 41341, 41341, 41341, 41341,
- 41351, 41351, 41351, 41351, 41351, 41351, 41351, 41351,
- 41351, 41351, 41357, 41357, 41357, 41357, 41357, 41357,
- 41381, 41381, 41381, 41381, 41381, 41381, 41381, 41381,
- 41381, 41381, 41381, 41381, 41381, 41381, 41381, 41381,
- 41381, 41381, 41381, 41381, 41381, 41381, 41381, 41381,
- 41387, 41387, 41387, 41387, 41387, 41387, 41389, 41389,
- 41399, 41399, 41399, 41399, 41399, 41399, 41399, 41399,
- 41399, 41399, 41411, 41411, 41411, 41411, 41411, 41411,
- 41411, 41411, 41411, 41411, 41411, 41411, 41413, 41413,
- 41443, 41443, 41443, 41443, 41443, 41443, 41443, 41443,
- 41443, 41443, 41443, 41443, 41443, 41443, 41443, 41443,
- 41443, 41443, 41443, 41443, 41443, 41443, 41443, 41443,
- 41443, 41443, 41443, 41443, 41443, 41443, 41453, 41453,
- 41453, 41453, 41453, 41453, 41453, 41453, 41453, 41453,
- 41467, 41467, 41467, 41467, 41467, 41467, 41467, 41467,
- 41467, 41467, 41467, 41467, 41467, 41467, 41479, 41479,
- 41479, 41479, 41479, 41479, 41479, 41479, 41479, 41479,
- 41479, 41479, 41491, 41491, 41491, 41491, 41491, 41491,
- 41491, 41491, 41491, 41491, 41491, 41491, 41507, 41507,
- 41507, 41507, 41507, 41507, 41507, 41507, 41507, 41507,
- 41507, 41507, 41507, 41507, 41507, 41507, 41513, 41513,
- 41513, 41513, 41513, 41513, 41519, 41519, 41519, 41519,
- 41519, 41519, 41521, 41521, 41539, 41539, 41539, 41539,
- 41539, 41539, 41539, 41539, 41539, 41539, 41539, 41539,
- 41539, 41539, 41539, 41539, 41539, 41539, 41543, 41543,
- 41543, 41543, 41549, 41549, 41549, 41549, 41549, 41549,
- 41579, 41579, 41579, 41579, 41579, 41579, 41579, 41579,
- 41579, 41579, 41579, 41579, 41579, 41579, 41579, 41579,
- 41579, 41579, 41579, 41579, 41579, 41579, 41579, 41579,
- 41579, 41579, 41579, 41579, 41579, 41579, 41593, 41593,
- 41593, 41593, 41593, 41593, 41593, 41593, 41593, 41593,
- 41593, 41593, 41593, 41593, 41597, 41597, 41597, 41597,
- 41603, 41603, 41603, 41603, 41603, 41603, 41609, 41609,
- 41609, 41609, 41609, 41609, 41611, 41611, 41617, 41617,
- 41617, 41617, 41617, 41617, 41621, 41621, 41621, 41621,
- 41627, 41627, 41627, 41627, 41627, 41627, 41641, 41641,
- 41641, 41641, 41641, 41641, 41641, 41641, 41641, 41641,
- 41641, 41641, 41641, 41641, 41647, 41647, 41647, 41647,
- 41647, 41647, 41651, 41651, 41651, 41651, 41659, 41659,
- 41659, 41659, 41659, 41659, 41659, 41659, 41669, 41669,
- 41669, 41669, 41669, 41669, 41669, 41669, 41669, 41669,
- 41681, 41681, 41681, 41681, 41681, 41681, 41681, 41681,
- 41681, 41681, 41681, 41681, 41687, 41687, 41687, 41687,
- 41687, 41687, 41719, 41719, 41719, 41719, 41719, 41719,
- 41719, 41719, 41719, 41719, 41719, 41719, 41719, 41719,
- 41719, 41719, 41719, 41719, 41719, 41719, 41719, 41719,
- 41719, 41719, 41719, 41719, 41719, 41719, 41719, 41719,
- 41719, 41719, 41729, 41729, 41729, 41729, 41729, 41729,
- 41729, 41729, 41729, 41729, 41737, 41737, 41737, 41737,
- 41737, 41737, 41737, 41737, 41759, 41759, 41759, 41759,
- 41759, 41759, 41759, 41759, 41759, 41759, 41759, 41759,
- 41759, 41759, 41759, 41759, 41759, 41759, 41759, 41759,
- 41759, 41759, 41761, 41761, 41771, 41771, 41771, 41771,
- 41771, 41771, 41771, 41771, 41771, 41771, 41777, 41777,
- 41777, 41777, 41777, 41777, 41801, 41801, 41801, 41801,
- 41801, 41801, 41801, 41801, 41801, 41801, 41801, 41801,
- 41801, 41801, 41801, 41801, 41801, 41801, 41801, 41801,
- 41801, 41801, 41801, 41801, 41809, 41809, 41809, 41809,
- 41809, 41809, 41809, 41809, 41813, 41813, 41813, 41813,
- 41843, 41843, 41843, 41843, 41843, 41843, 41843, 41843,
- 41843, 41843, 41843, 41843, 41843, 41843, 41843, 41843,
- 41843, 41843, 41843, 41843, 41843, 41843, 41843, 41843,
- 41843, 41843, 41843, 41843, 41843, 41843, 41849, 41849,
- 41849, 41849, 41849, 41849, 41851, 41851, 41863, 41863,
- 41863, 41863, 41863, 41863, 41863, 41863, 41863, 41863,
- 41863, 41863, 41879, 41879, 41879, 41879, 41879, 41879,
- 41879, 41879, 41879, 41879, 41879, 41879, 41879, 41879,
- 41879, 41879, 41887, 41887, 41887, 41887, 41887, 41887,
- 41887, 41887, 41893, 41893, 41893, 41893, 41893, 41893,
- 41897, 41897, 41897, 41897, 41903, 41903, 41903, 41903,
- 41903, 41903, 41911, 41911, 41911, 41911, 41911, 41911,
- 41911, 41911, 41927, 41927, 41927, 41927, 41927, 41927,
- 41927, 41927, 41927, 41927, 41927, 41927, 41927, 41927,
- 41927, 41927, 41941, 41941, 41941, 41941, 41941, 41941,
- 41941, 41941, 41941, 41941, 41941, 41941, 41941, 41941,
- 41947, 41947, 41947, 41947, 41947, 41947, 41953, 41953,
- 41953, 41953, 41953, 41953, 41957, 41957, 41957, 41957,
- 41959, 41959, 41969, 41969, 41969, 41969, 41969, 41969,
- 41969, 41969, 41969, 41969, 41981, 41981, 41981, 41981,
- 41981, 41981, 41981, 41981, 41981, 41981, 41981, 41981,
- 41983, 41983, 41999, 41999, 41999, 41999, 41999, 41999,
- 41999, 41999, 41999, 41999, 41999, 41999, 41999, 41999,
- 41999, 41999, 42013, 42013, 42013, 42013, 42013, 42013,
- 42013, 42013, 42013, 42013, 42013, 42013, 42013, 42013,
- 42017, 42017, 42017, 42017, 42019, 42019, 42023, 42023,
- 42023, 42023, 42043, 42043, 42043, 42043, 42043, 42043,
- 42043, 42043, 42043, 42043, 42043, 42043, 42043, 42043,
- 42043, 42043, 42043, 42043, 42043, 42043, 42061, 42061,
- 42061, 42061, 42061, 42061, 42061, 42061, 42061, 42061,
- 42061, 42061, 42061, 42061, 42061, 42061, 42061, 42061,
- 42071, 42071, 42071, 42071, 42071, 42071, 42071, 42071,
- 42071, 42071, 42073, 42073, 42083, 42083, 42083, 42083,
- 42083, 42083, 42083, 42083, 42083, 42083, 42089, 42089,
- 42089, 42089, 42089, 42089, 42101, 42101, 42101, 42101,
- 42101, 42101, 42101, 42101, 42101, 42101, 42101, 42101,
- 42131, 42131, 42131, 42131, 42131, 42131, 42131, 42131,
- 42131, 42131, 42131, 42131, 42131, 42131, 42131, 42131,
- 42131, 42131, 42131, 42131, 42131, 42131, 42131, 42131,
- 42131, 42131, 42131, 42131, 42131, 42131, 42139, 42139,
- 42139, 42139, 42139, 42139, 42139, 42139, 42157, 42157,
- 42157, 42157, 42157, 42157, 42157, 42157, 42157, 42157,
- 42157, 42157, 42157, 42157, 42157, 42157, 42157, 42157,
- 42169, 42169, 42169, 42169, 42169, 42169, 42169, 42169,
- 42169, 42169, 42169, 42169, 42179, 42179, 42179, 42179,
- 42179, 42179, 42179, 42179, 42179, 42179, 42181, 42181,
- 42187, 42187, 42187, 42187, 42187, 42187, 42193, 42193,
- 42193, 42193, 42193, 42193, 42197, 42197, 42197, 42197,
- 42209, 42209, 42209, 42209, 42209, 42209, 42209, 42209,
- 42209, 42209, 42209, 42209, 42221, 42221, 42221, 42221,
- 42221, 42221, 42221, 42221, 42221, 42221, 42221, 42221,
- 42223, 42223, 42227, 42227, 42227, 42227, 42239, 42239,
- 42239, 42239, 42239, 42239, 42239, 42239, 42239, 42239,
- 42239, 42239, 42257, 42257, 42257, 42257, 42257, 42257,
- 42257, 42257, 42257, 42257, 42257, 42257, 42257, 42257,
- 42257, 42257, 42257, 42257, 42281, 42281, 42281, 42281,
- 42281, 42281, 42281, 42281, 42281, 42281, 42281, 42281,
- 42281, 42281, 42281, 42281, 42281, 42281, 42281, 42281,
- 42281, 42281, 42281, 42281, 42283, 42283, 42293, 42293,
- 42293, 42293, 42293, 42293, 42293, 42293, 42293, 42293,
- 42299, 42299, 42299, 42299, 42299, 42299, 42307, 42307,
- 42307, 42307, 42307, 42307, 42307, 42307, 42323, 42323,
- 42323, 42323, 42323, 42323, 42323, 42323, 42323, 42323,
- 42323, 42323, 42323, 42323, 42323, 42323, 42331, 42331,
- 42331, 42331, 42331, 42331, 42331, 42331, 42337, 42337,
- 42337, 42337, 42337, 42337, 42349, 42349, 42349, 42349,
- 42349, 42349, 42349, 42349, 42349, 42349, 42349, 42349,
- 42359, 42359, 42359, 42359, 42359, 42359, 42359, 42359,
- 42359, 42359, 42373, 42373, 42373, 42373, 42373, 42373,
- 42373, 42373, 42373, 42373, 42373, 42373, 42373, 42373,
- 42379, 42379, 42379, 42379, 42379, 42379, 42391, 42391,
- 42391, 42391, 42391, 42391, 42391, 42391, 42391, 42391,
- 42391, 42391, 42397, 42397, 42397, 42397, 42397, 42397,
- 42403, 42403, 42403, 42403, 42403, 42403, 42407, 42407,
- 42407, 42407, 42409, 42409, 42433, 42433, 42433, 42433,
- 42433, 42433, 42433, 42433, 42433, 42433, 42433, 42433,
- 42433, 42433, 42433, 42433, 42433, 42433, 42433, 42433,
- 42433, 42433, 42433, 42433, 42437, 42437, 42437, 42437,
- 42443, 42443, 42443, 42443, 42443, 42443, 42451, 42451,
- 42451, 42451, 42451, 42451, 42451, 42451, 42457, 42457,
- 42457, 42457, 42457, 42457, 42461, 42461, 42461, 42461,
- 42463, 42463, 42467, 42467, 42467, 42467, 42473, 42473,
- 42473, 42473, 42473, 42473, 42487, 42487, 42487, 42487,
- 42487, 42487, 42487, 42487, 42487, 42487, 42487, 42487,
- 42487, 42487, 42491, 42491, 42491, 42491, 42499, 42499,
- 42499, 42499, 42499, 42499, 42499, 42499, 42509, 42509,
- 42509, 42509, 42509, 42509, 42509, 42509, 42509, 42509,
- 42533, 42533, 42533, 42533, 42533, 42533, 42533, 42533,
- 42533, 42533, 42533, 42533, 42533, 42533, 42533, 42533,
- 42533, 42533, 42533, 42533, 42533, 42533, 42533, 42533,
- 42557, 42557, 42557, 42557, 42557, 42557, 42557, 42557,
- 42557, 42557, 42557, 42557, 42557, 42557, 42557, 42557,
- 42557, 42557, 42557, 42557, 42557, 42557, 42557, 42557,
- 42569, 42569, 42569, 42569, 42569, 42569, 42569, 42569,
- 42569, 42569, 42569, 42569, 42571, 42571, 42577, 42577,
- 42577, 42577, 42577, 42577, 42589, 42589, 42589, 42589,
- 42589, 42589, 42589, 42589, 42589, 42589, 42589, 42589,
- 42611, 42611, 42611, 42611, 42611, 42611, 42611, 42611,
- 42611, 42611, 42611, 42611, 42611, 42611, 42611, 42611,
- 42611, 42611, 42611, 42611, 42611, 42611, 42641, 42641,
- 42641, 42641, 42641, 42641, 42641, 42641, 42641, 42641,
- 42641, 42641, 42641, 42641, 42641, 42641, 42641, 42641,
- 42641, 42641, 42641, 42641, 42641, 42641, 42641, 42641,
- 42641, 42641, 42641, 42641, 42643, 42643, 42649, 42649,
- 42649, 42649, 42649, 42649, 42667, 42667, 42667, 42667,
- 42667, 42667, 42667, 42667, 42667, 42667, 42667, 42667,
- 42667, 42667, 42667, 42667, 42667, 42667, 42677, 42677,
- 42677, 42677, 42677, 42677, 42677, 42677, 42677, 42677,
- 42683, 42683, 42683, 42683, 42683, 42683, 42689, 42689,
- 42689, 42689, 42689, 42689, 42697, 42697, 42697, 42697,
- 42697, 42697, 42697, 42697, 42701, 42701, 42701, 42701,
- 42703, 42703, 42709, 42709, 42709, 42709, 42709, 42709,
- 42719, 42719, 42719, 42719, 42719, 42719, 42719, 42719,
- 42719, 42719, 42727, 42727, 42727, 42727, 42727, 42727,
- 42727, 42727, 42737, 42737, 42737, 42737, 42737, 42737,
- 42737, 42737, 42737, 42737, 42743, 42743, 42743, 42743,
- 42743, 42743, 42751, 42751, 42751, 42751, 42751, 42751,
- 42751, 42751, 42767, 42767, 42767, 42767, 42767, 42767,
- 42767, 42767, 42767, 42767, 42767, 42767, 42767, 42767,
- 42767, 42767, 42773, 42773, 42773, 42773, 42773, 42773,
- 42787, 42787, 42787, 42787, 42787, 42787, 42787, 42787,
- 42787, 42787, 42787, 42787, 42787, 42787, 42793, 42793,
- 42793, 42793, 42793, 42793, 42797, 42797, 42797, 42797,
- 42821, 42821, 42821, 42821, 42821, 42821, 42821, 42821,
- 42821, 42821, 42821, 42821, 42821, 42821, 42821, 42821,
- 42821, 42821, 42821, 42821, 42821, 42821, 42821, 42821,
- 42829, 42829, 42829, 42829, 42829, 42829, 42829, 42829,
- 42839, 42839, 42839, 42839, 42839, 42839, 42839, 42839,
- 42839, 42839, 42841, 42841, 42853, 42853, 42853, 42853,
- 42853, 42853, 42853, 42853, 42853, 42853, 42853, 42853,
- 42859, 42859, 42859, 42859, 42859, 42859, 42863, 42863,
- 42863, 42863, 42899, 42899, 42899, 42899, 42899, 42899,
- 42899, 42899, 42899, 42899, 42899, 42899, 42899, 42899,
- 42899, 42899, 42899, 42899, 42899, 42899, 42899, 42899,
- 42899, 42899, 42899, 42899, 42899, 42899, 42899, 42899,
- 42899, 42899, 42899, 42899, 42899, 42899, 42901, 42901,
- 42923, 42923, 42923, 42923, 42923, 42923, 42923, 42923,
- 42923, 42923, 42923, 42923, 42923, 42923, 42923, 42923,
- 42923, 42923, 42923, 42923, 42923, 42923, 42929, 42929,
- 42929, 42929, 42929, 42929, 42937, 42937, 42937, 42937,
- 42937, 42937, 42937, 42937, 42943, 42943, 42943, 42943,
- 42943, 42943, 42953, 42953, 42953, 42953, 42953, 42953,
- 42953, 42953, 42953, 42953, 42961, 42961, 42961, 42961,
- 42961, 42961, 42961, 42961, 42967, 42967, 42967, 42967,
- 42967, 42967, 42979, 42979, 42979, 42979, 42979, 42979,
- 42979, 42979, 42979, 42979, 42979, 42979, 42989, 42989,
- 42989, 42989, 42989, 42989, 42989, 42989, 42989, 42989,
- 43003, 43003, 43003, 43003, 43003, 43003, 43003, 43003,
- 43003, 43003, 43003, 43003, 43003, 43003, 43013, 43013,
- 43013, 43013, 43013, 43013, 43013, 43013, 43013, 43013,
- 43019, 43019, 43019, 43019, 43019, 43019, 43037, 43037,
- 43037, 43037, 43037, 43037, 43037, 43037, 43037, 43037,
- 43037, 43037, 43037, 43037, 43037, 43037, 43037, 43037,
- 43049, 43049, 43049, 43049, 43049, 43049, 43049, 43049,
- 43049, 43049, 43049, 43049, 43051, 43051, 43063, 43063,
- 43063, 43063, 43063, 43063, 43063, 43063, 43063, 43063,
- 43063, 43063, 43067, 43067, 43067, 43067, 43093, 43093,
- 43093, 43093, 43093, 43093, 43093, 43093, 43093, 43093,
- 43093, 43093, 43093, 43093, 43093, 43093, 43093, 43093,
- 43093, 43093, 43093, 43093, 43093, 43093, 43093, 43093,
- 43103, 43103, 43103, 43103, 43103, 43103, 43103, 43103,
- 43103, 43103, 43117, 43117, 43117, 43117, 43117, 43117,
- 43117, 43117, 43117, 43117, 43117, 43117, 43117, 43117,
- 43133, 43133, 43133, 43133, 43133, 43133, 43133, 43133,
- 43133, 43133, 43133, 43133, 43133, 43133, 43133, 43133,
- 43151, 43151, 43151, 43151, 43151, 43151, 43151, 43151,
- 43151, 43151, 43151, 43151, 43151, 43151, 43151, 43151,
- 43151, 43151, 43159, 43159, 43159, 43159, 43159, 43159,
- 43159, 43159, 43177, 43177, 43177, 43177, 43177, 43177,
- 43177, 43177, 43177, 43177, 43177, 43177, 43177, 43177,
- 43177, 43177, 43177, 43177, 43189, 43189, 43189, 43189,
- 43189, 43189, 43189, 43189, 43189, 43189, 43189, 43189,
- 43201, 43201, 43201, 43201, 43201, 43201, 43201, 43201,
- 43201, 43201, 43201, 43201, 43207, 43207, 43207, 43207,
- 43207, 43207, 43223, 43223, 43223, 43223, 43223, 43223,
- 43223, 43223, 43223, 43223, 43223, 43223, 43223, 43223,
- 43223, 43223, 43237, 43237, 43237, 43237, 43237, 43237,
- 43237, 43237, 43237, 43237, 43237, 43237, 43237, 43237,
- 43261, 43261, 43261, 43261, 43261, 43261, 43261, 43261,
- 43261, 43261, 43261, 43261, 43261, 43261, 43261, 43261,
- 43261, 43261, 43261, 43261, 43261, 43261, 43261, 43261,
- 43271, 43271, 43271, 43271, 43271, 43271, 43271, 43271,
- 43271, 43271, 43283, 43283, 43283, 43283, 43283, 43283,
- 43283, 43283, 43283, 43283, 43283, 43283, 43291, 43291,
- 43291, 43291, 43291, 43291, 43291, 43291, 43313, 43313,
- 43313, 43313, 43313, 43313, 43313, 43313, 43313, 43313,
- 43313, 43313, 43313, 43313, 43313, 43313, 43313, 43313,
- 43313, 43313, 43313, 43313, 43319, 43319, 43319, 43319,
- 43319, 43319, 43321, 43321, 43331, 43331, 43331, 43331,
- 43331, 43331, 43331, 43331, 43331, 43331, 43391, 43391,
- 43391, 43391, 43391, 43391, 43391, 43391, 43391, 43391,
- 43391, 43391, 43391, 43391, 43391, 43391, 43391, 43391,
- 43391, 43391, 43391, 43391, 43391, 43391, 43391, 43391,
- 43391, 43391, 43391, 43391, 43391, 43391, 43391, 43391,
- 43391, 43391, 43391, 43391, 43391, 43391, 43391, 43391,
- 43391, 43391, 43391, 43391, 43391, 43391, 43391, 43391,
- 43391, 43391, 43391, 43391, 43391, 43391, 43391, 43391,
- 43391, 43391, 43397, 43397, 43397, 43397, 43397, 43397,
- 43399, 43399, 43403, 43403, 43403, 43403, 43411, 43411,
- 43411, 43411, 43411, 43411, 43411, 43411, 43427, 43427,
- 43427, 43427, 43427, 43427, 43427, 43427, 43427, 43427,
- 43427, 43427, 43427, 43427, 43427, 43427, 43441, 43441,
- 43441, 43441, 43441, 43441, 43441, 43441, 43441, 43441,
- 43441, 43441, 43441, 43441, 43451, 43451, 43451, 43451,
- 43451, 43451, 43451, 43451, 43451, 43451, 43457, 43457,
- 43457, 43457, 43457, 43457, 43481, 43481, 43481, 43481,
- 43481, 43481, 43481, 43481, 43481, 43481, 43481, 43481,
- 43481, 43481, 43481, 43481, 43481, 43481, 43481, 43481,
- 43481, 43481, 43481, 43481, 43487, 43487, 43487, 43487,
- 43487, 43487, 43499, 43499, 43499, 43499, 43499, 43499,
- 43499, 43499, 43499, 43499, 43499, 43499, 43517, 43517,
- 43517, 43517, 43517, 43517, 43517, 43517, 43517, 43517,
- 43517, 43517, 43517, 43517, 43517, 43517, 43517, 43517,
- 43541, 43541, 43541, 43541, 43541, 43541, 43541, 43541,
- 43541, 43541, 43541, 43541, 43541, 43541, 43541, 43541,
- 43541, 43541, 43541, 43541, 43541, 43541, 43541, 43541,
- 43543, 43543, 43573, 43573, 43573, 43573, 43573, 43573,
- 43573, 43573, 43573, 43573, 43573, 43573, 43573, 43573,
- 43573, 43573, 43573, 43573, 43573, 43573, 43573, 43573,
- 43573, 43573, 43573, 43573, 43573, 43573, 43573, 43573,
- 43577, 43577, 43577, 43577, 43579, 43579, 43591, 43591,
- 43591, 43591, 43591, 43591, 43591, 43591, 43591, 43591,
- 43591, 43591, 43597, 43597, 43597, 43597, 43597, 43597,
- 43607, 43607, 43607, 43607, 43607, 43607, 43607, 43607,
- 43607, 43607, 43609, 43609, 43613, 43613, 43613, 43613,
- 43627, 43627, 43627, 43627, 43627, 43627, 43627, 43627,
- 43627, 43627, 43627, 43627, 43627, 43627, 43633, 43633,
- 43633, 43633, 43633, 43633, 43649, 43649, 43649, 43649,
- 43649, 43649, 43649, 43649, 43649, 43649, 43649, 43649,
- 43649, 43649, 43649, 43649, 43651, 43651, 43661, 43661,
- 43661, 43661, 43661, 43661, 43661, 43661, 43661, 43661,
- 43669, 43669, 43669, 43669, 43669, 43669, 43669, 43669,
- 43691, 43691, 43691, 43691, 43691, 43691, 43691, 43691,
- 43691, 43691, 43691, 43691, 43691, 43691, 43691, 43691,
- 43691, 43691, 43691, 43691, 43691, 43691, 43711, 43711,
- 43711, 43711, 43711, 43711, 43711, 43711, 43711, 43711,
- 43711, 43711, 43711, 43711, 43711, 43711, 43711, 43711,
- 43711, 43711, 43717, 43717, 43717, 43717, 43717, 43717,
- 43721, 43721, 43721, 43721, 43753, 43753, 43753, 43753,
- 43753, 43753, 43753, 43753, 43753, 43753, 43753, 43753,
- 43753, 43753, 43753, 43753, 43753, 43753, 43753, 43753,
- 43753, 43753, 43753, 43753, 43753, 43753, 43753, 43753,
- 43753, 43753, 43753, 43753, 43759, 43759, 43759, 43759,
- 43759, 43759, 43777, 43777, 43777, 43777, 43777, 43777,
- 43777, 43777, 43777, 43777, 43777, 43777, 43777, 43777,
- 43777, 43777, 43777, 43777, 43781, 43781, 43781, 43781,
- 43783, 43783, 43787, 43787, 43787, 43787, 43789, 43789,
- 43793, 43793, 43793, 43793, 43801, 43801, 43801, 43801,
- 43801, 43801, 43801, 43801, 43853, 43853, 43853, 43853,
- 43853, 43853, 43853, 43853, 43853, 43853, 43853, 43853,
- 43853, 43853, 43853, 43853, 43853, 43853, 43853, 43853,
- 43853, 43853, 43853, 43853, 43853, 43853, 43853, 43853,
- 43853, 43853, 43853, 43853, 43853, 43853, 43853, 43853,
- 43853, 43853, 43853, 43853, 43853, 43853, 43853, 43853,
- 43853, 43853, 43853, 43853, 43853, 43853, 43853, 43853,
- 43867, 43867, 43867, 43867, 43867, 43867, 43867, 43867,
- 43867, 43867, 43867, 43867, 43867, 43867, 43889, 43889,
- 43889, 43889, 43889, 43889, 43889, 43889, 43889, 43889,
- 43889, 43889, 43889, 43889, 43889, 43889, 43889, 43889,
- 43889, 43889, 43889, 43889, 43891, 43891, 43913, 43913,
- 43913, 43913, 43913, 43913, 43913, 43913, 43913, 43913,
- 43913, 43913, 43913, 43913, 43913, 43913, 43913, 43913,
- 43913, 43913, 43913, 43913, 43933, 43933, 43933, 43933,
- 43933, 43933, 43933, 43933, 43933, 43933, 43933, 43933,
- 43933, 43933, 43933, 43933, 43933, 43933, 43933, 43933,
- 43943, 43943, 43943, 43943, 43943, 43943, 43943, 43943,
- 43943, 43943, 43951, 43951, 43951, 43951, 43951, 43951,
- 43951, 43951, 43961, 43961, 43961, 43961, 43961, 43961,
- 43961, 43961, 43961, 43961, 43963, 43963, 43969, 43969,
- 43969, 43969, 43969, 43969, 43973, 43973, 43973, 43973,
- 43987, 43987, 43987, 43987, 43987, 43987, 43987, 43987,
- 43987, 43987, 43987, 43987, 43987, 43987, 43991, 43991,
- 43991, 43991, 43997, 43997, 43997, 43997, 43997, 43997,
- 44017, 44017, 44017, 44017, 44017, 44017, 44017, 44017,
- 44017, 44017, 44017, 44017, 44017, 44017, 44017, 44017,
- 44017, 44017, 44017, 44017, 44021, 44021, 44021, 44021,
- 44027, 44027, 44027, 44027, 44027, 44027, 44029, 44029,
- 44041, 44041, 44041, 44041, 44041, 44041, 44041, 44041,
- 44041, 44041, 44041, 44041, 44053, 44053, 44053, 44053,
- 44053, 44053, 44053, 44053, 44053, 44053, 44053, 44053,
- 44059, 44059, 44059, 44059, 44059, 44059, 44071, 44071,
- 44071, 44071, 44071, 44071, 44071, 44071, 44071, 44071,
- 44071, 44071, 44087, 44087, 44087, 44087, 44087, 44087,
- 44087, 44087, 44087, 44087, 44087, 44087, 44087, 44087,
- 44087, 44087, 44089, 44089, 44101, 44101, 44101, 44101,
- 44101, 44101, 44101, 44101, 44101, 44101, 44101, 44101,
- 44111, 44111, 44111, 44111, 44111, 44111, 44111, 44111,
- 44111, 44111, 44119, 44119, 44119, 44119, 44119, 44119,
- 44119, 44119, 44123, 44123, 44123, 44123, 44129, 44129,
- 44129, 44129, 44129, 44129, 44131, 44131, 44159, 44159,
- 44159, 44159, 44159, 44159, 44159, 44159, 44159, 44159,
- 44159, 44159, 44159, 44159, 44159, 44159, 44159, 44159,
- 44159, 44159, 44159, 44159, 44159, 44159, 44159, 44159,
- 44159, 44159, 44171, 44171, 44171, 44171, 44171, 44171,
- 44171, 44171, 44171, 44171, 44171, 44171, 44179, 44179,
- 44179, 44179, 44179, 44179, 44179, 44179, 44189, 44189,
- 44189, 44189, 44189, 44189, 44189, 44189, 44189, 44189,
- 44201, 44201, 44201, 44201, 44201, 44201, 44201, 44201,
- 44201, 44201, 44201, 44201, 44203, 44203, 44207, 44207,
- 44207, 44207, 44221, 44221, 44221, 44221, 44221, 44221,
- 44221, 44221, 44221, 44221, 44221, 44221, 44221, 44221,
- 44249, 44249, 44249, 44249, 44249, 44249, 44249, 44249,
- 44249, 44249, 44249, 44249, 44249, 44249, 44249, 44249,
- 44249, 44249, 44249, 44249, 44249, 44249, 44249, 44249,
- 44249, 44249, 44249, 44249, 44257, 44257, 44257, 44257,
- 44257, 44257, 44257, 44257, 44263, 44263, 44263, 44263,
- 44263, 44263, 44267, 44267, 44267, 44267, 44269, 44269,
- 44273, 44273, 44273, 44273, 44279, 44279, 44279, 44279,
- 44279, 44279, 44281, 44281, 44293, 44293, 44293, 44293,
- 44293, 44293, 44293, 44293, 44293, 44293, 44293, 44293,
- 44351, 44351, 44351, 44351, 44351, 44351, 44351, 44351,
- 44351, 44351, 44351, 44351, 44351, 44351, 44351, 44351,
- 44351, 44351, 44351, 44351, 44351, 44351, 44351, 44351,
- 44351, 44351, 44351, 44351, 44351, 44351, 44351, 44351,
- 44351, 44351, 44351, 44351, 44351, 44351, 44351, 44351,
- 44351, 44351, 44351, 44351, 44351, 44351, 44351, 44351,
- 44351, 44351, 44351, 44351, 44351, 44351, 44351, 44351,
- 44351, 44351, 44357, 44357, 44357, 44357, 44357, 44357,
- 44371, 44371, 44371, 44371, 44371, 44371, 44371, 44371,
- 44371, 44371, 44371, 44371, 44371, 44371, 44381, 44381,
- 44381, 44381, 44381, 44381, 44381, 44381, 44381, 44381,
- 44383, 44383, 44389, 44389, 44389, 44389, 44389, 44389,
- 44417, 44417, 44417, 44417, 44417, 44417, 44417, 44417,
- 44417, 44417, 44417, 44417, 44417, 44417, 44417, 44417,
- 44417, 44417, 44417, 44417, 44417, 44417, 44417, 44417,
- 44417, 44417, 44417, 44417, 44449, 44449, 44449, 44449,
- 44449, 44449, 44449, 44449, 44449, 44449, 44449, 44449,
- 44449, 44449, 44449, 44449, 44449, 44449, 44449, 44449,
- 44449, 44449, 44449, 44449, 44449, 44449, 44449, 44449,
- 44449, 44449, 44449, 44449, 44453, 44453, 44453, 44453,
- 44483, 44483, 44483, 44483, 44483, 44483, 44483, 44483,
- 44483, 44483, 44483, 44483, 44483, 44483, 44483, 44483,
- 44483, 44483, 44483, 44483, 44483, 44483, 44483, 44483,
- 44483, 44483, 44483, 44483, 44483, 44483, 44491, 44491,
- 44491, 44491, 44491, 44491, 44491, 44491, 44497, 44497,
- 44497, 44497, 44497, 44497, 44501, 44501, 44501, 44501,
- 44507, 44507, 44507, 44507, 44507, 44507, 44519, 44519,
- 44519, 44519, 44519, 44519, 44519, 44519, 44519, 44519,
- 44519, 44519, 44531, 44531, 44531, 44531, 44531, 44531,
- 44531, 44531, 44531, 44531, 44531, 44531, 44533, 44533,
- 44537, 44537, 44537, 44537, 44543, 44543, 44543, 44543,
- 44543, 44543, 44549, 44549, 44549, 44549, 44549, 44549,
- 44563, 44563, 44563, 44563, 44563, 44563, 44563, 44563,
- 44563, 44563, 44563, 44563, 44563, 44563, 44579, 44579,
- 44579, 44579, 44579, 44579, 44579, 44579, 44579, 44579,
- 44579, 44579, 44579, 44579, 44579, 44579, 44587, 44587,
- 44587, 44587, 44587, 44587, 44587, 44587, 44617, 44617,
- 44617, 44617, 44617, 44617, 44617, 44617, 44617, 44617,
- 44617, 44617, 44617, 44617, 44617, 44617, 44617, 44617,
- 44617, 44617, 44617, 44617, 44617, 44617, 44617, 44617,
- 44617, 44617, 44617, 44617, 44621, 44621, 44621, 44621,
- 44623, 44623, 44633, 44633, 44633, 44633, 44633, 44633,
- 44633, 44633, 44633, 44633, 44641, 44641, 44641, 44641,
- 44641, 44641, 44641, 44641, 44647, 44647, 44647, 44647,
- 44647, 44647, 44651, 44651, 44651, 44651, 44657, 44657,
- 44657, 44657, 44657, 44657, 44683, 44683, 44683, 44683,
- 44683, 44683, 44683, 44683, 44683, 44683, 44683, 44683,
- 44683, 44683, 44683, 44683, 44683, 44683, 44683, 44683,
- 44683, 44683, 44683, 44683, 44683, 44683, 44687, 44687,
- 44687, 44687, 44699, 44699, 44699, 44699, 44699, 44699,
- 44699, 44699, 44699, 44699, 44699, 44699, 44701, 44701,
- 44711, 44711, 44711, 44711, 44711, 44711, 44711, 44711,
- 44711, 44711, 44729, 44729, 44729, 44729, 44729, 44729,
- 44729, 44729, 44729, 44729, 44729, 44729, 44729, 44729,
- 44729, 44729, 44729, 44729, 44741, 44741, 44741, 44741,
- 44741, 44741, 44741, 44741, 44741, 44741, 44741, 44741,
- 44753, 44753, 44753, 44753, 44753, 44753, 44753, 44753,
- 44753, 44753, 44753, 44753, 44771, 44771, 44771, 44771,
- 44771, 44771, 44771, 44771, 44771, 44771, 44771, 44771,
- 44771, 44771, 44771, 44771, 44771, 44771, 44773, 44773,
- 44777, 44777, 44777, 44777, 44789, 44789, 44789, 44789,
- 44789, 44789, 44789, 44789, 44789, 44789, 44789, 44789,
- 44797, 44797, 44797, 44797, 44797, 44797, 44797, 44797,
- 44809, 44809, 44809, 44809, 44809, 44809, 44809, 44809,
- 44809, 44809, 44809, 44809, 44819, 44819, 44819, 44819,
- 44819, 44819, 44819, 44819, 44819, 44819, 44839, 44839,
- 44839, 44839, 44839, 44839, 44839, 44839, 44839, 44839,
- 44839, 44839, 44839, 44839, 44839, 44839, 44839, 44839,
- 44839, 44839, 44843, 44843, 44843, 44843, 44851, 44851,
- 44851, 44851, 44851, 44851, 44851, 44851, 44867, 44867,
- 44867, 44867, 44867, 44867, 44867, 44867, 44867, 44867,
- 44867, 44867, 44867, 44867, 44867, 44867, 44879, 44879,
- 44879, 44879, 44879, 44879, 44879, 44879, 44879, 44879,
- 44879, 44879, 44887, 44887, 44887, 44887, 44887, 44887,
- 44887, 44887, 44893, 44893, 44893, 44893, 44893, 44893,
- 44909, 44909, 44909, 44909, 44909, 44909, 44909, 44909,
- 44909, 44909, 44909, 44909, 44909, 44909, 44909, 44909,
- 44917, 44917, 44917, 44917, 44917, 44917, 44917, 44917,
- 44927, 44927, 44927, 44927, 44927, 44927, 44927, 44927,
- 44927, 44927, 44939, 44939, 44939, 44939, 44939, 44939,
- 44939, 44939, 44939, 44939, 44939, 44939, 44953, 44953,
- 44953, 44953, 44953, 44953, 44953, 44953, 44953, 44953,
- 44953, 44953, 44953, 44953, 44959, 44959, 44959, 44959,
- 44959, 44959, 44963, 44963, 44963, 44963, 44971, 44971,
- 44971, 44971, 44971, 44971, 44971, 44971, 44983, 44983,
- 44983, 44983, 44983, 44983, 44983, 44983, 44983, 44983,
- 44983, 44983, 44987, 44987, 44987, 44987, 45007, 45007,
- 45007, 45007, 45007, 45007, 45007, 45007, 45007, 45007,
- 45007, 45007, 45007, 45007, 45007, 45007, 45007, 45007,
- 45007, 45007, 45013, 45013, 45013, 45013, 45013, 45013,
- 45053, 45053, 45053, 45053, 45053, 45053, 45053, 45053,
- 45053, 45053, 45053, 45053, 45053, 45053, 45053, 45053,
- 45053, 45053, 45053, 45053, 45053, 45053, 45053, 45053,
- 45053, 45053, 45053, 45053, 45053, 45053, 45053, 45053,
- 45053, 45053, 45053, 45053, 45053, 45053, 45053, 45053,
- 45061, 45061, 45061, 45061, 45061, 45061, 45061, 45061,
- 45077, 45077, 45077, 45077, 45077, 45077, 45077, 45077,
- 45077, 45077, 45077, 45077, 45077, 45077, 45077, 45077,
- 45083, 45083, 45083, 45083, 45083, 45083, 45119, 45119,
- 45119, 45119, 45119, 45119, 45119, 45119, 45119, 45119,
- 45119, 45119, 45119, 45119, 45119, 45119, 45119, 45119,
- 45119, 45119, 45119, 45119, 45119, 45119, 45119, 45119,
- 45119, 45119, 45119, 45119, 45119, 45119, 45119, 45119,
- 45119, 45119, 45121, 45121, 45127, 45127, 45127, 45127,
- 45127, 45127, 45131, 45131, 45131, 45131, 45137, 45137,
- 45137, 45137, 45137, 45137, 45139, 45139, 45161, 45161,
- 45161, 45161, 45161, 45161, 45161, 45161, 45161, 45161,
- 45161, 45161, 45161, 45161, 45161, 45161, 45161, 45161,
- 45161, 45161, 45161, 45161, 45179, 45179, 45179, 45179,
- 45179, 45179, 45179, 45179, 45179, 45179, 45179, 45179,
- 45179, 45179, 45179, 45179, 45179, 45179, 45181, 45181,
- 45191, 45191, 45191, 45191, 45191, 45191, 45191, 45191,
- 45191, 45191, 45197, 45197, 45197, 45197, 45197, 45197,
- 45233, 45233, 45233, 45233, 45233, 45233, 45233, 45233,
- 45233, 45233, 45233, 45233, 45233, 45233, 45233, 45233,
- 45233, 45233, 45233, 45233, 45233, 45233, 45233, 45233,
- 45233, 45233, 45233, 45233, 45233, 45233, 45233, 45233,
- 45233, 45233, 45233, 45233, 45247, 45247, 45247, 45247,
- 45247, 45247, 45247, 45247, 45247, 45247, 45247, 45247,
- 45247, 45247, 45259, 45259, 45259, 45259, 45259, 45259,
- 45259, 45259, 45259, 45259, 45259, 45259, 45263, 45263,
- 45263, 45263, 45281, 45281, 45281, 45281, 45281, 45281,
- 45281, 45281, 45281, 45281, 45281, 45281, 45281, 45281,
- 45281, 45281, 45281, 45281, 45289, 45289, 45289, 45289,
- 45289, 45289, 45289, 45289, 45293, 45293, 45293, 45293,
- 45307, 45307, 45307, 45307, 45307, 45307, 45307, 45307,
- 45307, 45307, 45307, 45307, 45307, 45307, 45317, 45317,
- 45317, 45317, 45317, 45317, 45317, 45317, 45317, 45317,
- 45319, 45319, 45329, 45329, 45329, 45329, 45329, 45329,
- 45329, 45329, 45329, 45329, 45337, 45337, 45337, 45337,
- 45337, 45337, 45337, 45337, 45341, 45341, 45341, 45341,
- 45343, 45343, 45361, 45361, 45361, 45361, 45361, 45361,
- 45361, 45361, 45361, 45361, 45361, 45361, 45361, 45361,
- 45361, 45361, 45361, 45361, 45377, 45377, 45377, 45377,
- 45377, 45377, 45377, 45377, 45377, 45377, 45377, 45377,
- 45377, 45377, 45377, 45377, 45389, 45389, 45389, 45389,
- 45389, 45389, 45389, 45389, 45389, 45389, 45389, 45389,
- 45403, 45403, 45403, 45403, 45403, 45403, 45403, 45403,
- 45403, 45403, 45403, 45403, 45403, 45403, 45413, 45413,
- 45413, 45413, 45413, 45413, 45413, 45413, 45413, 45413,
- 45427, 45427, 45427, 45427, 45427, 45427, 45427, 45427,
- 45427, 45427, 45427, 45427, 45427, 45427, 45433, 45433,
- 45433, 45433, 45433, 45433, 45439, 45439, 45439, 45439,
- 45439, 45439, 45481, 45481, 45481, 45481, 45481, 45481,
- 45481, 45481, 45481, 45481, 45481, 45481, 45481, 45481,
- 45481, 45481, 45481, 45481, 45481, 45481, 45481, 45481,
- 45481, 45481, 45481, 45481, 45481, 45481, 45481, 45481,
- 45481, 45481, 45481, 45481, 45481, 45481, 45481, 45481,
- 45481, 45481, 45481, 45481, 45491, 45491, 45491, 45491,
- 45491, 45491, 45491, 45491, 45491, 45491, 45497, 45497,
- 45497, 45497, 45497, 45497, 45503, 45503, 45503, 45503,
- 45503, 45503, 45523, 45523, 45523, 45523, 45523, 45523,
- 45523, 45523, 45523, 45523, 45523, 45523, 45523, 45523,
- 45523, 45523, 45523, 45523, 45523, 45523, 45533, 45533,
- 45533, 45533, 45533, 45533, 45533, 45533, 45533, 45533,
- 45541, 45541, 45541, 45541, 45541, 45541, 45541, 45541,
- 45553, 45553, 45553, 45553, 45553, 45553, 45553, 45553,
- 45553, 45553, 45553, 45553, 45557, 45557, 45557, 45557,
- 45569, 45569, 45569, 45569, 45569, 45569, 45569, 45569,
- 45569, 45569, 45569, 45569, 45587, 45587, 45587, 45587,
- 45587, 45587, 45587, 45587, 45587, 45587, 45587, 45587,
- 45587, 45587, 45587, 45587, 45587, 45587, 45589, 45589,
- 45599, 45599, 45599, 45599, 45599, 45599, 45599, 45599,
- 45599, 45599, 45613, 45613, 45613, 45613, 45613, 45613,
- 45613, 45613, 45613, 45613, 45613, 45613, 45613, 45613,
- 45631, 45631, 45631, 45631, 45631, 45631, 45631, 45631,
- 45631, 45631, 45631, 45631, 45631, 45631, 45631, 45631,
- 45631, 45631, 45641, 45641, 45641, 45641, 45641, 45641,
- 45641, 45641, 45641, 45641, 45659, 45659, 45659, 45659,
- 45659, 45659, 45659, 45659, 45659, 45659, 45659, 45659,
- 45659, 45659, 45659, 45659, 45659, 45659, 45667, 45667,
- 45667, 45667, 45667, 45667, 45667, 45667, 45673, 45673,
- 45673, 45673, 45673, 45673, 45677, 45677, 45677, 45677,
- 45691, 45691, 45691, 45691, 45691, 45691, 45691, 45691,
- 45691, 45691, 45691, 45691, 45691, 45691, 45697, 45697,
- 45697, 45697, 45697, 45697, 45707, 45707, 45707, 45707,
- 45707, 45707, 45707, 45707, 45707, 45707, 45737, 45737,
- 45737, 45737, 45737, 45737, 45737, 45737, 45737, 45737,
- 45737, 45737, 45737, 45737, 45737, 45737, 45737, 45737,
- 45737, 45737, 45737, 45737, 45737, 45737, 45737, 45737,
- 45737, 45737, 45737, 45737, 45751, 45751, 45751, 45751,
- 45751, 45751, 45751, 45751, 45751, 45751, 45751, 45751,
- 45751, 45751, 45757, 45757, 45757, 45757, 45757, 45757,
- 45763, 45763, 45763, 45763, 45763, 45763, 45767, 45767,
- 45767, 45767, 45779, 45779, 45779, 45779, 45779, 45779,
- 45779, 45779, 45779, 45779, 45779, 45779, 45817, 45817,
- 45817, 45817, 45817, 45817, 45817, 45817, 45817, 45817,
- 45817, 45817, 45817, 45817, 45817, 45817, 45817, 45817,
- 45817, 45817, 45817, 45817, 45817, 45817, 45817, 45817,
- 45817, 45817, 45817, 45817, 45817, 45817, 45817, 45817,
- 45817, 45817, 45817, 45817, 45821, 45821, 45821, 45821,
- 45823, 45823, 45827, 45827, 45827, 45827, 45833, 45833,
- 45833, 45833, 45833, 45833, 45841, 45841, 45841, 45841,
- 45841, 45841, 45841, 45841, 45853, 45853, 45853, 45853,
- 45853, 45853, 45853, 45853, 45853, 45853, 45853, 45853,
- 45863, 45863, 45863, 45863, 45863, 45863, 45863, 45863,
- 45863, 45863, 45869, 45869, 45869, 45869, 45869, 45869,
- 45887, 45887, 45887, 45887, 45887, 45887, 45887, 45887,
- 45887, 45887, 45887, 45887, 45887, 45887, 45887, 45887,
- 45887, 45887, 45893, 45893, 45893, 45893, 45893, 45893,
- 45943, 45943, 45943, 45943, 45943, 45943, 45943, 45943,
- 45943, 45943, 45943, 45943, 45943, 45943, 45943, 45943,
- 45943, 45943, 45943, 45943, 45943, 45943, 45943, 45943,
- 45943, 45943, 45943, 45943, 45943, 45943, 45943, 45943,
- 45943, 45943, 45943, 45943, 45943, 45943, 45943, 45943,
- 45943, 45943, 45943, 45943, 45943, 45943, 45943, 45943,
- 45943, 45943, 45949, 45949, 45949, 45949, 45949, 45949,
- 45953, 45953, 45953, 45953, 45959, 45959, 45959, 45959,
- 45959, 45959, 45971, 45971, 45971, 45971, 45971, 45971,
- 45971, 45971, 45971, 45971, 45971, 45971, 45979, 45979,
- 45979, 45979, 45979, 45979, 45979, 45979, 45989, 45989,
- 45989, 45989, 45989, 45989, 45989, 45989, 45989, 45989,
- 46021, 46021, 46021, 46021, 46021, 46021, 46021, 46021,
- 46021, 46021, 46021, 46021, 46021, 46021, 46021, 46021,
- 46021, 46021, 46021, 46021, 46021, 46021, 46021, 46021,
- 46021, 46021, 46021, 46021, 46021, 46021, 46021, 46021,
- 46027, 46027, 46027, 46027, 46027, 46027, 46049, 46049,
- 46049, 46049, 46049, 46049, 46049, 46049, 46049, 46049,
- 46049, 46049, 46049, 46049, 46049, 46049, 46049, 46049,
- 46049, 46049, 46049, 46049, 46051, 46051, 46061, 46061,
- 46061, 46061, 46061, 46061, 46061, 46061, 46061, 46061,
- 46073, 46073, 46073, 46073, 46073, 46073, 46073, 46073,
- 46073, 46073, 46073, 46073, 46091, 46091, 46091, 46091,
- 46091, 46091, 46091, 46091, 46091, 46091, 46091, 46091,
- 46091, 46091, 46091, 46091, 46091, 46091, 46093, 46093,
- 46099, 46099, 46099, 46099, 46099, 46099, 46103, 46103,
- 46103, 46103, 46133, 46133, 46133, 46133, 46133, 46133,
- 46133, 46133, 46133, 46133, 46133, 46133, 46133, 46133,
- 46133, 46133, 46133, 46133, 46133, 46133, 46133, 46133,
- 46133, 46133, 46133, 46133, 46133, 46133, 46133, 46133,
- 46141, 46141, 46141, 46141, 46141, 46141, 46141, 46141,
- 46147, 46147, 46147, 46147, 46147, 46147, 46153, 46153,
- 46153, 46153, 46153, 46153, 46171, 46171, 46171, 46171,
- 46171, 46171, 46171, 46171, 46171, 46171, 46171, 46171,
- 46171, 46171, 46171, 46171, 46171, 46171, 46181, 46181,
- 46181, 46181, 46181, 46181, 46181, 46181, 46181, 46181,
- 46183, 46183, 46187, 46187, 46187, 46187, 46199, 46199,
- 46199, 46199, 46199, 46199, 46199, 46199, 46199, 46199,
- 46199, 46199, 46219, 46219, 46219, 46219, 46219, 46219,
- 46219, 46219, 46219, 46219, 46219, 46219, 46219, 46219,
- 46219, 46219, 46219, 46219, 46219, 46219, 46229, 46229,
- 46229, 46229, 46229, 46229, 46229, 46229, 46229, 46229,
- 46237, 46237, 46237, 46237, 46237, 46237, 46237, 46237,
- 46261, 46261, 46261, 46261, 46261, 46261, 46261, 46261,
- 46261, 46261, 46261, 46261, 46261, 46261, 46261, 46261,
- 46261, 46261, 46261, 46261, 46261, 46261, 46261, 46261,
- 46271, 46271, 46271, 46271, 46271, 46271, 46271, 46271,
- 46271, 46271, 46273, 46273, 46279, 46279, 46279, 46279,
- 46279, 46279, 46301, 46301, 46301, 46301, 46301, 46301,
- 46301, 46301, 46301, 46301, 46301, 46301, 46301, 46301,
- 46301, 46301, 46301, 46301, 46301, 46301, 46301, 46301,
- 46307, 46307, 46307, 46307, 46307, 46307, 46309, 46309,
- 46327, 46327, 46327, 46327, 46327, 46327, 46327, 46327,
- 46327, 46327, 46327, 46327, 46327, 46327, 46327, 46327,
- 46327, 46327, 46337, 46337, 46337, 46337, 46337, 46337,
- 46337, 46337, 46337, 46337, 46349, 46349, 46349, 46349,
- 46349, 46349, 46349, 46349, 46349, 46349, 46349, 46349,
- 46351, 46351, 46381, 46381, 46381, 46381, 46381, 46381,
- 46381, 46381, 46381, 46381, 46381, 46381, 46381, 46381,
- 46381, 46381, 46381, 46381, 46381, 46381, 46381, 46381,
- 46381, 46381, 46381, 46381, 46381, 46381, 46381, 46381,
- 46399, 46399, 46399, 46399, 46399, 46399, 46399, 46399,
- 46399, 46399, 46399, 46399, 46399, 46399, 46399, 46399,
- 46399, 46399, 46411, 46411, 46411, 46411, 46411, 46411,
- 46411, 46411, 46411, 46411, 46411, 46411, 46439, 46439,
- 46439, 46439, 46439, 46439, 46439, 46439, 46439, 46439,
- 46439, 46439, 46439, 46439, 46439, 46439, 46439, 46439,
- 46439, 46439, 46439, 46439, 46439, 46439, 46439, 46439,
- 46439, 46439, 46441, 46441, 46447, 46447, 46447, 46447,
- 46447, 46447, 46451, 46451, 46451, 46451, 46457, 46457,
- 46457, 46457, 46457, 46457, 46471, 46471, 46471, 46471,
- 46471, 46471, 46471, 46471, 46471, 46471, 46471, 46471,
- 46471, 46471, 46477, 46477, 46477, 46477, 46477, 46477,
- 46489, 46489, 46489, 46489, 46489, 46489, 46489, 46489,
- 46489, 46489, 46489, 46489, 46499, 46499, 46499, 46499,
- 46499, 46499, 46499, 46499, 46499, 46499, 46507, 46507,
- 46507, 46507, 46507, 46507, 46507, 46507, 46511, 46511,
- 46511, 46511, 46523, 46523, 46523, 46523, 46523, 46523,
- 46523, 46523, 46523, 46523, 46523, 46523, 46549, 46549,
- 46549, 46549, 46549, 46549, 46549, 46549, 46549, 46549,
- 46549, 46549, 46549, 46549, 46549, 46549, 46549, 46549,
- 46549, 46549, 46549, 46549, 46549, 46549, 46549, 46549,
- 46559, 46559, 46559, 46559, 46559, 46559, 46559, 46559,
- 46559, 46559, 46567, 46567, 46567, 46567, 46567, 46567,
- 46567, 46567, 46573, 46573, 46573, 46573, 46573, 46573,
- 46589, 46589, 46589, 46589, 46589, 46589, 46589, 46589,
- 46589, 46589, 46589, 46589, 46589, 46589, 46589, 46589,
- 46591, 46591, 46601, 46601, 46601, 46601, 46601, 46601,
- 46601, 46601, 46601, 46601, 46619, 46619, 46619, 46619,
- 46619, 46619, 46619, 46619, 46619, 46619, 46619, 46619,
- 46619, 46619, 46619, 46619, 46619, 46619, 46633, 46633,
- 46633, 46633, 46633, 46633, 46633, 46633, 46633, 46633,
- 46633, 46633, 46633, 46633, 46639, 46639, 46639, 46639,
- 46639, 46639, 46643, 46643, 46643, 46643, 46649, 46649,
- 46649, 46649, 46649, 46649, 46663, 46663, 46663, 46663,
- 46663, 46663, 46663, 46663, 46663, 46663, 46663, 46663,
- 46663, 46663, 46679, 46679, 46679, 46679, 46679, 46679,
- 46679, 46679, 46679, 46679, 46679, 46679, 46679, 46679,
- 46679, 46679, 46681, 46681, 46687, 46687, 46687, 46687,
- 46687, 46687, 46691, 46691, 46691, 46691, 46703, 46703,
- 46703, 46703, 46703, 46703, 46703, 46703, 46703, 46703,
- 46703, 46703, 46723, 46723, 46723, 46723, 46723, 46723,
- 46723, 46723, 46723, 46723, 46723, 46723, 46723, 46723,
- 46723, 46723, 46723, 46723, 46723, 46723, 46727, 46727,
- 46727, 46727, 46747, 46747, 46747, 46747, 46747, 46747,
- 46747, 46747, 46747, 46747, 46747, 46747, 46747, 46747,
- 46747, 46747, 46747, 46747, 46747, 46747, 46751, 46751,
- 46751, 46751, 46757, 46757, 46757, 46757, 46757, 46757,
- 46769, 46769, 46769, 46769, 46769, 46769, 46769, 46769,
- 46769, 46769, 46769, 46769, 46771, 46771, 46807, 46807,
- 46807, 46807, 46807, 46807, 46807, 46807, 46807, 46807,
- 46807, 46807, 46807, 46807, 46807, 46807, 46807, 46807,
- 46807, 46807, 46807, 46807, 46807, 46807, 46807, 46807,
- 46807, 46807, 46807, 46807, 46807, 46807, 46807, 46807,
- 46807, 46807, 46811, 46811, 46811, 46811, 46817, 46817,
- 46817, 46817, 46817, 46817, 46819, 46819, 46829, 46829,
- 46829, 46829, 46829, 46829, 46829, 46829, 46829, 46829,
- 46831, 46831, 46853, 46853, 46853, 46853, 46853, 46853,
- 46853, 46853, 46853, 46853, 46853, 46853, 46853, 46853,
- 46853, 46853, 46853, 46853, 46853, 46853, 46853, 46853,
- 46861, 46861, 46861, 46861, 46861, 46861, 46861, 46861,
- 46867, 46867, 46867, 46867, 46867, 46867, 46877, 46877,
- 46877, 46877, 46877, 46877, 46877, 46877, 46877, 46877,
- 46889, 46889, 46889, 46889, 46889, 46889, 46889, 46889,
- 46889, 46889, 46889, 46889, 46901, 46901, 46901, 46901,
- 46901, 46901, 46901, 46901, 46901, 46901, 46901, 46901,
- 46919, 46919, 46919, 46919, 46919, 46919, 46919, 46919,
- 46919, 46919, 46919, 46919, 46919, 46919, 46919, 46919,
- 46919, 46919, 46933, 46933, 46933, 46933, 46933, 46933,
- 46933, 46933, 46933, 46933, 46933, 46933, 46933, 46933,
- 46957, 46957, 46957, 46957, 46957, 46957, 46957, 46957,
- 46957, 46957, 46957, 46957, 46957, 46957, 46957, 46957,
- 46957, 46957, 46957, 46957, 46957, 46957, 46957, 46957,
- 46993, 46993, 46993, 46993, 46993, 46993, 46993, 46993,
- 46993, 46993, 46993, 46993, 46993, 46993, 46993, 46993,
- 46993, 46993, 46993, 46993, 46993, 46993, 46993, 46993,
- 46993, 46993, 46993, 46993, 46993, 46993, 46993, 46993,
- 46993, 46993, 46993, 46993, 46997, 46997, 46997, 46997,
- 47017, 47017, 47017, 47017, 47017, 47017, 47017, 47017,
- 47017, 47017, 47017, 47017, 47017, 47017, 47017, 47017,
- 47017, 47017, 47017, 47017, 47041, 47041, 47041, 47041,
- 47041, 47041, 47041, 47041, 47041, 47041, 47041, 47041,
- 47041, 47041, 47041, 47041, 47041, 47041, 47041, 47041,
- 47041, 47041, 47041, 47041, 47051, 47051, 47051, 47051,
- 47051, 47051, 47051, 47051, 47051, 47051, 47057, 47057,
- 47057, 47057, 47057, 47057, 47059, 47059, 47087, 47087,
- 47087, 47087, 47087, 47087, 47087, 47087, 47087, 47087,
- 47087, 47087, 47087, 47087, 47087, 47087, 47087, 47087,
- 47087, 47087, 47087, 47087, 47087, 47087, 47087, 47087,
- 47087, 47087, 47093, 47093, 47093, 47093, 47093, 47093,
- 47111, 47111, 47111, 47111, 47111, 47111, 47111, 47111,
- 47111, 47111, 47111, 47111, 47111, 47111, 47111, 47111,
- 47111, 47111, 47119, 47119, 47119, 47119, 47119, 47119,
- 47119, 47119, 47123, 47123, 47123, 47123, 47129, 47129,
- 47129, 47129, 47129, 47129, 47137, 47137, 47137, 47137,
- 47137, 47137, 47137, 47137, 47143, 47143, 47143, 47143,
- 47143, 47143, 47147, 47147, 47147, 47147, 47149, 47149,
- 47161, 47161, 47161, 47161, 47161, 47161, 47161, 47161,
- 47161, 47161, 47161, 47161, 47189, 47189, 47189, 47189,
- 47189, 47189, 47189, 47189, 47189, 47189, 47189, 47189,
- 47189, 47189, 47189, 47189, 47189, 47189, 47189, 47189,
- 47189, 47189, 47189, 47189, 47189, 47189, 47189, 47189,
- 47207, 47207, 47207, 47207, 47207, 47207, 47207, 47207,
- 47207, 47207, 47207, 47207, 47207, 47207, 47207, 47207,
- 47207, 47207, 47221, 47221, 47221, 47221, 47221, 47221,
- 47221, 47221, 47221, 47221, 47221, 47221, 47221, 47221,
- 47237, 47237, 47237, 47237, 47237, 47237, 47237, 47237,
- 47237, 47237, 47237, 47237, 47237, 47237, 47237, 47237,
- 47251, 47251, 47251, 47251, 47251, 47251, 47251, 47251,
- 47251, 47251, 47251, 47251, 47251, 47251, 47269, 47269,
- 47269, 47269, 47269, 47269, 47269, 47269, 47269, 47269,
- 47269, 47269, 47269, 47269, 47269, 47269, 47269, 47269,
- 47279, 47279, 47279, 47279, 47279, 47279, 47279, 47279,
- 47279, 47279, 47287, 47287, 47287, 47287, 47287, 47287,
- 47287, 47287, 47293, 47293, 47293, 47293, 47293, 47293,
- 47297, 47297, 47297, 47297, 47303, 47303, 47303, 47303,
- 47303, 47303, 47309, 47309, 47309, 47309, 47309, 47309,
- 47317, 47317, 47317, 47317, 47317, 47317, 47317, 47317,
- 47339, 47339, 47339, 47339, 47339, 47339, 47339, 47339,
- 47339, 47339, 47339, 47339, 47339, 47339, 47339, 47339,
- 47339, 47339, 47339, 47339, 47339, 47339, 47351, 47351,
- 47351, 47351, 47351, 47351, 47351, 47351, 47351, 47351,
- 47351, 47351, 47353, 47353, 47363, 47363, 47363, 47363,
- 47363, 47363, 47363, 47363, 47363, 47363, 47381, 47381,
- 47381, 47381, 47381, 47381, 47381, 47381, 47381, 47381,
- 47381, 47381, 47381, 47381, 47381, 47381, 47381, 47381,
- 47387, 47387, 47387, 47387, 47387, 47387, 47389, 47389,
- 47407, 47407, 47407, 47407, 47407, 47407, 47407, 47407,
- 47407, 47407, 47407, 47407, 47407, 47407, 47407, 47407,
- 47407, 47407, 47417, 47417, 47417, 47417, 47417, 47417,
- 47417, 47417, 47417, 47417, 47419, 47419, 47431, 47431,
- 47431, 47431, 47431, 47431, 47431, 47431, 47431, 47431,
- 47431, 47431, 47441, 47441, 47441, 47441, 47441, 47441,
- 47441, 47441, 47441, 47441, 47459, 47459, 47459, 47459,
- 47459, 47459, 47459, 47459, 47459, 47459, 47459, 47459,
- 47459, 47459, 47459, 47459, 47459, 47459, 47491, 47491,
- 47491, 47491, 47491, 47491, 47491, 47491, 47491, 47491,
- 47491, 47491, 47491, 47491, 47491, 47491, 47491, 47491,
- 47491, 47491, 47491, 47491, 47491, 47491, 47491, 47491,
- 47491, 47491, 47491, 47491, 47491, 47491, 47497, 47497,
- 47497, 47497, 47497, 47497, 47501, 47501, 47501, 47501,
- 47507, 47507, 47507, 47507, 47507, 47507, 47513, 47513,
- 47513, 47513, 47513, 47513, 47521, 47521, 47521, 47521,
- 47521, 47521, 47521, 47521, 47527, 47527, 47527, 47527,
- 47527, 47527, 47533, 47533, 47533, 47533, 47533, 47533,
- 47543, 47543, 47543, 47543, 47543, 47543, 47543, 47543,
- 47543, 47543, 47563, 47563, 47563, 47563, 47563, 47563,
- 47563, 47563, 47563, 47563, 47563, 47563, 47563, 47563,
- 47563, 47563, 47563, 47563, 47563, 47563, 47569, 47569,
- 47569, 47569, 47569, 47569, 47581, 47581, 47581, 47581,
- 47581, 47581, 47581, 47581, 47581, 47581, 47581, 47581,
- 47591, 47591, 47591, 47591, 47591, 47591, 47591, 47591,
- 47591, 47591, 47599, 47599, 47599, 47599, 47599, 47599,
- 47599, 47599, 47609, 47609, 47609, 47609, 47609, 47609,
- 47609, 47609, 47609, 47609, 47623, 47623, 47623, 47623,
- 47623, 47623, 47623, 47623, 47623, 47623, 47623, 47623,
- 47623, 47623, 47629, 47629, 47629, 47629, 47629, 47629,
- 47639, 47639, 47639, 47639, 47639, 47639, 47639, 47639,
- 47639, 47639, 47653, 47653, 47653, 47653, 47653, 47653,
- 47653, 47653, 47653, 47653, 47653, 47653, 47653, 47653,
- 47657, 47657, 47657, 47657, 47659, 47659, 47681, 47681,
- 47681, 47681, 47681, 47681, 47681, 47681, 47681, 47681,
- 47681, 47681, 47681, 47681, 47681, 47681, 47681, 47681,
- 47681, 47681, 47681, 47681, 47699, 47699, 47699, 47699,
- 47699, 47699, 47699, 47699, 47699, 47699, 47699, 47699,
- 47699, 47699, 47699, 47699, 47699, 47699, 47701, 47701,
- 47711, 47711, 47711, 47711, 47711, 47711, 47711, 47711,
- 47711, 47711, 47713, 47713, 47717, 47717, 47717, 47717,
- 47737, 47737, 47737, 47737, 47737, 47737, 47737, 47737,
- 47737, 47737, 47737, 47737, 47737, 47737, 47737, 47737,
- 47737, 47737, 47737, 47737, 47741, 47741, 47741, 47741,
- 47743, 47743, 47777, 47777, 47777, 47777, 47777, 47777,
- 47777, 47777, 47777, 47777, 47777, 47777, 47777, 47777,
- 47777, 47777, 47777, 47777, 47777, 47777, 47777, 47777,
- 47777, 47777, 47777, 47777, 47777, 47777, 47777, 47777,
- 47777, 47777, 47777, 47777, 47779, 47779, 47791, 47791,
- 47791, 47791, 47791, 47791, 47791, 47791, 47791, 47791,
- 47791, 47791, 47797, 47797, 47797, 47797, 47797, 47797,
- 47807, 47807, 47807, 47807, 47807, 47807, 47807, 47807,
- 47807, 47807, 47809, 47809, 47819, 47819, 47819, 47819,
- 47819, 47819, 47819, 47819, 47819, 47819, 47837, 47837,
- 47837, 47837, 47837, 47837, 47837, 47837, 47837, 47837,
- 47837, 47837, 47837, 47837, 47837, 47837, 47837, 47837,
- 47843, 47843, 47843, 47843, 47843, 47843, 47857, 47857,
- 47857, 47857, 47857, 47857, 47857, 47857, 47857, 47857,
- 47857, 47857, 47857, 47857, 47869, 47869, 47869, 47869,
- 47869, 47869, 47869, 47869, 47869, 47869, 47869, 47869,
- 47881, 47881, 47881, 47881, 47881, 47881, 47881, 47881,
- 47881, 47881, 47881, 47881, 47903, 47903, 47903, 47903,
- 47903, 47903, 47903, 47903, 47903, 47903, 47903, 47903,
- 47903, 47903, 47903, 47903, 47903, 47903, 47903, 47903,
- 47903, 47903, 47911, 47911, 47911, 47911, 47911, 47911,
- 47911, 47911, 47917, 47917, 47917, 47917, 47917, 47917,
- 47933, 47933, 47933, 47933, 47933, 47933, 47933, 47933,
- 47933, 47933, 47933, 47933, 47933, 47933, 47933, 47933,
- 47939, 47939, 47939, 47939, 47939, 47939, 47947, 47947,
- 47947, 47947, 47947, 47947, 47947, 47947, 47951, 47951,
- 47951, 47951, 47963, 47963, 47963, 47963, 47963, 47963,
- 47963, 47963, 47963, 47963, 47963, 47963, 47969, 47969,
- 47969, 47969, 47969, 47969, 47977, 47977, 47977, 47977,
- 47977, 47977, 47977, 47977, 47981, 47981, 47981, 47981,
- 48017, 48017, 48017, 48017, 48017, 48017, 48017, 48017,
- 48017, 48017, 48017, 48017, 48017, 48017, 48017, 48017,
- 48017, 48017, 48017, 48017, 48017, 48017, 48017, 48017,
- 48017, 48017, 48017, 48017, 48017, 48017, 48017, 48017,
- 48017, 48017, 48017, 48017, 48023, 48023, 48023, 48023,
- 48023, 48023, 48029, 48029, 48029, 48029, 48029, 48029,
- 48049, 48049, 48049, 48049, 48049, 48049, 48049, 48049,
- 48049, 48049, 48049, 48049, 48049, 48049, 48049, 48049,
- 48049, 48049, 48049, 48049, 48073, 48073, 48073, 48073,
- 48073, 48073, 48073, 48073, 48073, 48073, 48073, 48073,
- 48073, 48073, 48073, 48073, 48073, 48073, 48073, 48073,
- 48073, 48073, 48073, 48073, 48079, 48079, 48079, 48079,
- 48079, 48079, 48091, 48091, 48091, 48091, 48091, 48091,
- 48091, 48091, 48091, 48091, 48091, 48091, 48109, 48109,
- 48109, 48109, 48109, 48109, 48109, 48109, 48109, 48109,
- 48109, 48109, 48109, 48109, 48109, 48109, 48109, 48109,
- 48119, 48119, 48119, 48119, 48119, 48119, 48119, 48119,
- 48119, 48119, 48121, 48121, 48131, 48131, 48131, 48131,
- 48131, 48131, 48131, 48131, 48131, 48131, 48157, 48157,
- 48157, 48157, 48157, 48157, 48157, 48157, 48157, 48157,
- 48157, 48157, 48157, 48157, 48157, 48157, 48157, 48157,
- 48157, 48157, 48157, 48157, 48157, 48157, 48157, 48157,
- 48163, 48163, 48163, 48163, 48163, 48163, 48179, 48179,
- 48179, 48179, 48179, 48179, 48179, 48179, 48179, 48179,
- 48179, 48179, 48179, 48179, 48179, 48179, 48187, 48187,
- 48187, 48187, 48187, 48187, 48187, 48187, 48193, 48193,
- 48193, 48193, 48193, 48193, 48197, 48197, 48197, 48197,
- 48221, 48221, 48221, 48221, 48221, 48221, 48221, 48221,
- 48221, 48221, 48221, 48221, 48221, 48221, 48221, 48221,
- 48221, 48221, 48221, 48221, 48221, 48221, 48221, 48221,
- 48239, 48239, 48239, 48239, 48239, 48239, 48239, 48239,
- 48239, 48239, 48239, 48239, 48239, 48239, 48239, 48239,
- 48239, 48239, 48247, 48247, 48247, 48247, 48247, 48247,
- 48247, 48247, 48259, 48259, 48259, 48259, 48259, 48259,
- 48259, 48259, 48259, 48259, 48259, 48259, 48271, 48271,
- 48271, 48271, 48271, 48271, 48271, 48271, 48271, 48271,
- 48271, 48271, 48281, 48281, 48281, 48281, 48281, 48281,
- 48281, 48281, 48281, 48281, 48299, 48299, 48299, 48299,
- 48299, 48299, 48299, 48299, 48299, 48299, 48299, 48299,
- 48299, 48299, 48299, 48299, 48299, 48299, 48311, 48311,
- 48311, 48311, 48311, 48311, 48311, 48311, 48311, 48311,
- 48311, 48311, 48313, 48313, 48337, 48337, 48337, 48337,
- 48337, 48337, 48337, 48337, 48337, 48337, 48337, 48337,
- 48337, 48337, 48337, 48337, 48337, 48337, 48337, 48337,
- 48337, 48337, 48337, 48337, 48341, 48341, 48341, 48341,
- 48353, 48353, 48353, 48353, 48353, 48353, 48353, 48353,
- 48353, 48353, 48353, 48353, 48371, 48371, 48371, 48371,
- 48371, 48371, 48371, 48371, 48371, 48371, 48371, 48371,
- 48371, 48371, 48371, 48371, 48371, 48371, 48383, 48383,
- 48383, 48383, 48383, 48383, 48383, 48383, 48383, 48383,
- 48383, 48383, 48397, 48397, 48397, 48397, 48397, 48397,
- 48397, 48397, 48397, 48397, 48397, 48397, 48397, 48397,
- 48407, 48407, 48407, 48407, 48407, 48407, 48407, 48407,
- 48407, 48407, 48409, 48409, 48413, 48413, 48413, 48413,
- 48437, 48437, 48437, 48437, 48437, 48437, 48437, 48437,
- 48437, 48437, 48437, 48437, 48437, 48437, 48437, 48437,
- 48437, 48437, 48437, 48437, 48437, 48437, 48437, 48437,
- 48449, 48449, 48449, 48449, 48449, 48449, 48449, 48449,
- 48449, 48449, 48449, 48449, 48463, 48463, 48463, 48463,
- 48463, 48463, 48463, 48463, 48463, 48463, 48463, 48463,
- 48463, 48463, 48473, 48473, 48473, 48473, 48473, 48473,
- 48473, 48473, 48473, 48473, 48479, 48479, 48479, 48479,
- 48479, 48479, 48481, 48481, 48487, 48487, 48487, 48487,
- 48487, 48487, 48491, 48491, 48491, 48491, 48497, 48497,
- 48497, 48497, 48497, 48497, 48523, 48523, 48523, 48523,
- 48523, 48523, 48523, 48523, 48523, 48523, 48523, 48523,
- 48523, 48523, 48523, 48523, 48523, 48523, 48523, 48523,
- 48523, 48523, 48523, 48523, 48523, 48523, 48527, 48527,
- 48527, 48527, 48533, 48533, 48533, 48533, 48533, 48533,
- 48539, 48539, 48539, 48539, 48539, 48539, 48541, 48541,
- 48563, 48563, 48563, 48563, 48563, 48563, 48563, 48563,
- 48563, 48563, 48563, 48563, 48563, 48563, 48563, 48563,
- 48563, 48563, 48563, 48563, 48563, 48563, 48571, 48571,
- 48571, 48571, 48571, 48571, 48571, 48571, 48589, 48589,
- 48589, 48589, 48589, 48589, 48589, 48589, 48589, 48589,
- 48589, 48589, 48589, 48589, 48589, 48589, 48589, 48589,
- 48593, 48593, 48593, 48593, 48611, 48611, 48611, 48611,
- 48611, 48611, 48611, 48611, 48611, 48611, 48611, 48611,
- 48611, 48611, 48611, 48611, 48611, 48611, 48619, 48619,
- 48619, 48619, 48619, 48619, 48619, 48619, 48623, 48623,
- 48623, 48623, 48647, 48647, 48647, 48647, 48647, 48647,
- 48647, 48647, 48647, 48647, 48647, 48647, 48647, 48647,
- 48647, 48647, 48647, 48647, 48647, 48647, 48647, 48647,
- 48647, 48647, 48649, 48649, 48661, 48661, 48661, 48661,
- 48661, 48661, 48661, 48661, 48661, 48661, 48661, 48661,
- 48673, 48673, 48673, 48673, 48673, 48673, 48673, 48673,
- 48673, 48673, 48673, 48673, 48677, 48677, 48677, 48677,
- 48679, 48679, 48731, 48731, 48731, 48731, 48731, 48731,
- 48731, 48731, 48731, 48731, 48731, 48731, 48731, 48731,
- 48731, 48731, 48731, 48731, 48731, 48731, 48731, 48731,
- 48731, 48731, 48731, 48731, 48731, 48731, 48731, 48731,
- 48731, 48731, 48731, 48731, 48731, 48731, 48731, 48731,
- 48731, 48731, 48731, 48731, 48731, 48731, 48731, 48731,
- 48731, 48731, 48731, 48731, 48731, 48731, 48733, 48733,
- 48751, 48751, 48751, 48751, 48751, 48751, 48751, 48751,
- 48751, 48751, 48751, 48751, 48751, 48751, 48751, 48751,
- 48751, 48751, 48757, 48757, 48757, 48757, 48757, 48757,
- 48761, 48761, 48761, 48761, 48767, 48767, 48767, 48767,
- 48767, 48767, 48779, 48779, 48779, 48779, 48779, 48779,
- 48779, 48779, 48779, 48779, 48779, 48779, 48781, 48781,
- 48787, 48787, 48787, 48787, 48787, 48787, 48799, 48799,
- 48799, 48799, 48799, 48799, 48799, 48799, 48799, 48799,
- 48799, 48799, 48809, 48809, 48809, 48809, 48809, 48809,
- 48809, 48809, 48809, 48809, 48817, 48817, 48817, 48817,
- 48817, 48817, 48817, 48817, 48821, 48821, 48821, 48821,
- 48823, 48823, 48847, 48847, 48847, 48847, 48847, 48847,
- 48847, 48847, 48847, 48847, 48847, 48847, 48847, 48847,
- 48847, 48847, 48847, 48847, 48847, 48847, 48847, 48847,
- 48847, 48847, 48857, 48857, 48857, 48857, 48857, 48857,
- 48857, 48857, 48857, 48857, 48859, 48859, 48869, 48869,
- 48869, 48869, 48869, 48869, 48869, 48869, 48869, 48869,
- 48871, 48871, 48883, 48883, 48883, 48883, 48883, 48883,
- 48883, 48883, 48883, 48883, 48883, 48883, 48889, 48889,
- 48889, 48889, 48889, 48889, 48907, 48907, 48907, 48907,
- 48907, 48907, 48907, 48907, 48907, 48907, 48907, 48907,
- 48907, 48907, 48907, 48907, 48907, 48907, 48947, 48947,
- 48947, 48947, 48947, 48947, 48947, 48947, 48947, 48947,
- 48947, 48947, 48947, 48947, 48947, 48947, 48947, 48947,
- 48947, 48947, 48947, 48947, 48947, 48947, 48947, 48947,
- 48947, 48947, 48947, 48947, 48947, 48947, 48947, 48947,
- 48947, 48947, 48947, 48947, 48947, 48947, 48953, 48953,
- 48953, 48953, 48953, 48953, 48973, 48973, 48973, 48973,
- 48973, 48973, 48973, 48973, 48973, 48973, 48973, 48973,
- 48973, 48973, 48973, 48973, 48973, 48973, 48973, 48973,
- 48989, 48989, 48989, 48989, 48989, 48989, 48989, 48989,
- 48989, 48989, 48989, 48989, 48989, 48989, 48989, 48989,
- 48991, 48991, 49003, 49003, 49003, 49003, 49003, 49003,
- 49003, 49003, 49003, 49003, 49003, 49003, 49009, 49009,
- 49009, 49009, 49009, 49009, 49019, 49019, 49019, 49019,
- 49019, 49019, 49019, 49019, 49019, 49019, 49031, 49031,
- 49031, 49031, 49031, 49031, 49031, 49031, 49031, 49031,
- 49031, 49031, 49033, 49033, 49037, 49037, 49037, 49037,
- 49043, 49043, 49043, 49043, 49043, 49043, 49057, 49057,
- 49057, 49057, 49057, 49057, 49057, 49057, 49057, 49057,
- 49057, 49057, 49057, 49057, 49069, 49069, 49069, 49069,
- 49069, 49069, 49069, 49069, 49069, 49069, 49069, 49069,
- 49081, 49081, 49081, 49081, 49081, 49081, 49081, 49081,
- 49081, 49081, 49081, 49081, 49103, 49103, 49103, 49103,
- 49103, 49103, 49103, 49103, 49103, 49103, 49103, 49103,
- 49103, 49103, 49103, 49103, 49103, 49103, 49103, 49103,
- 49103, 49103, 49109, 49109, 49109, 49109, 49109, 49109,
- 49117, 49117, 49117, 49117, 49117, 49117, 49117, 49117,
- 49121, 49121, 49121, 49121, 49123, 49123, 49139, 49139,
- 49139, 49139, 49139, 49139, 49139, 49139, 49139, 49139,
- 49139, 49139, 49139, 49139, 49139, 49139, 49157, 49157,
- 49157, 49157, 49157, 49157, 49157, 49157, 49157, 49157,
- 49157, 49157, 49157, 49157, 49157, 49157, 49157, 49157,
- 49169, 49169, 49169, 49169, 49169, 49169, 49169, 49169,
- 49169, 49169, 49169, 49169, 49171, 49171, 49177, 49177,
- 49177, 49177, 49177, 49177, 49193, 49193, 49193, 49193,
- 49193, 49193, 49193, 49193, 49193, 49193, 49193, 49193,
- 49193, 49193, 49193, 49193, 49199, 49199, 49199, 49199,
- 49199, 49199, 49201, 49201, 49207, 49207, 49207, 49207,
- 49207, 49207, 49211, 49211, 49211, 49211, 49223, 49223,
- 49223, 49223, 49223, 49223, 49223, 49223, 49223, 49223,
- 49223, 49223, 49253, 49253, 49253, 49253, 49253, 49253,
- 49253, 49253, 49253, 49253, 49253, 49253, 49253, 49253,
- 49253, 49253, 49253, 49253, 49253, 49253, 49253, 49253,
- 49253, 49253, 49253, 49253, 49253, 49253, 49253, 49253,
- 49261, 49261, 49261, 49261, 49261, 49261, 49261, 49261,
- 49277, 49277, 49277, 49277, 49277, 49277, 49277, 49277,
- 49277, 49277, 49277, 49277, 49277, 49277, 49277, 49277,
- 49279, 49279, 49297, 49297, 49297, 49297, 49297, 49297,
- 49297, 49297, 49297, 49297, 49297, 49297, 49297, 49297,
- 49297, 49297, 49297, 49297, 49307, 49307, 49307, 49307,
- 49307, 49307, 49307, 49307, 49307, 49307, 49331, 49331,
- 49331, 49331, 49331, 49331, 49331, 49331, 49331, 49331,
- 49331, 49331, 49331, 49331, 49331, 49331, 49331, 49331,
- 49331, 49331, 49331, 49331, 49331, 49331, 49333, 49333,
- 49339, 49339, 49339, 49339, 49339, 49339, 49363, 49363,
- 49363, 49363, 49363, 49363, 49363, 49363, 49363, 49363,
- 49363, 49363, 49363, 49363, 49363, 49363, 49363, 49363,
- 49363, 49363, 49363, 49363, 49363, 49363, 49367, 49367,
- 49367, 49367, 49369, 49369, 49391, 49391, 49391, 49391,
- 49391, 49391, 49391, 49391, 49391, 49391, 49391, 49391,
- 49391, 49391, 49391, 49391, 49391, 49391, 49391, 49391,
- 49391, 49391, 49393, 49393, 49409, 49409, 49409, 49409,
- 49409, 49409, 49409, 49409, 49409, 49409, 49409, 49409,
- 49409, 49409, 49409, 49409, 49411, 49411, 49417, 49417,
- 49417, 49417, 49417, 49417, 49429, 49429, 49429, 49429,
- 49429, 49429, 49429, 49429, 49429, 49429, 49429, 49429,
- 49433, 49433, 49433, 49433, 49451, 49451, 49451, 49451,
- 49451, 49451, 49451, 49451, 49451, 49451, 49451, 49451,
- 49451, 49451, 49451, 49451, 49451, 49451, 49459, 49459,
- 49459, 49459, 49459, 49459, 49459, 49459, 49463, 49463,
- 49463, 49463, 49477, 49477, 49477, 49477, 49477, 49477,
- 49477, 49477, 49477, 49477, 49477, 49477, 49477, 49477,
- 49481, 49481, 49481, 49481, 49499, 49499, 49499, 49499,
- 49499, 49499, 49499, 49499, 49499, 49499, 49499, 49499,
- 49499, 49499, 49499, 49499, 49499, 49499, 49523, 49523,
- 49523, 49523, 49523, 49523, 49523, 49523, 49523, 49523,
- 49523, 49523, 49523, 49523, 49523, 49523, 49523, 49523,
- 49523, 49523, 49523, 49523, 49523, 49523, 49529, 49529,
- 49529, 49529, 49529, 49529, 49531, 49531, 49537, 49537,
- 49537, 49537, 49537, 49537, 49547, 49547, 49547, 49547,
- 49547, 49547, 49547, 49547, 49547, 49547, 49549, 49549,
- 49559, 49559, 49559, 49559, 49559, 49559, 49559, 49559,
- 49559, 49559, 49597, 49597, 49597, 49597, 49597, 49597,
- 49597, 49597, 49597, 49597, 49597, 49597, 49597, 49597,
- 49597, 49597, 49597, 49597, 49597, 49597, 49597, 49597,
- 49597, 49597, 49597, 49597, 49597, 49597, 49597, 49597,
- 49597, 49597, 49597, 49597, 49597, 49597, 49597, 49597,
- 49603, 49603, 49603, 49603, 49603, 49603, 49613, 49613,
- 49613, 49613, 49613, 49613, 49613, 49613, 49613, 49613,
- 49627, 49627, 49627, 49627, 49627, 49627, 49627, 49627,
- 49627, 49627, 49627, 49627, 49627, 49627, 49633, 49633,
- 49633, 49633, 49633, 49633, 49639, 49639, 49639, 49639,
- 49639, 49639, 49663, 49663, 49663, 49663, 49663, 49663,
- 49663, 49663, 49663, 49663, 49663, 49663, 49663, 49663,
- 49663, 49663, 49663, 49663, 49663, 49663, 49663, 49663,
- 49663, 49663, 49667, 49667, 49667, 49667, 49669, 49669,
- 49681, 49681, 49681, 49681, 49681, 49681, 49681, 49681,
- 49681, 49681, 49681, 49681, 49697, 49697, 49697, 49697,
- 49697, 49697, 49697, 49697, 49697, 49697, 49697, 49697,
- 49697, 49697, 49697, 49697, 49711, 49711, 49711, 49711,
- 49711, 49711, 49711, 49711, 49711, 49711, 49711, 49711,
- 49711, 49711, 49727, 49727, 49727, 49727, 49727, 49727,
- 49727, 49727, 49727, 49727, 49727, 49727, 49727, 49727,
- 49727, 49727, 49739, 49739, 49739, 49739, 49739, 49739,
- 49739, 49739, 49739, 49739, 49739, 49739, 49741, 49741,
- 49747, 49747, 49747, 49747, 49747, 49747, 49757, 49757,
- 49757, 49757, 49757, 49757, 49757, 49757, 49757, 49757,
- 49783, 49783, 49783, 49783, 49783, 49783, 49783, 49783,
- 49783, 49783, 49783, 49783, 49783, 49783, 49783, 49783,
- 49783, 49783, 49783, 49783, 49783, 49783, 49783, 49783,
- 49783, 49783, 49787, 49787, 49787, 49787, 49789, 49789,
- 49801, 49801, 49801, 49801, 49801, 49801, 49801, 49801,
- 49801, 49801, 49801, 49801, 49807, 49807, 49807, 49807,
- 49807, 49807, 49811, 49811, 49811, 49811, 49823, 49823,
- 49823, 49823, 49823, 49823, 49823, 49823, 49823, 49823,
- 49823, 49823, 49831, 49831, 49831, 49831, 49831, 49831,
- 49831, 49831, 49843, 49843, 49843, 49843, 49843, 49843,
- 49843, 49843, 49843, 49843, 49843, 49843, 49853, 49853,
- 49853, 49853, 49853, 49853, 49853, 49853, 49853, 49853,
- 49871, 49871, 49871, 49871, 49871, 49871, 49871, 49871,
- 49871, 49871, 49871, 49871, 49871, 49871, 49871, 49871,
- 49871, 49871, 49877, 49877, 49877, 49877, 49877, 49877,
- 49891, 49891, 49891, 49891, 49891, 49891, 49891, 49891,
- 49891, 49891, 49891, 49891, 49891, 49891, 49919, 49919,
- 49919, 49919, 49919, 49919, 49919, 49919, 49919, 49919,
- 49919, 49919, 49919, 49919, 49919, 49919, 49919, 49919,
- 49919, 49919, 49919, 49919, 49919, 49919, 49919, 49919,
- 49919, 49919, 49921, 49921, 49927, 49927, 49927, 49927,
- 49927, 49927, 49937, 49937, 49937, 49937, 49937, 49937,
- 49937, 49937, 49937, 49937, 49939, 49939, 49943, 49943,
- 49943, 49943, 49957, 49957, 49957, 49957, 49957, 49957,
- 49957, 49957, 49957, 49957, 49957, 49957, 49957, 49957,
- 49991, 49991, 49991, 49991, 49991, 49991, 49991, 49991,
- 49991, 49991, 49991, 49991, 49991, 49991, 49991, 49991,
- 49991, 49991, 49991, 49991, 49991, 49991, 49991, 49991,
- 49991, 49991, 49991, 49991, 49991, 49991, 49991, 49991,
- 49991, 49991, 49993, 49993, 49999, 49999, 49999, 49999,
- 49999, 49999, 50021, 50021, 50021, 50021, 50021, 50021,
- 50021, 50021, 50021, 50021, 50021, 50021, 50021, 50021,
- 50021, 50021, 50021, 50021, 50021, 50021, 50021, 50021,
- 50023, 50023, 50033, 50033, 50033, 50033, 50033, 50033,
- 50033, 50033, 50033, 50033, 50047, 50047, 50047, 50047,
- 50047, 50047, 50047, 50047, 50047, 50047, 50047, 50047,
- 50047, 50047, 50051, 50051, 50051, 50051, 50053, 50053,
- 50069, 50069, 50069, 50069, 50069, 50069, 50069, 50069,
- 50069, 50069, 50069, 50069, 50069, 50069, 50069, 50069,
- 50077, 50077, 50077, 50077, 50077, 50077, 50077, 50077,
- 50087, 50087, 50087, 50087, 50087, 50087, 50087, 50087,
- 50087, 50087, 50093, 50093, 50093, 50093, 50093, 50093,
- 50101, 50101, 50101, 50101, 50101, 50101, 50101, 50101,
- 50111, 50111, 50111, 50111, 50111, 50111, 50111, 50111,
- 50111, 50111, 50119, 50119, 50119, 50119, 50119, 50119,
- 50119, 50119, 50123, 50123, 50123, 50123, 50129, 50129,
- 50129, 50129, 50129, 50129, 50131, 50131, 50147, 50147,
- 50147, 50147, 50147, 50147, 50147, 50147, 50147, 50147,
- 50147, 50147, 50147, 50147, 50147, 50147, 50153, 50153,
- 50153, 50153, 50153, 50153, 50159, 50159, 50159, 50159,
- 50159, 50159, 50177, 50177, 50177, 50177, 50177, 50177,
- 50177, 50177, 50177, 50177, 50177, 50177, 50177, 50177,
- 50177, 50177, 50177, 50177, 50207, 50207, 50207, 50207,
- 50207, 50207, 50207, 50207, 50207, 50207, 50207, 50207,
- 50207, 50207, 50207, 50207, 50207, 50207, 50207, 50207,
- 50207, 50207, 50207, 50207, 50207, 50207, 50207, 50207,
- 50207, 50207, 50221, 50221, 50221, 50221, 50221, 50221,
- 50221, 50221, 50221, 50221, 50221, 50221, 50221, 50221,
- 50227, 50227, 50227, 50227, 50227, 50227, 50231, 50231,
- 50231, 50231, 50261, 50261, 50261, 50261, 50261, 50261,
- 50261, 50261, 50261, 50261, 50261, 50261, 50261, 50261,
- 50261, 50261, 50261, 50261, 50261, 50261, 50261, 50261,
- 50261, 50261, 50261, 50261, 50261, 50261, 50261, 50261,
- 50263, 50263, 50273, 50273, 50273, 50273, 50273, 50273,
- 50273, 50273, 50273, 50273, 50287, 50287, 50287, 50287,
- 50287, 50287, 50287, 50287, 50287, 50287, 50287, 50287,
- 50287, 50287, 50291, 50291, 50291, 50291, 50311, 50311,
- 50311, 50311, 50311, 50311, 50311, 50311, 50311, 50311,
- 50311, 50311, 50311, 50311, 50311, 50311, 50311, 50311,
- 50311, 50311, 50321, 50321, 50321, 50321, 50321, 50321,
- 50321, 50321, 50321, 50321, 50329, 50329, 50329, 50329,
- 50329, 50329, 50329, 50329, 50333, 50333, 50333, 50333,
- 50341, 50341, 50341, 50341, 50341, 50341, 50341, 50341,
- 50359, 50359, 50359, 50359, 50359, 50359, 50359, 50359,
- 50359, 50359, 50359, 50359, 50359, 50359, 50359, 50359,
- 50359, 50359, 50363, 50363, 50363, 50363, 50377, 50377,
- 50377, 50377, 50377, 50377, 50377, 50377, 50377, 50377,
- 50377, 50377, 50377, 50377, 50383, 50383, 50383, 50383,
- 50383, 50383, 50387, 50387, 50387, 50387, 50411, 50411,
- 50411, 50411, 50411, 50411, 50411, 50411, 50411, 50411,
- 50411, 50411, 50411, 50411, 50411, 50411, 50411, 50411,
- 50411, 50411, 50411, 50411, 50411, 50411, 50417, 50417,
- 50417, 50417, 50417, 50417, 50423, 50423, 50423, 50423,
- 50423, 50423, 50441, 50441, 50441, 50441, 50441, 50441,
- 50441, 50441, 50441, 50441, 50441, 50441, 50441, 50441,
- 50441, 50441, 50441, 50441, 50459, 50459, 50459, 50459,
- 50459, 50459, 50459, 50459, 50459, 50459, 50459, 50459,
- 50459, 50459, 50459, 50459, 50459, 50459, 50461, 50461,
- 50497, 50497, 50497, 50497, 50497, 50497, 50497, 50497,
- 50497, 50497, 50497, 50497, 50497, 50497, 50497, 50497,
- 50497, 50497, 50497, 50497, 50497, 50497, 50497, 50497,
- 50497, 50497, 50497, 50497, 50497, 50497, 50497, 50497,
- 50497, 50497, 50497, 50497, 50503, 50503, 50503, 50503,
- 50503, 50503, 50513, 50513, 50513, 50513, 50513, 50513,
- 50513, 50513, 50513, 50513, 50527, 50527, 50527, 50527,
- 50527, 50527, 50527, 50527, 50527, 50527, 50527, 50527,
- 50527, 50527, 50539, 50539, 50539, 50539, 50539, 50539,
- 50539, 50539, 50539, 50539, 50539, 50539, 50543, 50543,
- 50543, 50543, 50549, 50549, 50549, 50549, 50549, 50549,
- 50551, 50551, 50581, 50581, 50581, 50581, 50581, 50581,
- 50581, 50581, 50581, 50581, 50581, 50581, 50581, 50581,
- 50581, 50581, 50581, 50581, 50581, 50581, 50581, 50581,
- 50581, 50581, 50581, 50581, 50581, 50581, 50581, 50581,
- 50587, 50587, 50587, 50587, 50587, 50587, 50591, 50591,
- 50591, 50591, 50593, 50593, 50599, 50599, 50599, 50599,
- 50599, 50599, 50627, 50627, 50627, 50627, 50627, 50627,
- 50627, 50627, 50627, 50627, 50627, 50627, 50627, 50627,
- 50627, 50627, 50627, 50627, 50627, 50627, 50627, 50627,
- 50627, 50627, 50627, 50627, 50627, 50627, 50647, 50647,
- 50647, 50647, 50647, 50647, 50647, 50647, 50647, 50647,
- 50647, 50647, 50647, 50647, 50647, 50647, 50647, 50647,
- 50647, 50647, 50651, 50651, 50651, 50651, 50671, 50671,
- 50671, 50671, 50671, 50671, 50671, 50671, 50671, 50671,
- 50671, 50671, 50671, 50671, 50671, 50671, 50671, 50671,
- 50671, 50671, 50683, 50683, 50683, 50683, 50683, 50683,
- 50683, 50683, 50683, 50683, 50683, 50683, 50707, 50707,
- 50707, 50707, 50707, 50707, 50707, 50707, 50707, 50707,
- 50707, 50707, 50707, 50707, 50707, 50707, 50707, 50707,
- 50707, 50707, 50707, 50707, 50707, 50707, 50723, 50723,
- 50723, 50723, 50723, 50723, 50723, 50723, 50723, 50723,
- 50723, 50723, 50723, 50723, 50723, 50723, 50741, 50741,
- 50741, 50741, 50741, 50741, 50741, 50741, 50741, 50741,
- 50741, 50741, 50741, 50741, 50741, 50741, 50741, 50741,
- 50753, 50753, 50753, 50753, 50753, 50753, 50753, 50753,
- 50753, 50753, 50753, 50753, 50767, 50767, 50767, 50767,
- 50767, 50767, 50767, 50767, 50767, 50767, 50767, 50767,
- 50767, 50767, 50773, 50773, 50773, 50773, 50773, 50773,
- 50777, 50777, 50777, 50777, 50789, 50789, 50789, 50789,
- 50789, 50789, 50789, 50789, 50789, 50789, 50789, 50789,
- 50821, 50821, 50821, 50821, 50821, 50821, 50821, 50821,
- 50821, 50821, 50821, 50821, 50821, 50821, 50821, 50821,
- 50821, 50821, 50821, 50821, 50821, 50821, 50821, 50821,
- 50821, 50821, 50821, 50821, 50821, 50821, 50821, 50821,
- 50833, 50833, 50833, 50833, 50833, 50833, 50833, 50833,
- 50833, 50833, 50833, 50833, 50839, 50839, 50839, 50839,
- 50839, 50839, 50849, 50849, 50849, 50849, 50849, 50849,
- 50849, 50849, 50849, 50849, 50857, 50857, 50857, 50857,
- 50857, 50857, 50857, 50857, 50867, 50867, 50867, 50867,
- 50867, 50867, 50867, 50867, 50867, 50867, 50873, 50873,
- 50873, 50873, 50873, 50873, 50891, 50891, 50891, 50891,
- 50891, 50891, 50891, 50891, 50891, 50891, 50891, 50891,
- 50891, 50891, 50891, 50891, 50891, 50891, 50893, 50893,
- 50909, 50909, 50909, 50909, 50909, 50909, 50909, 50909,
- 50909, 50909, 50909, 50909, 50909, 50909, 50909, 50909,
- 50923, 50923, 50923, 50923, 50923, 50923, 50923, 50923,
- 50923, 50923, 50923, 50923, 50923, 50923, 50929, 50929,
- 50929, 50929, 50929, 50929, 50951, 50951, 50951, 50951,
- 50951, 50951, 50951, 50951, 50951, 50951, 50951, 50951,
- 50951, 50951, 50951, 50951, 50951, 50951, 50951, 50951,
- 50951, 50951, 50957, 50957, 50957, 50957, 50957, 50957,
- 50969, 50969, 50969, 50969, 50969, 50969, 50969, 50969,
- 50969, 50969, 50969, 50969, 50971, 50971, 50989, 50989,
- 50989, 50989, 50989, 50989, 50989, 50989, 50989, 50989,
- 50989, 50989, 50989, 50989, 50989, 50989, 50989, 50989,
- 50993, 50993, 50993, 50993, 51001, 51001, 51001, 51001,
- 51001, 51001, 51001, 51001, 51031, 51031, 51031, 51031,
- 51031, 51031, 51031, 51031, 51031, 51031, 51031, 51031,
- 51031, 51031, 51031, 51031, 51031, 51031, 51031, 51031,
- 51031, 51031, 51031, 51031, 51031, 51031, 51031, 51031,
- 51031, 51031, 51043, 51043, 51043, 51043, 51043, 51043,
- 51043, 51043, 51043, 51043, 51043, 51043, 51047, 51047,
- 51047, 51047, 51059, 51059, 51059, 51059, 51059, 51059,
- 51059, 51059, 51059, 51059, 51059, 51059, 51061, 51061,
- 51071, 51071, 51071, 51071, 51071, 51071, 51071, 51071,
- 51071, 51071, 51109, 51109, 51109, 51109, 51109, 51109,
- 51109, 51109, 51109, 51109, 51109, 51109, 51109, 51109,
- 51109, 51109, 51109, 51109, 51109, 51109, 51109, 51109,
- 51109, 51109, 51109, 51109, 51109, 51109, 51109, 51109,
- 51109, 51109, 51109, 51109, 51109, 51109, 51109, 51109,
- 51131, 51131, 51131, 51131, 51131, 51131, 51131, 51131,
- 51131, 51131, 51131, 51131, 51131, 51131, 51131, 51131,
- 51131, 51131, 51131, 51131, 51131, 51131, 51133, 51133,
- 51137, 51137, 51137, 51137, 51151, 51151, 51151, 51151,
- 51151, 51151, 51151, 51151, 51151, 51151, 51151, 51151,
- 51151, 51151, 51157, 51157, 51157, 51157, 51157, 51157,
- 51169, 51169, 51169, 51169, 51169, 51169, 51169, 51169,
- 51169, 51169, 51169, 51169, 51193, 51193, 51193, 51193,
- 51193, 51193, 51193, 51193, 51193, 51193, 51193, 51193,
- 51193, 51193, 51193, 51193, 51193, 51193, 51193, 51193,
- 51193, 51193, 51193, 51193, 51197, 51197, 51197, 51197,
- 51199, 51199, 51203, 51203, 51203, 51203, 51217, 51217,
- 51217, 51217, 51217, 51217, 51217, 51217, 51217, 51217,
- 51217, 51217, 51217, 51217, 51229, 51229, 51229, 51229,
- 51229, 51229, 51229, 51229, 51229, 51229, 51229, 51229,
- 51239, 51239, 51239, 51239, 51239, 51239, 51239, 51239,
- 51239, 51239, 51241, 51241, 51257, 51257, 51257, 51257,
- 51257, 51257, 51257, 51257, 51257, 51257, 51257, 51257,
- 51257, 51257, 51257, 51257, 51263, 51263, 51263, 51263,
- 51263, 51263, 51283, 51283, 51283, 51283, 51283, 51283,
- 51283, 51283, 51283, 51283, 51283, 51283, 51283, 51283,
- 51283, 51283, 51283, 51283, 51283, 51283, 51287, 51287,
- 51287, 51287, 51307, 51307, 51307, 51307, 51307, 51307,
- 51307, 51307, 51307, 51307, 51307, 51307, 51307, 51307,
- 51307, 51307, 51307, 51307, 51307, 51307, 51329, 51329,
- 51329, 51329, 51329, 51329, 51329, 51329, 51329, 51329,
- 51329, 51329, 51329, 51329, 51329, 51329, 51329, 51329,
- 51329, 51329, 51329, 51329, 51341, 51341, 51341, 51341,
- 51341, 51341, 51341, 51341, 51341, 51341, 51341, 51341,
- 51343, 51343, 51347, 51347, 51347, 51347, 51349, 51349,
- 51361, 51361, 51361, 51361, 51361, 51361, 51361, 51361,
- 51361, 51361, 51361, 51361, 51383, 51383, 51383, 51383,
- 51383, 51383, 51383, 51383, 51383, 51383, 51383, 51383,
- 51383, 51383, 51383, 51383, 51383, 51383, 51383, 51383,
- 51383, 51383, 51407, 51407, 51407, 51407, 51407, 51407,
- 51407, 51407, 51407, 51407, 51407, 51407, 51407, 51407,
- 51407, 51407, 51407, 51407, 51407, 51407, 51407, 51407,
- 51407, 51407, 51413, 51413, 51413, 51413, 51413, 51413,
- 51419, 51419, 51419, 51419, 51419, 51419, 51421, 51421,
- 51427, 51427, 51427, 51427, 51427, 51427, 51431, 51431,
- 51431, 51431, 51437, 51437, 51437, 51437, 51437, 51437,
- 51439, 51439, 51449, 51449, 51449, 51449, 51449, 51449,
- 51449, 51449, 51449, 51449, 51461, 51461, 51461, 51461,
- 51461, 51461, 51461, 51461, 51461, 51461, 51461, 51461,
- 51473, 51473, 51473, 51473, 51473, 51473, 51473, 51473,
- 51473, 51473, 51473, 51473, 51479, 51479, 51479, 51479,
- 51479, 51479, 51481, 51481, 51487, 51487, 51487, 51487,
- 51487, 51487, 51503, 51503, 51503, 51503, 51503, 51503,
- 51503, 51503, 51503, 51503, 51503, 51503, 51503, 51503,
- 51503, 51503, 51511, 51511, 51511, 51511, 51511, 51511,
- 51511, 51511, 51517, 51517, 51517, 51517, 51517, 51517,
- 51521, 51521, 51521, 51521, 51539, 51539, 51539, 51539,
- 51539, 51539, 51539, 51539, 51539, 51539, 51539, 51539,
- 51539, 51539, 51539, 51539, 51539, 51539, 51551, 51551,
- 51551, 51551, 51551, 51551, 51551, 51551, 51551, 51551,
- 51551, 51551, 51563, 51563, 51563, 51563, 51563, 51563,
- 51563, 51563, 51563, 51563, 51563, 51563, 51577, 51577,
- 51577, 51577, 51577, 51577, 51577, 51577, 51577, 51577,
- 51577, 51577, 51577, 51577, 51581, 51581, 51581, 51581,
- 51593, 51593, 51593, 51593, 51593, 51593, 51593, 51593,
- 51593, 51593, 51593, 51593, 51599, 51599, 51599, 51599,
- 51599, 51599, 51607, 51607, 51607, 51607, 51607, 51607,
- 51607, 51607, 51613, 51613, 51613, 51613, 51613, 51613,
- 51631, 51631, 51631, 51631, 51631, 51631, 51631, 51631,
- 51631, 51631, 51631, 51631, 51631, 51631, 51631, 51631,
- 51631, 51631, 51637, 51637, 51637, 51637, 51637, 51637,
- 51647, 51647, 51647, 51647, 51647, 51647, 51647, 51647,
- 51647, 51647, 51659, 51659, 51659, 51659, 51659, 51659,
- 51659, 51659, 51659, 51659, 51659, 51659, 51673, 51673,
- 51673, 51673, 51673, 51673, 51673, 51673, 51673, 51673,
- 51673, 51673, 51673, 51673, 51679, 51679, 51679, 51679,
- 51679, 51679, 51683, 51683, 51683, 51683, 51691, 51691,
- 51691, 51691, 51691, 51691, 51691, 51691, 51713, 51713,
- 51713, 51713, 51713, 51713, 51713, 51713, 51713, 51713,
- 51713, 51713, 51713, 51713, 51713, 51713, 51713, 51713,
- 51713, 51713, 51713, 51713, 51719, 51719, 51719, 51719,
- 51719, 51719, 51721, 51721, 51749, 51749, 51749, 51749,
- 51749, 51749, 51749, 51749, 51749, 51749, 51749, 51749,
- 51749, 51749, 51749, 51749, 51749, 51749, 51749, 51749,
- 51749, 51749, 51749, 51749, 51749, 51749, 51749, 51749,
- 51767, 51767, 51767, 51767, 51767, 51767, 51767, 51767,
- 51767, 51767, 51767, 51767, 51767, 51767, 51767, 51767,
- 51767, 51767, 51769, 51769, 51787, 51787, 51787, 51787,
- 51787, 51787, 51787, 51787, 51787, 51787, 51787, 51787,
- 51787, 51787, 51787, 51787, 51787, 51787, 51797, 51797,
- 51797, 51797, 51797, 51797, 51797, 51797, 51797, 51797,
- 51803, 51803, 51803, 51803, 51803, 51803, 51817, 51817,
- 51817, 51817, 51817, 51817, 51817, 51817, 51817, 51817,
- 51817, 51817, 51817, 51817, 51827, 51827, 51827, 51827,
- 51827, 51827, 51827, 51827, 51827, 51827, 51829, 51829,
- 51839, 51839, 51839, 51839, 51839, 51839, 51839, 51839,
- 51839, 51839, 51853, 51853, 51853, 51853, 51853, 51853,
- 51853, 51853, 51853, 51853, 51853, 51853, 51853, 51853,
- 51859, 51859, 51859, 51859, 51859, 51859, 51869, 51869,
- 51869, 51869, 51869, 51869, 51869, 51869, 51869, 51869,
- 51871, 51871, 51893, 51893, 51893, 51893, 51893, 51893,
- 51893, 51893, 51893, 51893, 51893, 51893, 51893, 51893,
- 51893, 51893, 51893, 51893, 51893, 51893, 51893, 51893,
- 51899, 51899, 51899, 51899, 51899, 51899, 51907, 51907,
- 51907, 51907, 51907, 51907, 51907, 51907, 51913, 51913,
- 51913, 51913, 51913, 51913, 51929, 51929, 51929, 51929,
- 51929, 51929, 51929, 51929, 51929, 51929, 51929, 51929,
- 51929, 51929, 51929, 51929, 51941, 51941, 51941, 51941,
- 51941, 51941, 51941, 51941, 51941, 51941, 51941, 51941,
- 51949, 51949, 51949, 51949, 51949, 51949, 51949, 51949,
- 51971, 51971, 51971, 51971, 51971, 51971, 51971, 51971,
- 51971, 51971, 51971, 51971, 51971, 51971, 51971, 51971,
- 51971, 51971, 51971, 51971, 51971, 51971, 51973, 51973,
- 51977, 51977, 51977, 51977, 51991, 51991, 51991, 51991,
- 51991, 51991, 51991, 51991, 51991, 51991, 51991, 51991,
- 51991, 51991, 52009, 52009, 52009, 52009, 52009, 52009,
- 52009, 52009, 52009, 52009, 52009, 52009, 52009, 52009,
- 52009, 52009, 52009, 52009, 52021, 52021, 52021, 52021,
- 52021, 52021, 52021, 52021, 52021, 52021, 52021, 52021,
- 52027, 52027, 52027, 52027, 52027, 52027, 52051, 52051,
- 52051, 52051, 52051, 52051, 52051, 52051, 52051, 52051,
- 52051, 52051, 52051, 52051, 52051, 52051, 52051, 52051,
- 52051, 52051, 52051, 52051, 52051, 52051, 52057, 52057,
- 52057, 52057, 52057, 52057, 52067, 52067, 52067, 52067,
- 52067, 52067, 52067, 52067, 52067, 52067, 52069, 52069,
- 52081, 52081, 52081, 52081, 52081, 52081, 52081, 52081,
- 52081, 52081, 52081, 52081, 52103, 52103, 52103, 52103,
- 52103, 52103, 52103, 52103, 52103, 52103, 52103, 52103,
- 52103, 52103, 52103, 52103, 52103, 52103, 52103, 52103,
- 52103, 52103, 52121, 52121, 52121, 52121, 52121, 52121,
- 52121, 52121, 52121, 52121, 52121, 52121, 52121, 52121,
- 52121, 52121, 52121, 52121, 52127, 52127, 52127, 52127,
- 52127, 52127, 52147, 52147, 52147, 52147, 52147, 52147,
- 52147, 52147, 52147, 52147, 52147, 52147, 52147, 52147,
- 52147, 52147, 52147, 52147, 52147, 52147, 52153, 52153,
- 52153, 52153, 52153, 52153, 52163, 52163, 52163, 52163,
- 52163, 52163, 52163, 52163, 52163, 52163, 52177, 52177,
- 52177, 52177, 52177, 52177, 52177, 52177, 52177, 52177,
- 52177, 52177, 52177, 52177, 52181, 52181, 52181, 52181,
- 52183, 52183, 52189, 52189, 52189, 52189, 52189, 52189,
- 52201, 52201, 52201, 52201, 52201, 52201, 52201, 52201,
- 52201, 52201, 52201, 52201, 52223, 52223, 52223, 52223,
- 52223, 52223, 52223, 52223, 52223, 52223, 52223, 52223,
- 52223, 52223, 52223, 52223, 52223, 52223, 52223, 52223,
- 52223, 52223, 52237, 52237, 52237, 52237, 52237, 52237,
- 52237, 52237, 52237, 52237, 52237, 52237, 52237, 52237,
- 52249, 52249, 52249, 52249, 52249, 52249, 52249, 52249,
- 52249, 52249, 52249, 52249, 52253, 52253, 52253, 52253,
- 52259, 52259, 52259, 52259, 52259, 52259, 52267, 52267,
- 52267, 52267, 52267, 52267, 52267, 52267, 52289, 52289,
- 52289, 52289, 52289, 52289, 52289, 52289, 52289, 52289,
- 52289, 52289, 52289, 52289, 52289, 52289, 52289, 52289,
- 52289, 52289, 52289, 52289, 52291, 52291, 52301, 52301,
- 52301, 52301, 52301, 52301, 52301, 52301, 52301, 52301,
- 52313, 52313, 52313, 52313, 52313, 52313, 52313, 52313,
- 52313, 52313, 52313, 52313, 52321, 52321, 52321, 52321,
- 52321, 52321, 52321, 52321, 52361, 52361, 52361, 52361,
- 52361, 52361, 52361, 52361, 52361, 52361, 52361, 52361,
- 52361, 52361, 52361, 52361, 52361, 52361, 52361, 52361,
- 52361, 52361, 52361, 52361, 52361, 52361, 52361, 52361,
- 52361, 52361, 52361, 52361, 52361, 52361, 52361, 52361,
- 52361, 52361, 52361, 52361, 52363, 52363, 52369, 52369,
- 52369, 52369, 52369, 52369, 52379, 52379, 52379, 52379,
- 52379, 52379, 52379, 52379, 52379, 52379, 52387, 52387,
- 52387, 52387, 52387, 52387, 52387, 52387, 52391, 52391,
- 52391, 52391, 52433, 52433, 52433, 52433, 52433, 52433,
- 52433, 52433, 52433, 52433, 52433, 52433, 52433, 52433,
- 52433, 52433, 52433, 52433, 52433, 52433, 52433, 52433,
- 52433, 52433, 52433, 52433, 52433, 52433, 52433, 52433,
- 52433, 52433, 52433, 52433, 52433, 52433, 52433, 52433,
- 52433, 52433, 52433, 52433, 52453, 52453, 52453, 52453,
- 52453, 52453, 52453, 52453, 52453, 52453, 52453, 52453,
- 52453, 52453, 52453, 52453, 52453, 52453, 52453, 52453,
- 52457, 52457, 52457, 52457, 52489, 52489, 52489, 52489,
- 52489, 52489, 52489, 52489, 52489, 52489, 52489, 52489,
- 52489, 52489, 52489, 52489, 52489, 52489, 52489, 52489,
- 52489, 52489, 52489, 52489, 52489, 52489, 52489, 52489,
- 52489, 52489, 52489, 52489, 52501, 52501, 52501, 52501,
- 52501, 52501, 52501, 52501, 52501, 52501, 52501, 52501,
- 52511, 52511, 52511, 52511, 52511, 52511, 52511, 52511,
- 52511, 52511, 52517, 52517, 52517, 52517, 52517, 52517,
- 52529, 52529, 52529, 52529, 52529, 52529, 52529, 52529,
- 52529, 52529, 52529, 52529, 52541, 52541, 52541, 52541,
- 52541, 52541, 52541, 52541, 52541, 52541, 52541, 52541,
- 52543, 52543, 52553, 52553, 52553, 52553, 52553, 52553,
- 52553, 52553, 52553, 52553, 52561, 52561, 52561, 52561,
- 52561, 52561, 52561, 52561, 52567, 52567, 52567, 52567,
- 52567, 52567, 52571, 52571, 52571, 52571, 52579, 52579,
- 52579, 52579, 52579, 52579, 52579, 52579, 52583, 52583,
- 52583, 52583, 52609, 52609, 52609, 52609, 52609, 52609,
- 52609, 52609, 52609, 52609, 52609, 52609, 52609, 52609,
- 52609, 52609, 52609, 52609, 52609, 52609, 52609, 52609,
- 52609, 52609, 52609, 52609, 52627, 52627, 52627, 52627,
- 52627, 52627, 52627, 52627, 52627, 52627, 52627, 52627,
- 52627, 52627, 52627, 52627, 52627, 52627, 52631, 52631,
- 52631, 52631, 52639, 52639, 52639, 52639, 52639, 52639,
- 52639, 52639, 52667, 52667, 52667, 52667, 52667, 52667,
- 52667, 52667, 52667, 52667, 52667, 52667, 52667, 52667,
- 52667, 52667, 52667, 52667, 52667, 52667, 52667, 52667,
- 52667, 52667, 52667, 52667, 52667, 52667, 52673, 52673,
- 52673, 52673, 52673, 52673, 52691, 52691, 52691, 52691,
- 52691, 52691, 52691, 52691, 52691, 52691, 52691, 52691,
- 52691, 52691, 52691, 52691, 52691, 52691, 52697, 52697,
- 52697, 52697, 52697, 52697, 52709, 52709, 52709, 52709,
- 52709, 52709, 52709, 52709, 52709, 52709, 52709, 52709,
- 52711, 52711, 52721, 52721, 52721, 52721, 52721, 52721,
- 52721, 52721, 52721, 52721, 52727, 52727, 52727, 52727,
- 52727, 52727, 52733, 52733, 52733, 52733, 52733, 52733,
- 52747, 52747, 52747, 52747, 52747, 52747, 52747, 52747,
- 52747, 52747, 52747, 52747, 52747, 52747, 52757, 52757,
- 52757, 52757, 52757, 52757, 52757, 52757, 52757, 52757,
- 52769, 52769, 52769, 52769, 52769, 52769, 52769, 52769,
- 52769, 52769, 52769, 52769, 52783, 52783, 52783, 52783,
- 52783, 52783, 52783, 52783, 52783, 52783, 52783, 52783,
- 52783, 52783, 52807, 52807, 52807, 52807, 52807, 52807,
- 52807, 52807, 52807, 52807, 52807, 52807, 52807, 52807,
- 52807, 52807, 52807, 52807, 52807, 52807, 52807, 52807,
- 52807, 52807, 52813, 52813, 52813, 52813, 52813, 52813,
- 52817, 52817, 52817, 52817, 52837, 52837, 52837, 52837,
- 52837, 52837, 52837, 52837, 52837, 52837, 52837, 52837,
- 52837, 52837, 52837, 52837, 52837, 52837, 52837, 52837,
- 52859, 52859, 52859, 52859, 52859, 52859, 52859, 52859,
- 52859, 52859, 52859, 52859, 52859, 52859, 52859, 52859,
- 52859, 52859, 52859, 52859, 52859, 52859, 52861, 52861,
- 52879, 52879, 52879, 52879, 52879, 52879, 52879, 52879,
- 52879, 52879, 52879, 52879, 52879, 52879, 52879, 52879,
- 52879, 52879, 52883, 52883, 52883, 52883, 52889, 52889,
- 52889, 52889, 52889, 52889, 52901, 52901, 52901, 52901,
- 52901, 52901, 52901, 52901, 52901, 52901, 52901, 52901,
- 52903, 52903, 52919, 52919, 52919, 52919, 52919, 52919,
- 52919, 52919, 52919, 52919, 52919, 52919, 52919, 52919,
- 52919, 52919, 52937, 52937, 52937, 52937, 52937, 52937,
- 52937, 52937, 52937, 52937, 52937, 52937, 52937, 52937,
- 52937, 52937, 52937, 52937, 52951, 52951, 52951, 52951,
- 52951, 52951, 52951, 52951, 52951, 52951, 52951, 52951,
- 52951, 52951, 52957, 52957, 52957, 52957, 52957, 52957,
- 52963, 52963, 52963, 52963, 52963, 52963, 52967, 52967,
- 52967, 52967, 52973, 52973, 52973, 52973, 52973, 52973,
- 52981, 52981, 52981, 52981, 52981, 52981, 52981, 52981,
- 52999, 52999, 52999, 52999, 52999, 52999, 52999, 52999,
- 52999, 52999, 52999, 52999, 52999, 52999, 52999, 52999,
- 52999, 52999, 53003, 53003, 53003, 53003, 53017, 53017,
- 53017, 53017, 53017, 53017, 53017, 53017, 53017, 53017,
- 53017, 53017, 53017, 53017, 53047, 53047, 53047, 53047,
- 53047, 53047, 53047, 53047, 53047, 53047, 53047, 53047,
- 53047, 53047, 53047, 53047, 53047, 53047, 53047, 53047,
- 53047, 53047, 53047, 53047, 53047, 53047, 53047, 53047,
- 53047, 53047, 53051, 53051, 53051, 53051, 53069, 53069,
- 53069, 53069, 53069, 53069, 53069, 53069, 53069, 53069,
- 53069, 53069, 53069, 53069, 53069, 53069, 53069, 53069,
- 53077, 53077, 53077, 53077, 53077, 53077, 53077, 53077,
- 53087, 53087, 53087, 53087, 53087, 53087, 53087, 53087,
- 53087, 53087, 53089, 53089, 53093, 53093, 53093, 53093,
- 53101, 53101, 53101, 53101, 53101, 53101, 53101, 53101,
- 53113, 53113, 53113, 53113, 53113, 53113, 53113, 53113,
- 53113, 53113, 53113, 53113, 53117, 53117, 53117, 53117,
- 53129, 53129, 53129, 53129, 53129, 53129, 53129, 53129,
- 53129, 53129, 53129, 53129, 53147, 53147, 53147, 53147,
- 53147, 53147, 53147, 53147, 53147, 53147, 53147, 53147,
- 53147, 53147, 53147, 53147, 53147, 53147, 53149, 53149,
- 53161, 53161, 53161, 53161, 53161, 53161, 53161, 53161,
- 53161, 53161, 53161, 53161, 53171, 53171, 53171, 53171,
- 53171, 53171, 53171, 53171, 53171, 53171, 53173, 53173,
- 53189, 53189, 53189, 53189, 53189, 53189, 53189, 53189,
- 53189, 53189, 53189, 53189, 53189, 53189, 53189, 53189,
- 53197, 53197, 53197, 53197, 53197, 53197, 53197, 53197,
- 53201, 53201, 53201, 53201, 53231, 53231, 53231, 53231,
- 53231, 53231, 53231, 53231, 53231, 53231, 53231, 53231,
- 53231, 53231, 53231, 53231, 53231, 53231, 53231, 53231,
- 53231, 53231, 53231, 53231, 53231, 53231, 53231, 53231,
- 53231, 53231, 53233, 53233, 53239, 53239, 53239, 53239,
- 53239, 53239, 53267, 53267, 53267, 53267, 53267, 53267,
- 53267, 53267, 53267, 53267, 53267, 53267, 53267, 53267,
- 53267, 53267, 53267, 53267, 53267, 53267, 53267, 53267,
- 53267, 53267, 53267, 53267, 53267, 53267, 53269, 53269,
- 53279, 53279, 53279, 53279, 53279, 53279, 53279, 53279,
- 53279, 53279, 53281, 53281, 53299, 53299, 53299, 53299,
- 53299, 53299, 53299, 53299, 53299, 53299, 53299, 53299,
- 53299, 53299, 53299, 53299, 53299, 53299, 53309, 53309,
- 53309, 53309, 53309, 53309, 53309, 53309, 53309, 53309,
- 53323, 53323, 53323, 53323, 53323, 53323, 53323, 53323,
- 53323, 53323, 53323, 53323, 53323, 53323, 53327, 53327,
- 53327, 53327, 53353, 53353, 53353, 53353, 53353, 53353,
- 53353, 53353, 53353, 53353, 53353, 53353, 53353, 53353,
- 53353, 53353, 53353, 53353, 53353, 53353, 53353, 53353,
- 53353, 53353, 53353, 53353, 53359, 53359, 53359, 53359,
- 53359, 53359, 53377, 53377, 53377, 53377, 53377, 53377,
- 53377, 53377, 53377, 53377, 53377, 53377, 53377, 53377,
- 53377, 53377, 53377, 53377, 53381, 53381, 53381, 53381,
- 53401, 53401, 53401, 53401, 53401, 53401, 53401, 53401,
- 53401, 53401, 53401, 53401, 53401, 53401, 53401, 53401,
- 53401, 53401, 53401, 53401, 53407, 53407, 53407, 53407,
- 53407, 53407, 53411, 53411, 53411, 53411, 53419, 53419,
- 53419, 53419, 53419, 53419, 53419, 53419, 53437, 53437,
- 53437, 53437, 53437, 53437, 53437, 53437, 53437, 53437,
- 53437, 53437, 53437, 53437, 53437, 53437, 53437, 53437,
- 53441, 53441, 53441, 53441, 53453, 53453, 53453, 53453,
- 53453, 53453, 53453, 53453, 53453, 53453, 53453, 53453,
- 53479, 53479, 53479, 53479, 53479, 53479, 53479, 53479,
- 53479, 53479, 53479, 53479, 53479, 53479, 53479, 53479,
- 53479, 53479, 53479, 53479, 53479, 53479, 53479, 53479,
- 53479, 53479, 53503, 53503, 53503, 53503, 53503, 53503,
- 53503, 53503, 53503, 53503, 53503, 53503, 53503, 53503,
- 53503, 53503, 53503, 53503, 53503, 53503, 53503, 53503,
- 53503, 53503, 53507, 53507, 53507, 53507, 53527, 53527,
- 53527, 53527, 53527, 53527, 53527, 53527, 53527, 53527,
- 53527, 53527, 53527, 53527, 53527, 53527, 53527, 53527,
- 53527, 53527, 53549, 53549, 53549, 53549, 53549, 53549,
- 53549, 53549, 53549, 53549, 53549, 53549, 53549, 53549,
- 53549, 53549, 53549, 53549, 53549, 53549, 53549, 53549,
- 53551, 53551, 53569, 53569, 53569, 53569, 53569, 53569,
- 53569, 53569, 53569, 53569, 53569, 53569, 53569, 53569,
- 53569, 53569, 53569, 53569, 53591, 53591, 53591, 53591,
- 53591, 53591, 53591, 53591, 53591, 53591, 53591, 53591,
- 53591, 53591, 53591, 53591, 53591, 53591, 53591, 53591,
- 53591, 53591, 53593, 53593, 53597, 53597, 53597, 53597,
- 53609, 53609, 53609, 53609, 53609, 53609, 53609, 53609,
- 53609, 53609, 53609, 53609, 53611, 53611, 53617, 53617,
- 53617, 53617, 53617, 53617, 53623, 53623, 53623, 53623,
- 53623, 53623, 53629, 53629, 53629, 53629, 53629, 53629,
- 53633, 53633, 53633, 53633, 53639, 53639, 53639, 53639,
- 53639, 53639, 53653, 53653, 53653, 53653, 53653, 53653,
- 53653, 53653, 53653, 53653, 53653, 53653, 53653, 53653,
- 53657, 53657, 53657, 53657, 53681, 53681, 53681, 53681,
- 53681, 53681, 53681, 53681, 53681, 53681, 53681, 53681,
- 53681, 53681, 53681, 53681, 53681, 53681, 53681, 53681,
- 53681, 53681, 53681, 53681, 53693, 53693, 53693, 53693,
- 53693, 53693, 53693, 53693, 53693, 53693, 53693, 53693,
- 53699, 53699, 53699, 53699, 53699, 53699, 53717, 53717,
- 53717, 53717, 53717, 53717, 53717, 53717, 53717, 53717,
- 53717, 53717, 53717, 53717, 53717, 53717, 53717, 53717,
- 53719, 53719, 53731, 53731, 53731, 53731, 53731, 53731,
- 53731, 53731, 53731, 53731, 53731, 53731, 53759, 53759,
- 53759, 53759, 53759, 53759, 53759, 53759, 53759, 53759,
- 53759, 53759, 53759, 53759, 53759, 53759, 53759, 53759,
- 53759, 53759, 53759, 53759, 53759, 53759, 53759, 53759,
- 53759, 53759, 53773, 53773, 53773, 53773, 53773, 53773,
- 53773, 53773, 53773, 53773, 53773, 53773, 53773, 53773,
- 53777, 53777, 53777, 53777, 53783, 53783, 53783, 53783,
- 53783, 53783, 53791, 53791, 53791, 53791, 53791, 53791,
- 53791, 53791, 53813, 53813, 53813, 53813, 53813, 53813,
- 53813, 53813, 53813, 53813, 53813, 53813, 53813, 53813,
- 53813, 53813, 53813, 53813, 53813, 53813, 53813, 53813,
- 53819, 53819, 53819, 53819, 53819, 53819, 53831, 53831,
- 53831, 53831, 53831, 53831, 53831, 53831, 53831, 53831,
- 53831, 53831, 53849, 53849, 53849, 53849, 53849, 53849,
- 53849, 53849, 53849, 53849, 53849, 53849, 53849, 53849,
- 53849, 53849, 53849, 53849, 53857, 53857, 53857, 53857,
- 53857, 53857, 53857, 53857, 53861, 53861, 53861, 53861,
- 53881, 53881, 53881, 53881, 53881, 53881, 53881, 53881,
- 53881, 53881, 53881, 53881, 53881, 53881, 53881, 53881,
- 53881, 53881, 53881, 53881, 53887, 53887, 53887, 53887,
- 53887, 53887, 53891, 53891, 53891, 53891, 53897, 53897,
- 53897, 53897, 53897, 53897, 53899, 53899, 53917, 53917,
- 53917, 53917, 53917, 53917, 53917, 53917, 53917, 53917,
- 53917, 53917, 53917, 53917, 53917, 53917, 53917, 53917,
- 53923, 53923, 53923, 53923, 53923, 53923, 53927, 53927,
- 53927, 53927, 53939, 53939, 53939, 53939, 53939, 53939,
- 53939, 53939, 53939, 53939, 53939, 53939, 53951, 53951,
- 53951, 53951, 53951, 53951, 53951, 53951, 53951, 53951,
- 53951, 53951, 53959, 53959, 53959, 53959, 53959, 53959,
- 53959, 53959, 53987, 53987, 53987, 53987, 53987, 53987,
- 53987, 53987, 53987, 53987, 53987, 53987, 53987, 53987,
- 53987, 53987, 53987, 53987, 53987, 53987, 53987, 53987,
- 53987, 53987, 53987, 53987, 53987, 53987, 53993, 53993,
- 53993, 53993, 53993, 53993, 54001, 54001, 54001, 54001,
- 54001, 54001, 54001, 54001, 54011, 54011, 54011, 54011,
- 54011, 54011, 54011, 54011, 54011, 54011, 54013, 54013,
- 54037, 54037, 54037, 54037, 54037, 54037, 54037, 54037,
- 54037, 54037, 54037, 54037, 54037, 54037, 54037, 54037,
- 54037, 54037, 54037, 54037, 54037, 54037, 54037, 54037,
- 54049, 54049, 54049, 54049, 54049, 54049, 54049, 54049,
- 54049, 54049, 54049, 54049, 54059, 54059, 54059, 54059,
- 54059, 54059, 54059, 54059, 54059, 54059, 54083, 54083,
- 54083, 54083, 54083, 54083, 54083, 54083, 54083, 54083,
- 54083, 54083, 54083, 54083, 54083, 54083, 54083, 54083,
- 54083, 54083, 54083, 54083, 54083, 54083, 54091, 54091,
- 54091, 54091, 54091, 54091, 54091, 54091, 54101, 54101,
- 54101, 54101, 54101, 54101, 54101, 54101, 54101, 54101,
- 54121, 54121, 54121, 54121, 54121, 54121, 54121, 54121,
- 54121, 54121, 54121, 54121, 54121, 54121, 54121, 54121,
- 54121, 54121, 54121, 54121, 54133, 54133, 54133, 54133,
- 54133, 54133, 54133, 54133, 54133, 54133, 54133, 54133,
- 54139, 54139, 54139, 54139, 54139, 54139, 54151, 54151,
- 54151, 54151, 54151, 54151, 54151, 54151, 54151, 54151,
- 54151, 54151, 54163, 54163, 54163, 54163, 54163, 54163,
- 54163, 54163, 54163, 54163, 54163, 54163, 54167, 54167,
- 54167, 54167, 54181, 54181, 54181, 54181, 54181, 54181,
- 54181, 54181, 54181, 54181, 54181, 54181, 54181, 54181,
- 54193, 54193, 54193, 54193, 54193, 54193, 54193, 54193,
- 54193, 54193, 54193, 54193, 54217, 54217, 54217, 54217,
- 54217, 54217, 54217, 54217, 54217, 54217, 54217, 54217,
- 54217, 54217, 54217, 54217, 54217, 54217, 54217, 54217,
- 54217, 54217, 54217, 54217, 54251, 54251, 54251, 54251,
- 54251, 54251, 54251, 54251, 54251, 54251, 54251, 54251,
- 54251, 54251, 54251, 54251, 54251, 54251, 54251, 54251,
- 54251, 54251, 54251, 54251, 54251, 54251, 54251, 54251,
- 54251, 54251, 54251, 54251, 54251, 54251, 54269, 54269,
- 54269, 54269, 54269, 54269, 54269, 54269, 54269, 54269,
- 54269, 54269, 54269, 54269, 54269, 54269, 54269, 54269,
- 54277, 54277, 54277, 54277, 54277, 54277, 54277, 54277,
- 54287, 54287, 54287, 54287, 54287, 54287, 54287, 54287,
- 54287, 54287, 54293, 54293, 54293, 54293, 54293, 54293,
- 54311, 54311, 54311, 54311, 54311, 54311, 54311, 54311,
- 54311, 54311, 54311, 54311, 54311, 54311, 54311, 54311,
- 54311, 54311, 54319, 54319, 54319, 54319, 54319, 54319,
- 54319, 54319, 54323, 54323, 54323, 54323, 54331, 54331,
- 54331, 54331, 54331, 54331, 54331, 54331, 54347, 54347,
- 54347, 54347, 54347, 54347, 54347, 54347, 54347, 54347,
- 54347, 54347, 54347, 54347, 54347, 54347, 54361, 54361,
- 54361, 54361, 54361, 54361, 54361, 54361, 54361, 54361,
- 54361, 54361, 54361, 54361, 54367, 54367, 54367, 54367,
- 54367, 54367, 54371, 54371, 54371, 54371, 54377, 54377,
- 54377, 54377, 54377, 54377, 54401, 54401, 54401, 54401,
- 54401, 54401, 54401, 54401, 54401, 54401, 54401, 54401,
- 54401, 54401, 54401, 54401, 54401, 54401, 54401, 54401,
- 54401, 54401, 54401, 54401, 54403, 54403, 54409, 54409,
- 54409, 54409, 54409, 54409, 54413, 54413, 54413, 54413,
- 54419, 54419, 54419, 54419, 54419, 54419, 54421, 54421,
- 54437, 54437, 54437, 54437, 54437, 54437, 54437, 54437,
- 54437, 54437, 54437, 54437, 54437, 54437, 54437, 54437,
- 54443, 54443, 54443, 54443, 54443, 54443, 54449, 54449,
- 54449, 54449, 54449, 54449, 54469, 54469, 54469, 54469,
- 54469, 54469, 54469, 54469, 54469, 54469, 54469, 54469,
- 54469, 54469, 54469, 54469, 54469, 54469, 54469, 54469,
- 54493, 54493, 54493, 54493, 54493, 54493, 54493, 54493,
- 54493, 54493, 54493, 54493, 54493, 54493, 54493, 54493,
- 54493, 54493, 54493, 54493, 54493, 54493, 54493, 54493,
- 54497, 54497, 54497, 54497, 54499, 54499, 54503, 54503,
- 54503, 54503, 54517, 54517, 54517, 54517, 54517, 54517,
- 54517, 54517, 54517, 54517, 54517, 54517, 54517, 54517,
- 54521, 54521, 54521, 54521, 54539, 54539, 54539, 54539,
- 54539, 54539, 54539, 54539, 54539, 54539, 54539, 54539,
- 54539, 54539, 54539, 54539, 54539, 54539, 54541, 54541,
- 54547, 54547, 54547, 54547, 54547, 54547, 54559, 54559,
- 54559, 54559, 54559, 54559, 54559, 54559, 54559, 54559,
- 54559, 54559, 54563, 54563, 54563, 54563, 54577, 54577,
- 54577, 54577, 54577, 54577, 54577, 54577, 54577, 54577,
- 54577, 54577, 54577, 54577, 54581, 54581, 54581, 54581,
- 54583, 54583, 54601, 54601, 54601, 54601, 54601, 54601,
- 54601, 54601, 54601, 54601, 54601, 54601, 54601, 54601,
- 54601, 54601, 54601, 54601, 54617, 54617, 54617, 54617,
- 54617, 54617, 54617, 54617, 54617, 54617, 54617, 54617,
- 54617, 54617, 54617, 54617, 54623, 54623, 54623, 54623,
- 54623, 54623, 54629, 54629, 54629, 54629, 54629, 54629,
- 54631, 54631, 54647, 54647, 54647, 54647, 54647, 54647,
- 54647, 54647, 54647, 54647, 54647, 54647, 54647, 54647,
- 54647, 54647, 54667, 54667, 54667, 54667, 54667, 54667,
- 54667, 54667, 54667, 54667, 54667, 54667, 54667, 54667,
- 54667, 54667, 54667, 54667, 54667, 54667, 54673, 54673,
- 54673, 54673, 54673, 54673, 54679, 54679, 54679, 54679,
- 54679, 54679, 54709, 54709, 54709, 54709, 54709, 54709,
- 54709, 54709, 54709, 54709, 54709, 54709, 54709, 54709,
- 54709, 54709, 54709, 54709, 54709, 54709, 54709, 54709,
- 54709, 54709, 54709, 54709, 54709, 54709, 54709, 54709,
- 54713, 54713, 54713, 54713, 54721, 54721, 54721, 54721,
- 54721, 54721, 54721, 54721, 54727, 54727, 54727, 54727,
- 54727, 54727, 54751, 54751, 54751, 54751, 54751, 54751,
- 54751, 54751, 54751, 54751, 54751, 54751, 54751, 54751,
- 54751, 54751, 54751, 54751, 54751, 54751, 54751, 54751,
- 54751, 54751, 54767, 54767, 54767, 54767, 54767, 54767,
- 54767, 54767, 54767, 54767, 54767, 54767, 54767, 54767,
- 54767, 54767, 54773, 54773, 54773, 54773, 54773, 54773,
- 54779, 54779, 54779, 54779, 54779, 54779, 54787, 54787,
- 54787, 54787, 54787, 54787, 54787, 54787, 54799, 54799,
- 54799, 54799, 54799, 54799, 54799, 54799, 54799, 54799,
- 54799, 54799, 54829, 54829, 54829, 54829, 54829, 54829,
- 54829, 54829, 54829, 54829, 54829, 54829, 54829, 54829,
- 54829, 54829, 54829, 54829, 54829, 54829, 54829, 54829,
- 54829, 54829, 54829, 54829, 54829, 54829, 54829, 54829,
- 54833, 54833, 54833, 54833, 54851, 54851, 54851, 54851,
- 54851, 54851, 54851, 54851, 54851, 54851, 54851, 54851,
- 54851, 54851, 54851, 54851, 54851, 54851, 54869, 54869,
- 54869, 54869, 54869, 54869, 54869, 54869, 54869, 54869,
- 54869, 54869, 54869, 54869, 54869, 54869, 54869, 54869,
- 54877, 54877, 54877, 54877, 54877, 54877, 54877, 54877,
- 54881, 54881, 54881, 54881, 54907, 54907, 54907, 54907,
- 54907, 54907, 54907, 54907, 54907, 54907, 54907, 54907,
- 54907, 54907, 54907, 54907, 54907, 54907, 54907, 54907,
- 54907, 54907, 54907, 54907, 54907, 54907, 54917, 54917,
- 54917, 54917, 54917, 54917, 54917, 54917, 54917, 54917,
- 54919, 54919, 54941, 54941, 54941, 54941, 54941, 54941,
- 54941, 54941, 54941, 54941, 54941, 54941, 54941, 54941,
- 54941, 54941, 54941, 54941, 54941, 54941, 54941, 54941,
- 54949, 54949, 54949, 54949, 54949, 54949, 54949, 54949,
- 54959, 54959, 54959, 54959, 54959, 54959, 54959, 54959,
- 54959, 54959, 54973, 54973, 54973, 54973, 54973, 54973,
- 54973, 54973, 54973, 54973, 54973, 54973, 54973, 54973,
- 54979, 54979, 54979, 54979, 54979, 54979, 54983, 54983,
- 54983, 54983, 55001, 55001, 55001, 55001, 55001, 55001,
- 55001, 55001, 55001, 55001, 55001, 55001, 55001, 55001,
- 55001, 55001, 55001, 55001, 55009, 55009, 55009, 55009,
- 55009, 55009, 55009, 55009, 55021, 55021, 55021, 55021,
- 55021, 55021, 55021, 55021, 55021, 55021, 55021, 55021,
- 55049, 55049, 55049, 55049, 55049, 55049, 55049, 55049,
- 55049, 55049, 55049, 55049, 55049, 55049, 55049, 55049,
- 55049, 55049, 55049, 55049, 55049, 55049, 55049, 55049,
- 55049, 55049, 55049, 55049, 55051, 55051, 55057, 55057,
- 55057, 55057, 55057, 55057, 55061, 55061, 55061, 55061,
- 55073, 55073, 55073, 55073, 55073, 55073, 55073, 55073,
- 55073, 55073, 55073, 55073, 55079, 55079, 55079, 55079,
- 55079, 55079, 55103, 55103, 55103, 55103, 55103, 55103,
- 55103, 55103, 55103, 55103, 55103, 55103, 55103, 55103,
- 55103, 55103, 55103, 55103, 55103, 55103, 55103, 55103,
- 55103, 55103, 55109, 55109, 55109, 55109, 55109, 55109,
- 55117, 55117, 55117, 55117, 55117, 55117, 55117, 55117,
- 55127, 55127, 55127, 55127, 55127, 55127, 55127, 55127,
- 55127, 55127, 55147, 55147, 55147, 55147, 55147, 55147,
- 55147, 55147, 55147, 55147, 55147, 55147, 55147, 55147,
- 55147, 55147, 55147, 55147, 55147, 55147, 55163, 55163,
- 55163, 55163, 55163, 55163, 55163, 55163, 55163, 55163,
- 55163, 55163, 55163, 55163, 55163, 55163, 55171, 55171,
- 55171, 55171, 55171, 55171, 55171, 55171, 55201, 55201,
- 55201, 55201, 55201, 55201, 55201, 55201, 55201, 55201,
- 55201, 55201, 55201, 55201, 55201, 55201, 55201, 55201,
- 55201, 55201, 55201, 55201, 55201, 55201, 55201, 55201,
- 55201, 55201, 55201, 55201, 55207, 55207, 55207, 55207,
- 55207, 55207, 55213, 55213, 55213, 55213, 55213, 55213,
- 55217, 55217, 55217, 55217, 55219, 55219, 55229, 55229,
- 55229, 55229, 55229, 55229, 55229, 55229, 55229, 55229,
- 55243, 55243, 55243, 55243, 55243, 55243, 55243, 55243,
- 55243, 55243, 55243, 55243, 55243, 55243, 55249, 55249,
- 55249, 55249, 55249, 55249, 55259, 55259, 55259, 55259,
- 55259, 55259, 55259, 55259, 55259, 55259, 55291, 55291,
- 55291, 55291, 55291, 55291, 55291, 55291, 55291, 55291,
- 55291, 55291, 55291, 55291, 55291, 55291, 55291, 55291,
- 55291, 55291, 55291, 55291, 55291, 55291, 55291, 55291,
- 55291, 55291, 55291, 55291, 55291, 55291, 55313, 55313,
- 55313, 55313, 55313, 55313, 55313, 55313, 55313, 55313,
- 55313, 55313, 55313, 55313, 55313, 55313, 55313, 55313,
- 55313, 55313, 55313, 55313, 55331, 55331, 55331, 55331,
- 55331, 55331, 55331, 55331, 55331, 55331, 55331, 55331,
- 55331, 55331, 55331, 55331, 55331, 55331, 55333, 55333,
- 55337, 55337, 55337, 55337, 55339, 55339, 55343, 55343,
- 55343, 55343, 55351, 55351, 55351, 55351, 55351, 55351,
- 55351, 55351, 55373, 55373, 55373, 55373, 55373, 55373,
- 55373, 55373, 55373, 55373, 55373, 55373, 55373, 55373,
- 55373, 55373, 55373, 55373, 55373, 55373, 55373, 55373,
- 55381, 55381, 55381, 55381, 55381, 55381, 55381, 55381,
- 55399, 55399, 55399, 55399, 55399, 55399, 55399, 55399,
- 55399, 55399, 55399, 55399, 55399, 55399, 55399, 55399,
- 55399, 55399, 55411, 55411, 55411, 55411, 55411, 55411,
- 55411, 55411, 55411, 55411, 55411, 55411, 55439, 55439,
- 55439, 55439, 55439, 55439, 55439, 55439, 55439, 55439,
- 55439, 55439, 55439, 55439, 55439, 55439, 55439, 55439,
- 55439, 55439, 55439, 55439, 55439, 55439, 55439, 55439,
- 55439, 55439, 55441, 55441, 55457, 55457, 55457, 55457,
- 55457, 55457, 55457, 55457, 55457, 55457, 55457, 55457,
- 55457, 55457, 55457, 55457, 55469, 55469, 55469, 55469,
- 55469, 55469, 55469, 55469, 55469, 55469, 55469, 55469,
- 55487, 55487, 55487, 55487, 55487, 55487, 55487, 55487,
- 55487, 55487, 55487, 55487, 55487, 55487, 55487, 55487,
- 55487, 55487, 55501, 55501, 55501, 55501, 55501, 55501,
- 55501, 55501, 55501, 55501, 55501, 55501, 55501, 55501,
- 55511, 55511, 55511, 55511, 55511, 55511, 55511, 55511,
- 55511, 55511, 55529, 55529, 55529, 55529, 55529, 55529,
- 55529, 55529, 55529, 55529, 55529, 55529, 55529, 55529,
- 55529, 55529, 55529, 55529, 55541, 55541, 55541, 55541,
- 55541, 55541, 55541, 55541, 55541, 55541, 55541, 55541,
- 55547, 55547, 55547, 55547, 55547, 55547, 55579, 55579,
- 55579, 55579, 55579, 55579, 55579, 55579, 55579, 55579,
- 55579, 55579, 55579, 55579, 55579, 55579, 55579, 55579,
- 55579, 55579, 55579, 55579, 55579, 55579, 55579, 55579,
- 55579, 55579, 55579, 55579, 55579, 55579, 55589, 55589,
- 55589, 55589, 55589, 55589, 55589, 55589, 55589, 55589,
- 55603, 55603, 55603, 55603, 55603, 55603, 55603, 55603,
- 55603, 55603, 55603, 55603, 55603, 55603, 55609, 55609,
- 55609, 55609, 55609, 55609, 55619, 55619, 55619, 55619,
- 55619, 55619, 55619, 55619, 55619, 55619, 55621, 55621,
- 55631, 55631, 55631, 55631, 55631, 55631, 55631, 55631,
- 55631, 55631, 55633, 55633, 55639, 55639, 55639, 55639,
- 55639, 55639, 55661, 55661, 55661, 55661, 55661, 55661,
- 55661, 55661, 55661, 55661, 55661, 55661, 55661, 55661,
- 55661, 55661, 55661, 55661, 55661, 55661, 55661, 55661,
- 55663, 55663, 55667, 55667, 55667, 55667, 55673, 55673,
- 55673, 55673, 55673, 55673, 55681, 55681, 55681, 55681,
- 55681, 55681, 55681, 55681, 55691, 55691, 55691, 55691,
- 55691, 55691, 55691, 55691, 55691, 55691, 55697, 55697,
- 55697, 55697, 55697, 55697, 55711, 55711, 55711, 55711,
- 55711, 55711, 55711, 55711, 55711, 55711, 55711, 55711,
- 55711, 55711, 55717, 55717, 55717, 55717, 55717, 55717,
- 55721, 55721, 55721, 55721, 55733, 55733, 55733, 55733,
- 55733, 55733, 55733, 55733, 55733, 55733, 55733, 55733,
- 55763, 55763, 55763, 55763, 55763, 55763, 55763, 55763,
- 55763, 55763, 55763, 55763, 55763, 55763, 55763, 55763,
- 55763, 55763, 55763, 55763, 55763, 55763, 55763, 55763,
- 55763, 55763, 55763, 55763, 55763, 55763, 55787, 55787,
- 55787, 55787, 55787, 55787, 55787, 55787, 55787, 55787,
- 55787, 55787, 55787, 55787, 55787, 55787, 55787, 55787,
- 55787, 55787, 55787, 55787, 55787, 55787, 55793, 55793,
- 55793, 55793, 55793, 55793, 55799, 55799, 55799, 55799,
- 55799, 55799, 55807, 55807, 55807, 55807, 55807, 55807,
- 55807, 55807, 55813, 55813, 55813, 55813, 55813, 55813,
- 55817, 55817, 55817, 55817, 55819, 55819, 55823, 55823,
- 55823, 55823, 55829, 55829, 55829, 55829, 55829, 55829,
- 55837, 55837, 55837, 55837, 55837, 55837, 55837, 55837,
- 55843, 55843, 55843, 55843, 55843, 55843, 55849, 55849,
- 55849, 55849, 55849, 55849, 55871, 55871, 55871, 55871,
- 55871, 55871, 55871, 55871, 55871, 55871, 55871, 55871,
- 55871, 55871, 55871, 55871, 55871, 55871, 55871, 55871,
- 55871, 55871, 55889, 55889, 55889, 55889, 55889, 55889,
- 55889, 55889, 55889, 55889, 55889, 55889, 55889, 55889,
- 55889, 55889, 55889, 55889, 55897, 55897, 55897, 55897,
- 55897, 55897, 55897, 55897, 55901, 55901, 55901, 55901,
- 55903, 55903, 55921, 55921, 55921, 55921, 55921, 55921,
- 55921, 55921, 55921, 55921, 55921, 55921, 55921, 55921,
- 55921, 55921, 55921, 55921, 55927, 55927, 55927, 55927,
- 55927, 55927, 55931, 55931, 55931, 55931, 55933, 55933,
- 55949, 55949, 55949, 55949, 55949, 55949, 55949, 55949,
- 55949, 55949, 55949, 55949, 55949, 55949, 55949, 55949,
- 55967, 55967, 55967, 55967, 55967, 55967, 55967, 55967,
- 55967, 55967, 55967, 55967, 55967, 55967, 55967, 55967,
- 55967, 55967, 55987, 55987, 55987, 55987, 55987, 55987,
- 55987, 55987, 55987, 55987, 55987, 55987, 55987, 55987,
- 55987, 55987, 55987, 55987, 55987, 55987, 55997, 55997,
- 55997, 55997, 55997, 55997, 55997, 55997, 55997, 55997,
- 56003, 56003, 56003, 56003, 56003, 56003, 56009, 56009,
- 56009, 56009, 56009, 56009, 56039, 56039, 56039, 56039,
- 56039, 56039, 56039, 56039, 56039, 56039, 56039, 56039,
- 56039, 56039, 56039, 56039, 56039, 56039, 56039, 56039,
- 56039, 56039, 56039, 56039, 56039, 56039, 56039, 56039,
- 56039, 56039, 56041, 56041, 56053, 56053, 56053, 56053,
- 56053, 56053, 56053, 56053, 56053, 56053, 56053, 56053,
- 56081, 56081, 56081, 56081, 56081, 56081, 56081, 56081,
- 56081, 56081, 56081, 56081, 56081, 56081, 56081, 56081,
- 56081, 56081, 56081, 56081, 56081, 56081, 56081, 56081,
- 56081, 56081, 56081, 56081, 56087, 56087, 56087, 56087,
- 56087, 56087, 56093, 56093, 56093, 56093, 56093, 56093,
- 56099, 56099, 56099, 56099, 56099, 56099, 56101, 56101,
- 56113, 56113, 56113, 56113, 56113, 56113, 56113, 56113,
- 56113, 56113, 56113, 56113, 56123, 56123, 56123, 56123,
- 56123, 56123, 56123, 56123, 56123, 56123, 56131, 56131,
- 56131, 56131, 56131, 56131, 56131, 56131, 56149, 56149,
- 56149, 56149, 56149, 56149, 56149, 56149, 56149, 56149,
- 56149, 56149, 56149, 56149, 56149, 56149, 56149, 56149,
- 56167, 56167, 56167, 56167, 56167, 56167, 56167, 56167,
- 56167, 56167, 56167, 56167, 56167, 56167, 56167, 56167,
- 56167, 56167, 56171, 56171, 56171, 56171, 56179, 56179,
- 56179, 56179, 56179, 56179, 56179, 56179, 56197, 56197,
- 56197, 56197, 56197, 56197, 56197, 56197, 56197, 56197,
- 56197, 56197, 56197, 56197, 56197, 56197, 56197, 56197,
- 56207, 56207, 56207, 56207, 56207, 56207, 56207, 56207,
- 56207, 56207, 56209, 56209, 56237, 56237, 56237, 56237,
- 56237, 56237, 56237, 56237, 56237, 56237, 56237, 56237,
- 56237, 56237, 56237, 56237, 56237, 56237, 56237, 56237,
- 56237, 56237, 56237, 56237, 56237, 56237, 56237, 56237,
- 56239, 56239, 56249, 56249, 56249, 56249, 56249, 56249,
- 56249, 56249, 56249, 56249, 56263, 56263, 56263, 56263,
- 56263, 56263, 56263, 56263, 56263, 56263, 56263, 56263,
- 56263, 56263, 56267, 56267, 56267, 56267, 56269, 56269,
- 56299, 56299, 56299, 56299, 56299, 56299, 56299, 56299,
- 56299, 56299, 56299, 56299, 56299, 56299, 56299, 56299,
- 56299, 56299, 56299, 56299, 56299, 56299, 56299, 56299,
- 56299, 56299, 56299, 56299, 56299, 56299, 56311, 56311,
- 56311, 56311, 56311, 56311, 56311, 56311, 56311, 56311,
- 56311, 56311, 56333, 56333, 56333, 56333, 56333, 56333,
- 56333, 56333, 56333, 56333, 56333, 56333, 56333, 56333,
- 56333, 56333, 56333, 56333, 56333, 56333, 56333, 56333,
- 56359, 56359, 56359, 56359, 56359, 56359, 56359, 56359,
- 56359, 56359, 56359, 56359, 56359, 56359, 56359, 56359,
- 56359, 56359, 56359, 56359, 56359, 56359, 56359, 56359,
- 56359, 56359, 56369, 56369, 56369, 56369, 56369, 56369,
- 56369, 56369, 56369, 56369, 56377, 56377, 56377, 56377,
- 56377, 56377, 56377, 56377, 56383, 56383, 56383, 56383,
- 56383, 56383, 56393, 56393, 56393, 56393, 56393, 56393,
- 56393, 56393, 56393, 56393, 56401, 56401, 56401, 56401,
- 56401, 56401, 56401, 56401, 56417, 56417, 56417, 56417,
- 56417, 56417, 56417, 56417, 56417, 56417, 56417, 56417,
- 56417, 56417, 56417, 56417, 56431, 56431, 56431, 56431,
- 56431, 56431, 56431, 56431, 56431, 56431, 56431, 56431,
- 56431, 56431, 56437, 56437, 56437, 56437, 56437, 56437,
- 56443, 56443, 56443, 56443, 56443, 56443, 56453, 56453,
- 56453, 56453, 56453, 56453, 56453, 56453, 56453, 56453,
- 56467, 56467, 56467, 56467, 56467, 56467, 56467, 56467,
- 56467, 56467, 56467, 56467, 56467, 56467, 56473, 56473,
- 56473, 56473, 56473, 56473, 56477, 56477, 56477, 56477,
- 56479, 56479, 56489, 56489, 56489, 56489, 56489, 56489,
- 56489, 56489, 56489, 56489, 56501, 56501, 56501, 56501,
- 56501, 56501, 56501, 56501, 56501, 56501, 56501, 56501,
- 56503, 56503, 56509, 56509, 56509, 56509, 56509, 56509,
- 56519, 56519, 56519, 56519, 56519, 56519, 56519, 56519,
- 56519, 56519, 56527, 56527, 56527, 56527, 56527, 56527,
- 56527, 56527, 56531, 56531, 56531, 56531, 56533, 56533,
- 56543, 56543, 56543, 56543, 56543, 56543, 56543, 56543,
- 56543, 56543, 56569, 56569, 56569, 56569, 56569, 56569,
- 56569, 56569, 56569, 56569, 56569, 56569, 56569, 56569,
- 56569, 56569, 56569, 56569, 56569, 56569, 56569, 56569,
- 56569, 56569, 56569, 56569, 56591, 56591, 56591, 56591,
- 56591, 56591, 56591, 56591, 56591, 56591, 56591, 56591,
- 56591, 56591, 56591, 56591, 56591, 56591, 56591, 56591,
- 56591, 56591, 56597, 56597, 56597, 56597, 56597, 56597,
- 56599, 56599, 56611, 56611, 56611, 56611, 56611, 56611,
- 56611, 56611, 56611, 56611, 56611, 56611, 56629, 56629,
- 56629, 56629, 56629, 56629, 56629, 56629, 56629, 56629,
- 56629, 56629, 56629, 56629, 56629, 56629, 56629, 56629,
- 56633, 56633, 56633, 56633, 56659, 56659, 56659, 56659,
- 56659, 56659, 56659, 56659, 56659, 56659, 56659, 56659,
- 56659, 56659, 56659, 56659, 56659, 56659, 56659, 56659,
- 56659, 56659, 56659, 56659, 56659, 56659, 56663, 56663,
- 56663, 56663, 56671, 56671, 56671, 56671, 56671, 56671,
- 56671, 56671, 56681, 56681, 56681, 56681, 56681, 56681,
- 56681, 56681, 56681, 56681, 56687, 56687, 56687, 56687,
- 56687, 56687, 56701, 56701, 56701, 56701, 56701, 56701,
- 56701, 56701, 56701, 56701, 56701, 56701, 56701, 56701,
- 56711, 56711, 56711, 56711, 56711, 56711, 56711, 56711,
- 56711, 56711, 56713, 56713, 56731, 56731, 56731, 56731,
- 56731, 56731, 56731, 56731, 56731, 56731, 56731, 56731,
- 56731, 56731, 56731, 56731, 56731, 56731, 56737, 56737,
- 56737, 56737, 56737, 56737, 56747, 56747, 56747, 56747,
- 56747, 56747, 56747, 56747, 56747, 56747, 56767, 56767,
- 56767, 56767, 56767, 56767, 56767, 56767, 56767, 56767,
- 56767, 56767, 56767, 56767, 56767, 56767, 56767, 56767,
- 56767, 56767, 56773, 56773, 56773, 56773, 56773, 56773,
- 56779, 56779, 56779, 56779, 56779, 56779, 56783, 56783,
- 56783, 56783, 56807, 56807, 56807, 56807, 56807, 56807,
- 56807, 56807, 56807, 56807, 56807, 56807, 56807, 56807,
- 56807, 56807, 56807, 56807, 56807, 56807, 56807, 56807,
- 56807, 56807, 56809, 56809, 56813, 56813, 56813, 56813,
- 56821, 56821, 56821, 56821, 56821, 56821, 56821, 56821,
- 56827, 56827, 56827, 56827, 56827, 56827, 56843, 56843,
- 56843, 56843, 56843, 56843, 56843, 56843, 56843, 56843,
- 56843, 56843, 56843, 56843, 56843, 56843, 56857, 56857,
- 56857, 56857, 56857, 56857, 56857, 56857, 56857, 56857,
- 56857, 56857, 56857, 56857, 56873, 56873, 56873, 56873,
- 56873, 56873, 56873, 56873, 56873, 56873, 56873, 56873,
- 56873, 56873, 56873, 56873, 56891, 56891, 56891, 56891,
- 56891, 56891, 56891, 56891, 56891, 56891, 56891, 56891,
- 56891, 56891, 56891, 56891, 56891, 56891, 56893, 56893,
- 56897, 56897, 56897, 56897, 56909, 56909, 56909, 56909,
- 56909, 56909, 56909, 56909, 56909, 56909, 56909, 56909,
- 56911, 56911, 56921, 56921, 56921, 56921, 56921, 56921,
- 56921, 56921, 56921, 56921, 56923, 56923, 56929, 56929,
- 56929, 56929, 56929, 56929, 56941, 56941, 56941, 56941,
- 56941, 56941, 56941, 56941, 56941, 56941, 56941, 56941,
- 56951, 56951, 56951, 56951, 56951, 56951, 56951, 56951,
- 56951, 56951, 56957, 56957, 56957, 56957, 56957, 56957,
- 56963, 56963, 56963, 56963, 56963, 56963, 56983, 56983,
- 56983, 56983, 56983, 56983, 56983, 56983, 56983, 56983,
- 56983, 56983, 56983, 56983, 56983, 56983, 56983, 56983,
- 56983, 56983, 56989, 56989, 56989, 56989, 56989, 56989,
- 56993, 56993, 56993, 56993, 56999, 56999, 56999, 56999,
- 56999, 56999, 57037, 57037, 57037, 57037, 57037, 57037,
- 57037, 57037, 57037, 57037, 57037, 57037, 57037, 57037,
- 57037, 57037, 57037, 57037, 57037, 57037, 57037, 57037,
- 57037, 57037, 57037, 57037, 57037, 57037, 57037, 57037,
- 57037, 57037, 57037, 57037, 57037, 57037, 57037, 57037,
- 57041, 57041, 57041, 57041, 57047, 57047, 57047, 57047,
- 57047, 57047, 57059, 57059, 57059, 57059, 57059, 57059,
- 57059, 57059, 57059, 57059, 57059, 57059, 57073, 57073,
- 57073, 57073, 57073, 57073, 57073, 57073, 57073, 57073,
- 57073, 57073, 57073, 57073, 57077, 57077, 57077, 57077,
- 57089, 57089, 57089, 57089, 57089, 57089, 57089, 57089,
- 57089, 57089, 57089, 57089, 57097, 57097, 57097, 57097,
- 57097, 57097, 57097, 57097, 57107, 57107, 57107, 57107,
- 57107, 57107, 57107, 57107, 57107, 57107, 57119, 57119,
- 57119, 57119, 57119, 57119, 57119, 57119, 57119, 57119,
- 57119, 57119, 57131, 57131, 57131, 57131, 57131, 57131,
- 57131, 57131, 57131, 57131, 57131, 57131, 57139, 57139,
- 57139, 57139, 57139, 57139, 57139, 57139, 57143, 57143,
- 57143, 57143, 57149, 57149, 57149, 57149, 57149, 57149,
- 57163, 57163, 57163, 57163, 57163, 57163, 57163, 57163,
- 57163, 57163, 57163, 57163, 57163, 57163, 57173, 57173,
- 57173, 57173, 57173, 57173, 57173, 57173, 57173, 57173,
- 57179, 57179, 57179, 57179, 57179, 57179, 57191, 57191,
- 57191, 57191, 57191, 57191, 57191, 57191, 57191, 57191,
- 57191, 57191, 57193, 57193, 57203, 57203, 57203, 57203,
- 57203, 57203, 57203, 57203, 57203, 57203, 57221, 57221,
- 57221, 57221, 57221, 57221, 57221, 57221, 57221, 57221,
- 57221, 57221, 57221, 57221, 57221, 57221, 57221, 57221,
- 57223, 57223, 57241, 57241, 57241, 57241, 57241, 57241,
- 57241, 57241, 57241, 57241, 57241, 57241, 57241, 57241,
- 57241, 57241, 57241, 57241, 57251, 57251, 57251, 57251,
- 57251, 57251, 57251, 57251, 57251, 57251, 57259, 57259,
- 57259, 57259, 57259, 57259, 57259, 57259, 57269, 57269,
- 57269, 57269, 57269, 57269, 57269, 57269, 57269, 57269,
- 57271, 57271, 57283, 57283, 57283, 57283, 57283, 57283,
- 57283, 57283, 57283, 57283, 57283, 57283, 57287, 57287,
- 57287, 57287, 57301, 57301, 57301, 57301, 57301, 57301,
- 57301, 57301, 57301, 57301, 57301, 57301, 57301, 57301,
- 57329, 57329, 57329, 57329, 57329, 57329, 57329, 57329,
- 57329, 57329, 57329, 57329, 57329, 57329, 57329, 57329,
- 57329, 57329, 57329, 57329, 57329, 57329, 57329, 57329,
- 57329, 57329, 57329, 57329, 57331, 57331, 57347, 57347,
- 57347, 57347, 57347, 57347, 57347, 57347, 57347, 57347,
- 57347, 57347, 57347, 57347, 57347, 57347, 57349, 57349,
- 57367, 57367, 57367, 57367, 57367, 57367, 57367, 57367,
- 57367, 57367, 57367, 57367, 57367, 57367, 57367, 57367,
- 57367, 57367, 57373, 57373, 57373, 57373, 57373, 57373,
- 57383, 57383, 57383, 57383, 57383, 57383, 57383, 57383,
- 57383, 57383, 57389, 57389, 57389, 57389, 57389, 57389,
- 57397, 57397, 57397, 57397, 57397, 57397, 57397, 57397,
- 57413, 57413, 57413, 57413, 57413, 57413, 57413, 57413,
- 57413, 57413, 57413, 57413, 57413, 57413, 57413, 57413,
- 57427, 57427, 57427, 57427, 57427, 57427, 57427, 57427,
- 57427, 57427, 57427, 57427, 57427, 57427, 57457, 57457,
- 57457, 57457, 57457, 57457, 57457, 57457, 57457, 57457,
- 57457, 57457, 57457, 57457, 57457, 57457, 57457, 57457,
- 57457, 57457, 57457, 57457, 57457, 57457, 57457, 57457,
- 57457, 57457, 57457, 57457, 57467, 57467, 57467, 57467,
- 57467, 57467, 57467, 57467, 57467, 57467, 57487, 57487,
- 57487, 57487, 57487, 57487, 57487, 57487, 57487, 57487,
- 57487, 57487, 57487, 57487, 57487, 57487, 57487, 57487,
- 57487, 57487, 57493, 57493, 57493, 57493, 57493, 57493,
- 57503, 57503, 57503, 57503, 57503, 57503, 57503, 57503,
- 57503, 57503, 57527, 57527, 57527, 57527, 57527, 57527,
- 57527, 57527, 57527, 57527, 57527, 57527, 57527, 57527,
- 57527, 57527, 57527, 57527, 57527, 57527, 57527, 57527,
- 57527, 57527, 57529, 57529, 57557, 57557, 57557, 57557,
- 57557, 57557, 57557, 57557, 57557, 57557, 57557, 57557,
- 57557, 57557, 57557, 57557, 57557, 57557, 57557, 57557,
- 57557, 57557, 57557, 57557, 57557, 57557, 57557, 57557,
- 57559, 57559, 57571, 57571, 57571, 57571, 57571, 57571,
- 57571, 57571, 57571, 57571, 57571, 57571, 57587, 57587,
- 57587, 57587, 57587, 57587, 57587, 57587, 57587, 57587,
- 57587, 57587, 57587, 57587, 57587, 57587, 57593, 57593,
- 57593, 57593, 57593, 57593, 57601, 57601, 57601, 57601,
- 57601, 57601, 57601, 57601, 57637, 57637, 57637, 57637,
- 57637, 57637, 57637, 57637, 57637, 57637, 57637, 57637,
- 57637, 57637, 57637, 57637, 57637, 57637, 57637, 57637,
- 57637, 57637, 57637, 57637, 57637, 57637, 57637, 57637,
- 57637, 57637, 57637, 57637, 57637, 57637, 57637, 57637,
- 57641, 57641, 57641, 57641, 57649, 57649, 57649, 57649,
- 57649, 57649, 57649, 57649, 57653, 57653, 57653, 57653,
- 57667, 57667, 57667, 57667, 57667, 57667, 57667, 57667,
- 57667, 57667, 57667, 57667, 57667, 57667, 57679, 57679,
- 57679, 57679, 57679, 57679, 57679, 57679, 57679, 57679,
- 57679, 57679, 57689, 57689, 57689, 57689, 57689, 57689,
- 57689, 57689, 57689, 57689, 57697, 57697, 57697, 57697,
- 57697, 57697, 57697, 57697, 57709, 57709, 57709, 57709,
- 57709, 57709, 57709, 57709, 57709, 57709, 57709, 57709,
- 57713, 57713, 57713, 57713, 57719, 57719, 57719, 57719,
- 57719, 57719, 57727, 57727, 57727, 57727, 57727, 57727,
- 57727, 57727, 57731, 57731, 57731, 57731, 57737, 57737,
- 57737, 57737, 57737, 57737, 57751, 57751, 57751, 57751,
- 57751, 57751, 57751, 57751, 57751, 57751, 57751, 57751,
- 57751, 57751, 57773, 57773, 57773, 57773, 57773, 57773,
- 57773, 57773, 57773, 57773, 57773, 57773, 57773, 57773,
- 57773, 57773, 57773, 57773, 57773, 57773, 57773, 57773,
- 57781, 57781, 57781, 57781, 57781, 57781, 57781, 57781,
- 57787, 57787, 57787, 57787, 57787, 57787, 57791, 57791,
- 57791, 57791, 57793, 57793, 57803, 57803, 57803, 57803,
- 57803, 57803, 57803, 57803, 57803, 57803, 57809, 57809,
- 57809, 57809, 57809, 57809, 57829, 57829, 57829, 57829,
- 57829, 57829, 57829, 57829, 57829, 57829, 57829, 57829,
- 57829, 57829, 57829, 57829, 57829, 57829, 57829, 57829,
- 57839, 57839, 57839, 57839, 57839, 57839, 57839, 57839,
- 57839, 57839, 57847, 57847, 57847, 57847, 57847, 57847,
- 57847, 57847, 57853, 57853, 57853, 57853, 57853, 57853,
- 57859, 57859, 57859, 57859, 57859, 57859, 57881, 57881,
- 57881, 57881, 57881, 57881, 57881, 57881, 57881, 57881,
- 57881, 57881, 57881, 57881, 57881, 57881, 57881, 57881,
- 57881, 57881, 57881, 57881, 57899, 57899, 57899, 57899,
- 57899, 57899, 57899, 57899, 57899, 57899, 57899, 57899,
- 57899, 57899, 57899, 57899, 57899, 57899, 57901, 57901,
- 57917, 57917, 57917, 57917, 57917, 57917, 57917, 57917,
- 57917, 57917, 57917, 57917, 57917, 57917, 57917, 57917,
- 57923, 57923, 57923, 57923, 57923, 57923, 57943, 57943,
- 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943,
- 57943, 57943, 57943, 57943, 57943, 57943, 57943, 57943,
- 57943, 57943, 57947, 57947, 57947, 57947, 57973, 57973,
- 57973, 57973, 57973, 57973, 57973, 57973, 57973, 57973,
- 57973, 57973, 57973, 57973, 57973, 57973, 57973, 57973,
- 57973, 57973, 57973, 57973, 57973, 57973, 57973, 57973,
- 57977, 57977, 57977, 57977, 57991, 57991, 57991, 57991,
- 57991, 57991, 57991, 57991, 57991, 57991, 57991, 57991,
- 57991, 57991, 58013, 58013, 58013, 58013, 58013, 58013,
- 58013, 58013, 58013, 58013, 58013, 58013, 58013, 58013,
- 58013, 58013, 58013, 58013, 58013, 58013, 58013, 58013,
- 58027, 58027, 58027, 58027, 58027, 58027, 58027, 58027,
- 58027, 58027, 58027, 58027, 58027, 58027, 58031, 58031,
- 58031, 58031, 58043, 58043, 58043, 58043, 58043, 58043,
- 58043, 58043, 58043, 58043, 58043, 58043, 58049, 58049,
- 58049, 58049, 58049, 58049, 58057, 58057, 58057, 58057,
- 58057, 58057, 58057, 58057, 58061, 58061, 58061, 58061,
- 58067, 58067, 58067, 58067, 58067, 58067, 58073, 58073,
- 58073, 58073, 58073, 58073, 58099, 58099, 58099, 58099,
- 58099, 58099, 58099, 58099, 58099, 58099, 58099, 58099,
- 58099, 58099, 58099, 58099, 58099, 58099, 58099, 58099,
- 58099, 58099, 58099, 58099, 58099, 58099, 58109, 58109,
- 58109, 58109, 58109, 58109, 58109, 58109, 58109, 58109,
- 58111, 58111, 58129, 58129, 58129, 58129, 58129, 58129,
- 58129, 58129, 58129, 58129, 58129, 58129, 58129, 58129,
- 58129, 58129, 58129, 58129, 58147, 58147, 58147, 58147,
- 58147, 58147, 58147, 58147, 58147, 58147, 58147, 58147,
- 58147, 58147, 58147, 58147, 58147, 58147, 58151, 58151,
- 58151, 58151, 58153, 58153, 58169, 58169, 58169, 58169,
- 58169, 58169, 58169, 58169, 58169, 58169, 58169, 58169,
- 58169, 58169, 58169, 58169, 58171, 58171, 58189, 58189,
- 58189, 58189, 58189, 58189, 58189, 58189, 58189, 58189,
- 58189, 58189, 58189, 58189, 58189, 58189, 58189, 58189,
- 58193, 58193, 58193, 58193, 58199, 58199, 58199, 58199,
- 58199, 58199, 58207, 58207, 58207, 58207, 58207, 58207,
- 58207, 58207, 58211, 58211, 58211, 58211, 58217, 58217,
- 58217, 58217, 58217, 58217, 58229, 58229, 58229, 58229,
- 58229, 58229, 58229, 58229, 58229, 58229, 58229, 58229,
- 58231, 58231, 58237, 58237, 58237, 58237, 58237, 58237,
- 58243, 58243, 58243, 58243, 58243, 58243, 58271, 58271,
- 58271, 58271, 58271, 58271, 58271, 58271, 58271, 58271,
- 58271, 58271, 58271, 58271, 58271, 58271, 58271, 58271,
- 58271, 58271, 58271, 58271, 58271, 58271, 58271, 58271,
- 58271, 58271, 58309, 58309, 58309, 58309, 58309, 58309,
- 58309, 58309, 58309, 58309, 58309, 58309, 58309, 58309,
- 58309, 58309, 58309, 58309, 58309, 58309, 58309, 58309,
- 58309, 58309, 58309, 58309, 58309, 58309, 58309, 58309,
- 58309, 58309, 58309, 58309, 58309, 58309, 58309, 58309,
- 58313, 58313, 58313, 58313, 58321, 58321, 58321, 58321,
- 58321, 58321, 58321, 58321, 58337, 58337, 58337, 58337,
- 58337, 58337, 58337, 58337, 58337, 58337, 58337, 58337,
- 58337, 58337, 58337, 58337, 58363, 58363, 58363, 58363,
- 58363, 58363, 58363, 58363, 58363, 58363, 58363, 58363,
- 58363, 58363, 58363, 58363, 58363, 58363, 58363, 58363,
- 58363, 58363, 58363, 58363, 58363, 58363, 58367, 58367,
- 58367, 58367, 58369, 58369, 58379, 58379, 58379, 58379,
- 58379, 58379, 58379, 58379, 58379, 58379, 58391, 58391,
- 58391, 58391, 58391, 58391, 58391, 58391, 58391, 58391,
- 58391, 58391, 58393, 58393, 58403, 58403, 58403, 58403,
- 58403, 58403, 58403, 58403, 58403, 58403, 58411, 58411,
- 58411, 58411, 58411, 58411, 58411, 58411, 58417, 58417,
- 58417, 58417, 58417, 58417, 58427, 58427, 58427, 58427,
- 58427, 58427, 58427, 58427, 58427, 58427, 58439, 58439,
- 58439, 58439, 58439, 58439, 58439, 58439, 58439, 58439,
- 58439, 58439, 58441, 58441, 58451, 58451, 58451, 58451,
- 58451, 58451, 58451, 58451, 58451, 58451, 58453, 58453,
- 58477, 58477, 58477, 58477, 58477, 58477, 58477, 58477,
- 58477, 58477, 58477, 58477, 58477, 58477, 58477, 58477,
- 58477, 58477, 58477, 58477, 58477, 58477, 58477, 58477,
- 58481, 58481, 58481, 58481, 58511, 58511, 58511, 58511,
- 58511, 58511, 58511, 58511, 58511, 58511, 58511, 58511,
- 58511, 58511, 58511, 58511, 58511, 58511, 58511, 58511,
- 58511, 58511, 58511, 58511, 58511, 58511, 58511, 58511,
- 58511, 58511, 58537, 58537, 58537, 58537, 58537, 58537,
- 58537, 58537, 58537, 58537, 58537, 58537, 58537, 58537,
- 58537, 58537, 58537, 58537, 58537, 58537, 58537, 58537,
- 58537, 58537, 58537, 58537, 58543, 58543, 58543, 58543,
- 58543, 58543, 58549, 58549, 58549, 58549, 58549, 58549,
- 58567, 58567, 58567, 58567, 58567, 58567, 58567, 58567,
- 58567, 58567, 58567, 58567, 58567, 58567, 58567, 58567,
- 58567, 58567, 58573, 58573, 58573, 58573, 58573, 58573,
- 58579, 58579, 58579, 58579, 58579, 58579, 58601, 58601,
- 58601, 58601, 58601, 58601, 58601, 58601, 58601, 58601,
- 58601, 58601, 58601, 58601, 58601, 58601, 58601, 58601,
- 58601, 58601, 58601, 58601, 58603, 58603, 58613, 58613,
- 58613, 58613, 58613, 58613, 58613, 58613, 58613, 58613,
- 58631, 58631, 58631, 58631, 58631, 58631, 58631, 58631,
- 58631, 58631, 58631, 58631, 58631, 58631, 58631, 58631,
- 58631, 58631, 58657, 58657, 58657, 58657, 58657, 58657,
- 58657, 58657, 58657, 58657, 58657, 58657, 58657, 58657,
- 58657, 58657, 58657, 58657, 58657, 58657, 58657, 58657,
- 58657, 58657, 58657, 58657, 58661, 58661, 58661, 58661,
- 58679, 58679, 58679, 58679, 58679, 58679, 58679, 58679,
- 58679, 58679, 58679, 58679, 58679, 58679, 58679, 58679,
- 58679, 58679, 58687, 58687, 58687, 58687, 58687, 58687,
- 58687, 58687, 58693, 58693, 58693, 58693, 58693, 58693,
- 58699, 58699, 58699, 58699, 58699, 58699, 58711, 58711,
- 58711, 58711, 58711, 58711, 58711, 58711, 58711, 58711,
- 58711, 58711, 58727, 58727, 58727, 58727, 58727, 58727,
- 58727, 58727, 58727, 58727, 58727, 58727, 58727, 58727,
- 58727, 58727, 58733, 58733, 58733, 58733, 58733, 58733,
- 58741, 58741, 58741, 58741, 58741, 58741, 58741, 58741,
- 58757, 58757, 58757, 58757, 58757, 58757, 58757, 58757,
- 58757, 58757, 58757, 58757, 58757, 58757, 58757, 58757,
- 58763, 58763, 58763, 58763, 58763, 58763, 58771, 58771,
- 58771, 58771, 58771, 58771, 58771, 58771, 58787, 58787,
- 58787, 58787, 58787, 58787, 58787, 58787, 58787, 58787,
- 58787, 58787, 58787, 58787, 58787, 58787, 58789, 58789,
- 58831, 58831, 58831, 58831, 58831, 58831, 58831, 58831,
- 58831, 58831, 58831, 58831, 58831, 58831, 58831, 58831,
- 58831, 58831, 58831, 58831, 58831, 58831, 58831, 58831,
- 58831, 58831, 58831, 58831, 58831, 58831, 58831, 58831,
- 58831, 58831, 58831, 58831, 58831, 58831, 58831, 58831,
- 58831, 58831, 58889, 58889, 58889, 58889, 58889, 58889,
- 58889, 58889, 58889, 58889, 58889, 58889, 58889, 58889,
- 58889, 58889, 58889, 58889, 58889, 58889, 58889, 58889,
- 58889, 58889, 58889, 58889, 58889, 58889, 58889, 58889,
- 58889, 58889, 58889, 58889, 58889, 58889, 58889, 58889,
- 58889, 58889, 58889, 58889, 58889, 58889, 58889, 58889,
- 58889, 58889, 58889, 58889, 58889, 58889, 58889, 58889,
- 58889, 58889, 58889, 58889, 58897, 58897, 58897, 58897,
- 58897, 58897, 58897, 58897, 58901, 58901, 58901, 58901,
- 58907, 58907, 58907, 58907, 58907, 58907, 58909, 58909,
- 58913, 58913, 58913, 58913, 58921, 58921, 58921, 58921,
- 58921, 58921, 58921, 58921, 58937, 58937, 58937, 58937,
- 58937, 58937, 58937, 58937, 58937, 58937, 58937, 58937,
- 58937, 58937, 58937, 58937, 58943, 58943, 58943, 58943,
- 58943, 58943, 58963, 58963, 58963, 58963, 58963, 58963,
- 58963, 58963, 58963, 58963, 58963, 58963, 58963, 58963,
- 58963, 58963, 58963, 58963, 58963, 58963, 58967, 58967,
- 58967, 58967, 58979, 58979, 58979, 58979, 58979, 58979,
- 58979, 58979, 58979, 58979, 58979, 58979, 58991, 58991,
- 58991, 58991, 58991, 58991, 58991, 58991, 58991, 58991,
- 58991, 58991, 58997, 58997, 58997, 58997, 58997, 58997,
- 59009, 59009, 59009, 59009, 59009, 59009, 59009, 59009,
- 59009, 59009, 59009, 59009, 59011, 59011, 59021, 59021,
- 59021, 59021, 59021, 59021, 59021, 59021, 59021, 59021,
- 59023, 59023, 59029, 59029, 59029, 59029, 59029, 59029,
- 59051, 59051, 59051, 59051, 59051, 59051, 59051, 59051,
- 59051, 59051, 59051, 59051, 59051, 59051, 59051, 59051,
- 59051, 59051, 59051, 59051, 59051, 59051, 59053, 59053,
- 59063, 59063, 59063, 59063, 59063, 59063, 59063, 59063,
- 59063, 59063, 59069, 59069, 59069, 59069, 59069, 59069,
- 59077, 59077, 59077, 59077, 59077, 59077, 59077, 59077,
- 59083, 59083, 59083, 59083, 59083, 59083, 59093, 59093,
- 59093, 59093, 59093, 59093, 59093, 59093, 59093, 59093,
- 59107, 59107, 59107, 59107, 59107, 59107, 59107, 59107,
- 59107, 59107, 59107, 59107, 59107, 59107, 59113, 59113,
- 59113, 59113, 59113, 59113, 59119, 59119, 59119, 59119,
- 59119, 59119, 59123, 59123, 59123, 59123, 59141, 59141,
- 59141, 59141, 59141, 59141, 59141, 59141, 59141, 59141,
- 59141, 59141, 59141, 59141, 59141, 59141, 59141, 59141,
- 59149, 59149, 59149, 59149, 59149, 59149, 59149, 59149,
- 59159, 59159, 59159, 59159, 59159, 59159, 59159, 59159,
- 59159, 59159, 59167, 59167, 59167, 59167, 59167, 59167,
- 59167, 59167, 59183, 59183, 59183, 59183, 59183, 59183,
- 59183, 59183, 59183, 59183, 59183, 59183, 59183, 59183,
- 59183, 59183, 59197, 59197, 59197, 59197, 59197, 59197,
- 59197, 59197, 59197, 59197, 59197, 59197, 59197, 59197,
- 59207, 59207, 59207, 59207, 59207, 59207, 59207, 59207,
- 59207, 59207, 59209, 59209, 59219, 59219, 59219, 59219,
- 59219, 59219, 59219, 59219, 59219, 59219, 59221, 59221,
- 59233, 59233, 59233, 59233, 59233, 59233, 59233, 59233,
- 59233, 59233, 59233, 59233, 59239, 59239, 59239, 59239,
- 59239, 59239, 59243, 59243, 59243, 59243, 59263, 59263,
- 59263, 59263, 59263, 59263, 59263, 59263, 59263, 59263,
- 59263, 59263, 59263, 59263, 59263, 59263, 59263, 59263,
- 59263, 59263, 59273, 59273, 59273, 59273, 59273, 59273,
- 59273, 59273, 59273, 59273, 59281, 59281, 59281, 59281,
- 59281, 59281, 59281, 59281, 59333, 59333, 59333, 59333,
- 59333, 59333, 59333, 59333, 59333, 59333, 59333, 59333,
- 59333, 59333, 59333, 59333, 59333, 59333, 59333, 59333,
- 59333, 59333, 59333, 59333, 59333, 59333, 59333, 59333,
- 59333, 59333, 59333, 59333, 59333, 59333, 59333, 59333,
- 59333, 59333, 59333, 59333, 59333, 59333, 59333, 59333,
- 59333, 59333, 59333, 59333, 59333, 59333, 59333, 59333,
- 59341, 59341, 59341, 59341, 59341, 59341, 59341, 59341,
- 59351, 59351, 59351, 59351, 59351, 59351, 59351, 59351,
- 59351, 59351, 59357, 59357, 59357, 59357, 59357, 59357,
- 59359, 59359, 59369, 59369, 59369, 59369, 59369, 59369,
- 59369, 59369, 59369, 59369, 59377, 59377, 59377, 59377,
- 59377, 59377, 59377, 59377, 59387, 59387, 59387, 59387,
- 59387, 59387, 59387, 59387, 59387, 59387, 59393, 59393,
- 59393, 59393, 59393, 59393, 59399, 59399, 59399, 59399,
- 59399, 59399, 59407, 59407, 59407, 59407, 59407, 59407,
- 59407, 59407, 59417, 59417, 59417, 59417, 59417, 59417,
- 59417, 59417, 59417, 59417, 59419, 59419, 59441, 59441,
- 59441, 59441, 59441, 59441, 59441, 59441, 59441, 59441,
- 59441, 59441, 59441, 59441, 59441, 59441, 59441, 59441,
- 59441, 59441, 59441, 59441, 59443, 59443, 59447, 59447,
- 59447, 59447, 59453, 59453, 59453, 59453, 59453, 59453,
- 59467, 59467, 59467, 59467, 59467, 59467, 59467, 59467,
- 59467, 59467, 59467, 59467, 59467, 59467, 59471, 59471,
- 59471, 59471, 59473, 59473, 59497, 59497, 59497, 59497,
- 59497, 59497, 59497, 59497, 59497, 59497, 59497, 59497,
- 59497, 59497, 59497, 59497, 59497, 59497, 59497, 59497,
- 59497, 59497, 59497, 59497, 59509, 59509, 59509, 59509,
- 59509, 59509, 59509, 59509, 59509, 59509, 59509, 59509,
- 59513, 59513, 59513, 59513, 59539, 59539, 59539, 59539,
- 59539, 59539, 59539, 59539, 59539, 59539, 59539, 59539,
- 59539, 59539, 59539, 59539, 59539, 59539, 59539, 59539,
- 59539, 59539, 59539, 59539, 59539, 59539, 59557, 59557,
- 59557, 59557, 59557, 59557, 59557, 59557, 59557, 59557,
- 59557, 59557, 59557, 59557, 59557, 59557, 59557, 59557,
- 59561, 59561, 59561, 59561, 59567, 59567, 59567, 59567,
- 59567, 59567, 59581, 59581, 59581, 59581, 59581, 59581,
- 59581, 59581, 59581, 59581, 59581, 59581, 59581, 59581,
- 59611, 59611, 59611, 59611, 59611, 59611, 59611, 59611,
- 59611, 59611, 59611, 59611, 59611, 59611, 59611, 59611,
- 59611, 59611, 59611, 59611, 59611, 59611, 59611, 59611,
- 59611, 59611, 59611, 59611, 59611, 59611, 59617, 59617,
- 59617, 59617, 59617, 59617, 59621, 59621, 59621, 59621,
- 59627, 59627, 59627, 59627, 59627, 59627, 59629, 59629,
- 59651, 59651, 59651, 59651, 59651, 59651, 59651, 59651,
- 59651, 59651, 59651, 59651, 59651, 59651, 59651, 59651,
- 59651, 59651, 59651, 59651, 59651, 59651, 59659, 59659,
- 59659, 59659, 59659, 59659, 59659, 59659, 59663, 59663,
- 59663, 59663, 59669, 59669, 59669, 59669, 59669, 59669,
- 59671, 59671, 59693, 59693, 59693, 59693, 59693, 59693,
- 59693, 59693, 59693, 59693, 59693, 59693, 59693, 59693,
- 59693, 59693, 59693, 59693, 59693, 59693, 59693, 59693,
- 59699, 59699, 59699, 59699, 59699, 59699, 59707, 59707,
- 59707, 59707, 59707, 59707, 59707, 59707, 59723, 59723,
- 59723, 59723, 59723, 59723, 59723, 59723, 59723, 59723,
- 59723, 59723, 59723, 59723, 59723, 59723, 59729, 59729,
- 59729, 59729, 59729, 59729, 59743, 59743, 59743, 59743,
- 59743, 59743, 59743, 59743, 59743, 59743, 59743, 59743,
- 59743, 59743, 59747, 59747, 59747, 59747, 59753, 59753,
- 59753, 59753, 59753, 59753, 59771, 59771, 59771, 59771,
- 59771, 59771, 59771, 59771, 59771, 59771, 59771, 59771,
- 59771, 59771, 59771, 59771, 59771, 59771, 59779, 59779,
- 59779, 59779, 59779, 59779, 59779, 59779, 59791, 59791,
- 59791, 59791, 59791, 59791, 59791, 59791, 59791, 59791,
- 59791, 59791, 59797, 59797, 59797, 59797, 59797, 59797,
- 59809, 59809, 59809, 59809, 59809, 59809, 59809, 59809,
- 59809, 59809, 59809, 59809, 59833, 59833, 59833, 59833,
- 59833, 59833, 59833, 59833, 59833, 59833, 59833, 59833,
- 59833, 59833, 59833, 59833, 59833, 59833, 59833, 59833,
- 59833, 59833, 59833, 59833, 59863, 59863, 59863, 59863,
- 59863, 59863, 59863, 59863, 59863, 59863, 59863, 59863,
- 59863, 59863, 59863, 59863, 59863, 59863, 59863, 59863,
- 59863, 59863, 59863, 59863, 59863, 59863, 59863, 59863,
- 59863, 59863, 59879, 59879, 59879, 59879, 59879, 59879,
- 59879, 59879, 59879, 59879, 59879, 59879, 59879, 59879,
- 59879, 59879, 59887, 59887, 59887, 59887, 59887, 59887,
- 59887, 59887, 59921, 59921, 59921, 59921, 59921, 59921,
- 59921, 59921, 59921, 59921, 59921, 59921, 59921, 59921,
- 59921, 59921, 59921, 59921, 59921, 59921, 59921, 59921,
- 59921, 59921, 59921, 59921, 59921, 59921, 59921, 59921,
- 59921, 59921, 59921, 59921, 59929, 59929, 59929, 59929,
- 59929, 59929, 59929, 59929, 59951, 59951, 59951, 59951,
- 59951, 59951, 59951, 59951, 59951, 59951, 59951, 59951,
- 59951, 59951, 59951, 59951, 59951, 59951, 59951, 59951,
- 59951, 59951, 59957, 59957, 59957, 59957, 59957, 59957,
- 59971, 59971, 59971, 59971, 59971, 59971, 59971, 59971,
- 59971, 59971, 59971, 59971, 59971, 59971, 59981, 59981,
- 59981, 59981, 59981, 59981, 59981, 59981, 59981, 59981,
- 59999, 59999, 59999, 59999, 59999, 59999, 59999, 59999,
- 59999, 59999, 59999, 59999, 59999, 59999, 59999, 59999,
- 59999, 59999, 60013, 60013, 60013, 60013, 60013, 60013,
- 60013, 60013, 60013, 60013, 60013, 60013, 60013, 60013,
- 60017, 60017, 60017, 60017, 60029, 60029, 60029, 60029,
- 60029, 60029, 60029, 60029, 60029, 60029, 60029, 60029,
- 60037, 60037, 60037, 60037, 60037, 60037, 60037, 60037,
- 60041, 60041, 60041, 60041, 60077, 60077, 60077, 60077,
- 60077, 60077, 60077, 60077, 60077, 60077, 60077, 60077,
- 60077, 60077, 60077, 60077, 60077, 60077, 60077, 60077,
- 60077, 60077, 60077, 60077, 60077, 60077, 60077, 60077,
- 60077, 60077, 60077, 60077, 60077, 60077, 60077, 60077,
- 60083, 60083, 60083, 60083, 60083, 60083, 60089, 60089,
- 60089, 60089, 60089, 60089, 60091, 60091, 60101, 60101,
- 60101, 60101, 60101, 60101, 60101, 60101, 60101, 60101,
- 60103, 60103, 60107, 60107, 60107, 60107, 60127, 60127,
- 60127, 60127, 60127, 60127, 60127, 60127, 60127, 60127,
- 60127, 60127, 60127, 60127, 60127, 60127, 60127, 60127,
- 60127, 60127, 60133, 60133, 60133, 60133, 60133, 60133,
- 60139, 60139, 60139, 60139, 60139, 60139, 60149, 60149,
- 60149, 60149, 60149, 60149, 60149, 60149, 60149, 60149,
- 60161, 60161, 60161, 60161, 60161, 60161, 60161, 60161,
- 60161, 60161, 60161, 60161, 60167, 60167, 60167, 60167,
- 60167, 60167, 60169, 60169, 60209, 60209, 60209, 60209,
- 60209, 60209, 60209, 60209, 60209, 60209, 60209, 60209,
- 60209, 60209, 60209, 60209, 60209, 60209, 60209, 60209,
- 60209, 60209, 60209, 60209, 60209, 60209, 60209, 60209,
- 60209, 60209, 60209, 60209, 60209, 60209, 60209, 60209,
- 60209, 60209, 60209, 60209, 60217, 60217, 60217, 60217,
- 60217, 60217, 60217, 60217, 60223, 60223, 60223, 60223,
- 60223, 60223, 60251, 60251, 60251, 60251, 60251, 60251,
- 60251, 60251, 60251, 60251, 60251, 60251, 60251, 60251,
- 60251, 60251, 60251, 60251, 60251, 60251, 60251, 60251,
- 60251, 60251, 60251, 60251, 60251, 60251, 60257, 60257,
- 60257, 60257, 60257, 60257, 60259, 60259, 60271, 60271,
- 60271, 60271, 60271, 60271, 60271, 60271, 60271, 60271,
- 60271, 60271, 60289, 60289, 60289, 60289, 60289, 60289,
- 60289, 60289, 60289, 60289, 60289, 60289, 60289, 60289,
- 60289, 60289, 60289, 60289, 60293, 60293, 60293, 60293,
- 60317, 60317, 60317, 60317, 60317, 60317, 60317, 60317,
- 60317, 60317, 60317, 60317, 60317, 60317, 60317, 60317,
- 60317, 60317, 60317, 60317, 60317, 60317, 60317, 60317,
- 60331, 60331, 60331, 60331, 60331, 60331, 60331, 60331,
- 60331, 60331, 60331, 60331, 60331, 60331, 60337, 60337,
- 60337, 60337, 60337, 60337, 60343, 60343, 60343, 60343,
- 60343, 60343, 60353, 60353, 60353, 60353, 60353, 60353,
- 60353, 60353, 60353, 60353, 60373, 60373, 60373, 60373,
- 60373, 60373, 60373, 60373, 60373, 60373, 60373, 60373,
- 60373, 60373, 60373, 60373, 60373, 60373, 60373, 60373,
- 60383, 60383, 60383, 60383, 60383, 60383, 60383, 60383,
- 60383, 60383, 60397, 60397, 60397, 60397, 60397, 60397,
- 60397, 60397, 60397, 60397, 60397, 60397, 60397, 60397,
- 60413, 60413, 60413, 60413, 60413, 60413, 60413, 60413,
- 60413, 60413, 60413, 60413, 60413, 60413, 60413, 60413,
- 60427, 60427, 60427, 60427, 60427, 60427, 60427, 60427,
- 60427, 60427, 60427, 60427, 60427, 60427, 60443, 60443,
- 60443, 60443, 60443, 60443, 60443, 60443, 60443, 60443,
- 60443, 60443, 60443, 60443, 60443, 60443, 60449, 60449,
- 60449, 60449, 60449, 60449, 60457, 60457, 60457, 60457,
- 60457, 60457, 60457, 60457, 60493, 60493, 60493, 60493,
- 60493, 60493, 60493, 60493, 60493, 60493, 60493, 60493,
- 60493, 60493, 60493, 60493, 60493, 60493, 60493, 60493,
- 60493, 60493, 60493, 60493, 60493, 60493, 60493, 60493,
- 60493, 60493, 60493, 60493, 60493, 60493, 60493, 60493,
- 60497, 60497, 60497, 60497, 60509, 60509, 60509, 60509,
- 60509, 60509, 60509, 60509, 60509, 60509, 60509, 60509,
- 60521, 60521, 60521, 60521, 60521, 60521, 60521, 60521,
- 60521, 60521, 60521, 60521, 60527, 60527, 60527, 60527,
- 60527, 60527, 60539, 60539, 60539, 60539, 60539, 60539,
- 60539, 60539, 60539, 60539, 60539, 60539, 60589, 60589,
- 60589, 60589, 60589, 60589, 60589, 60589, 60589, 60589,
- 60589, 60589, 60589, 60589, 60589, 60589, 60589, 60589,
- 60589, 60589, 60589, 60589, 60589, 60589, 60589, 60589,
- 60589, 60589, 60589, 60589, 60589, 60589, 60589, 60589,
- 60589, 60589, 60589, 60589, 60589, 60589, 60589, 60589,
- 60589, 60589, 60589, 60589, 60589, 60589, 60589, 60589,
- 60601, 60601, 60601, 60601, 60601, 60601, 60601, 60601,
- 60601, 60601, 60601, 60601, 60607, 60607, 60607, 60607,
- 60607, 60607, 60611, 60611, 60611, 60611, 60617, 60617,
- 60617, 60617, 60617, 60617, 60623, 60623, 60623, 60623,
- 60623, 60623, 60631, 60631, 60631, 60631, 60631, 60631,
- 60631, 60631, 60637, 60637, 60637, 60637, 60637, 60637,
- 60647, 60647, 60647, 60647, 60647, 60647, 60647, 60647,
- 60647, 60647, 60649, 60649, 60659, 60659, 60659, 60659,
- 60659, 60659, 60659, 60659, 60659, 60659, 60661, 60661,
- 60679, 60679, 60679, 60679, 60679, 60679, 60679, 60679,
- 60679, 60679, 60679, 60679, 60679, 60679, 60679, 60679,
- 60679, 60679, 60689, 60689, 60689, 60689, 60689, 60689,
- 60689, 60689, 60689, 60689, 60703, 60703, 60703, 60703,
- 60703, 60703, 60703, 60703, 60703, 60703, 60703, 60703,
- 60703, 60703, 60719, 60719, 60719, 60719, 60719, 60719,
- 60719, 60719, 60719, 60719, 60719, 60719, 60719, 60719,
- 60719, 60719, 60727, 60727, 60727, 60727, 60727, 60727,
- 60727, 60727, 60733, 60733, 60733, 60733, 60733, 60733,
- 60737, 60737, 60737, 60737, 60757, 60757, 60757, 60757,
- 60757, 60757, 60757, 60757, 60757, 60757, 60757, 60757,
- 60757, 60757, 60757, 60757, 60757, 60757, 60757, 60757,
- 60761, 60761, 60761, 60761, 60763, 60763, 60773, 60773,
- 60773, 60773, 60773, 60773, 60773, 60773, 60773, 60773,
- 60779, 60779, 60779, 60779, 60779, 60779, 60793, 60793,
- 60793, 60793, 60793, 60793, 60793, 60793, 60793, 60793,
- 60793, 60793, 60793, 60793, 60811, 60811, 60811, 60811,
- 60811, 60811, 60811, 60811, 60811, 60811, 60811, 60811,
- 60811, 60811, 60811, 60811, 60811, 60811, 60821, 60821,
- 60821, 60821, 60821, 60821, 60821, 60821, 60821, 60821,
- 60859, 60859, 60859, 60859, 60859, 60859, 60859, 60859,
- 60859, 60859, 60859, 60859, 60859, 60859, 60859, 60859,
- 60859, 60859, 60859, 60859, 60859, 60859, 60859, 60859,
- 60859, 60859, 60859, 60859, 60859, 60859, 60859, 60859,
- 60859, 60859, 60859, 60859, 60859, 60859, 60869, 60869,
- 60869, 60869, 60869, 60869, 60869, 60869, 60869, 60869,
- 60887, 60887, 60887, 60887, 60887, 60887, 60887, 60887,
- 60887, 60887, 60887, 60887, 60887, 60887, 60887, 60887,
- 60887, 60887, 60889, 60889, 60899, 60899, 60899, 60899,
- 60899, 60899, 60899, 60899, 60899, 60899, 60901, 60901,
- 60913, 60913, 60913, 60913, 60913, 60913, 60913, 60913,
- 60913, 60913, 60913, 60913, 60917, 60917, 60917, 60917,
- 60919, 60919, 60923, 60923, 60923, 60923, 60937, 60937,
- 60937, 60937, 60937, 60937, 60937, 60937, 60937, 60937,
- 60937, 60937, 60937, 60937, 60943, 60943, 60943, 60943,
- 60943, 60943, 60953, 60953, 60953, 60953, 60953, 60953,
- 60953, 60953, 60953, 60953, 60961, 60961, 60961, 60961,
- 60961, 60961, 60961, 60961, 61001, 61001, 61001, 61001,
- 61001, 61001, 61001, 61001, 61001, 61001, 61001, 61001,
- 61001, 61001, 61001, 61001, 61001, 61001, 61001, 61001,
- 61001, 61001, 61001, 61001, 61001, 61001, 61001, 61001,
- 61001, 61001, 61001, 61001, 61001, 61001, 61001, 61001,
- 61001, 61001, 61001, 61001, 61007, 61007, 61007, 61007,
- 61007, 61007, 61027, 61027, 61027, 61027, 61027, 61027,
- 61027, 61027, 61027, 61027, 61027, 61027, 61027, 61027,
- 61027, 61027, 61027, 61027, 61027, 61027, 61031, 61031,
- 61031, 61031, 61043, 61043, 61043, 61043, 61043, 61043,
- 61043, 61043, 61043, 61043, 61043, 61043, 61051, 61051,
- 61051, 61051, 61051, 61051, 61051, 61051, 61057, 61057,
- 61057, 61057, 61057, 61057, 61091, 61091, 61091, 61091,
- 61091, 61091, 61091, 61091, 61091, 61091, 61091, 61091,
- 61091, 61091, 61091, 61091, 61091, 61091, 61091, 61091,
- 61091, 61091, 61091, 61091, 61091, 61091, 61091, 61091,
- 61091, 61091, 61091, 61091, 61091, 61091, 61099, 61099,
- 61099, 61099, 61099, 61099, 61099, 61099, 61121, 61121,
- 61121, 61121, 61121, 61121, 61121, 61121, 61121, 61121,
- 61121, 61121, 61121, 61121, 61121, 61121, 61121, 61121,
- 61121, 61121, 61121, 61121, 61129, 61129, 61129, 61129,
- 61129, 61129, 61129, 61129, 61141, 61141, 61141, 61141,
- 61141, 61141, 61141, 61141, 61141, 61141, 61141, 61141,
- 61151, 61151, 61151, 61151, 61151, 61151, 61151, 61151,
- 61151, 61151, 61153, 61153, 61169, 61169, 61169, 61169,
- 61169, 61169, 61169, 61169, 61169, 61169, 61169, 61169,
- 61169, 61169, 61169, 61169, 61211, 61211, 61211, 61211,
- 61211, 61211, 61211, 61211, 61211, 61211, 61211, 61211,
- 61211, 61211, 61211, 61211, 61211, 61211, 61211, 61211,
- 61211, 61211, 61211, 61211, 61211, 61211, 61211, 61211,
- 61211, 61211, 61211, 61211, 61211, 61211, 61211, 61211,
- 61211, 61211, 61211, 61211, 61211, 61211, 61223, 61223,
- 61223, 61223, 61223, 61223, 61223, 61223, 61223, 61223,
- 61223, 61223, 61231, 61231, 61231, 61231, 61231, 61231,
- 61231, 61231, 61253, 61253, 61253, 61253, 61253, 61253,
- 61253, 61253, 61253, 61253, 61253, 61253, 61253, 61253,
- 61253, 61253, 61253, 61253, 61253, 61253, 61253, 61253,
- 61261, 61261, 61261, 61261, 61261, 61261, 61261, 61261,
- 61283, 61283, 61283, 61283, 61283, 61283, 61283, 61283,
- 61283, 61283, 61283, 61283, 61283, 61283, 61283, 61283,
- 61283, 61283, 61283, 61283, 61283, 61283, 61291, 61291,
- 61291, 61291, 61291, 61291, 61291, 61291, 61297, 61297,
- 61297, 61297, 61297, 61297, 61331, 61331, 61331, 61331,
- 61331, 61331, 61331, 61331, 61331, 61331, 61331, 61331,
- 61331, 61331, 61331, 61331, 61331, 61331, 61331, 61331,
- 61331, 61331, 61331, 61331, 61331, 61331, 61331, 61331,
- 61331, 61331, 61331, 61331, 61331, 61331, 61333, 61333,
- 61339, 61339, 61339, 61339, 61339, 61339, 61343, 61343,
- 61343, 61343, 61357, 61357, 61357, 61357, 61357, 61357,
- 61357, 61357, 61357, 61357, 61357, 61357, 61357, 61357,
- 61363, 61363, 61363, 61363, 61363, 61363, 61379, 61379,
- 61379, 61379, 61379, 61379, 61379, 61379, 61379, 61379,
- 61379, 61379, 61379, 61379, 61379, 61379, 61381, 61381,
- 61403, 61403, 61403, 61403, 61403, 61403, 61403, 61403,
- 61403, 61403, 61403, 61403, 61403, 61403, 61403, 61403,
- 61403, 61403, 61403, 61403, 61403, 61403, 61409, 61409,
- 61409, 61409, 61409, 61409, 61417, 61417, 61417, 61417,
- 61417, 61417, 61417, 61417, 61441, 61441, 61441, 61441,
- 61441, 61441, 61441, 61441, 61441, 61441, 61441, 61441,
- 61441, 61441, 61441, 61441, 61441, 61441, 61441, 61441,
- 61441, 61441, 61441, 61441, 61463, 61463, 61463, 61463,
- 61463, 61463, 61463, 61463, 61463, 61463, 61463, 61463,
- 61463, 61463, 61463, 61463, 61463, 61463, 61463, 61463,
- 61463, 61463, 61469, 61469, 61469, 61469, 61469, 61469,
- 61471, 61471, 61483, 61483, 61483, 61483, 61483, 61483,
- 61483, 61483, 61483, 61483, 61483, 61483, 61487, 61487,
- 61487, 61487, 61493, 61493, 61493, 61493, 61493, 61493,
- 61507, 61507, 61507, 61507, 61507, 61507, 61507, 61507,
- 61507, 61507, 61507, 61507, 61507, 61507, 61511, 61511,
- 61511, 61511, 61519, 61519, 61519, 61519, 61519, 61519,
- 61519, 61519, 61543, 61543, 61543, 61543, 61543, 61543,
- 61543, 61543, 61543, 61543, 61543, 61543, 61543, 61543,
- 61543, 61543, 61543, 61543, 61543, 61543, 61543, 61543,
- 61543, 61543, 61547, 61547, 61547, 61547, 61553, 61553,
- 61553, 61553, 61553, 61553, 61559, 61559, 61559, 61559,
- 61559, 61559, 61561, 61561, 61583, 61583, 61583, 61583,
- 61583, 61583, 61583, 61583, 61583, 61583, 61583, 61583,
- 61583, 61583, 61583, 61583, 61583, 61583, 61583, 61583,
- 61583, 61583, 61603, 61603, 61603, 61603, 61603, 61603,
- 61603, 61603, 61603, 61603, 61603, 61603, 61603, 61603,
- 61603, 61603, 61603, 61603, 61603, 61603, 61609, 61609,
- 61609, 61609, 61609, 61609, 61613, 61613, 61613, 61613,
- 61627, 61627, 61627, 61627, 61627, 61627, 61627, 61627,
- 61627, 61627, 61627, 61627, 61627, 61627, 61631, 61631,
- 61631, 61631, 61637, 61637, 61637, 61637, 61637, 61637,
- 61643, 61643, 61643, 61643, 61643, 61643, 61651, 61651,
- 61651, 61651, 61651, 61651, 61651, 61651, 61657, 61657,
- 61657, 61657, 61657, 61657, 61667, 61667, 61667, 61667,
- 61667, 61667, 61667, 61667, 61667, 61667, 61673, 61673,
- 61673, 61673, 61673, 61673, 61681, 61681, 61681, 61681,
- 61681, 61681, 61681, 61681, 61687, 61687, 61687, 61687,
- 61687, 61687, 61703, 61703, 61703, 61703, 61703, 61703,
- 61703, 61703, 61703, 61703, 61703, 61703, 61703, 61703,
- 61703, 61703, 61717, 61717, 61717, 61717, 61717, 61717,
- 61717, 61717, 61717, 61717, 61717, 61717, 61717, 61717,
- 61723, 61723, 61723, 61723, 61723, 61723, 61729, 61729,
- 61729, 61729, 61729, 61729, 61751, 61751, 61751, 61751,
- 61751, 61751, 61751, 61751, 61751, 61751, 61751, 61751,
- 61751, 61751, 61751, 61751, 61751, 61751, 61751, 61751,
- 61751, 61751, 61757, 61757, 61757, 61757, 61757, 61757,
- 61781, 61781, 61781, 61781, 61781, 61781, 61781, 61781,
- 61781, 61781, 61781, 61781, 61781, 61781, 61781, 61781,
- 61781, 61781, 61781, 61781, 61781, 61781, 61781, 61781,
- 61813, 61813, 61813, 61813, 61813, 61813, 61813, 61813,
- 61813, 61813, 61813, 61813, 61813, 61813, 61813, 61813,
- 61813, 61813, 61813, 61813, 61813, 61813, 61813, 61813,
- 61813, 61813, 61813, 61813, 61813, 61813, 61813, 61813,
- 61819, 61819, 61819, 61819, 61819, 61819, 61837, 61837,
- 61837, 61837, 61837, 61837, 61837, 61837, 61837, 61837,
- 61837, 61837, 61837, 61837, 61837, 61837, 61837, 61837,
- 61843, 61843, 61843, 61843, 61843, 61843, 61861, 61861,
- 61861, 61861, 61861, 61861, 61861, 61861, 61861, 61861,
- 61861, 61861, 61861, 61861, 61861, 61861, 61861, 61861,
- 61871, 61871, 61871, 61871, 61871, 61871, 61871, 61871,
- 61871, 61871, 61879, 61879, 61879, 61879, 61879, 61879,
- 61879, 61879, 61909, 61909, 61909, 61909, 61909, 61909,
- 61909, 61909, 61909, 61909, 61909, 61909, 61909, 61909,
- 61909, 61909, 61909, 61909, 61909, 61909, 61909, 61909,
- 61909, 61909, 61909, 61909, 61909, 61909, 61909, 61909,
- 61927, 61927, 61927, 61927, 61927, 61927, 61927, 61927,
- 61927, 61927, 61927, 61927, 61927, 61927, 61927, 61927,
- 61927, 61927, 61933, 61933, 61933, 61933, 61933, 61933,
- 61949, 61949, 61949, 61949, 61949, 61949, 61949, 61949,
- 61949, 61949, 61949, 61949, 61949, 61949, 61949, 61949,
- 61961, 61961, 61961, 61961, 61961, 61961, 61961, 61961,
- 61961, 61961, 61961, 61961, 61967, 61967, 61967, 61967,
- 61967, 61967, 61979, 61979, 61979, 61979, 61979, 61979,
- 61979, 61979, 61979, 61979, 61979, 61979, 61981, 61981,
- 61987, 61987, 61987, 61987, 61987, 61987, 61991, 61991,
- 61991, 61991, 62003, 62003, 62003, 62003, 62003, 62003,
- 62003, 62003, 62003, 62003, 62003, 62003, 62011, 62011,
- 62011, 62011, 62011, 62011, 62011, 62011, 62017, 62017,
- 62017, 62017, 62017, 62017, 62039, 62039, 62039, 62039,
- 62039, 62039, 62039, 62039, 62039, 62039, 62039, 62039,
- 62039, 62039, 62039, 62039, 62039, 62039, 62039, 62039,
- 62039, 62039, 62047, 62047, 62047, 62047, 62047, 62047,
- 62047, 62047, 62053, 62053, 62053, 62053, 62053, 62053,
- 62057, 62057, 62057, 62057, 62071, 62071, 62071, 62071,
- 62071, 62071, 62071, 62071, 62071, 62071, 62071, 62071,
- 62071, 62071, 62081, 62081, 62081, 62081, 62081, 62081,
- 62081, 62081, 62081, 62081, 62099, 62099, 62099, 62099,
- 62099, 62099, 62099, 62099, 62099, 62099, 62099, 62099,
- 62099, 62099, 62099, 62099, 62099, 62099, 62119, 62119,
- 62119, 62119, 62119, 62119, 62119, 62119, 62119, 62119,
- 62119, 62119, 62119, 62119, 62119, 62119, 62119, 62119,
- 62119, 62119, 62129, 62129, 62129, 62129, 62129, 62129,
- 62129, 62129, 62129, 62129, 62131, 62131, 62137, 62137,
- 62137, 62137, 62137, 62137, 62141, 62141, 62141, 62141,
- 62143, 62143, 62171, 62171, 62171, 62171, 62171, 62171,
- 62171, 62171, 62171, 62171, 62171, 62171, 62171, 62171,
- 62171, 62171, 62171, 62171, 62171, 62171, 62171, 62171,
- 62171, 62171, 62171, 62171, 62171, 62171, 62189, 62189,
- 62189, 62189, 62189, 62189, 62189, 62189, 62189, 62189,
- 62189, 62189, 62189, 62189, 62189, 62189, 62189, 62189,
- 62191, 62191, 62201, 62201, 62201, 62201, 62201, 62201,
- 62201, 62201, 62201, 62201, 62207, 62207, 62207, 62207,
- 62207, 62207, 62213, 62213, 62213, 62213, 62213, 62213,
- 62219, 62219, 62219, 62219, 62219, 62219, 62233, 62233,
- 62233, 62233, 62233, 62233, 62233, 62233, 62233, 62233,
- 62233, 62233, 62233, 62233, 62273, 62273, 62273, 62273,
- 62273, 62273, 62273, 62273, 62273, 62273, 62273, 62273,
- 62273, 62273, 62273, 62273, 62273, 62273, 62273, 62273,
- 62273, 62273, 62273, 62273, 62273, 62273, 62273, 62273,
- 62273, 62273, 62273, 62273, 62273, 62273, 62273, 62273,
- 62273, 62273, 62273, 62273, 62297, 62297, 62297, 62297,
- 62297, 62297, 62297, 62297, 62297, 62297, 62297, 62297,
- 62297, 62297, 62297, 62297, 62297, 62297, 62297, 62297,
- 62297, 62297, 62297, 62297, 62299, 62299, 62303, 62303,
- 62303, 62303, 62311, 62311, 62311, 62311, 62311, 62311,
- 62311, 62311, 62323, 62323, 62323, 62323, 62323, 62323,
- 62323, 62323, 62323, 62323, 62323, 62323, 62327, 62327,
- 62327, 62327, 62347, 62347, 62347, 62347, 62347, 62347,
- 62347, 62347, 62347, 62347, 62347, 62347, 62347, 62347,
- 62347, 62347, 62347, 62347, 62347, 62347, 62351, 62351,
- 62351, 62351, 62383, 62383, 62383, 62383, 62383, 62383,
- 62383, 62383, 62383, 62383, 62383, 62383, 62383, 62383,
- 62383, 62383, 62383, 62383, 62383, 62383, 62383, 62383,
- 62383, 62383, 62383, 62383, 62383, 62383, 62383, 62383,
- 62383, 62383, 62401, 62401, 62401, 62401, 62401, 62401,
- 62401, 62401, 62401, 62401, 62401, 62401, 62401, 62401,
- 62401, 62401, 62401, 62401, 62417, 62417, 62417, 62417,
- 62417, 62417, 62417, 62417, 62417, 62417, 62417, 62417,
- 62417, 62417, 62417, 62417, 62423, 62423, 62423, 62423,
- 62423, 62423, 62459, 62459, 62459, 62459, 62459, 62459,
- 62459, 62459, 62459, 62459, 62459, 62459, 62459, 62459,
- 62459, 62459, 62459, 62459, 62459, 62459, 62459, 62459,
- 62459, 62459, 62459, 62459, 62459, 62459, 62459, 62459,
- 62459, 62459, 62459, 62459, 62459, 62459, 62467, 62467,
- 62467, 62467, 62467, 62467, 62467, 62467, 62473, 62473,
- 62473, 62473, 62473, 62473, 62477, 62477, 62477, 62477,
- 62483, 62483, 62483, 62483, 62483, 62483, 62497, 62497,
- 62497, 62497, 62497, 62497, 62497, 62497, 62497, 62497,
- 62497, 62497, 62497, 62497, 62501, 62501, 62501, 62501,
- 62507, 62507, 62507, 62507, 62507, 62507, 62533, 62533,
- 62533, 62533, 62533, 62533, 62533, 62533, 62533, 62533,
- 62533, 62533, 62533, 62533, 62533, 62533, 62533, 62533,
- 62533, 62533, 62533, 62533, 62533, 62533, 62533, 62533,
- 62539, 62539, 62539, 62539, 62539, 62539, 62549, 62549,
- 62549, 62549, 62549, 62549, 62549, 62549, 62549, 62549,
- 62563, 62563, 62563, 62563, 62563, 62563, 62563, 62563,
- 62563, 62563, 62563, 62563, 62563, 62563, 62581, 62581,
- 62581, 62581, 62581, 62581, 62581, 62581, 62581, 62581,
- 62581, 62581, 62581, 62581, 62581, 62581, 62581, 62581,
- 62591, 62591, 62591, 62591, 62591, 62591, 62591, 62591,
- 62591, 62591, 62597, 62597, 62597, 62597, 62597, 62597,
- 62603, 62603, 62603, 62603, 62603, 62603, 62617, 62617,
- 62617, 62617, 62617, 62617, 62617, 62617, 62617, 62617,
- 62617, 62617, 62617, 62617, 62627, 62627, 62627, 62627,
- 62627, 62627, 62627, 62627, 62627, 62627, 62633, 62633,
- 62633, 62633, 62633, 62633, 62639, 62639, 62639, 62639,
- 62639, 62639, 62653, 62653, 62653, 62653, 62653, 62653,
- 62653, 62653, 62653, 62653, 62653, 62653, 62653, 62653,
- 62659, 62659, 62659, 62659, 62659, 62659, 62683, 62683,
- 62683, 62683, 62683, 62683, 62683, 62683, 62683, 62683,
- 62683, 62683, 62683, 62683, 62683, 62683, 62683, 62683,
- 62683, 62683, 62683, 62683, 62683, 62683, 62687, 62687,
- 62687, 62687, 62701, 62701, 62701, 62701, 62701, 62701,
- 62701, 62701, 62701, 62701, 62701, 62701, 62701, 62701,
- 62723, 62723, 62723, 62723, 62723, 62723, 62723, 62723,
- 62723, 62723, 62723, 62723, 62723, 62723, 62723, 62723,
- 62723, 62723, 62723, 62723, 62723, 62723, 62731, 62731,
- 62731, 62731, 62731, 62731, 62731, 62731, 62743, 62743,
- 62743, 62743, 62743, 62743, 62743, 62743, 62743, 62743,
- 62743, 62743, 62753, 62753, 62753, 62753, 62753, 62753,
- 62753, 62753, 62753, 62753, 62761, 62761, 62761, 62761,
- 62761, 62761, 62761, 62761, 62773, 62773, 62773, 62773,
- 62773, 62773, 62773, 62773, 62773, 62773, 62773, 62773,
- 62791, 62791, 62791, 62791, 62791, 62791, 62791, 62791,
- 62791, 62791, 62791, 62791, 62791, 62791, 62791, 62791,
- 62791, 62791, 62801, 62801, 62801, 62801, 62801, 62801,
- 62801, 62801, 62801, 62801, 62819, 62819, 62819, 62819,
- 62819, 62819, 62819, 62819, 62819, 62819, 62819, 62819,
- 62819, 62819, 62819, 62819, 62819, 62819, 62827, 62827,
- 62827, 62827, 62827, 62827, 62827, 62827, 62851, 62851,
- 62851, 62851, 62851, 62851, 62851, 62851, 62851, 62851,
- 62851, 62851, 62851, 62851, 62851, 62851, 62851, 62851,
- 62851, 62851, 62851, 62851, 62851, 62851, 62861, 62861,
- 62861, 62861, 62861, 62861, 62861, 62861, 62861, 62861,
- 62869, 62869, 62869, 62869, 62869, 62869, 62869, 62869,
- 62873, 62873, 62873, 62873, 62897, 62897, 62897, 62897,
- 62897, 62897, 62897, 62897, 62897, 62897, 62897, 62897,
- 62897, 62897, 62897, 62897, 62897, 62897, 62897, 62897,
- 62897, 62897, 62897, 62897, 62903, 62903, 62903, 62903,
- 62903, 62903, 62921, 62921, 62921, 62921, 62921, 62921,
- 62921, 62921, 62921, 62921, 62921, 62921, 62921, 62921,
- 62921, 62921, 62921, 62921, 62927, 62927, 62927, 62927,
- 62927, 62927, 62929, 62929, 62939, 62939, 62939, 62939,
- 62939, 62939, 62939, 62939, 62939, 62939, 62969, 62969,
- 62969, 62969, 62969, 62969, 62969, 62969, 62969, 62969,
- 62969, 62969, 62969, 62969, 62969, 62969, 62969, 62969,
- 62969, 62969, 62969, 62969, 62969, 62969, 62969, 62969,
- 62969, 62969, 62969, 62969, 62971, 62971, 62981, 62981,
- 62981, 62981, 62981, 62981, 62981, 62981, 62981, 62981,
- 62983, 62983, 62987, 62987, 62987, 62987, 62989, 62989,
- 63029, 63029, 63029, 63029, 63029, 63029, 63029, 63029,
- 63029, 63029, 63029, 63029, 63029, 63029, 63029, 63029,
- 63029, 63029, 63029, 63029, 63029, 63029, 63029, 63029,
- 63029, 63029, 63029, 63029, 63029, 63029, 63029, 63029,
- 63029, 63029, 63029, 63029, 63029, 63029, 63029, 63029,
- 63031, 63031, 63059, 63059, 63059, 63059, 63059, 63059,
- 63059, 63059, 63059, 63059, 63059, 63059, 63059, 63059,
- 63059, 63059, 63059, 63059, 63059, 63059, 63059, 63059,
- 63059, 63059, 63059, 63059, 63059, 63059, 63067, 63067,
- 63067, 63067, 63067, 63067, 63067, 63067, 63073, 63073,
- 63073, 63073, 63073, 63073, 63079, 63079, 63079, 63079,
- 63079, 63079, 63097, 63097, 63097, 63097, 63097, 63097,
- 63097, 63097, 63097, 63097, 63097, 63097, 63097, 63097,
- 63097, 63097, 63097, 63097, 63103, 63103, 63103, 63103,
- 63103, 63103, 63113, 63113, 63113, 63113, 63113, 63113,
- 63113, 63113, 63113, 63113, 63127, 63127, 63127, 63127,
- 63127, 63127, 63127, 63127, 63127, 63127, 63127, 63127,
- 63127, 63127, 63131, 63131, 63131, 63131, 63149, 63149,
- 63149, 63149, 63149, 63149, 63149, 63149, 63149, 63149,
- 63149, 63149, 63149, 63149, 63149, 63149, 63149, 63149,
- 63179, 63179, 63179, 63179, 63179, 63179, 63179, 63179,
- 63179, 63179, 63179, 63179, 63179, 63179, 63179, 63179,
- 63179, 63179, 63179, 63179, 63179, 63179, 63179, 63179,
- 63179, 63179, 63179, 63179, 63179, 63179, 63197, 63197,
- 63197, 63197, 63197, 63197, 63197, 63197, 63197, 63197,
- 63197, 63197, 63197, 63197, 63197, 63197, 63197, 63197,
- 63199, 63199, 63211, 63211, 63211, 63211, 63211, 63211,
- 63211, 63211, 63211, 63211, 63211, 63211, 63241, 63241,
- 63241, 63241, 63241, 63241, 63241, 63241, 63241, 63241,
- 63241, 63241, 63241, 63241, 63241, 63241, 63241, 63241,
- 63241, 63241, 63241, 63241, 63241, 63241, 63241, 63241,
- 63241, 63241, 63241, 63241, 63247, 63247, 63247, 63247,
- 63247, 63247, 63277, 63277, 63277, 63277, 63277, 63277,
- 63277, 63277, 63277, 63277, 63277, 63277, 63277, 63277,
- 63277, 63277, 63277, 63277, 63277, 63277, 63277, 63277,
- 63277, 63277, 63277, 63277, 63277, 63277, 63277, 63277,
- 63281, 63281, 63281, 63281, 63299, 63299, 63299, 63299,
- 63299, 63299, 63299, 63299, 63299, 63299, 63299, 63299,
- 63299, 63299, 63299, 63299, 63299, 63299, 63311, 63311,
- 63311, 63311, 63311, 63311, 63311, 63311, 63311, 63311,
- 63311, 63311, 63313, 63313, 63317, 63317, 63317, 63317,
- 63331, 63331, 63331, 63331, 63331, 63331, 63331, 63331,
- 63331, 63331, 63331, 63331, 63331, 63331, 63337, 63337,
- 63337, 63337, 63337, 63337, 63347, 63347, 63347, 63347,
- 63347, 63347, 63347, 63347, 63347, 63347, 63353, 63353,
- 63353, 63353, 63353, 63353, 63361, 63361, 63361, 63361,
- 63361, 63361, 63361, 63361, 63367, 63367, 63367, 63367,
- 63367, 63367, 63377, 63377, 63377, 63377, 63377, 63377,
- 63377, 63377, 63377, 63377, 63389, 63389, 63389, 63389,
- 63389, 63389, 63389, 63389, 63389, 63389, 63389, 63389,
- 63391, 63391, 63397, 63397, 63397, 63397, 63397, 63397,
- 63409, 63409, 63409, 63409, 63409, 63409, 63409, 63409,
- 63409, 63409, 63409, 63409, 63419, 63419, 63419, 63419,
- 63419, 63419, 63419, 63419, 63419, 63419, 63421, 63421,
- 63439, 63439, 63439, 63439, 63439, 63439, 63439, 63439,
- 63439, 63439, 63439, 63439, 63439, 63439, 63439, 63439,
- 63439, 63439, 63443, 63443, 63443, 63443, 63463, 63463,
- 63463, 63463, 63463, 63463, 63463, 63463, 63463, 63463,
- 63463, 63463, 63463, 63463, 63463, 63463, 63463, 63463,
- 63463, 63463, 63467, 63467, 63467, 63467, 63473, 63473,
- 63473, 63473, 63473, 63473, 63487, 63487, 63487, 63487,
- 63487, 63487, 63487, 63487, 63487, 63487, 63487, 63487,
- 63487, 63487, 63493, 63493, 63493, 63493, 63493, 63493,
- 63499, 63499, 63499, 63499, 63499, 63499, 63521, 63521,
- 63521, 63521, 63521, 63521, 63521, 63521, 63521, 63521,
- 63521, 63521, 63521, 63521, 63521, 63521, 63521, 63521,
- 63521, 63521, 63521, 63521, 63527, 63527, 63527, 63527,
- 63527, 63527, 63533, 63533, 63533, 63533, 63533, 63533,
- 63541, 63541, 63541, 63541, 63541, 63541, 63541, 63541,
- 63559, 63559, 63559, 63559, 63559, 63559, 63559, 63559,
- 63559, 63559, 63559, 63559, 63559, 63559, 63559, 63559,
- 63559, 63559, 63577, 63577, 63577, 63577, 63577, 63577,
- 63577, 63577, 63577, 63577, 63577, 63577, 63577, 63577,
- 63577, 63577, 63577, 63577, 63587, 63587, 63587, 63587,
- 63587, 63587, 63587, 63587, 63587, 63587, 63589, 63589,
- 63599, 63599, 63599, 63599, 63599, 63599, 63599, 63599,
- 63599, 63599, 63601, 63601, 63607, 63607, 63607, 63607,
- 63607, 63607, 63611, 63611, 63611, 63611, 63617, 63617,
- 63617, 63617, 63617, 63617, 63629, 63629, 63629, 63629,
- 63629, 63629, 63629, 63629, 63629, 63629, 63629, 63629,
- 63647, 63647, 63647, 63647, 63647, 63647, 63647, 63647,
- 63647, 63647, 63647, 63647, 63647, 63647, 63647, 63647,
- 63647, 63647, 63649, 63649, 63659, 63659, 63659, 63659,
- 63659, 63659, 63659, 63659, 63659, 63659, 63667, 63667,
- 63667, 63667, 63667, 63667, 63667, 63667, 63671, 63671,
- 63671, 63671, 63689, 63689, 63689, 63689, 63689, 63689,
- 63689, 63689, 63689, 63689, 63689, 63689, 63689, 63689,
- 63689, 63689, 63689, 63689, 63691, 63691, 63697, 63697,
- 63697, 63697, 63697, 63697, 63703, 63703, 63703, 63703,
- 63703, 63703, 63709, 63709, 63709, 63709, 63709, 63709,
- 63719, 63719, 63719, 63719, 63719, 63719, 63719, 63719,
- 63719, 63719, 63727, 63727, 63727, 63727, 63727, 63727,
- 63727, 63727, 63737, 63737, 63737, 63737, 63737, 63737,
- 63737, 63737, 63737, 63737, 63743, 63743, 63743, 63743,
- 63743, 63743, 63761, 63761, 63761, 63761, 63761, 63761,
- 63761, 63761, 63761, 63761, 63761, 63761, 63761, 63761,
- 63761, 63761, 63761, 63761, 63773, 63773, 63773, 63773,
- 63773, 63773, 63773, 63773, 63773, 63773, 63773, 63773,
- 63781, 63781, 63781, 63781, 63781, 63781, 63781, 63781,
- 63793, 63793, 63793, 63793, 63793, 63793, 63793, 63793,
- 63793, 63793, 63793, 63793, 63799, 63799, 63799, 63799,
- 63799, 63799, 63803, 63803, 63803, 63803, 63809, 63809,
- 63809, 63809, 63809, 63809, 63823, 63823, 63823, 63823,
- 63823, 63823, 63823, 63823, 63823, 63823, 63823, 63823,
- 63823, 63823, 63839, 63839, 63839, 63839, 63839, 63839,
- 63839, 63839, 63839, 63839, 63839, 63839, 63839, 63839,
- 63839, 63839, 63841, 63841, 63853, 63853, 63853, 63853,
- 63853, 63853, 63853, 63853, 63853, 63853, 63853, 63853,
- 63857, 63857, 63857, 63857, 63863, 63863, 63863, 63863,
- 63863, 63863, 63901, 63901, 63901, 63901, 63901, 63901,
- 63901, 63901, 63901, 63901, 63901, 63901, 63901, 63901,
- 63901, 63901, 63901, 63901, 63901, 63901, 63901, 63901,
- 63901, 63901, 63901, 63901, 63901, 63901, 63901, 63901,
- 63901, 63901, 63901, 63901, 63901, 63901, 63901, 63901,
- 63907, 63907, 63907, 63907, 63907, 63907, 63913, 63913,
- 63913, 63913, 63913, 63913, 63929, 63929, 63929, 63929,
- 63929, 63929, 63929, 63929, 63929, 63929, 63929, 63929,
- 63929, 63929, 63929, 63929, 63949, 63949, 63949, 63949,
- 63949, 63949, 63949, 63949, 63949, 63949, 63949, 63949,
- 63949, 63949, 63949, 63949, 63949, 63949, 63949, 63949,
- 63977, 63977, 63977, 63977, 63977, 63977, 63977, 63977,
- 63977, 63977, 63977, 63977, 63977, 63977, 63977, 63977,
- 63977, 63977, 63977, 63977, 63977, 63977, 63977, 63977,
- 63977, 63977, 63977, 63977, 63997, 63997, 63997, 63997,
- 63997, 63997, 63997, 63997, 63997, 63997, 63997, 63997,
- 63997, 63997, 63997, 63997, 63997, 63997, 63997, 63997,
- 64007, 64007, 64007, 64007, 64007, 64007, 64007, 64007,
- 64007, 64007, 64013, 64013, 64013, 64013, 64013, 64013,
- 64019, 64019, 64019, 64019, 64019, 64019, 64033, 64033,
- 64033, 64033, 64033, 64033, 64033, 64033, 64033, 64033,
- 64033, 64033, 64033, 64033, 64037, 64037, 64037, 64037,
- 64063, 64063, 64063, 64063, 64063, 64063, 64063, 64063,
- 64063, 64063, 64063, 64063, 64063, 64063, 64063, 64063,
- 64063, 64063, 64063, 64063, 64063, 64063, 64063, 64063,
- 64063, 64063, 64067, 64067, 64067, 64067, 64081, 64081,
- 64081, 64081, 64081, 64081, 64081, 64081, 64081, 64081,
- 64081, 64081, 64081, 64081, 64091, 64091, 64091, 64091,
- 64091, 64091, 64091, 64091, 64091, 64091, 64109, 64109,
- 64109, 64109, 64109, 64109, 64109, 64109, 64109, 64109,
- 64109, 64109, 64109, 64109, 64109, 64109, 64109, 64109,
- 64123, 64123, 64123, 64123, 64123, 64123, 64123, 64123,
- 64123, 64123, 64123, 64123, 64123, 64123, 64151, 64151,
- 64151, 64151, 64151, 64151, 64151, 64151, 64151, 64151,
- 64151, 64151, 64151, 64151, 64151, 64151, 64151, 64151,
- 64151, 64151, 64151, 64151, 64151, 64151, 64151, 64151,
- 64151, 64151, 64153, 64153, 64157, 64157, 64157, 64157,
- 64171, 64171, 64171, 64171, 64171, 64171, 64171, 64171,
- 64171, 64171, 64171, 64171, 64171, 64171, 64187, 64187,
- 64187, 64187, 64187, 64187, 64187, 64187, 64187, 64187,
- 64187, 64187, 64187, 64187, 64187, 64187, 64189, 64189,
- 64217, 64217, 64217, 64217, 64217, 64217, 64217, 64217,
- 64217, 64217, 64217, 64217, 64217, 64217, 64217, 64217,
- 64217, 64217, 64217, 64217, 64217, 64217, 64217, 64217,
- 64217, 64217, 64217, 64217, 64223, 64223, 64223, 64223,
- 64223, 64223, 64231, 64231, 64231, 64231, 64231, 64231,
- 64231, 64231, 64237, 64237, 64237, 64237, 64237, 64237,
- 64271, 64271, 64271, 64271, 64271, 64271, 64271, 64271,
- 64271, 64271, 64271, 64271, 64271, 64271, 64271, 64271,
- 64271, 64271, 64271, 64271, 64271, 64271, 64271, 64271,
- 64271, 64271, 64271, 64271, 64271, 64271, 64271, 64271,
- 64271, 64271, 64279, 64279, 64279, 64279, 64279, 64279,
- 64279, 64279, 64283, 64283, 64283, 64283, 64301, 64301,
- 64301, 64301, 64301, 64301, 64301, 64301, 64301, 64301,
- 64301, 64301, 64301, 64301, 64301, 64301, 64301, 64301,
- 64303, 64303, 64319, 64319, 64319, 64319, 64319, 64319,
- 64319, 64319, 64319, 64319, 64319, 64319, 64319, 64319,
- 64319, 64319, 64327, 64327, 64327, 64327, 64327, 64327,
- 64327, 64327, 64333, 64333, 64333, 64333, 64333, 64333,
- 64373, 64373, 64373, 64373, 64373, 64373, 64373, 64373,
- 64373, 64373, 64373, 64373, 64373, 64373, 64373, 64373,
- 64373, 64373, 64373, 64373, 64373, 64373, 64373, 64373,
- 64373, 64373, 64373, 64373, 64373, 64373, 64373, 64373,
- 64373, 64373, 64373, 64373, 64373, 64373, 64373, 64373,
- 64381, 64381, 64381, 64381, 64381, 64381, 64381, 64381,
- 64399, 64399, 64399, 64399, 64399, 64399, 64399, 64399,
- 64399, 64399, 64399, 64399, 64399, 64399, 64399, 64399,
- 64399, 64399, 64403, 64403, 64403, 64403, 64433, 64433,
- 64433, 64433, 64433, 64433, 64433, 64433, 64433, 64433,
- 64433, 64433, 64433, 64433, 64433, 64433, 64433, 64433,
- 64433, 64433, 64433, 64433, 64433, 64433, 64433, 64433,
- 64433, 64433, 64433, 64433, 64439, 64439, 64439, 64439,
- 64439, 64439, 64451, 64451, 64451, 64451, 64451, 64451,
- 64451, 64451, 64451, 64451, 64451, 64451, 64453, 64453,
- 64483, 64483, 64483, 64483, 64483, 64483, 64483, 64483,
- 64483, 64483, 64483, 64483, 64483, 64483, 64483, 64483,
- 64483, 64483, 64483, 64483, 64483, 64483, 64483, 64483,
- 64483, 64483, 64483, 64483, 64483, 64483, 64489, 64489,
- 64489, 64489, 64489, 64489, 64499, 64499, 64499, 64499,
- 64499, 64499, 64499, 64499, 64499, 64499, 64513, 64513,
- 64513, 64513, 64513, 64513, 64513, 64513, 64513, 64513,
- 64513, 64513, 64513, 64513, 64553, 64553, 64553, 64553,
- 64553, 64553, 64553, 64553, 64553, 64553, 64553, 64553,
- 64553, 64553, 64553, 64553, 64553, 64553, 64553, 64553,
- 64553, 64553, 64553, 64553, 64553, 64553, 64553, 64553,
- 64553, 64553, 64553, 64553, 64553, 64553, 64553, 64553,
- 64553, 64553, 64553, 64553, 64567, 64567, 64567, 64567,
- 64567, 64567, 64567, 64567, 64567, 64567, 64567, 64567,
- 64567, 64567, 64577, 64577, 64577, 64577, 64577, 64577,
- 64577, 64577, 64577, 64577, 64579, 64579, 64591, 64591,
- 64591, 64591, 64591, 64591, 64591, 64591, 64591, 64591,
- 64591, 64591, 64601, 64601, 64601, 64601, 64601, 64601,
- 64601, 64601, 64601, 64601, 64609, 64609, 64609, 64609,
- 64609, 64609, 64609, 64609, 64613, 64613, 64613, 64613,
- 64621, 64621, 64621, 64621, 64621, 64621, 64621, 64621,
- 64627, 64627, 64627, 64627, 64627, 64627, 64633, 64633,
- 64633, 64633, 64633, 64633, 64661, 64661, 64661, 64661,
- 64661, 64661, 64661, 64661, 64661, 64661, 64661, 64661,
- 64661, 64661, 64661, 64661, 64661, 64661, 64661, 64661,
- 64661, 64661, 64661, 64661, 64661, 64661, 64661, 64661,
- 64663, 64663, 64667, 64667, 64667, 64667, 64679, 64679,
- 64679, 64679, 64679, 64679, 64679, 64679, 64679, 64679,
- 64679, 64679, 64693, 64693, 64693, 64693, 64693, 64693,
- 64693, 64693, 64693, 64693, 64693, 64693, 64693, 64693,
- 64709, 64709, 64709, 64709, 64709, 64709, 64709, 64709,
- 64709, 64709, 64709, 64709, 64709, 64709, 64709, 64709,
- 64717, 64717, 64717, 64717, 64717, 64717, 64717, 64717,
- 64747, 64747, 64747, 64747, 64747, 64747, 64747, 64747,
- 64747, 64747, 64747, 64747, 64747, 64747, 64747, 64747,
- 64747, 64747, 64747, 64747, 64747, 64747, 64747, 64747,
- 64747, 64747, 64747, 64747, 64747, 64747, 64763, 64763,
- 64763, 64763, 64763, 64763, 64763, 64763, 64763, 64763,
- 64763, 64763, 64763, 64763, 64763, 64763, 64781, 64781,
- 64781, 64781, 64781, 64781, 64781, 64781, 64781, 64781,
- 64781, 64781, 64781, 64781, 64781, 64781, 64781, 64781,
- 64783, 64783, 64793, 64793, 64793, 64793, 64793, 64793,
- 64793, 64793, 64793, 64793, 64811, 64811, 64811, 64811,
- 64811, 64811, 64811, 64811, 64811, 64811, 64811, 64811,
- 64811, 64811, 64811, 64811, 64811, 64811, 64817, 64817,
- 64817, 64817, 64817, 64817, 64849, 64849, 64849, 64849,
- 64849, 64849, 64849, 64849, 64849, 64849, 64849, 64849,
- 64849, 64849, 64849, 64849, 64849, 64849, 64849, 64849,
- 64849, 64849, 64849, 64849, 64849, 64849, 64849, 64849,
- 64849, 64849, 64849, 64849, 64853, 64853, 64853, 64853,
- 64871, 64871, 64871, 64871, 64871, 64871, 64871, 64871,
- 64871, 64871, 64871, 64871, 64871, 64871, 64871, 64871,
- 64871, 64871, 64877, 64877, 64877, 64877, 64877, 64877,
- 64879, 64879, 64891, 64891, 64891, 64891, 64891, 64891,
- 64891, 64891, 64891, 64891, 64891, 64891, 64901, 64901,
- 64901, 64901, 64901, 64901, 64901, 64901, 64901, 64901,
- 64919, 64919, 64919, 64919, 64919, 64919, 64919, 64919,
- 64919, 64919, 64919, 64919, 64919, 64919, 64919, 64919,
- 64919, 64919, 64921, 64921, 64927, 64927, 64927, 64927,
- 64927, 64927, 64937, 64937, 64937, 64937, 64937, 64937,
- 64937, 64937, 64937, 64937, 64951, 64951, 64951, 64951,
- 64951, 64951, 64951, 64951, 64951, 64951, 64951, 64951,
- 64951, 64951, 64969, 64969, 64969, 64969, 64969, 64969,
- 64969, 64969, 64969, 64969, 64969, 64969, 64969, 64969,
- 64969, 64969, 64969, 64969, 64997, 64997, 64997, 64997,
- 64997, 64997, 64997, 64997, 64997, 64997, 64997, 64997,
- 64997, 64997, 64997, 64997, 64997, 64997, 64997, 64997,
- 64997, 64997, 64997, 64997, 64997, 64997, 64997, 64997,
- 65003, 65003, 65003, 65003, 65003, 65003, 65011, 65011,
- 65011, 65011, 65011, 65011, 65011, 65011, 65027, 65027,
- 65027, 65027, 65027, 65027, 65027, 65027, 65027, 65027,
- 65027, 65027, 65027, 65027, 65027, 65027, 65029, 65029,
- 65033, 65033, 65033, 65033, 65053, 65053, 65053, 65053,
- 65053, 65053, 65053, 65053, 65053, 65053, 65053, 65053,
- 65053, 65053, 65053, 65053, 65053, 65053, 65053, 65053,
- 65063, 65063, 65063, 65063, 65063, 65063, 65063, 65063,
- 65063, 65063, 65071, 65071, 65071, 65071, 65071, 65071,
- 65071, 65071, 65089, 65089, 65089, 65089, 65089, 65089,
- 65089, 65089, 65089, 65089, 65089, 65089, 65089, 65089,
- 65089, 65089, 65089, 65089, 65099, 65099, 65099, 65099,
- 65099, 65099, 65099, 65099, 65099, 65099, 65101, 65101,
- 65111, 65111, 65111, 65111, 65111, 65111, 65111, 65111,
- 65111, 65111, 65119, 65119, 65119, 65119, 65119, 65119,
- 65119, 65119, 65123, 65123, 65123, 65123, 65129, 65129,
- 65129, 65129, 65129, 65129, 65141, 65141, 65141, 65141,
- 65141, 65141, 65141, 65141, 65141, 65141, 65141, 65141,
- 65147, 65147, 65147, 65147, 65147, 65147, 65167, 65167,
- 65167, 65167, 65167, 65167, 65167, 65167, 65167, 65167,
- 65167, 65167, 65167, 65167, 65167, 65167, 65167, 65167,
- 65167, 65167, 65171, 65171, 65171, 65171, 65173, 65173,
- 65179, 65179, 65179, 65179, 65179, 65179, 65183, 65183,
- 65183, 65183, 65203, 65203, 65203, 65203, 65203, 65203,
- 65203, 65203, 65203, 65203, 65203, 65203, 65203, 65203,
- 65203, 65203, 65203, 65203, 65203, 65203, 65213, 65213,
- 65213, 65213, 65213, 65213, 65213, 65213, 65213, 65213,
- 65239, 65239, 65239, 65239, 65239, 65239, 65239, 65239,
- 65239, 65239, 65239, 65239, 65239, 65239, 65239, 65239,
- 65239, 65239, 65239, 65239, 65239, 65239, 65239, 65239,
- 65239, 65239, 65257, 65257, 65257, 65257, 65257, 65257,
- 65257, 65257, 65257, 65257, 65257, 65257, 65257, 65257,
- 65257, 65257, 65257, 65257, 65267, 65267, 65267, 65267,
- 65267, 65267, 65267, 65267, 65267, 65267, 65269, 65269,
- 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287,
- 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287,
- 65287, 65287, 65293, 65293, 65293, 65293, 65293, 65293,
- 65309, 65309, 65309, 65309, 65309, 65309, 65309, 65309,
- 65309, 65309, 65309, 65309, 65309, 65309, 65309, 65309,
- 65323, 65323, 65323, 65323, 65323, 65323, 65323, 65323,
- 65323, 65323, 65323, 65323, 65323, 65323, 65327, 65327,
- 65327, 65327, 65353, 65353, 65353, 65353, 65353, 65353,
- 65353, 65353, 65353, 65353, 65353, 65353, 65353, 65353,
- 65353, 65353, 65353, 65353, 65353, 65353, 65353, 65353,
- 65353, 65353, 65353, 65353, 65357, 65357, 65357, 65357,
- 65371, 65371, 65371, 65371, 65371, 65371, 65371, 65371,
- 65371, 65371, 65371, 65371, 65371, 65371, 65381, 65381,
- 65381, 65381, 65381, 65381, 65381, 65381, 65381, 65381,
- 65393, 65393, 65393, 65393, 65393, 65393, 65393, 65393,
- 65393, 65393, 65393, 65393, 65407, 65407, 65407, 65407,
- 65407, 65407, 65407, 65407, 65407, 65407, 65407, 65407,
- 65407, 65407, 65413, 65413, 65413, 65413, 65413, 65413,
- 65419, 65419, 65419, 65419, 65419, 65419, 65423, 65423,
- 65423, 65423, 65437, 65437, 65437, 65437, 65437, 65437,
- 65437, 65437, 65437, 65437, 65437, 65437, 65437, 65437,
- 65447, 65447, 65447, 65447, 65447, 65447, 65447, 65447,
- 65447, 65447, 65449, 65449, 65479, 65479, 65479, 65479,
- 65479, 65479, 65479, 65479, 65479, 65479, 65479, 65479,
- 65479, 65479, 65479, 65479, 65479, 65479, 65479, 65479,
- 65479, 65479, 65479, 65479, 65479, 65479, 65479, 65479,
- 65479, 65479, 65497, 65497, 65497, 65497, 65497, 65497,
- 65497, 65497, 65497, 65497, 65497, 65497, 65497, 65497,
- 65497, 65497, 65497, 65497, 65519, 65519, 65519, 65519,
- 65519, 65519, 65519, 65519, 65519, 65519, 65519, 65519,
- 65519, 65519, 65519, 65519, 65519, 65519, 65519, 65519,
- 65519, 65519, 65521, 65521, 65537, 65537, 65537, 65537,
- 65537, 65537, 65537, 65537, 65537, 65537, 65537, 65537,
- 65537, 65537
-};
diff --git a/hieroglyph/hgfile.c b/hieroglyph/hgfile.c
deleted file mode 100644
index 6c3ad8d..0000000
--- a/hieroglyph/hgfile.c
+++ /dev/null
@@ -1,330 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgfile.c
- * Copyright (C) 2006-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <fcntl.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <glib/gstrfuncs.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "hgfile.h"
-
-
-/*
- * private functions
- */
-static hg_filetype_t
-_hg_object_file_get_io_type(const gchar *filename)
-{
- if (strcmp(filename, "%stdin") == 0) {
- return HG_FILE_TYPE_STDIN;
- } else if (strcmp(filename, "%stdout") == 0) {
- return HG_FILE_TYPE_STDOUT;
- } else if (strcmp(filename, "%stderr") == 0) {
- return HG_FILE_TYPE_STDERR;
- } else if (strcmp(filename, "%lineedit") == 0) {
- return HG_FILE_TYPE_LINEEDIT;
- } else if (strcmp(filename, "%statementedit") == 0) {
- return HG_FILE_TYPE_STATEMENTEDIT;
- }
-
- return HG_FILE_TYPE_FILE_IO;
-}
-
-static int
-_hg_object_file_get_open_mode(hg_filemode_t mode)
-{
- return 0;
-}
-
-/*
- * public functions
- */
-hg_object_t *
-hg_object_file_new(hg_vm_t *vm,
- const gchar *filename,
- hg_filemode_t mode)
-{
- hg_object_t *retval, *obj, *string;
- gsize len, buflen = 0;
- struct stat st;
- hg_filetype_t iotype;
- hg_filedata_t *data;
- int fd;
- gpointer buffer = NULL;
- gboolean set_io = FALSE;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (filename != NULL, NULL);
-
- len = strlen(filename);
- iotype = _hg_object_file_get_io_type(filename);
- switch (iotype) {
- case HG_FILE_TYPE_FILE_IO:
- if (stat(filename, &st) == -1) {
- hg_object_file_notify_error(vm, errno);
-
- return NULL;
- }
- buflen = st.st_size;
- if ((fd = open(filename, _hg_object_file_get_open_mode(mode))) == -1) {
- hg_object_file_notify_error(vm, errno);
-
- return NULL;
- }
- if ((buffer = mmap(NULL, buflen, PROT_READ, MAP_PRIVATE, fd, 0)) != MAP_FAILED) {
- iotype = HG_FILE_TYPE_MMAPPED_IO;
- }
- break;
- case HG_FILE_TYPE_STDIN:
- if ((mode & ~HG_FILE_MODE_READ) != 0) {
- hg_object_file_notify_error(vm, EIO);
-
- return NULL;
- }
- if ((retval = hg_vm_get_io(vm, iotype)) != NULL)
- return retval;
- fd = dup(0);
- set_io = TRUE;
- break;
- case HG_FILE_TYPE_STDOUT:
- if ((mode & ~HG_FILE_MODE_WRITE) != 0) {
- hg_object_file_notify_error(vm, EIO);
-
- return NULL;
- }
- if ((retval = hg_vm_get_io(vm, iotype)) != NULL)
- return retval;
- fd = dup(1);
- set_io = TRUE;
- break;
- case HG_FILE_TYPE_STDERR:
- if ((mode & ~HG_FILE_MODE_WRITE) != 0) {
- hg_object_file_notify_error(vm, EIO);
-
- return NULL;
- }
- if ((retval = hg_vm_get_io(vm, iotype)) != NULL)
- return retval;
- fd = dup(2);
- set_io = TRUE;
- break;
- case HG_FILE_TYPE_LINEEDIT:
- case HG_FILE_TYPE_STATEMENTEDIT:
- if ((mode & ~HG_FILE_MODE_READ) != 0) {
- hg_object_file_notify_error(vm, EIO);
-
- return NULL;
- }
- if ((obj = hg_vm_get_io(vm, iotype)) == NULL) {
- hg_object_file_notify_error(vm, EIO);
-
- return NULL;
- }
- /* XXX */
- return hg_object_file_new_from_string(vm, string, HG_FILE_MODE_READ);
- default:
- g_warning("Unknown file type `%d' in creating file object", iotype);
- return NULL;
- }
- retval = hg_object_sized_new(vm, hg_n_alignof (sizeof (hg_filedata_t) + sizeof (gchar) * (len + 1)));
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_FILE;
- data = HG_OBJECT_FILE_DATA (retval);
- memset(data, 0, sizeof (hg_filedata_t) + sizeof (gchar) * (len + 1));
- data->v.buffer = buffer;
- data->fd = fd;
- data->filesize = buflen;
- data->current_position = 0;
- data->current_line = 0;
- data->iotype = iotype;
- data->mode = mode;
- data->filename_length = len;
- memcpy(data->filename, filename, len);
- if (set_io)
- hg_vm_set_io(vm, retval);
- } else {
- if (buffer)
- munmap(buffer, buflen);
- close(fd);
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_file_new_from_string(hg_vm_t *vm,
- hg_object_t *string,
- hg_filemode_t mode)
-{
- hg_object_t *retval;
- static gchar name[] = "%file buffer";
- gsize len = strlen(name);
- hg_filedata_t *data;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (string != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_STRING (string), NULL);
-
- retval = hg_object_sized_new(vm, hg_n_alignof (sizeof (hg_filedata_t) + sizeof (gchar) * (len + 1)));
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_FILE;
- data = HG_OBJECT_FILE_DATA (retval);
- data->v.buffer = string;
- data->fd = -1;
- data->filesize = HG_OBJECT_STRING (string)->real_length;
- data->current_position = 0;
- data->current_line = 0;
- data->iotype = HG_FILE_TYPE_BUFFER;
- data->mode = mode;
- data->filename_length = len;
- memcpy(data->filename, name, len);
- data->filename[len] = 0;
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_file_new_with_custom(hg_vm_t *vm,
- hg_filetable_t *table,
- hg_filemode_t mode)
-{
- hg_object_t *retval;
- static gchar name[] = "%custom file object";
- gsize len = strlen(name);
- hg_filedata_t *data;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (table != NULL, NULL);
-
- retval = hg_object_sized_new(vm, hg_n_alignof (sizeof (hg_filedata_t) + sizeof (gchar) * (len + 1)));
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_FILE;
- data = HG_OBJECT_FILE_DATA (retval);
- memset(data, 0, sizeof (hg_filedata_t) + sizeof (gchar) * (len + 1));
- data->v.table = table;
- data->filesize = 0;
- data->current_position = 0;
- data->current_line = 0;
- data->iotype = HG_FILE_TYPE_CALLBACK;
- data->mode = mode;
- data->filename_length = len;
- memcpy(data->filename, name, len);
- }
-
- return retval;
-}
-
-void
-hg_object_file_free(hg_vm_t *vm,
- hg_object_t *object)
-{
- hg_return_if_fail (vm != NULL);
- hg_return_if_fail (object != NULL);
- hg_return_if_fail (HG_OBJECT_IS_FILE (object));
-
- switch (HG_OBJECT_FILE_DATA (object)->iotype) {
- default:
- break;
- }
-}
-
-void
-hg_object_file_notify_error(hg_vm_t *vm,
- error_t _errno)
-{
- hg_error_t error = 0;
- gchar buffer[4096];
-
- hg_return_if_fail (vm != NULL);
-
- switch (_errno) {
- case 0:
- break;
- case EACCES:
- case EBADF:
- case EEXIST:
- case ENOTDIR:
- case ENOTEMPTY:
- case EPERM:
- case EROFS:
- error = HG_e_invalidfileaccess;
- break;
- case EAGAIN:
- case EBUSY:
- case EIO:
- case ENOSPC:
- error = HG_e_ioerror;
- break;
- case EMFILE:
- error = HG_e_limitcheck;
- break;
- case ENAMETOOLONG:
- case ENODEV:
- case ENOENT:
- error = HG_e_undefinedfilename;
- break;
- case ENOMEM:
- error = HG_e_VMerror;
- break;
- default:
- strerror_r(_errno, buffer, 4096);
- g_warning("%s: need to support errno %d\n %s\n",
- __PRETTY_FUNCTION__, _errno, buffer);
- break;
- }
- if (error != 0)
- hg_vm_set_error(vm, error);
-}
-
-gboolean
-hg_object_file_compare(hg_object_t *object1,
- hg_object_t *object2)
-{
- hg_return_val_if_fail (object1 != NULL, FALSE);
- hg_return_val_if_fail (object2 != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_FILE (object1), FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_FILE (object2), FALSE);
-
- /* XXX: no copy and dup functionalities are available so far.
- * so just comparing a pointer should works enough
- */
- return object1 == object2;
-}
-
-gchar *
-hg_object_file_dump(hg_object_t *object,
- gboolean verbose)
-{
- hg_return_val_if_fail (object != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_FILE (object), NULL);
-
- return g_strdup("--file--");
-}
diff --git a/hieroglyph/hgfile.h b/hieroglyph/hgfile.h
deleted file mode 100644
index b99d266..0000000
--- a/hieroglyph/hgfile.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgfile.h
- * Copyright (C) 2006-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH_HGFILE_H__
-#define __HIEROGLYPH_HGFILE_H__
-
-#include <hieroglyph/hgtypes.h>
-
-
-G_BEGIN_DECLS
-
-hg_object_t *hg_object_file_new (hg_vm_t *vm,
- const gchar *filename,
- hg_filemode_t mode) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_file_new_from_string(hg_vm_t *vm,
- hg_object_t *string,
- hg_filemode_t mode) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_file_new_with_custom(hg_vm_t *vm,
- hg_filetable_t *table,
- hg_filemode_t mode) G_GNUC_WARN_UNUSED_RESULT;
-void hg_object_file_free (hg_vm_t *vm,
- hg_object_t *object);
-void hg_object_file_notify_error (hg_vm_t *vm,
- error_t _errno);
-gboolean hg_object_file_compare (hg_object_t *object1,
- hg_object_t *object2);
-gchar *hg_object_file_dump (hg_object_t *object,
- gboolean verbose) G_GNUC_MALLOC;
-
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH_HGFILE_H__ */
diff --git a/hieroglyph/hgmacros.h b/hieroglyph/hgmacros.h
deleted file mode 100644
index be06ec7..0000000
--- a/hieroglyph/hgmacros.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgmacros.h
- * Copyright (C) 2006-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH__HGMACROS_H__
-#define __HIEROGLYPH__HGMACROS_H__
-
-#include <stdio.h>
-#include <glib/gmacros.h>
-#include <glib/gtypes.h>
-#include <glib/gmem.h>
-#include <glib/gmessages.h>
-#include <hieroglyph/utils.h>
-
-
-G_BEGIN_DECLS
-
-#define hg_n_alignof(_hg_n_) \
- ((((_hg_n_) / ALIGNOF_VOID_P) + (((_hg_n_) % ALIGNOF_VOID_P) ? 1 : 0)) * ALIGNOF_VOID_P)
-#ifdef DEBUG
-#define hg_stacktrace() \
- G_STMT_START { \
- if (hg_is_stacktrace_enabled()) { \
- gchar *__stacktrace__ = hg_get_stacktrace(); \
- \
- fprintf(stderr, "Stacktraces:\n%s\n", __stacktrace__); \
- g_free(__stacktrace__); \
- } \
- } G_STMT_END
-#else /* !DEBUG */
-#define hg_stacktrace()
-#endif /* DEBUG */
-#ifdef __GNUC__
-#define _hg_return_if_fail_warning(__domain__,__func__,__expr__) \
- G_STMT_START { \
- if (hg_allow_warning_messages()) { \
- g_return_if_fail_warning(__domain__, \
- __func__, \
- __expr__); \
- } \
- } G_STMT_END
-#define _hg_return_after_eval_if_fail(__expr__,__eval__) \
- G_STMT_START { \
- if (G_LIKELY(__expr__)) { \
- } else { \
- _hg_return_if_fail_warning(G_LOG_DOMAIN, \
- __PRETTY_FUNCTION__, \
- #__expr__); \
- __eval__; \
- return; \
- } \
- } G_STMT_END
-#define _hg_return_val_after_eval_if_fail(__expr__,__val__,__eval__) \
- G_STMT_START { \
- if (G_LIKELY(__expr__)) { \
- } else { \
- _hg_return_if_fail_warning(G_LOG_DOMAIN, \
- __PRETTY_FUNCTION__, \
- #__expr__); \
- __eval__; \
- return (__val__); \
- } \
- } G_STMT_END
-#else /* !__GNUC__ */
-#define _hg_return_after_eval_if_fail(__expr__,__eval__) \
- G_STMT_START { \
- if (__expr__) { \
- } else { \
- g_log(G_LOG_DOMAIN, \
- G_LOG_LEVEL_CRITICAL, \
- "file %s: line %d: assertion `%s' failed", \
- __FILE__, \
- __LINE__, \
- #__expr__); \
- __eval__; \
- return; \
- } \
- } G_STMT_END
-#define _hg_return_val_after_eval_if_fail(__expr__,__val__,__eval__) \
- G_STMT_START { \
- if (__expr__) { \
- } else { \
- g_log(G_LOG_DOMAIN, \
- G_LOG_LEVEL_CRITICAL, \
- "file %s: line %d: assertion `%s' failed", \
- __FILE__, \
- __LINE__, \
- #__expr__); \
- __eval__; \
- return (__val__); \
- } \
- } G_STMT_END
-#endif /* __GNUC__ */
-
-#define hg_return_if_fail(__expr__) \
- _hg_return_after_eval_if_fail(__expr__,hg_stacktrace())
-#define hg_return_val_if_fail(__expr__,__val__) \
- _hg_return_val_after_eval_if_fail(__expr__,__val__,hg_stacktrace())
-#define hg_return_after_eval_if_fail(__expr__,__eval__) \
- _hg_return_after_eval_if_fail(__expr__,hg_stacktrace();__eval__)
-#define hg_return_val_after_eval_if_fail(__expr__,__val__,__eval__) \
- _hg_return_val_after_eval_if_fail(__expr__,__val__,hg_stacktrace();__eval__)
-
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH_HGMACROS_H__ */
diff --git a/hieroglyph/hgobject.c b/hieroglyph/hgobject.c
deleted file mode 100644
index 1cbc743..0000000
--- a/hieroglyph/hgobject.c
+++ /dev/null
@@ -1,618 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgobject.c
- * Copyright (C) 2005-2009 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <math.h>
-#include <string.h>
-#include <glib/gstring.h>
-#include <hieroglyph/hgarray.h>
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/hgoperator.h>
-#include <hieroglyph/hgstring.h>
-#include <hieroglyph/vm.h>
-#include "hgobject.h"
-
-
-/*
- * Private functions
- */
-static hg_object_t *
-_hg_object_new(hg_vm_t *vm,
- gsize data_size)
-{
- hg_object_t *retval;
- guint32 total_size = hg_n_alignof (hg_n_alignof (sizeof (hg_object_header_t) + sizeof (_hg_object_t)) + data_size);
- hg_attribute_t attr;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_vm_malloc(vm, total_size);
- if (retval != NULL) {
-#ifdef DEBUG
- /* We don't ensure whether or not the allocated object is sane
- * to be used in C. any classes must have their own initializer
- * as needed
- */
- memset(HG_OBJECT_OBJECT (retval), -1, sizeof (_hg_object_t) + data_size);
-#endif /* DEBUG */
- hg_vm_get_attributes(vm, &attr);
- HG_OBJECT_HEADER (retval)->token_type = hg_vm_get_object_format(vm);
- HG_OBJECT_HEADER (retval)->n_objects = 0xff;
- HG_OBJECT_HEADER (retval)->total_length = total_size;
- HG_OBJECT_OBJECT (retval)->attr.attributes = attr.attributes;
- HG_OBJECT_GET_TYPE (retval) = -1;
- } else {
- hg_vm_set_error(vm, HG_e_VMerror);
- }
-
- return retval;
-}
-
-/* name */
-static gboolean
-_hg_object_name_compare(const hg_object_t *object1,
- const hg_object_t *object2)
-{
- guint16 i;
- gchar *p1, *p2;
-
- if (HG_OBJECT_ENCODING_NAME (object1)->representation == -1 &&
- HG_OBJECT_ENCODING_NAME (object2)->representation == -1) {
- return HG_OBJECT_ENCODING_NAME (object1)->index == HG_OBJECT_ENCODING_NAME (object2)->index;
- } else if (HG_OBJECT_NAME (object1)->reserved1 == 0 &&
- HG_OBJECT_NAME (object2)->reserved1 == 0) {
- if (HG_OBJECT_NAME (object1)->length != HG_OBJECT_NAME (object2)->length)
- return FALSE;
-
- p1 = HG_OBJECT_NAME_DATA (object1);
- p2 = HG_OBJECT_NAME_DATA (object2);
- for (i = 0; i < HG_OBJECT_NAME (object1)->length; i++) {
- if (p1[i] != p2[i])
- return FALSE;
- }
- return TRUE;
- }
-
- return FALSE;
-}
-
-/*
- * Public functions
- */
-hg_object_t *
-hg_object_new(hg_vm_t *vm,
- guint16 n_objects)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (n_objects > 0, NULL);
-
- retval = _hg_object_new(vm, sizeof (_hg_object_t) * (n_objects - 1));
- if (retval != NULL) {
- /* initialize header */
- HG_OBJECT_HEADER (retval)->n_objects = n_objects;
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_sized_new(hg_vm_t *vm,
- gsize size)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = _hg_object_new(vm, size);
- if (retval != NULL) {
- /* initialize header */
- HG_OBJECT_HEADER (retval)->n_objects = 1;
- }
-
- return retval;
-}
-
-void
-hg_object_free(hg_vm_t *vm,
- hg_object_t *object)
-{
- hg_return_if_fail (vm != NULL);
- hg_return_if_fail (object != NULL);
-
- switch (HG_OBJECT_GET_TYPE (object)) {
- case HG_OBJECT_TYPE_NULL:
- case HG_OBJECT_TYPE_INTEGER:
- case HG_OBJECT_TYPE_REAL:
- case HG_OBJECT_TYPE_NAME:
- case HG_OBJECT_TYPE_BOOLEAN:
- case HG_OBJECT_TYPE_STRING:
- case HG_OBJECT_TYPE_EVAL:
- case HG_OBJECT_TYPE_ARRAY:
- case HG_OBJECT_TYPE_MARK:
- case HG_OBJECT_TYPE_DICT:
- case HG_OBJECT_TYPE_OPERATOR:
- case HG_OBJECT_TYPE_END: /* uninitialized object */
- hg_vm_mfree(vm, object);
- break;
- case HG_OBJECT_TYPE_FILE:
- hg_object_file_free(vm, object);
- break;
- default:
- g_warning("[BUG] Unknown object type `%d' during destroying", HG_OBJECT_GET_TYPE (object));
- }
-}
-
-hg_object_t *
-hg_object_dup(hg_vm_t *vm,
- hg_object_t *object)
-{
- hg_object_t *retval = NULL;
- gsize length;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (object != NULL, NULL);
-
- switch (HG_OBJECT_GET_TYPE (object)) {
- case HG_OBJECT_TYPE_NULL:
- case HG_OBJECT_TYPE_INTEGER:
- case HG_OBJECT_TYPE_REAL:
- case HG_OBJECT_TYPE_NAME:
- case HG_OBJECT_TYPE_BOOLEAN:
- case HG_OBJECT_TYPE_EVAL:
- case HG_OBJECT_TYPE_MARK:
- length = HG_OBJECT_HEADER (object)->total_length - sizeof (hg_object_header_t) - sizeof (_hg_object_t);
- retval = hg_object_sized_new(vm, length);
- if (retval != NULL) {
- memcpy(retval, object, HG_OBJECT_HEADER (object)->total_length);
- }
- break;
- case HG_OBJECT_TYPE_STRING:
- retval = hg_object_string_substring_new(vm, object, 0, HG_OBJECT_STRING (object)->real_length);
- break;
- case HG_OBJECT_TYPE_ARRAY:
- retval = hg_object_array_subarray_new(vm, object, 0, HG_OBJECT_ARRAY (object)->real_length);
- break;
- case HG_OBJECT_TYPE_DICT:
- case HG_OBJECT_TYPE_FILE:
- case HG_OBJECT_TYPE_OPERATOR:
- /* XXX: perhaps we may want to create another container? */
- retval = object;
- break;
- default:
- g_warning("[BUG] Unknown object type `%d' during duplicating", HG_OBJECT_GET_TYPE (object));
- break;
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_copy(hg_vm_t *vm,
- hg_object_t *object)
-{
- hg_object_t *retval;
- gsize length;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (object != NULL, NULL);
-
- length = HG_OBJECT_HEADER (object)->total_length - sizeof (hg_object_header_t) - sizeof (_hg_object_t);
- retval = hg_object_sized_new(vm, length);
- if (retval != NULL) {
- memcpy(retval, object, HG_OBJECT_HEADER (object)->total_length);
- }
-
- return retval;
-}
-
-gboolean
-hg_object_compare(hg_object_t *object1,
- hg_object_t *object2)
-{
- hg_return_val_if_fail (object1 != NULL, FALSE);
- hg_return_val_if_fail (object2 != NULL, FALSE);
-
- if (HG_OBJECT_GET_TYPE (object1) != HG_OBJECT_GET_TYPE (object2))
- return FALSE;
- if (object1 == object2)
- return TRUE;
-
- switch (HG_OBJECT_GET_TYPE (object1)) {
- case HG_OBJECT_TYPE_NULL:
- case HG_OBJECT_TYPE_MARK:
- return TRUE;
- case HG_OBJECT_TYPE_INTEGER:
- return HG_OBJECT_INTEGER (object1) == HG_OBJECT_INTEGER (object2);
- case HG_OBJECT_TYPE_REAL:
- return HG_OBJECT_REAL_IS_EQUAL (object1, object2);
- case HG_OBJECT_TYPE_NAME:
- case HG_OBJECT_TYPE_EVAL:
- return _hg_object_name_compare(object1, object2);
- case HG_OBJECT_TYPE_BOOLEAN:
- return HG_OBJECT_BOOLEAN (object1) == HG_OBJECT_BOOLEAN (object2);
- case HG_OBJECT_TYPE_STRING:
- return hg_object_string_compare(object1, object2);
- case HG_OBJECT_TYPE_ARRAY:
- return hg_object_array_compare(object1, object2);
- case HG_OBJECT_TYPE_DICT:
- return hg_object_dict_compare(object1, object2);
- case HG_OBJECT_TYPE_FILE:
- return hg_object_file_compare(object1, object2);
- case HG_OBJECT_TYPE_OPERATOR:
- return hg_object_operator_compare(object1, object2);
- default:
- g_warning("Unknown object type `%d' during comparing", HG_OBJECT_GET_TYPE (object1));
- }
-
- return FALSE;
-}
-
-gchar *
-hg_object_dump(hg_object_t *object,
- gboolean verbose)
-{
- GString *string;
- gsize i;
- gchar *p;
- hg_stringdata_t *sdata;
- static gchar nostringval[] = "--nostringval--";
-
- hg_return_val_if_fail (object != NULL, NULL);
-
- string = g_string_new(NULL);
- switch (HG_OBJECT_GET_TYPE (object)) {
- case HG_OBJECT_TYPE_NULL:
- if (verbose) {
- g_string_append(string, "null");
- } else {
- g_string_append(string, nostringval);
- }
- break;
- case HG_OBJECT_TYPE_MARK:
- if (verbose) {
- g_string_append(string, "-mark-");
- } else {
- g_string_append(string, nostringval);
- }
- break;
- case HG_OBJECT_TYPE_INTEGER:
- g_string_append_printf(string, "%d", HG_OBJECT_INTEGER (object));
- break;
- case HG_OBJECT_TYPE_REAL:
- g_string_append_printf(string, "%.8f", HG_OBJECT_REAL (object));
- break;
- case HG_OBJECT_TYPE_EVAL:
- if (verbose)
- g_string_append_c(string, '/');
- case HG_OBJECT_TYPE_NAME:
- if (verbose)
- g_string_append_c(string, '/');
- if (HG_OBJECT_ENCODING_NAME (object)->representation == -1) {
- g_string_append(string, hg_object_operator_get_name(HG_OBJECT_ENCODING_NAME (object)->index));
- } else {
- p = HG_OBJECT_NAME_DATA (object);
-
- for (i = 0; i < HG_OBJECT_NAME (object)->length; i++) {
- g_string_append_c(string, p[i]);
- }
- }
- break;
- case HG_OBJECT_TYPE_BOOLEAN:
- g_string_append_printf(string, "%s", (HG_OBJECT_BOOLEAN (object) ? "true" : "false"));
- break;
- case HG_OBJECT_TYPE_STRING:
- if (verbose)
- g_string_append_c(string, '(');
- sdata = HG_OBJECT_STRING_DATA (object);
- for (i = 0; i < HG_OBJECT_STRING (object)->real_length; i++) {
- g_string_append_c(string, ((gchar *)sdata->string)[i]);
- }
- if (verbose)
- g_string_append_c(string, ')');
- break;
- case HG_OBJECT_TYPE_ARRAY:
- return hg_object_array_dump(object, verbose);
- case HG_OBJECT_TYPE_DICT:
- return hg_object_dict_dump(object, verbose);
- case HG_OBJECT_TYPE_FILE:
- return hg_object_file_dump(object, verbose);
- case HG_OBJECT_TYPE_OPERATOR:
- return hg_object_operator_dump(object, verbose);
- default:
- g_warning("Unknown object type `%d' during dumping", HG_OBJECT_GET_TYPE (object));
- }
-
- return g_string_free(string, FALSE);
-}
-
-gsize
-hg_object_get_hash(hg_object_t *object)
-{
- gsize retval = 0;
-
- hg_return_val_if_fail (object != NULL, 0);
-
- switch (HG_OBJECT_GET_TYPE (object)) {
- case HG_OBJECT_TYPE_NULL:
- retval = 0;
- break;
- case HG_OBJECT_TYPE_INTEGER:
- retval = HG_OBJECT_INTEGER (object);
- break;
- case HG_OBJECT_TYPE_REAL:
- retval = HG_OBJECT_REAL (object);
- break;
- case HG_OBJECT_TYPE_NAME:
- case HG_OBJECT_TYPE_EVAL:
- G_STMT_START {
- guint16 i, length;
- const gchar *p;
-
- if (HG_OBJECT_ENCODING_NAME (object)->representation == -1) {
- p = hg_object_operator_get_name(HG_OBJECT_ENCODING_NAME (object)->index);
- length = strlen(p);
- } else {
- p = HG_OBJECT_NAME_DATA (object);
- length = HG_OBJECT_NAME (object)->length;
- }
- for (i = 0; i < length; i++) {
- retval = (retval << 5) - retval + p[i];
- }
- } G_STMT_END;
- break;
- case HG_OBJECT_TYPE_BOOLEAN:
- retval = HG_OBJECT_BOOLEAN (object);
- break;
- case HG_OBJECT_TYPE_STRING:
- G_STMT_START {
- guint16 i, length = HG_OBJECT_STRING (object)->real_length;
- gchar *p = HG_OBJECT_STRING_DATA (object)->string;
-
- for (i = 0; i < length; i++) {
- retval = (retval << 5) - retval + p[i];
- }
- } G_STMT_END;
- break;
- case HG_OBJECT_TYPE_ARRAY:
- case HG_OBJECT_TYPE_MARK:
- case HG_OBJECT_TYPE_DICT:
- case HG_OBJECT_TYPE_FILE:
- case HG_OBJECT_TYPE_OPERATOR:
- /* XXX */
- default:
- g_warning("Unknown object type `%d' during getting a hash", HG_OBJECT_GET_TYPE (object));
- break;
- }
-
- return retval;
-}
-
-/* null */
-hg_object_t *
-hg_object_null_new(hg_vm_t *vm)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_new(vm, 1);
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_NULL;
- }
-
- return retval;
-}
-
-/* integer */
-hg_object_t *
-hg_object_integer_new(hg_vm_t *vm,
- gint32 value)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_new(vm, 1);
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_INTEGER;
- HG_OBJECT_INTEGER (retval) = value;
- }
-
- return retval;
-}
-
-/* real */
-hg_object_t *
-hg_object_real_new(hg_vm_t *vm,
- gfloat value)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_new(vm, 1);
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_REAL;
- HG_OBJECT_REAL (retval) = value;
- }
-
- return retval;
-}
-
-/* name */
-hg_object_t *
-hg_object_name_new(hg_vm_t *vm,
- const gchar *value,
- gboolean is_evaluated)
-{
- hg_object_t *retval;
- gsize size;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (value != NULL, NULL);
-
- size = strlen(value);
- retval = hg_object_sized_new(vm, size + 1);
- if (retval != NULL) {
- if (is_evaluated) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_EVAL;
- } else {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_NAME;
- }
- /* initialize the reserved area to not confuse between
- * the encoding named object and the named object.
- */
- HG_OBJECT_NAME (retval)->reserved1 = 0;
- HG_OBJECT_NAME (retval)->length = size;
- memcpy(HG_OBJECT_DATA (retval), value, size);
- }
-
- return retval;
-}
-
-gboolean
-hg_object_name_compare_with_raw(hg_object_t *object,
- const gchar *name)
-{
- gssize length1, length2;
- guint16 i;
- const gchar *p;
-
- hg_return_val_if_fail (object != NULL, FALSE);
- hg_return_val_if_fail (name != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_NAME (object) || HG_OBJECT_IS_EVAL (object), FALSE);
-
- length2 = strlen(name);
- if (HG_OBJECT_ENCODING_NAME (object)->representation == -1) {
- p = hg_object_operator_get_name(HG_OBJECT_ENCODING_NAME (object)->index);
- length1 = strlen(p);
- } else {
- p = HG_OBJECT_NAME_DATA (object);
- length1 = HG_OBJECT_NAME (object)->length;
- }
- if (length1 != length2)
- return FALSE;
-
- for (i = 0; i < length2; i++) {
- if (p[i] != name[i])
- return FALSE;
- }
-
- return TRUE;
-}
-
-gboolean
-hg_object_name_n_compare_with_raw(hg_object_t *object,
- const gchar *name,
- gssize length)
-{
- gssize length1;
- guint16 i;
- const gchar *p;
-
- hg_return_val_if_fail (object != NULL, FALSE);
- hg_return_val_if_fail (name != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_NAME (object) || HG_OBJECT_IS_EVAL (object), FALSE);
-
- if (length < 0)
- length = strlen(name);
- if (HG_OBJECT_ENCODING_NAME (object)->representation == -1) {
- p = hg_object_operator_get_name(HG_OBJECT_ENCODING_NAME (object)->index);
- length1 = strlen(p);
- } else {
- p = HG_OBJECT_NAME_DATA (object);
- length1 = HG_OBJECT_NAME (object)->length;
- }
- if (length1 < length)
- return FALSE;
-
- for (i = 0; i < length; i++) {
- if (p[i] != name[i])
- return FALSE;
- }
-
- return TRUE;
-}
-
-hg_object_t *
-hg_object_system_encoding_new(hg_vm_t *vm,
- guint32 index,
- gboolean is_evaluated)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_new(vm, 1);
- if (retval != NULL) {
- if (is_evaluated) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_EVAL;
- } else {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_NAME;
- }
- HG_OBJECT_ENCODING_NAME (retval)->representation = -1;
- HG_OBJECT_ENCODING_NAME (retval)->index = index;
- }
-
- return retval;
-}
-
-/* boolean */
-hg_object_t *
-hg_object_boolean_new(hg_vm_t *vm,
- gboolean value)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_new(vm, 1);
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_BOOLEAN;
- HG_OBJECT_BOOLEAN (retval) = value;
- }
-
- return retval;
-}
-
-/* mark */
-hg_object_t *
-hg_object_mark_new(hg_vm_t *vm)
-{
- hg_object_t *retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_new(vm, 1);
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_MARK;
- }
-
- return retval;
-}
diff --git a/hieroglyph/hgobject.h b/hieroglyph/hgobject.h
deleted file mode 100644
index 132406e..0000000
--- a/hieroglyph/hgobject.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgobject.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH__HGOBJECT_H__
-#define __HIEROGLYPH__HGOBJECT_H__
-
-#include <math.h>
-#include <hieroglyph/hgtypes.h>
-
-
-G_BEGIN_DECLS
-
-#define HG_OBJECT_OBJECT(_hg_o_) (&((_hg_o_)->object))
-#define HG_OBJECT_HEADER(_hg_o_) (&((_hg_o_)->header))
-#define HG_OBJECT_DATA(_hg_o_) (&(_hg_o_)->data)
-#define HG_OBJECT_GET_TYPE(_hg_o_) (HG_OBJECT_OBJECT (_hg_o_)->t.v.object_type)
-#define HG_OBJECT_IS(_hg_o_,_hg_t_) (HG_OBJECT_GET_TYPE (_hg_o_) == HG_OBJECT_TYPE_ ## _hg_t_)
-#define HG_OBJECT_IS_NULL(_hg_o_) HG_OBJECT_IS (_hg_o_, NULL)
-#define HG_OBJECT_IS_INTEGER(_hg_o_) HG_OBJECT_IS (_hg_o_, INTEGER)
-#define HG_OBJECT_IS_REAL(_hg_o_) HG_OBJECT_IS (_hg_o_, REAL)
-#define HG_OBJECT_IS_NAME(_hg_o_) HG_OBJECT_IS (_hg_o_, NAME)
-#define HG_OBJECT_IS_BOOLEAN(_hg_o_) HG_OBJECT_IS (_hg_o_, BOOLEAN)
-#define HG_OBJECT_IS_STRING(_hg_o_) HG_OBJECT_IS (_hg_o_, STRING)
-#define HG_OBJECT_IS_EVAL(_hg_o_) HG_OBJECT_IS (_hg_o_, EVAL)
-#define HG_OBJECT_IS_ARRAY(_hg_o_) HG_OBJECT_IS (_hg_o_, ARRAY)
-#define HG_OBJECT_IS_MARK(_hg_o_) HG_OBJECT_IS (_hg_o_, MARK)
-#define HG_OBJECT_IS_DICT(_hg_o_) HG_OBJECT_IS (_hg_o_, DICT)
-#define HG_OBJECT_IS_FILE(_hg_o_) HG_OBJECT_IS (_hg_o_, FILE)
-#define HG_OBJECT_IS_OPERATOR(_hg_o_) HG_OBJECT_IS (_hg_o_, OPERATOR)
-#define HG_OBJECT_IS_COMPLEX(_hg_o_) (HG_OBJECT_IS_ARRAY (_hg_o_) || \
- HG_OBJECT_IS_STRING (_hg_o_) || \
- HG_OBJECT_IS_DICT (_hg_o_) || \
- HG_OBJECT_IS_FILE (_hg_o_) || \
- HG_OBJECT_IS_OPERATOR (_hg_o_))
-#define HG_OBJECT_ATTR_IS(_hg_o_,_hg_a_) ((HG_OBJECT_OBJECT (_hg_o_)->attr.bit.is_ ## _hg_a_) == TRUE)
-#define HG_OBJECT_ATTR_IS_ACCESSIBLE(_hg_o_) HG_OBJECT_ATTR_IS (_hg_o_, accessible)
-#define HG_OBJECT_ATTR_IS_READABLE(_hg_o_) HG_OBJECT_ATTR_IS (_hg_o_, readable)
-#define HG_OBJECT_ATTR_IS_EXECUTEONLY(_hg_o_) HG_OBJECT_ATTR_IS (_hg_o_, executeonly)
-#define HG_OBJECT_ATTR_IS_GLOBAL(_hg_o_) HG_OBJECT_ATTR_IS (_hg_o_, global)
-#define HG_OBJECT_ATTR_IS_EXECUTABLE(_hg_o_) (HG_OBJECT_OBJECT (_hg_o_)->t.v.is_executable)
-#define HG_OBJECT_GET_N_OBJECTS(_hg_o_) HG_OBJECT_HEADER (_hg_o_)->n_objects
-#define HG_OBJECT_CHECK_N_OBJECTS(_hg_o_,_hg_n_) \
- (_hg_n_ < HG_OBJECT_GET_N_OBJECTS (_hg_o_))
-#define HG_OBJECT_INTEGER(_hg_o_) (HG_OBJECT_OBJECT (_hg_o_)->v.integer)
-#define HG_OBJECT_REAL(_hg_o_) (HG_OBJECT_OBJECT (_hg_o_)->v.real)
-#define HG_OBJECT_REAL_IS_EQUAL(_hg_o_1,_hg_o_2) \
- (fabsf(HG_OBJECT_REAL (_hg_o_1) - HG_OBJECT_REAL (_hg_o_2)) <= FLT_EPSILON)
-#define HG_OBJECT_REAL_IS_EQUAL_TO(_hg_o_,_hg_r_) \
- (fabsf(HG_OBJECT_REAL (_hg_o_) - (_hg_r_)) <= FLT_EPSILON)
-#define HG_OBJECT_REAL_IS_ZERO(_hg_o_) (fabsf(HG_OBJECT_REAL (_hg_o_)) <= FLT_EPSILON)
-#define HG_OBJECT_NAME(_hg_o_) (&(HG_OBJECT_OBJECT (_hg_o_)->v.name))
-#define HG_OBJECT_NAME_DATA(_hg_o_) (gchar *)(HG_OBJECT_DATA (_hg_o_))
-#define HG_OBJECT_ENCODING_NAME(_hg_o_) (&(HG_OBJECT_OBJECT (_hg_o_)->v.encoding))
-#define HG_OBJECT_BOOLEAN(_hg_o_) (HG_OBJECT_OBJECT (_hg_o_)->v.boolean)
-#define HG_OBJECT_STRING(_hg_o_) (&(HG_OBJECT_OBJECT (_hg_o_)->v.string))
-#define HG_OBJECT_STRING_DATA(_hg_o_) ((hg_stringdata_t *)HG_OBJECT_DATA (_hg_o_))
-#define HG_OBJECT_ARRAY(_hg_o_) (&(HG_OBJECT_OBJECT (_hg_o_)->v.array))
-#define HG_OBJECT_ARRAY_DATA(_hg_o_) ((hg_arraydata_t *)HG_OBJECT_DATA (_hg_o_))
-#define HG_OBJECT_DICT(_hg_o_) (&(HG_OBJECT_OBJECT (_hg_o_)->v.dict))
-#define HG_OBJECT_DICT_DATA(_hg_o_) ((hg_dictdata_t *)HG_OBJECT_DATA (_hg_o_))
-#define HG_OBJECT_FILE(_hg_o_) (&(HG_OBJECT_OBJECT (_hg_o_)->v.file))
-#define HG_OBJECT_FILE_DATA(_hg_o_) ((hg_filedata_t *)HG_OBJECT_DATA (_hg_o_))
-#define HG_OBJECT_OPERATOR(_hg_o_) (&(HG_OBJECT_OBJECT (_hg_o_)->v.operator))
-#define HG_OBJECT_OPERATOR_DATA(_hg_o_) ((hg_operatordata_t *)HG_OBJECT_DATA (_hg_o_))
-
-
-hg_object_t *hg_object_new (hg_vm_t *vm,
- guint16 n_objects) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_sized_new (hg_vm_t *vm,
- gsize size) G_GNUC_WARN_UNUSED_RESULT;
-void hg_object_free (hg_vm_t *vm,
- hg_object_t *object);
-hg_object_t *hg_object_dup (hg_vm_t *vm,
- hg_object_t *object) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_copy (hg_vm_t *vm,
- hg_object_t *object) G_GNUC_WARN_UNUSED_RESULT;
-gboolean hg_object_compare (hg_object_t *object1,
- hg_object_t *object2);
-gchar *hg_object_dump (hg_object_t *object,
- gboolean verbose) G_GNUC_MALLOC;
-gsize hg_object_get_hash (hg_object_t *object);
-hg_object_t *hg_object_null_new (hg_vm_t *vm) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_integer_new (hg_vm_t *vm,
- gint32 value) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_real_new (hg_vm_t *vm,
- gfloat value) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_name_new (hg_vm_t *vm,
- const gchar *value,
- gboolean is_evaluated) G_GNUC_WARN_UNUSED_RESULT;
-gboolean hg_object_name_compare_with_raw (hg_object_t *object,
- const gchar *name);
-gboolean hg_object_name_n_compare_with_raw(hg_object_t *object,
- const gchar *name,
- gssize length);
-hg_object_t *hg_object_system_encoding_new (hg_vm_t *vm,
- guint32 index,
- gboolean is_evaluated) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_boolean_new (hg_vm_t *vm,
- gboolean value) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_mark_new (hg_vm_t *vm) G_GNUC_WARN_UNUSED_RESULT;
-
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH__HGOBJECT_H__ */
diff --git a/hieroglyph/hgoperator-private.h b/hieroglyph/hgoperator-private.h
deleted file mode 100644
index 0c18ea9..0000000
--- a/hieroglyph/hgoperator-private.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgoperator-private.h
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH_HGOPERATOR_PRIVATE_H__
-#define __HIEROGLYPH_HGOPERATOR_PRIVATE_H__
-
-#include <hieroglyph/hgtypes.h>
-
-G_BEGIN_DECLS
-
-
-#define HG_DEFUNC_BEGIN_OPER(name) \
- static gboolean \
- _hg_object_operator_ ## name ## _cb(hg_vm_t *vm, \
- hg_object_t *object) \
- { \
- gboolean retval = FALSE;
-#define HG_DEFUNC_END_OPER \
- return retval; \
- }
-#define HG_DEFUNC_UNIMPLEMENTED_OPER(name) \
- static gboolean \
- _hg_object_operator_ ## name ## _cb(hg_vm_t *vm, \
- hg_object_t *object) \
- { \
- g_warning("%s isn't yet implemented.", __PRETTY_FUNCTION__); \
- \
- return FALSE; \
- }
-#define _hg_object_operator_build(_hg_v_,_hg_i_,_hg_n_) \
- G_STMT_START { \
- hg_object_t *_hg_o_, *_hg_d_, *_hg_on_; \
- \
- if (__hg_system_encoding_names[HG_enc_ ## _hg_i_] != NULL) \
- g_free(__hg_system_encoding_names[HG_enc_ ## _hg_i_]); \
- __hg_system_encoding_names[HG_enc_ ## _hg_i_] = g_strdup(# _hg_n_); \
- _hg_o_ = hg_object_operator_new((_hg_v_), HG_enc_ ## _hg_i_, _hg_object_operator_ ## _hg_i_ ## _cb); \
- if (_hg_o_) { \
- _hg_d_ = hg_vm_get_currentdict(_hg_v_); \
- _hg_on_ = hg_vm_name_lookup((_hg_v_), # _hg_n_); \
- if (!hg_object_dict_insert(_hg_d_, _hg_on_, _hg_o_)) { \
- retval = FALSE; \
- } \
- } else { \
- retval = FALSE; \
- } \
- } G_STMT_END
-#define _hg_object_operator_priv_build(_hg_v_,_hg_n_, _hg_fn_) \
- G_STMT_START { \
- hg_object_t *_hg_o_, *_hg_d_, *_hg_on_; \
- \
- _hg_o_ = hg_object_operator_new_with_custom((_hg_v_), # _hg_n_, _hg_object_operator_ ## _hg_fn_ ## _cb); \
- if (_hg_o_) { \
- _hg_d_ = hg_vm_get_currentdict(_hg_v_); \
- _hg_on_ = hg_vm_name_lookup((_hg_v_), # _hg_n_); \
- if (!hg_object_dict_insert(_hg_d_, _hg_on_, _hg_o_)) { \
- retval = FALSE; \
- } \
- } else { \
- retval = FALSE; \
- } \
- } G_STMT_END
-#define _hg_object_operator_unbuild(_hg_v_,_hg_n_) \
- G_STMT_START { \
- if (!hg_vm_dict_remove((_hg_v_), # _hg_n_, TRUE)) { \
- retval = FALSE; \
- } \
- } G_STMT_END
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH_HGOPERATOR_PRIVATE_H__ */
diff --git a/hieroglyph/hgoperator.c b/hieroglyph/hgoperator.c
deleted file mode 100644
index b629b9c..0000000
--- a/hieroglyph/hgoperator.c
+++ /dev/null
@@ -1,1283 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgoperator.c
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-#include <glib/gstrfuncs.h>
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "hgoperator.h"
-#include "hgoperator-private.h"
-
-
-static gchar *__hg_system_encoding_names[HG_enc_END];
-static gboolean __hg_operator_initialized = FALSE;
-
-
-/*
- * private functions
- */
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_arraytomark);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_dicttomark);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_for_pos_int_continue);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_for_pos_real_continue);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_forall_array_continue);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_forall_dict_continue);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_forall_string_continue);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_loop_continue);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_repeat_continue);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_stopped_continue);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_findfont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_definefont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_stringcvs);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_undefinefont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (private_write_eqeq_only);
-HG_DEFUNC_UNIMPLEMENTED_OPER (abs);
-HG_DEFUNC_UNIMPLEMENTED_OPER (add);
-HG_DEFUNC_UNIMPLEMENTED_OPER (aload);
-HG_DEFUNC_UNIMPLEMENTED_OPER (and);
-HG_DEFUNC_UNIMPLEMENTED_OPER (arc);
-HG_DEFUNC_UNIMPLEMENTED_OPER (arcn);
-HG_DEFUNC_UNIMPLEMENTED_OPER (arcto);
-HG_DEFUNC_UNIMPLEMENTED_OPER (array);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ashow);
-HG_DEFUNC_UNIMPLEMENTED_OPER (astore);
-HG_DEFUNC_UNIMPLEMENTED_OPER (atan);
-HG_DEFUNC_UNIMPLEMENTED_OPER (awidthshow);
-HG_DEFUNC_UNIMPLEMENTED_OPER (begin);
-HG_DEFUNC_UNIMPLEMENTED_OPER (bind);
-HG_DEFUNC_UNIMPLEMENTED_OPER (bitshift);
-HG_DEFUNC_UNIMPLEMENTED_OPER (bytesavailable);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cachestatus);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ceiling);
-HG_DEFUNC_UNIMPLEMENTED_OPER (charpath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (clear);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cleardictstack);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cleartomark);
-HG_DEFUNC_UNIMPLEMENTED_OPER (clip);
-HG_DEFUNC_UNIMPLEMENTED_OPER (clippath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (closefile);
-HG_DEFUNC_UNIMPLEMENTED_OPER (closepath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (concat);
-HG_DEFUNC_UNIMPLEMENTED_OPER (concatmatrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (copy);
-HG_DEFUNC_UNIMPLEMENTED_OPER (copypage);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cos);
-HG_DEFUNC_UNIMPLEMENTED_OPER (count);
-HG_DEFUNC_UNIMPLEMENTED_OPER (countdictstack);
-HG_DEFUNC_UNIMPLEMENTED_OPER (countexecstack);
-HG_DEFUNC_UNIMPLEMENTED_OPER (counttomark);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentdash);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentdict);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentfile);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentflat);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentfont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentgray);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currenthsbcolor);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentlinecap);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentlinejoin);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentlinewidth);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentmatrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentmiterlimit);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentpoint);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentrgbcolor);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentscreen);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currenttransfer);
-HG_DEFUNC_UNIMPLEMENTED_OPER (curveto);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cvi);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cvlit);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cvn);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cvr);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cvrs);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cvx);
-HG_DEFUNC_UNIMPLEMENTED_OPER (def);
-HG_DEFUNC_UNIMPLEMENTED_OPER (defaultmatrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (dict);
-HG_DEFUNC_UNIMPLEMENTED_OPER (dictstack);
-HG_DEFUNC_UNIMPLEMENTED_OPER (div);
-HG_DEFUNC_UNIMPLEMENTED_OPER (dtransform);
-HG_DEFUNC_UNIMPLEMENTED_OPER (dup);
-HG_DEFUNC_UNIMPLEMENTED_OPER (echo);
-HG_DEFUNC_UNIMPLEMENTED_OPER (eexec);
-HG_DEFUNC_UNIMPLEMENTED_OPER (end);
-HG_DEFUNC_UNIMPLEMENTED_OPER (eoclip);
-HG_DEFUNC_UNIMPLEMENTED_OPER (eofill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (eq);
-HG_DEFUNC_UNIMPLEMENTED_OPER (erasepage);
-HG_DEFUNC_UNIMPLEMENTED_OPER (exch);
-HG_DEFUNC_UNIMPLEMENTED_OPER (exec);
-HG_DEFUNC_UNIMPLEMENTED_OPER (execstack);
-HG_DEFUNC_UNIMPLEMENTED_OPER (executeonly);
-HG_DEFUNC_UNIMPLEMENTED_OPER (exit);
-HG_DEFUNC_UNIMPLEMENTED_OPER (exp);
-HG_DEFUNC_UNIMPLEMENTED_OPER (file);
-HG_DEFUNC_UNIMPLEMENTED_OPER (fill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (flattenpath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (flush);
-HG_DEFUNC_UNIMPLEMENTED_OPER (flushfile);
-HG_DEFUNC_UNIMPLEMENTED_OPER (FontDirectory);
-HG_DEFUNC_UNIMPLEMENTED_OPER (for);
-HG_DEFUNC_UNIMPLEMENTED_OPER (forall);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ge);
-HG_DEFUNC_UNIMPLEMENTED_OPER (get);
-HG_DEFUNC_UNIMPLEMENTED_OPER (getinterval);
-HG_DEFUNC_UNIMPLEMENTED_OPER (grestore);
-HG_DEFUNC_UNIMPLEMENTED_OPER (grestoreall);
-HG_DEFUNC_UNIMPLEMENTED_OPER (gsave);
-HG_DEFUNC_UNIMPLEMENTED_OPER (gt);
-HG_DEFUNC_UNIMPLEMENTED_OPER (identmatrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (idiv);
-HG_DEFUNC_UNIMPLEMENTED_OPER (idtransform);
-HG_DEFUNC_UNIMPLEMENTED_OPER (if);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ifelse);
-HG_DEFUNC_UNIMPLEMENTED_OPER (image);
-HG_DEFUNC_UNIMPLEMENTED_OPER (imagemask);
-HG_DEFUNC_UNIMPLEMENTED_OPER (index);
-HG_DEFUNC_UNIMPLEMENTED_OPER (initclip);
-HG_DEFUNC_UNIMPLEMENTED_OPER (initgraphics);
-HG_DEFUNC_UNIMPLEMENTED_OPER (initmatrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (internaldict);
-HG_DEFUNC_UNIMPLEMENTED_OPER (invertmatrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (itransform);
-HG_DEFUNC_UNIMPLEMENTED_OPER (known);
-HG_DEFUNC_UNIMPLEMENTED_OPER (kshow);
-HG_DEFUNC_UNIMPLEMENTED_OPER (le);
-HG_DEFUNC_UNIMPLEMENTED_OPER (length);
-HG_DEFUNC_UNIMPLEMENTED_OPER (lineto);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ln);
-HG_DEFUNC_UNIMPLEMENTED_OPER (log);
-HG_DEFUNC_UNIMPLEMENTED_OPER (loop);
-HG_DEFUNC_UNIMPLEMENTED_OPER (lt);
-HG_DEFUNC_UNIMPLEMENTED_OPER (makefont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (maxlength);
-HG_DEFUNC_UNIMPLEMENTED_OPER (mod);
-HG_DEFUNC_UNIMPLEMENTED_OPER (moveto);
-HG_DEFUNC_UNIMPLEMENTED_OPER (mul);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ne);
-HG_DEFUNC_UNIMPLEMENTED_OPER (neg);
-HG_DEFUNC_UNIMPLEMENTED_OPER (newpath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (noaccess);
-HG_DEFUNC_UNIMPLEMENTED_OPER (not);
-HG_DEFUNC_UNIMPLEMENTED_OPER (nulldevice);
-HG_DEFUNC_UNIMPLEMENTED_OPER (or);
-HG_DEFUNC_UNIMPLEMENTED_OPER (pathbbox);
-HG_DEFUNC_UNIMPLEMENTED_OPER (pathforall);
-HG_DEFUNC_UNIMPLEMENTED_OPER (pop);
-HG_DEFUNC_UNIMPLEMENTED_OPER (print);
-HG_DEFUNC_UNIMPLEMENTED_OPER (put);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rand);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rcheck);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rcurveto);
-HG_DEFUNC_UNIMPLEMENTED_OPER (read);
-HG_DEFUNC_UNIMPLEMENTED_OPER (readhexstring);
-HG_DEFUNC_UNIMPLEMENTED_OPER (readline);
-HG_DEFUNC_UNIMPLEMENTED_OPER (readonly);
-HG_DEFUNC_UNIMPLEMENTED_OPER (readstring);
-HG_DEFUNC_UNIMPLEMENTED_OPER (repeat);
-HG_DEFUNC_UNIMPLEMENTED_OPER (resetfile);
-HG_DEFUNC_UNIMPLEMENTED_OPER (restore);
-HG_DEFUNC_UNIMPLEMENTED_OPER (reversepath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rlineto);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rmoveto);
-HG_DEFUNC_UNIMPLEMENTED_OPER (roll);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rotate);
-HG_DEFUNC_UNIMPLEMENTED_OPER (round);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rrand);
-HG_DEFUNC_UNIMPLEMENTED_OPER (save);
-HG_DEFUNC_UNIMPLEMENTED_OPER (scale);
-HG_DEFUNC_UNIMPLEMENTED_OPER (scalefont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (search);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcachedevice);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcachelimit);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcharwidth);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setdash);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setflat);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setfont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setgray);
-HG_DEFUNC_UNIMPLEMENTED_OPER (sethsbcolor);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setlinecap);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setlinejoin);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setlinewidth);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setmatrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setmiterlimit);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setrgbcolor);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setscreen);
-HG_DEFUNC_UNIMPLEMENTED_OPER (settransfer);
-HG_DEFUNC_UNIMPLEMENTED_OPER (show);
-HG_DEFUNC_UNIMPLEMENTED_OPER (showpage);
-HG_DEFUNC_UNIMPLEMENTED_OPER (sin);
-HG_DEFUNC_UNIMPLEMENTED_OPER (sqrt);
-HG_DEFUNC_UNIMPLEMENTED_OPER (srand);
-HG_DEFUNC_UNIMPLEMENTED_OPER (status);
-HG_DEFUNC_UNIMPLEMENTED_OPER (stop);
-HG_DEFUNC_UNIMPLEMENTED_OPER (stopped);
-HG_DEFUNC_UNIMPLEMENTED_OPER (string);
-HG_DEFUNC_UNIMPLEMENTED_OPER (stringwidth);
-HG_DEFUNC_UNIMPLEMENTED_OPER (stroke);
-HG_DEFUNC_UNIMPLEMENTED_OPER (strokepath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (sub);
-HG_DEFUNC_UNIMPLEMENTED_OPER (token);
-HG_DEFUNC_UNIMPLEMENTED_OPER (transform);
-HG_DEFUNC_UNIMPLEMENTED_OPER (translate);
-HG_DEFUNC_UNIMPLEMENTED_OPER (truncate);
-HG_DEFUNC_UNIMPLEMENTED_OPER (type);
-HG_DEFUNC_UNIMPLEMENTED_OPER (usertime);
-HG_DEFUNC_UNIMPLEMENTED_OPER (vmstatus);
-HG_DEFUNC_UNIMPLEMENTED_OPER (wcheck);
-HG_DEFUNC_UNIMPLEMENTED_OPER (where);
-HG_DEFUNC_UNIMPLEMENTED_OPER (widthshow);
-HG_DEFUNC_UNIMPLEMENTED_OPER (write);
-HG_DEFUNC_UNIMPLEMENTED_OPER (writehexstring);
-HG_DEFUNC_UNIMPLEMENTED_OPER (writestring);
-HG_DEFUNC_UNIMPLEMENTED_OPER (xcheck);
-HG_DEFUNC_UNIMPLEMENTED_OPER (xor);
-
-HG_DEFUNC_UNIMPLEMENTED_OPER (arct);
-HG_DEFUNC_UNIMPLEMENTED_OPER (colorimage);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cshow);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentblackgeneration);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentcacheparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentcmykcolor);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentcolor);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentcolorrendering);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentcolorscreen);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentcolorspace);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentcolortransfer);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentdevparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentgstate);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currenthalftone);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentobjectformat);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentoverprint);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentpacking);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentpagedevice);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentshared);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentstrokeadjust);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentsystemparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentundercolorremoval);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentuserparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (defineresource);
-HG_DEFUNC_UNIMPLEMENTED_OPER (defineuserobject);
-HG_DEFUNC_UNIMPLEMENTED_OPER (deletefile);
-HG_DEFUNC_UNIMPLEMENTED_OPER (execform);
-HG_DEFUNC_UNIMPLEMENTED_OPER (execuserobject);
-HG_DEFUNC_UNIMPLEMENTED_OPER (filenameforall);
-HG_DEFUNC_UNIMPLEMENTED_OPER (fileposition);
-HG_DEFUNC_UNIMPLEMENTED_OPER (filter);
-HG_DEFUNC_UNIMPLEMENTED_OPER (findencoding);
-HG_DEFUNC_UNIMPLEMENTED_OPER (findresource);
-HG_DEFUNC_UNIMPLEMENTED_OPER (gcheck);
-HG_DEFUNC_UNIMPLEMENTED_OPER (GlobalFontDirectory);
-HG_DEFUNC_UNIMPLEMENTED_OPER (glyphshow);
-HG_DEFUNC_UNIMPLEMENTED_OPER (gstate);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ineofill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (infill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (instroke);
-HG_DEFUNC_UNIMPLEMENTED_OPER (inueofill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (inufill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (inustroke);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ISOLatin1Encoding);
-HG_DEFUNC_UNIMPLEMENTED_OPER (languagelevel);
-HG_DEFUNC_UNIMPLEMENTED_OPER (makepattern);
-HG_DEFUNC_UNIMPLEMENTED_OPER (packedarray);
-HG_DEFUNC_UNIMPLEMENTED_OPER (printobject);
-HG_DEFUNC_UNIMPLEMENTED_OPER (realtime);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rectclip);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rectfill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rectstroke);
-HG_DEFUNC_UNIMPLEMENTED_OPER (renamefile);
-HG_DEFUNC_UNIMPLEMENTED_OPER (resourceforall);
-HG_DEFUNC_UNIMPLEMENTED_OPER (resourcestatus);
-HG_DEFUNC_UNIMPLEMENTED_OPER (rootfont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (scheck);
-HG_DEFUNC_UNIMPLEMENTED_OPER (selectfont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (serialnumber);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setbbox);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setblackgeneration);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcachedevice2);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcacheparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcmykcolor);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcolor);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcolorrendering);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcolorscreen);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcolorspace);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setcolortransfer);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setdevparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setfileposition);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setgstate);
-HG_DEFUNC_UNIMPLEMENTED_OPER (sethalftone);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setobjectformat);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setoverprint);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setpacking);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setpagedevice);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setpattern);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setshared);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setstrokeadjust);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setsystemparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setucacheparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setundercolorremoval);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setuserparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setvmthreshold);
-HG_DEFUNC_UNIMPLEMENTED_OPER (shareddict);
-HG_DEFUNC_UNIMPLEMENTED_OPER (SharedFontDirectory);
-HG_DEFUNC_UNIMPLEMENTED_OPER (startjob);
-HG_DEFUNC_UNIMPLEMENTED_OPER (uappend);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ucache);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ucachestatus);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ueofill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ufill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (undef);
-HG_DEFUNC_UNIMPLEMENTED_OPER (undefineresource);
-HG_DEFUNC_UNIMPLEMENTED_OPER (undefineuserobject);
-HG_DEFUNC_UNIMPLEMENTED_OPER (upath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (UserObjects);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ustroke);
-HG_DEFUNC_UNIMPLEMENTED_OPER (ustrokepath);
-HG_DEFUNC_UNIMPLEMENTED_OPER (vmreclaim);
-HG_DEFUNC_UNIMPLEMENTED_OPER (writeobject);
-HG_DEFUNC_UNIMPLEMENTED_OPER (xshow);
-HG_DEFUNC_UNIMPLEMENTED_OPER (xyshow);
-HG_DEFUNC_UNIMPLEMENTED_OPER (yshow);
-
-HG_DEFUNC_UNIMPLEMENTED_OPER (addglyph);
-HG_DEFUNC_UNIMPLEMENTED_OPER (beginbfchar);
-HG_DEFUNC_UNIMPLEMENTED_OPER (beginbfrange);
-HG_DEFUNC_UNIMPLEMENTED_OPER (begincidchar);
-HG_DEFUNC_UNIMPLEMENTED_OPER (begincidrange);
-HG_DEFUNC_UNIMPLEMENTED_OPER (begincmap);
-HG_DEFUNC_UNIMPLEMENTED_OPER (begincodespacerange);
-HG_DEFUNC_UNIMPLEMENTED_OPER (beginnotdefchar);
-HG_DEFUNC_UNIMPLEMENTED_OPER (beginnotdefrange);
-HG_DEFUNC_UNIMPLEMENTED_OPER (beginrearrangedfont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (beginusematrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (cliprestore);
-HG_DEFUNC_UNIMPLEMENTED_OPER (clipsave);
-HG_DEFUNC_UNIMPLEMENTED_OPER (composefont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentsmoothness);
-HG_DEFUNC_UNIMPLEMENTED_OPER (currentrapparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endbfchar);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endbfrange);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endcidchar);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endcidrange);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endcmap);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endcodespacerange);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endnotdefchar);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endnotdefrange);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endrearrangedfont);
-HG_DEFUNC_UNIMPLEMENTED_OPER (endusematrix);
-HG_DEFUNC_UNIMPLEMENTED_OPER (findcolorrendering);
-HG_DEFUNC_UNIMPLEMENTED_OPER (gethalftonename);
-HG_DEFUNC_UNIMPLEMENTED_OPER (getpagedevicename);
-HG_DEFUNC_UNIMPLEMENTED_OPER (getsubstitutecrd);
-HG_DEFUNC_UNIMPLEMENTED_OPER (removeall);
-HG_DEFUNC_UNIMPLEMENTED_OPER (removeglyphs);
-HG_DEFUNC_UNIMPLEMENTED_OPER (setsmoothness);
-HG_DEFUNC_UNIMPLEMENTED_OPER (settrapparams);
-HG_DEFUNC_UNIMPLEMENTED_OPER (settrapzone);
-HG_DEFUNC_UNIMPLEMENTED_OPER (shfill);
-HG_DEFUNC_UNIMPLEMENTED_OPER (startdata);
-HG_DEFUNC_UNIMPLEMENTED_OPER (usecmap);
-HG_DEFUNC_UNIMPLEMENTED_OPER (usefont);
-
-/*
- * public functions
- */
-hg_object_t *
-hg_object_operator_new(hg_vm_t *vm,
- hg_system_encoding_t enc,
- hg_operator_func_t func)
-{
- hg_object_t *retval;
- gint16 length;
- hg_operatordata_t *data;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (__hg_system_encoding_names[enc] != NULL, NULL);
-
- length = strlen(__hg_system_encoding_names[enc]);
- retval = hg_object_sized_new(vm, hg_n_alignof (sizeof (hg_operatordata_t) + sizeof (gchar) * (length + 1)));
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_OPERATOR;
- HG_OBJECT_OPERATOR (retval)->length = length;
- data = HG_OBJECT_OPERATOR_DATA (retval);
- data->func = func;
- memcpy(data->name, __hg_system_encoding_names[enc], length);
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_operator_new_with_custom(hg_vm_t *vm,
- gchar *name,
- hg_operator_func_t func)
-{
- hg_object_t *retval;
- gint16 length;
- hg_operatordata_t *data;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (name != NULL, NULL);
-
- length = strlen(name);
- retval = hg_object_sized_new(vm, hg_n_alignof (sizeof (hg_operatordata_t) + sizeof (gchar) * (length + 1)));
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_OPERATOR;
- HG_OBJECT_OPERATOR (retval)->length = length;
- data = HG_OBJECT_OPERATOR_DATA (retval);
- data->func = func;
- memcpy(data->name, name, length);
- }
-
- return retval;
-}
-
-gboolean
-hg_object_operator_initialize(hg_vm_t *vm,
- hg_emulationtype_t level)
-{
- gboolean retval = TRUE;
- hg_emulationtype_t current;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
- hg_return_val_if_fail (level < HG_EMU_END, FALSE);
-
- /* just set a flag to lock up */
- __hg_operator_initialized = TRUE;
-
- current = hg_vm_get_emulation_level(vm);
- if (level >= HG_EMU_PS_LEVEL_1 && current < level) {
- _hg_object_operator_priv_build(vm, %arraytomark, private_arraytomark);
- _hg_object_operator_priv_build(vm, %dicttomark, private_dicttomark);
- _hg_object_operator_priv_build(vm, %for_pos_int_continue, private_for_pos_int_continue);
- _hg_object_operator_priv_build(vm, %for_pos_real_continue, private_for_pos_real_continue);
- _hg_object_operator_priv_build(vm, %forall_array_continue, private_forall_array_continue);
- _hg_object_operator_priv_build(vm, %forall_dict_continue, private_forall_dict_continue);
- _hg_object_operator_priv_build(vm, %forall_string_continue, private_forall_string_continue);
- _hg_object_operator_priv_build(vm, %loop_continue, private_loop_continue);
- _hg_object_operator_priv_build(vm, %repeat_continue, private_repeat_continue);
- _hg_object_operator_priv_build(vm, %stopped_continue, private_stopped_continue);
- _hg_object_operator_priv_build(vm, .findfont, private_findfont);
- _hg_object_operator_priv_build(vm, .definefont, private_definefont);
- _hg_object_operator_priv_build(vm, .stringcvs, private_stringcvs);
- _hg_object_operator_priv_build(vm, .undefinefont, private_undefinefont);
- _hg_object_operator_priv_build(vm, .write==only, private_write_eqeq_only);
- _hg_object_operator_build(vm, abs, abs);
- _hg_object_operator_build(vm, add, add);
- _hg_object_operator_build(vm, aload, aload);
- _hg_object_operator_build(vm, and, and);
- _hg_object_operator_build(vm, arc, arc);
- _hg_object_operator_build(vm, arcn, arcn);
- _hg_object_operator_build(vm, arcto, arcto);
- _hg_object_operator_build(vm, array, array);
- _hg_object_operator_build(vm, ashow, ashow);
- _hg_object_operator_build(vm, astore, astore);
- _hg_object_operator_build(vm, atan, atan);
- _hg_object_operator_build(vm, awidthshow, awidthshow);
- _hg_object_operator_build(vm, begin, begin);
- _hg_object_operator_build(vm, bind, bind);
- _hg_object_operator_build(vm, bitshift, bitshift);
- _hg_object_operator_build(vm, bytesavailable, bytesavailable);
- _hg_object_operator_build(vm, cachestatus, cachestatus);
- _hg_object_operator_build(vm, ceiling, ceiling);
- _hg_object_operator_build(vm, charpath, charpath);
- _hg_object_operator_build(vm, clear, clear);
- _hg_object_operator_build(vm, cleardictstack, cleardictstack);
- _hg_object_operator_build(vm, cleartomark, cleartomark);
- _hg_object_operator_build(vm, clip, clip);
- _hg_object_operator_build(vm, clippath, clippath);
- _hg_object_operator_build(vm, closefile, closefile);
- _hg_object_operator_build(vm, closepath, closepath);
- _hg_object_operator_build(vm, concat, concat);
- _hg_object_operator_build(vm, concatmatrix, concatmatrix);
- _hg_object_operator_build(vm, copy, copy);
- _hg_object_operator_build(vm, copypage, copypage);
- _hg_object_operator_build(vm, cos, cos);
- _hg_object_operator_build(vm, count, count);
- _hg_object_operator_build(vm, countdictstack, countdictstack);
- _hg_object_operator_build(vm, countexecstack, countexecstack);
- _hg_object_operator_build(vm, counttomark, counttomark);
- _hg_object_operator_build(vm, currentdash, currentdash);
- _hg_object_operator_build(vm, currentdict, currentdict);
- _hg_object_operator_build(vm, currentfile, currentfile);
- _hg_object_operator_build(vm, currentflat, currentflat);
- _hg_object_operator_build(vm, currentfont, currentfont);
- _hg_object_operator_build(vm, currentgray, currentgray);
- _hg_object_operator_build(vm, currenthsbcolor, currenthsbcolor);
- _hg_object_operator_build(vm, currentlinecap, currentlinecap);
- _hg_object_operator_build(vm, currentlinejoin, currentlinejoin);
- _hg_object_operator_build(vm, currentlinewidth, currentlinewidth);
- _hg_object_operator_build(vm, currentmatrix, currentmatrix);
- _hg_object_operator_build(vm, currentmiterlimit, currentmiterlimit);
- _hg_object_operator_build(vm, currentpoint, currentpoint);
- _hg_object_operator_build(vm, currentrgbcolor, currentrgbcolor);
- _hg_object_operator_build(vm, currentscreen, currentscreen);
- _hg_object_operator_build(vm, currenttransfer, currenttransfer);
- _hg_object_operator_build(vm, curveto, curveto);
- _hg_object_operator_build(vm, cvi, cvi);
- _hg_object_operator_build(vm, cvlit, cvlit);
- _hg_object_operator_build(vm, cvn, cvn);
- _hg_object_operator_build(vm, cvr, cvr);
- _hg_object_operator_build(vm, cvrs, cvrs);
- _hg_object_operator_build(vm, cvx, cvx);
- _hg_object_operator_build(vm, def, def);
- _hg_object_operator_build(vm, defaultmatrix, defaultmatrix);
- _hg_object_operator_build(vm, dict, dict);
- _hg_object_operator_build(vm, dictstack, dictstack);
- _hg_object_operator_build(vm, div, div);
- _hg_object_operator_build(vm, dtransform, dtransform);
- _hg_object_operator_build(vm, dup, dup);
- _hg_object_operator_build(vm, echo, echo);
- _hg_object_operator_priv_build(vm, eexec, eexec);
- _hg_object_operator_build(vm, end, end);
- _hg_object_operator_build(vm, eoclip, eoclip);
- _hg_object_operator_build(vm, eofill, eofill);
- _hg_object_operator_build(vm, eq, eq);
- _hg_object_operator_build(vm, erasepage, erasepage);
- _hg_object_operator_build(vm, exch, exch);
- _hg_object_operator_build(vm, exec, exec);
- _hg_object_operator_build(vm, execstack, execstack);
- _hg_object_operator_build(vm, executeonly, executeonly);
- _hg_object_operator_build(vm, exit, exit);
- _hg_object_operator_build(vm, exp, exp);
- _hg_object_operator_build(vm, file, file);
- _hg_object_operator_build(vm, fill, fill);
- _hg_object_operator_build(vm, flattenpath, flattenpath);
- _hg_object_operator_build(vm, flush, flush);
- _hg_object_operator_build(vm, flushfile, flushfile);
- _hg_object_operator_build(vm, FontDirectory, fontdirectory);
- _hg_object_operator_build(vm, for, for);
- _hg_object_operator_build(vm, forall, forall);
- _hg_object_operator_build(vm, ge, ge);
- _hg_object_operator_build(vm, get, get);
- _hg_object_operator_build(vm, getinterval, getinterval);
- _hg_object_operator_build(vm, grestore, grestore);
- _hg_object_operator_build(vm, grestoreall, grestoreall);
- _hg_object_operator_build(vm, gsave, gsave);
- _hg_object_operator_build(vm, gt, gt);
- _hg_object_operator_build(vm, identmatrix, identmatrix);
- _hg_object_operator_build(vm, idiv, idiv);
- _hg_object_operator_build(vm, idtransform, idtransform);
- _hg_object_operator_build(vm, if, if);
- _hg_object_operator_build(vm, ifelse, ifelse);
- _hg_object_operator_build(vm, image, image);
- _hg_object_operator_build(vm, imagemask, imagemask);
- _hg_object_operator_build(vm, index, index);
- _hg_object_operator_build(vm, initclip, initclip);
- _hg_object_operator_build(vm, initgraphics, initgraphics);
- _hg_object_operator_build(vm, initmatrix, initmatrix);
- _hg_object_operator_priv_build(vm, internaldict, internaldict);
- _hg_object_operator_build(vm, invertmatrix, invertmatrix);
- _hg_object_operator_build(vm, itransform, itransform);
- _hg_object_operator_build(vm, known, known);
- _hg_object_operator_build(vm, kshow, kshow);
- _hg_object_operator_build(vm, le, le);
- _hg_object_operator_build(vm, length, length);
- _hg_object_operator_build(vm, lineto, lineto);
- _hg_object_operator_build(vm, ln, ln);
- _hg_object_operator_build(vm, log, log);
- _hg_object_operator_build(vm, loop, loop);
- _hg_object_operator_build(vm, lt, lt);
- _hg_object_operator_build(vm, makefont, makefont);
- _hg_object_operator_build(vm, maxlength, maxlength);
- _hg_object_operator_build(vm, mod, mod);
- _hg_object_operator_build(vm, moveto, moveto);
- _hg_object_operator_build(vm, mul, mul);
- _hg_object_operator_build(vm, ne, ne);
- _hg_object_operator_build(vm, neg, neg);
- _hg_object_operator_build(vm, newpath, newpath);
- _hg_object_operator_build(vm, noaccess, noaccess);
- _hg_object_operator_build(vm, not, not);
- _hg_object_operator_build(vm, nulldevice, nulldevice);
- _hg_object_operator_build(vm, or, or);
- _hg_object_operator_build(vm, pathbbox, pathbbox);
- _hg_object_operator_build(vm, pathforall, pathforall);
- _hg_object_operator_build(vm, pop, pop);
- _hg_object_operator_build(vm, print, print);
- _hg_object_operator_build(vm, put, put);
- _hg_object_operator_build(vm, rand, rand);
- _hg_object_operator_build(vm, rcheck, rcheck);
- _hg_object_operator_build(vm, rcurveto, rcurveto);
- _hg_object_operator_build(vm, read, read);
- _hg_object_operator_build(vm, readhexstring, readhexstring);
- _hg_object_operator_build(vm, readline, readline);
- _hg_object_operator_build(vm, readonly, readonly);
- _hg_object_operator_build(vm, readstring, readstring);
- _hg_object_operator_build(vm, repeat, repeat);
- _hg_object_operator_build(vm, resetfile, resetfile);
- _hg_object_operator_build(vm, restore, restore);
- _hg_object_operator_build(vm, reversepath, reversepath);
- _hg_object_operator_build(vm, rlineto, rlineto);
- _hg_object_operator_build(vm, rmoveto, rmoveto);
- _hg_object_operator_build(vm, roll, roll);
- _hg_object_operator_build(vm, rotate, rotate);
- _hg_object_operator_build(vm, round, round);
- _hg_object_operator_build(vm, rrand, rrand);
- _hg_object_operator_build(vm, save, save);
- _hg_object_operator_build(vm, scale, scale);
- _hg_object_operator_build(vm, scalefont, scalefont);
- _hg_object_operator_build(vm, search, search);
- _hg_object_operator_build(vm, setcachedevice, setcachedevice);
- _hg_object_operator_build(vm, setcachelimit, setcachelimit);
- _hg_object_operator_build(vm, setcharwidth, setcharwidth);
- _hg_object_operator_build(vm, setdash, setdash);
- _hg_object_operator_build(vm, setflat, setflat);
- _hg_object_operator_build(vm, setfont, setfont);
- _hg_object_operator_build(vm, setgray, setgray);
- _hg_object_operator_build(vm, sethsbcolor, sethsbcolor);
- _hg_object_operator_build(vm, setlinecap, setlinecap);
- _hg_object_operator_build(vm, setlinejoin, setlinejoin);
- _hg_object_operator_build(vm, setlinewidth, setlinewidth);
- _hg_object_operator_build(vm, setmatrix, setmatrix);
- _hg_object_operator_build(vm, setmiterlimit, setmiterlimit);
- _hg_object_operator_build(vm, setrgbcolor, setrgbcolor);
- _hg_object_operator_build(vm, setscreen, setscreen);
- _hg_object_operator_build(vm, settransfer, settransfer);
- _hg_object_operator_build(vm, show, show);
- _hg_object_operator_build(vm, showpage, showpage);
- _hg_object_operator_build(vm, sin, sin);
- _hg_object_operator_build(vm, sqrt, sqrt);
- _hg_object_operator_build(vm, srand, srand);
- _hg_object_operator_build(vm, status, status);
- _hg_object_operator_build(vm, stop, stop);
- _hg_object_operator_build(vm, stopped, stopped);
- _hg_object_operator_build(vm, string, string);
- _hg_object_operator_build(vm, stringwidth, stringwidth);
- _hg_object_operator_build(vm, stroke, stroke);
- _hg_object_operator_build(vm, strokepath, strokepath);
- _hg_object_operator_build(vm, sub, sub);
- _hg_object_operator_build(vm, token, token);
- _hg_object_operator_build(vm, transform, transform);
- _hg_object_operator_build(vm, translate, translate);
- _hg_object_operator_build(vm, truncate, truncate);
- _hg_object_operator_build(vm, type, type);
- _hg_object_operator_build(vm, usertime, usertime);
- _hg_object_operator_build(vm, vmstatus, vmstatus);
- _hg_object_operator_build(vm, wcheck, wcheck);
- _hg_object_operator_build(vm, where, where);
- _hg_object_operator_build(vm, widthshow, widthshow);
- _hg_object_operator_build(vm, write, write);
- _hg_object_operator_build(vm, writehexstring, writehexstring);
- _hg_object_operator_build(vm, writestring, writestring);
- _hg_object_operator_build(vm, xcheck, xcheck);
- _hg_object_operator_build(vm, xor, xor);
- }
-
- if (level >= HG_EMU_PS_LEVEL_2 && current < level) {
- _hg_object_operator_build(vm, arct, arct);
- _hg_object_operator_build(vm, colorimage, colorimage);
- _hg_object_operator_build(vm, cshow, cshow);
- _hg_object_operator_build(vm, currentblackgeneration, currentblackgeneration);
- _hg_object_operator_build(vm, currentcacheparams, currentcacheparams);
- _hg_object_operator_build(vm, currentcmykcolor, currentcmykcolor);
- _hg_object_operator_build(vm, currentcolor, currentcolor);
- _hg_object_operator_build(vm, currentcolorrendering, currentcolorrendering);
- _hg_object_operator_build(vm, currentcolorscreen, currentcolorscreen);
- _hg_object_operator_build(vm, currentcolorspace, currentcolorspace);
- _hg_object_operator_build(vm, currentcolortransfer, currentcolortransfer);
- _hg_object_operator_build(vm, currentdevparams, currentdevparams);
- _hg_object_operator_build(vm, currentgstate, currentgstate);
- _hg_object_operator_build(vm, currenthalftone, currenthalftone);
- _hg_object_operator_build(vm, currentobjectformat, currentobjectformat);
- _hg_object_operator_build(vm, currentoverprint, currentoverprint);
- _hg_object_operator_build(vm, currentpacking, currentpacking);
- _hg_object_operator_build(vm, currentpagedevice, currentpagedevice);
- _hg_object_operator_build(vm, currentshared, currentshared);
- _hg_object_operator_build(vm, currentstrokeadjust, currentstrokeadjust);
- _hg_object_operator_build(vm, currentsystemparams, currentsystemparams);
- _hg_object_operator_build(vm, currentundercolorremoval, currentundercolorremoval);
- _hg_object_operator_build(vm, currentuserparams, currentuserparams);
- _hg_object_operator_build(vm, defineresource, defineresource);
- _hg_object_operator_build(vm, defineuserobject, defineuserobject);
- _hg_object_operator_build(vm, deletefile, deletefile);
- _hg_object_operator_build(vm, execform, execform);
- _hg_object_operator_build(vm, execuserobject, execuserobject);
- _hg_object_operator_build(vm, filenameforall, filenameforall);
- _hg_object_operator_build(vm, fileposition, fileposition);
- _hg_object_operator_build(vm, filter, filter);
- _hg_object_operator_build(vm, findencoding, findencoding);
- _hg_object_operator_build(vm, findresource, findresource);
- _hg_object_operator_build(vm, gcheck, gcheck);
- _hg_object_operator_build(vm, GlobalFontDirectory, globalfontdirectory);
- _hg_object_operator_build(vm, glyphshow, glyphshow);
- _hg_object_operator_build(vm, gstate, gstate);
- _hg_object_operator_build(vm, ineofill, ineofill);
- _hg_object_operator_build(vm, infill, infill);
- _hg_object_operator_build(vm, instroke, instroke);
- _hg_object_operator_build(vm, inueofill, inueofill);
- _hg_object_operator_build(vm, inufill, inufill);
- _hg_object_operator_build(vm, inustroke, inustroke);
- _hg_object_operator_build(vm, ISOLatin1Encoding, isolatin1encoding);
- _hg_object_operator_build(vm, languagelevel, languagelevel);
- _hg_object_operator_build(vm, makepattern, makepattern);
- _hg_object_operator_build(vm, packedarray, packedarray);
- _hg_object_operator_build(vm, printobject, printobject);
- _hg_object_operator_build(vm, realtime, realtime);
- _hg_object_operator_build(vm, rectclip, rectclip);
- _hg_object_operator_build(vm, rectfill, rectfill);
- _hg_object_operator_build(vm, rectstroke, rectstroke);
- _hg_object_operator_build(vm, renamefile, renamefile);
- _hg_object_operator_build(vm, resourceforall, resourceforall);
- _hg_object_operator_build(vm, resourcestatus, resourcestatus);
- _hg_object_operator_build(vm, rootfont, rootfont);
- _hg_object_operator_build(vm, scheck, scheck);
- _hg_object_operator_build(vm, selectfont, selectfont);
- _hg_object_operator_build(vm, serialnumber, serialnumber);
- _hg_object_operator_build(vm, setbbox, setbbox);
- _hg_object_operator_build(vm, setblackgeneration, setblackgeneration);
- _hg_object_operator_build(vm, setcachedevice2, setcachedevice2);
- _hg_object_operator_build(vm, setcacheparams, setcacheparams);
- _hg_object_operator_build(vm, setcmykcolor, setcmykcolor);
- _hg_object_operator_build(vm, setcolor, setcolor);
- _hg_object_operator_build(vm, setcolorrendering, setcolorrendering);
- _hg_object_operator_build(vm, setcolorscreen, setcolorscreen);
- _hg_object_operator_build(vm, setcolorspace, setcolorspace);
- _hg_object_operator_build(vm, setcolortransfer, setcolortransfer);
- _hg_object_operator_build(vm, setdevparams, setdevparams);
- _hg_object_operator_build(vm, setfileposition, setfileposition);
- _hg_object_operator_build(vm, setgstate, setgstate);
- _hg_object_operator_build(vm, sethalftone, sethalftone);
- _hg_object_operator_build(vm, setobjectformat, setobjectformat);
- _hg_object_operator_build(vm, setoverprint, setoverprint);
- _hg_object_operator_build(vm, setpacking, setpacking);
- _hg_object_operator_build(vm, setpagedevice, setpagedevice);
- _hg_object_operator_build(vm, setpattern, setpattern);
- _hg_object_operator_build(vm, setshared, setshared);
- _hg_object_operator_build(vm, setstrokeadjust, setstrokeadjust);
- _hg_object_operator_build(vm, setsystemparams, setsystemparams);
- _hg_object_operator_build(vm, setucacheparams, setucacheparams);
- _hg_object_operator_build(vm, setundercolorremoval, setundercoloremoval);
- _hg_object_operator_build(vm, setuserparams, setuserparams);
- _hg_object_operator_build(vm, setvmthreshold, setvmthreshold);
- _hg_object_operator_build(vm, shareddict, shareddict);
- _hg_object_operator_build(vm, SharedFontDirectory, sharedfontdirectory);
- _hg_object_operator_build(vm, startjob, startjob);
- _hg_object_operator_build(vm, uappend, uappend);
- _hg_object_operator_build(vm, ucache, ucache);
- _hg_object_operator_build(vm, ucachestatus, ucachestatus);
- _hg_object_operator_build(vm, ueofill, ueofill);
- _hg_object_operator_build(vm, ufill, ufill);
- _hg_object_operator_build(vm, undef, undef);
- _hg_object_operator_build(vm, undefineresource, undefineresource);
- _hg_object_operator_build(vm, undefineuserobject, undefineuserobject);
- _hg_object_operator_build(vm, upath, upath);
- _hg_object_operator_build(vm, UserObjects, userobjects);
- _hg_object_operator_build(vm, ustroke, ustroke);
- _hg_object_operator_build(vm, ustrokepath, ustrokepath);
- _hg_object_operator_build(vm, vmreclaim, vmreclaim);
- _hg_object_operator_build(vm, writeobject, writeobject);
- _hg_object_operator_build(vm, xshow, xshow);
- _hg_object_operator_build(vm, xyshow, xyshow);
- _hg_object_operator_build(vm, yshow, yshow);
- }
-
- if (level >= HG_EMU_PS_LEVEL_3 && current < level) {
- _hg_object_operator_priv_build(vm, addglyph, addglyph);
- _hg_object_operator_priv_build(vm, beginbfchar, beginbfchar);
- _hg_object_operator_priv_build(vm, beginbfrange, beginbfrange);
- _hg_object_operator_priv_build(vm, begincidchar, begincidchar);
- _hg_object_operator_priv_build(vm, begincidrange, begincidrange);
- _hg_object_operator_priv_build(vm, begincmap, begincmap);
- _hg_object_operator_priv_build(vm, begincodespacerange, begincodespacerange);
- _hg_object_operator_priv_build(vm, beginnotdefchar, beginnotdefchar);
- _hg_object_operator_priv_build(vm, beginnotdefrange, beginnotdefrange);
- _hg_object_operator_priv_build(vm, beginrearrangedfont, beginrearrangedfont);
- _hg_object_operator_priv_build(vm, beginusematrix, beginusematrix);
- _hg_object_operator_priv_build(vm, cliprestore, cliprestore);
- _hg_object_operator_priv_build(vm, clipsave, clipsave);
- _hg_object_operator_priv_build(vm, composefont, composefont);
- _hg_object_operator_priv_build(vm, currentsmoothness, currentsmoothness);
- _hg_object_operator_priv_build(vm, currentrapparams, currentrapparams);
- _hg_object_operator_priv_build(vm, endbfchar, endbfchar);
- _hg_object_operator_priv_build(vm, endbfrange, endbfrange);
- _hg_object_operator_priv_build(vm, endcidchar, endcidchar);
- _hg_object_operator_priv_build(vm, endcidrange, endcidrange);
- _hg_object_operator_priv_build(vm, endcmap, endcmap);
- _hg_object_operator_priv_build(vm, endcodespacerange, endcodespacerange);
- _hg_object_operator_priv_build(vm, endnotdefchar, endnotdefchar);
- _hg_object_operator_priv_build(vm, endnotdefrange, endnotdefrange);
- _hg_object_operator_priv_build(vm, endrearrangedfont, endrearrangedfont);
- _hg_object_operator_priv_build(vm, endusematrix, endusematrix);
- _hg_object_operator_priv_build(vm, findcolorrendering, findcolorrendering);
- _hg_object_operator_priv_build(vm, GetHalftoneName, gethalftonename);
- _hg_object_operator_priv_build(vm, GetPageDeviceName, getpagedevicename);
- _hg_object_operator_priv_build(vm, GetSubstituteCRD, getsubstitutecrd);
- _hg_object_operator_priv_build(vm, removeall, removeall);
- _hg_object_operator_priv_build(vm, removeglyphs, removeglyphs);
- _hg_object_operator_priv_build(vm, setsmoothness, setsmoothness);
- _hg_object_operator_priv_build(vm, settrapparams, settrapparams);
- _hg_object_operator_priv_build(vm, settrapzone, settrapzone);
- _hg_object_operator_priv_build(vm, shfill, shfill);
- _hg_object_operator_priv_build(vm, StartData, startdata);
- _hg_object_operator_priv_build(vm, usecmap, usecmap);
- _hg_object_operator_priv_build(vm, usefont, usefont);
- }
-
- /* reflect to the result */
- __hg_operator_initialized = retval;
-
- return retval;
-}
-
-gboolean
-hg_object_operator_finalize(hg_vm_t *vm,
- hg_emulationtype_t level)
-{
- gboolean retval = TRUE;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
- hg_return_val_if_fail (__hg_operator_initialized, FALSE);
- hg_return_val_if_fail (level < HG_EMU_END, FALSE);
-
- if (level < HG_EMU_PS_LEVEL_3) {
- _hg_object_operator_unbuild(vm, addglyph);
- _hg_object_operator_unbuild(vm, beginbfchar);
- _hg_object_operator_unbuild(vm, beginbfrange);
- _hg_object_operator_unbuild(vm, begincidchar);
- _hg_object_operator_unbuild(vm, begincidrange);
- _hg_object_operator_unbuild(vm, begincmap);
- _hg_object_operator_unbuild(vm, begincodespacerange);
- _hg_object_operator_unbuild(vm, beginnotdefchar);
- _hg_object_operator_unbuild(vm, beginnotdefrange);
- _hg_object_operator_unbuild(vm, beginrearrangedfont);
- _hg_object_operator_unbuild(vm, beginusematrix);
- _hg_object_operator_unbuild(vm, cliprestore);
- _hg_object_operator_unbuild(vm, clipsave);
- _hg_object_operator_unbuild(vm, composefont);
- _hg_object_operator_unbuild(vm, currentsmoothness);
- _hg_object_operator_unbuild(vm, currentrapparams);
- _hg_object_operator_unbuild(vm, endbfchar);
- _hg_object_operator_unbuild(vm, endbfrange);
- _hg_object_operator_unbuild(vm, endcidchar);
- _hg_object_operator_unbuild(vm, endcidrange);
- _hg_object_operator_unbuild(vm, endcmap);
- _hg_object_operator_unbuild(vm, endcodespacerange);
- _hg_object_operator_unbuild(vm, endnotdefchar);
- _hg_object_operator_unbuild(vm, endnotdefrange);
- _hg_object_operator_unbuild(vm, endrearrangedfont);
- _hg_object_operator_unbuild(vm, endusematrix);
- _hg_object_operator_unbuild(vm, findcolorrendering);
- _hg_object_operator_unbuild(vm, GetHalftoneName);
- _hg_object_operator_unbuild(vm, GetPageDeviceName);
- _hg_object_operator_unbuild(vm, GetSubstituteCRD);
- _hg_object_operator_unbuild(vm, removeall);
- _hg_object_operator_unbuild(vm, removeglyphs);
- _hg_object_operator_unbuild(vm, setsmoothness);
- _hg_object_operator_unbuild(vm, settrapparams);
- _hg_object_operator_unbuild(vm, settrapzone);
- _hg_object_operator_unbuild(vm, shfill);
- _hg_object_operator_unbuild(vm, StartData);
- _hg_object_operator_unbuild(vm, usecmap);
- _hg_object_operator_unbuild(vm, usefont);
- }
- if (level < HG_EMU_PS_LEVEL_2) {
- _hg_object_operator_unbuild(vm, arct);
- _hg_object_operator_unbuild(vm, colorimage);
- _hg_object_operator_unbuild(vm, cshow);
- _hg_object_operator_unbuild(vm, currentblackgeneration);
- _hg_object_operator_unbuild(vm, currentcacheparams);
- _hg_object_operator_unbuild(vm, currentcmykcolor);
- _hg_object_operator_unbuild(vm, currentcolor);
- _hg_object_operator_unbuild(vm, currentcolorrendering);
- _hg_object_operator_unbuild(vm, currentcolorscreen);
- _hg_object_operator_unbuild(vm, currentcolorspace);
- _hg_object_operator_unbuild(vm, currentcolortransfer);
- _hg_object_operator_unbuild(vm, currentdevparams);
- _hg_object_operator_unbuild(vm, currentgstate);
- _hg_object_operator_unbuild(vm, currenthalftone);
- _hg_object_operator_unbuild(vm, currentobjectformat);
- _hg_object_operator_unbuild(vm, currentoverprint);
- _hg_object_operator_unbuild(vm, currentpacking);
- _hg_object_operator_unbuild(vm, currentpagedevice);
- _hg_object_operator_unbuild(vm, currentshared);
- _hg_object_operator_unbuild(vm, currentstrokeadjust);
- _hg_object_operator_unbuild(vm, currentsystemparams);
- _hg_object_operator_unbuild(vm, currentundercolorremoval);
- _hg_object_operator_unbuild(vm, currentuserparams);
- _hg_object_operator_unbuild(vm, defineresource);
- _hg_object_operator_unbuild(vm, defineuserobject);
- _hg_object_operator_unbuild(vm, deletefile);
- _hg_object_operator_unbuild(vm, execform);
- _hg_object_operator_unbuild(vm, execuserobject);
- _hg_object_operator_unbuild(vm, filenameforall);
- _hg_object_operator_unbuild(vm, fileposition);
- _hg_object_operator_unbuild(vm, filter);
- _hg_object_operator_unbuild(vm, findencoding);
- _hg_object_operator_unbuild(vm, findresource);
- _hg_object_operator_unbuild(vm, gcheck);
- _hg_object_operator_unbuild(vm, GlobalFontDirectory);
- _hg_object_operator_unbuild(vm, glyphshow);
- _hg_object_operator_unbuild(vm, gstate);
- _hg_object_operator_unbuild(vm, ineofill);
- _hg_object_operator_unbuild(vm, infill);
- _hg_object_operator_unbuild(vm, instroke);
- _hg_object_operator_unbuild(vm, inueofill);
- _hg_object_operator_unbuild(vm, inufill);
- _hg_object_operator_unbuild(vm, inustroke);
- _hg_object_operator_unbuild(vm, ISOLatin1Encoding);
- _hg_object_operator_unbuild(vm, languagelevel);
- _hg_object_operator_unbuild(vm, makepattern);
- _hg_object_operator_unbuild(vm, packedarray);
- _hg_object_operator_unbuild(vm, printobject);
- _hg_object_operator_unbuild(vm, realtime);
- _hg_object_operator_unbuild(vm, rectclip);
- _hg_object_operator_unbuild(vm, rectfill);
- _hg_object_operator_unbuild(vm, rectstroke);
- _hg_object_operator_unbuild(vm, renamefile);
- _hg_object_operator_unbuild(vm, resourceforall);
- _hg_object_operator_unbuild(vm, resourcestatus);
- _hg_object_operator_unbuild(vm, rootfont);
- _hg_object_operator_unbuild(vm, scheck);
- _hg_object_operator_unbuild(vm, selectfont);
- _hg_object_operator_unbuild(vm, serialnumber);
- _hg_object_operator_unbuild(vm, setbbox);
- _hg_object_operator_unbuild(vm, setblackgeneration);
- _hg_object_operator_unbuild(vm, setcachedevice2);
- _hg_object_operator_unbuild(vm, setcacheparams);
- _hg_object_operator_unbuild(vm, setcmykcolor);
- _hg_object_operator_unbuild(vm, setcolor);
- _hg_object_operator_unbuild(vm, setcolorrendering);
- _hg_object_operator_unbuild(vm, setcolorscreen);
- _hg_object_operator_unbuild(vm, setcolorspace);
- _hg_object_operator_unbuild(vm, setcolortransfer);
- _hg_object_operator_unbuild(vm, setdevparams);
- _hg_object_operator_unbuild(vm, setfileposition);
- _hg_object_operator_unbuild(vm, setgstate);
- _hg_object_operator_unbuild(vm, sethalftone);
- _hg_object_operator_unbuild(vm, setobjectformat);
- _hg_object_operator_unbuild(vm, setoverprint);
- _hg_object_operator_unbuild(vm, setpacking);
- _hg_object_operator_unbuild(vm, setpagedevice);
- _hg_object_operator_unbuild(vm, setpattern);
- _hg_object_operator_unbuild(vm, setshared);
- _hg_object_operator_unbuild(vm, setstrokeadjust);
- _hg_object_operator_unbuild(vm, setsystemparams);
- _hg_object_operator_unbuild(vm, setucacheparams);
- _hg_object_operator_unbuild(vm, setundercolorremoval);
- _hg_object_operator_unbuild(vm, setuserparams);
- _hg_object_operator_unbuild(vm, setvmthreshold);
- _hg_object_operator_unbuild(vm, shareddict);
- _hg_object_operator_unbuild(vm, SharedFontDirectory);
- _hg_object_operator_unbuild(vm, startjob);
- _hg_object_operator_unbuild(vm, uappend);
- _hg_object_operator_unbuild(vm, ucache);
- _hg_object_operator_unbuild(vm, ucachestatus);
- _hg_object_operator_unbuild(vm, ueofill);
- _hg_object_operator_unbuild(vm, ufill);
- _hg_object_operator_unbuild(vm, undef);
- _hg_object_operator_unbuild(vm, undefineresource);
- _hg_object_operator_unbuild(vm, undefineuserobject);
- _hg_object_operator_unbuild(vm, upath);
- _hg_object_operator_unbuild(vm, UserObjects);
- _hg_object_operator_unbuild(vm, ustroke);
- _hg_object_operator_unbuild(vm, ustrokepath);
- _hg_object_operator_unbuild(vm, vmreclaim);
- _hg_object_operator_unbuild(vm, writeobject);
- _hg_object_operator_unbuild(vm, xshow);
- _hg_object_operator_unbuild(vm, xyshow);
- _hg_object_operator_unbuild(vm, yshow);
- }
- if (level < HG_EMU_PS_LEVEL_1) {
- _hg_object_operator_unbuild(vm, %arraytomark);
- _hg_object_operator_unbuild(vm, %dicttomark);
- _hg_object_operator_unbuild(vm, %for_pos_int_continue);
- _hg_object_operator_unbuild(vm, %for_pos_real_continue);
- _hg_object_operator_unbuild(vm, %forall_array_continue);
- _hg_object_operator_unbuild(vm, %forall_dict_continue);
- _hg_object_operator_unbuild(vm, %forall_string_continue);
- _hg_object_operator_unbuild(vm, %loop_continue);
- _hg_object_operator_unbuild(vm, %repeat_continue);
- _hg_object_operator_unbuild(vm, %stopped_continue);
- _hg_object_operator_unbuild(vm, .findfont);
- _hg_object_operator_unbuild(vm, .definefont);
- _hg_object_operator_unbuild(vm, .stringcvs);
- _hg_object_operator_unbuild(vm, .undefinefont);
- _hg_object_operator_unbuild(vm, .write==only);
- _hg_object_operator_unbuild(vm, abs);
- _hg_object_operator_unbuild(vm, add);
- _hg_object_operator_unbuild(vm, aload);
- _hg_object_operator_unbuild(vm, and);
- _hg_object_operator_unbuild(vm, arc);
- _hg_object_operator_unbuild(vm, arcn);
- _hg_object_operator_unbuild(vm, arcto);
- _hg_object_operator_unbuild(vm, array);
- _hg_object_operator_unbuild(vm, ashow);
- _hg_object_operator_unbuild(vm, astore);
- _hg_object_operator_unbuild(vm, atan);
- _hg_object_operator_unbuild(vm, awidthshow);
- _hg_object_operator_unbuild(vm, begin);
- _hg_object_operator_unbuild(vm, bind);
- _hg_object_operator_unbuild(vm, bitshift);
- _hg_object_operator_unbuild(vm, bytesavailable);
- _hg_object_operator_unbuild(vm, cachestatus);
- _hg_object_operator_unbuild(vm, ceiling);
- _hg_object_operator_unbuild(vm, charpath);
- _hg_object_operator_unbuild(vm, clear);
- _hg_object_operator_unbuild(vm, cleardictstack);
- _hg_object_operator_unbuild(vm, cleartomark);
- _hg_object_operator_unbuild(vm, clip);
- _hg_object_operator_unbuild(vm, clippath);
- _hg_object_operator_unbuild(vm, closefile);
- _hg_object_operator_unbuild(vm, closepath);
- _hg_object_operator_unbuild(vm, concat);
- _hg_object_operator_unbuild(vm, concatmatrix);
- _hg_object_operator_unbuild(vm, copy);
- _hg_object_operator_unbuild(vm, copypage);
- _hg_object_operator_unbuild(vm, cos);
- _hg_object_operator_unbuild(vm, count);
- _hg_object_operator_unbuild(vm, countdictstack);
- _hg_object_operator_unbuild(vm, countexecstack);
- _hg_object_operator_unbuild(vm, counttomark);
- _hg_object_operator_unbuild(vm, currentdash);
- _hg_object_operator_unbuild(vm, currentdict);
- _hg_object_operator_unbuild(vm, currentfile);
- _hg_object_operator_unbuild(vm, currentflat);
- _hg_object_operator_unbuild(vm, currentfont);
- _hg_object_operator_unbuild(vm, currentgray);
- _hg_object_operator_unbuild(vm, currenthsbcolor);
- _hg_object_operator_unbuild(vm, currentlinecap);
- _hg_object_operator_unbuild(vm, currentlinejoin);
- _hg_object_operator_unbuild(vm, currentlinewidth);
- _hg_object_operator_unbuild(vm, currentmatrix);
- _hg_object_operator_unbuild(vm, currentmiterlimit);
- _hg_object_operator_unbuild(vm, currentpoint);
- _hg_object_operator_unbuild(vm, currentrgbcolor);
- _hg_object_operator_unbuild(vm, currentscreen);
- _hg_object_operator_unbuild(vm, currenttransfer);
- _hg_object_operator_unbuild(vm, curveto);
- _hg_object_operator_unbuild(vm, cvi);
- _hg_object_operator_unbuild(vm, cvlit);
- _hg_object_operator_unbuild(vm, cvn);
- _hg_object_operator_unbuild(vm, cvr);
- _hg_object_operator_unbuild(vm, cvrs);
- _hg_object_operator_unbuild(vm, cvx);
- _hg_object_operator_unbuild(vm, def);
- _hg_object_operator_unbuild(vm, defaultmatrix);
- _hg_object_operator_unbuild(vm, dict);
- _hg_object_operator_unbuild(vm, dictstack);
- _hg_object_operator_unbuild(vm, div);
- _hg_object_operator_unbuild(vm, dtransform);
- _hg_object_operator_unbuild(vm, dup);
- _hg_object_operator_unbuild(vm, echo);
- _hg_object_operator_unbuild(vm, eexec);
- _hg_object_operator_unbuild(vm, end);
- _hg_object_operator_unbuild(vm, eoclip);
- _hg_object_operator_unbuild(vm, eofill);
- _hg_object_operator_unbuild(vm, eq);
- _hg_object_operator_unbuild(vm, erasepage);
- _hg_object_operator_unbuild(vm, exch);
- _hg_object_operator_unbuild(vm, exec);
- _hg_object_operator_unbuild(vm, execstack);
- _hg_object_operator_unbuild(vm, executeonly);
- _hg_object_operator_unbuild(vm, exit);
- _hg_object_operator_unbuild(vm, exp);
- _hg_object_operator_unbuild(vm, file);
- _hg_object_operator_unbuild(vm, fill);
- _hg_object_operator_unbuild(vm, flattenpath);
- _hg_object_operator_unbuild(vm, flush);
- _hg_object_operator_unbuild(vm, flushfile);
- _hg_object_operator_unbuild(vm, FontDirectory);
- _hg_object_operator_unbuild(vm, for);
- _hg_object_operator_unbuild(vm, forall);
- _hg_object_operator_unbuild(vm, ge);
- _hg_object_operator_unbuild(vm, get);
- _hg_object_operator_unbuild(vm, getinterval);
- _hg_object_operator_unbuild(vm, grestore);
- _hg_object_operator_unbuild(vm, grestoreall);
- _hg_object_operator_unbuild(vm, gsave);
- _hg_object_operator_unbuild(vm, gt);
- _hg_object_operator_unbuild(vm, identmatrix);
- _hg_object_operator_unbuild(vm, idiv);
- _hg_object_operator_unbuild(vm, idtransform);
- _hg_object_operator_unbuild(vm, if);
- _hg_object_operator_unbuild(vm, ifelse);
- _hg_object_operator_unbuild(vm, image);
- _hg_object_operator_unbuild(vm, imagemask);
- _hg_object_operator_unbuild(vm, index);
- _hg_object_operator_unbuild(vm, initclip);
- _hg_object_operator_unbuild(vm, initgraphics);
- _hg_object_operator_unbuild(vm, initmatrix);
- _hg_object_operator_unbuild(vm, internaldict);
- _hg_object_operator_unbuild(vm, invertmatrix);
- _hg_object_operator_unbuild(vm, itransform);
- _hg_object_operator_unbuild(vm, known);
- _hg_object_operator_unbuild(vm, kshow);
- _hg_object_operator_unbuild(vm, le);
- _hg_object_operator_unbuild(vm, length);
- _hg_object_operator_unbuild(vm, lineto);
- _hg_object_operator_unbuild(vm, ln);
- _hg_object_operator_unbuild(vm, log);
- _hg_object_operator_unbuild(vm, loop);
- _hg_object_operator_unbuild(vm, lt);
- _hg_object_operator_unbuild(vm, makefont);
- _hg_object_operator_unbuild(vm, maxlength);
- _hg_object_operator_unbuild(vm, mod);
- _hg_object_operator_unbuild(vm, moveto);
- _hg_object_operator_unbuild(vm, mul);
- _hg_object_operator_unbuild(vm, ne);
- _hg_object_operator_unbuild(vm, neg);
- _hg_object_operator_unbuild(vm, newpath);
- _hg_object_operator_unbuild(vm, noaccess);
- _hg_object_operator_unbuild(vm, not);
- _hg_object_operator_unbuild(vm, nulldevice);
- _hg_object_operator_unbuild(vm, or);
- _hg_object_operator_unbuild(vm, pathbbox);
- _hg_object_operator_unbuild(vm, pathforall);
- _hg_object_operator_unbuild(vm, pop);
- _hg_object_operator_unbuild(vm, print);
- _hg_object_operator_unbuild(vm, put);
- _hg_object_operator_unbuild(vm, rand);
- _hg_object_operator_unbuild(vm, rcheck);
- _hg_object_operator_unbuild(vm, rcurveto);
- _hg_object_operator_unbuild(vm, read);
- _hg_object_operator_unbuild(vm, readhexstring);
- _hg_object_operator_unbuild(vm, readline);
- _hg_object_operator_unbuild(vm, readonly);
- _hg_object_operator_unbuild(vm, readstring);
- _hg_object_operator_unbuild(vm, repeat);
- _hg_object_operator_unbuild(vm, resetfile);
- _hg_object_operator_unbuild(vm, restore);
- _hg_object_operator_unbuild(vm, reversepath);
- _hg_object_operator_unbuild(vm, rlineto);
- _hg_object_operator_unbuild(vm, rmoveto);
- _hg_object_operator_unbuild(vm, roll);
- _hg_object_operator_unbuild(vm, rotate);
- _hg_object_operator_unbuild(vm, round);
- _hg_object_operator_unbuild(vm, rrand);
- _hg_object_operator_unbuild(vm, save);
- _hg_object_operator_unbuild(vm, scale);
- _hg_object_operator_unbuild(vm, scalefont);
- _hg_object_operator_unbuild(vm, search);
- _hg_object_operator_unbuild(vm, setcachedevice);
- _hg_object_operator_unbuild(vm, setcachelimit);
- _hg_object_operator_unbuild(vm, setcharwidth);
- _hg_object_operator_unbuild(vm, setdash);
- _hg_object_operator_unbuild(vm, setflat);
- _hg_object_operator_unbuild(vm, setfont);
- _hg_object_operator_unbuild(vm, setgray);
- _hg_object_operator_unbuild(vm, sethsbcolor);
- _hg_object_operator_unbuild(vm, setlinecap);
- _hg_object_operator_unbuild(vm, setlinejoin);
- _hg_object_operator_unbuild(vm, setlinewidth);
- _hg_object_operator_unbuild(vm, setmatrix);
- _hg_object_operator_unbuild(vm, setmiterlimit);
- _hg_object_operator_unbuild(vm, setrgbcolor);
- _hg_object_operator_unbuild(vm, setscreen);
- _hg_object_operator_unbuild(vm, settransfer);
- _hg_object_operator_unbuild(vm, show);
- _hg_object_operator_unbuild(vm, showpage);
- _hg_object_operator_unbuild(vm, sin);
- _hg_object_operator_unbuild(vm, sqrt);
- _hg_object_operator_unbuild(vm, srand);
- _hg_object_operator_unbuild(vm, status);
- _hg_object_operator_unbuild(vm, stop);
- _hg_object_operator_unbuild(vm, stopped);
- _hg_object_operator_unbuild(vm, string);
- _hg_object_operator_unbuild(vm, stringwidth);
- _hg_object_operator_unbuild(vm, stroke);
- _hg_object_operator_unbuild(vm, strokepath);
- _hg_object_operator_unbuild(vm, sub);
- _hg_object_operator_unbuild(vm, token);
- _hg_object_operator_unbuild(vm, transform);
- _hg_object_operator_unbuild(vm, translate);
- _hg_object_operator_unbuild(vm, truncate);
- _hg_object_operator_unbuild(vm, type);
- _hg_object_operator_unbuild(vm, usertime);
- _hg_object_operator_unbuild(vm, vmstatus);
- _hg_object_operator_unbuild(vm, wcheck);
- _hg_object_operator_unbuild(vm, where);
- _hg_object_operator_unbuild(vm, widthshow);
- _hg_object_operator_unbuild(vm, write);
- _hg_object_operator_unbuild(vm, writehexstring);
- _hg_object_operator_unbuild(vm, writestring);
- _hg_object_operator_unbuild(vm, xcheck);
- _hg_object_operator_unbuild(vm, xor);
- }
-
- __hg_operator_initialized = FALSE;
-
- return retval;
-}
-
-gboolean
-hg_object_operator_invoke(hg_vm_t *vm,
- hg_object_t *object)
-{
- hg_operatordata_t *data;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
- hg_return_val_if_fail (object != NULL, FALSE);
- hg_return_val_if_fail (__hg_operator_initialized, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_OPERATOR (object), FALSE);
-
- data = HG_OBJECT_OPERATOR_DATA (object);
-
- return data->func(vm, object);
-}
-
-gboolean
-hg_object_operator_compare(hg_object_t *object1,
- hg_object_t *object2)
-{
- hg_return_val_if_fail (object1 != NULL, FALSE);
- hg_return_val_if_fail (object2 != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_OPERATOR (object1), FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_OPERATOR (object2), FALSE);
-
- /* XXX: no copy and dup functionalities are available so far.
- * so just comparing a pointer should works enough
- */
- return object1 == object2;
-}
-
-gchar *
-hg_object_operator_dump(hg_object_t *object,
- gboolean verbose)
-{
- hg_operatordata_t *data;
-
- hg_return_val_if_fail (object != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_OPERATOR (object), NULL);
-
- data = HG_OBJECT_OPERATOR_DATA (object);
-
- return g_strndup((gchar *)data->name, HG_OBJECT_OPERATOR (object)->length);
-}
-
-const gchar *
-hg_object_operator_get_name(hg_system_encoding_t encoding)
-{
- const gchar *retval;
-
- hg_return_val_if_fail (encoding < HG_enc_END, NULL);
- hg_return_val_if_fail (__hg_operator_initialized, NULL);
-
- retval = __hg_system_encoding_names[encoding];
-
- hg_return_val_if_fail (retval != NULL, NULL);
-
- return retval;
-}
diff --git a/hieroglyph/hgoperator.h b/hieroglyph/hgoperator.h
deleted file mode 100644
index 7b9b891..0000000
--- a/hieroglyph/hgoperator.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgoperator.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH_HGOPERATOR_H__
-#define __HIEROGLYPH_HGOPERATOR_H__
-
-#include <hieroglyph/hgtypes.h>
-
-
-G_BEGIN_DECLS
-
-hg_object_t *hg_object_operator_new (hg_vm_t *vm,
- hg_system_encoding_t enc,
- hg_operator_func_t func) G_GNUC_WARN_UNUSED_RESULT;
-hg_object_t *hg_object_operator_new_with_custom(hg_vm_t *vm,
- gchar *name,
- hg_operator_func_t func) G_GNUC_WARN_UNUSED_RESULT;
-gboolean hg_object_operator_initialize (hg_vm_t *vm,
- hg_emulationtype_t level);
-gboolean hg_object_operator_finalize (hg_vm_t *vm,
- hg_emulationtype_t level);
-gboolean hg_object_operator_invoke (hg_vm_t *vm,
- hg_object_t *object);
-gboolean hg_object_operator_compare (hg_object_t *object1,
- hg_object_t *object2);
-gchar *hg_object_operator_dump (hg_object_t *object,
- gboolean verbose) G_GNUC_MALLOC;
-const gchar *hg_object_operator_get_name (hg_system_encoding_t encoding) G_GNUC_CONST;
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH_HGOPERATOR_H__ */
diff --git a/hieroglyph/hgstack.c b/hieroglyph/hgstack.c
deleted file mode 100644
index 4be7d59..0000000
--- a/hieroglyph/hgstack.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgstack.c
- * Copyright (C) 2005-2009 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "hgstack.h"
-
-
-/*
- * private functions
- */
-
-/*
- * public functions
- */
-hg_stack_t *
-hg_stack_new(hg_vm_t *vm,
- gsize depth)
-{
- hg_stack_t *retval;
- hg_stackdata_t *data;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (depth > 0, NULL);
-
- retval = hg_vm_malloc(vm, hg_n_alignof (sizeof (hg_stack_t) + sizeof (hg_stackdata_t) * (depth + 1)));
- if (retval != NULL) {
- retval->stack_depth = depth;
- retval->current_depth = depth;
- data = (hg_stackdata_t *)retval->data;
- memset(data, 0, sizeof (hg_stackdata_t) * (depth + 1));
- data[depth].next = &data[depth-1];
- retval->stack_top = &data[depth];
- }
-
- return retval;
-}
-
-void
-hg_stack_free(hg_vm_t *vm,
- hg_stack_t *stack)
-{
- hg_return_if_fail (stack != NULL);
-
- hg_vm_mfree(vm, stack);
-}
-
-gboolean
-hg_stack_push(hg_stack_t *stack,
- hg_object_t *object)
-{
- hg_stackdata_t *data, *prev;
-
- hg_return_val_if_fail (stack != NULL, FALSE);
- hg_return_val_if_fail (object != NULL, FALSE);
-
- if (stack->current_depth == 0)
- return FALSE;
- prev = data = stack->stack_top;
- hg_return_val_if_fail (data->next != NULL, FALSE);
-
- stack->current_depth--;
- data = data->next;
- data->data = object;
- if (data->prev == NULL)
- data->prev = prev;
- if (stack->current_depth > 0) {
- if (data->next == NULL)
- data->next = &data[-1];
- } else {
- data->next = NULL;
- }
- stack->stack_top = data;
-
- return TRUE;
-}
-
-hg_object_t *
-hg_stack_pop(hg_stack_t *stack)
-{
- hg_object_t *retval;
- hg_stackdata_t *data;
-
- hg_return_val_if_fail (stack != NULL, NULL);
- hg_return_val_if_fail (stack->stack_depth > stack->current_depth, NULL);
-
- data = stack->stack_top;
- retval = data->data;
- stack->stack_top = data->prev;
- stack->current_depth++;
-
- return retval;
-}
-
-void
-hg_stack_clear(hg_stack_t *stack)
-{
- hg_stackdata_t *data;
-
- hg_return_if_fail (stack != NULL);
-
- stack->current_depth = stack->stack_depth;
- data = (hg_stackdata_t *)stack->data;
- stack->stack_top = &data[stack->stack_depth];
-}
-
-gsize
-hg_stack_length(hg_stack_t *stack)
-{
- hg_return_val_if_fail (stack != NULL, 0);
-
- return stack->stack_depth - stack->current_depth;
-}
-
-hg_object_t *
-hg_stack_index(hg_stack_t *stack,
- gsize index)
-{
- hg_stackdata_t *data;
-
- hg_return_val_if_fail (stack != NULL, NULL);
- hg_return_val_if_fail (index < (stack->stack_depth - stack->current_depth), NULL);
-
- for (data = stack->stack_top; index > 0; data = data->prev, index--);
-
- return data->data;
-}
-
-gboolean
-hg_stack_roll(hg_stack_t *stack,
- gsize n_block,
- gssize n_times)
-{
- hg_stackdata_t *before, *after, *beginning, *ending;
- gsize n, i;
-
- hg_return_val_if_fail (stack != NULL, FALSE);
- hg_return_val_if_fail (n_block <= (stack->stack_depth - stack->current_depth), FALSE);
-
- if (n_block == 0 ||
- n_times == 0) {
- /* This case is the same to do nothing */
- return TRUE;
- }
- n = abs(n_times) % n_block;
- if (n == 0) {
- /* This case is the same to do nothing */
- return TRUE;
- }
-
- /* find a place where isn't targetted for roll */
- for (before = stack->stack_top, i = n_block;
- i > 0;
- before = before->prev, i--);
- after = before->next;
- /* try to find the place where cutting off */
- if (n_times > 0) {
- for (beginning = stack->stack_top; n > 1; beginning = beginning->prev, n--);
- ending = beginning->prev;
- } else {
- for (ending = after; n > 1; ending = ending->next, n--);
- beginning = ending->next;
- }
- ending->next = stack->stack_top->next;
- stack->stack_top->next = after;
- stack->stack_top->next->prev = stack->stack_top;
- before->next = beginning;
- before->next->prev = before;
- stack->stack_top = ending;
-
- return TRUE;
-}
-
-void
-hg_stack_dump(hg_vm_t *vm,
- hg_stack_t *stack)
-{
- gsize i;
- hg_stackdata_t *data;
- gchar *p;
-
- hg_return_if_fail (vm != NULL);
- hg_return_if_fail (stack != NULL);
-
- for (i = 0, data = stack->stack_top;
- i < (stack->stack_depth - stack->current_depth);
- i++, data = data->prev) {
- p = hg_object_dump(data->data, TRUE);
- printf("%" G_GSIZE_FORMAT ": %s\n", i + 1, p);
- g_free(p);
- }
-}
diff --git a/hieroglyph/hgstack.h b/hieroglyph/hgstack.h
deleted file mode 100644
index ef09b18..0000000
--- a/hieroglyph/hgstack.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgstack.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH_HGSTACK_H__
-#define __HIEROGLYPH_HGSTACK_H__
-
-#include <hieroglyph/hgtypes.h>
-
-
-G_BEGIN_DECLS
-
-hg_stack_t *hg_stack_new (hg_vm_t *vm,
- gsize depth) G_GNUC_WARN_UNUSED_RESULT;
-void hg_stack_free (hg_vm_t *vm,
- hg_stack_t *stack);
-gboolean hg_stack_push (hg_stack_t *stack,
- hg_object_t *object);
-hg_object_t *hg_stack_pop (hg_stack_t *stack);
-void hg_stack_clear (hg_stack_t *stack);
-gsize hg_stack_length(hg_stack_t *stack);
-hg_object_t *hg_stack_index (hg_stack_t *stack,
- gsize index);
-gboolean hg_stack_roll (hg_stack_t *stack,
- gsize n_block,
- gssize n_times);
-void hg_stack_dump (hg_vm_t *vm,
- hg_stack_t *stack);
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH_HGSTACK_H__ */
diff --git a/hieroglyph/hgstring.c b/hieroglyph/hgstring.c
deleted file mode 100644
index 8171e21..0000000
--- a/hieroglyph/hgstring.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgstring.c
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-#include <hieroglyph/hgobject.h>
-#include "hgstring.h"
-
-
-/*
- * private functions
- */
-
-/*
- * public functions
- */
-hg_object_t *
-hg_object_string_sized_new(hg_vm_t *vm,
- guint16 length)
-{
- hg_object_t *retval;
- hg_stringdata_t *data;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- retval = hg_object_sized_new(vm, hg_n_alignof (sizeof (hg_stringdata_t) + length + 1));
- if (retval != NULL) {
- HG_OBJECT_GET_TYPE (retval) = HG_OBJECT_TYPE_STRING;
- HG_OBJECT_STRING (retval)->length = length;
- HG_OBJECT_STRING (retval)->real_length = length;
- data = HG_OBJECT_STRING_DATA (retval);
- if (length > 0)
- data->string = (gpointer)data->data;
- else
- data->string = NULL;
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_string_new(hg_vm_t *vm,
- const gchar *value)
-{
- hg_object_t *retval;
- gchar *string;
- gsize size;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (value != NULL, NULL);
-
- size = strlen(value);
- retval = hg_object_string_sized_new(vm, size);
- if (retval != NULL) {
- string = HG_OBJECT_STRING_DATA (retval)->string;
- memcpy(string, value, size);
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_object_string_substring_new(hg_vm_t *vm,
- hg_object_t *object,
- guint16 start_index,
- guint16 length)
-{
- hg_object_t *retval;
- gchar *p;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (object != NULL, NULL);
- hg_return_val_if_fail (HG_OBJECT_IS_STRING (object), NULL);
- hg_return_val_if_fail (HG_OBJECT_STRING (object)->real_length > start_index, NULL);
- hg_return_val_if_fail (HG_OBJECT_STRING (object)->real_length >= (start_index + length), NULL);
-
- retval = hg_object_string_sized_new(vm, 0);
- if (retval != NULL) {
- p = HG_OBJECT_STRING_DATA (object)->string;
- HG_OBJECT_STRING_DATA (retval)->string = &p[start_index];
- HG_OBJECT_STRING (retval)->real_length = length;
- }
-
- return retval;
-}
-
-gboolean
-hg_object_string_compare(hg_object_t *object1,
- hg_object_t *object2)
-{
- guint16 i;
- gchar *p1, *p2;
-
- hg_return_val_if_fail (object1 != NULL, FALSE);
- hg_return_val_if_fail (object2 != NULL, FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_STRING (object1), FALSE);
- hg_return_val_if_fail (HG_OBJECT_IS_STRING (object2), FALSE);
-
- if (HG_OBJECT_STRING (object1)->real_length != HG_OBJECT_STRING (object2)->real_length)
- return FALSE;
-
- p1 = HG_OBJECT_STRING_DATA (object1)->string;
- p2 = HG_OBJECT_STRING_DATA (object2)->string;
- for (i = 0; i < HG_OBJECT_STRING (object1)->real_length; i++) {
- if (p1[i] != p2[i])
- return FALSE;
- }
-
- return TRUE;
-}
diff --git a/hieroglyph/hgstring.h b/hieroglyph/hgstring.h
deleted file mode 100644
index b062573..0000000
--- a/hieroglyph/hgstring.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgstring.h
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH_HGSTRING_H__
-#define __HIEROGLYPH_HGSTRING_H__
-
-#include <hieroglyph/hgtypes.h>
-
-
-G_BEGIN_DECLS
-
-hg_object_t *hg_object_string_sized_new (hg_vm_t *vm,
- guint16 length);
-hg_object_t *hg_object_string_new (hg_vm_t *vm,
- const gchar *value);
-hg_object_t *hg_object_string_substring_new(hg_vm_t *vm,
- hg_object_t *object,
- guint16 start_index,
- guint16 length);
-gboolean hg_object_string_compare (hg_object_t *object1,
- hg_object_t *object2);
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH_HGSTRING_H__ */
diff --git a/hieroglyph/hgtypes.h b/hieroglyph/hgtypes.h
deleted file mode 100644
index a49b268..0000000
--- a/hieroglyph/hgtypes.h
+++ /dev/null
@@ -1,812 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgtypes.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH__HGTYPES_H__
-#define __HIEROGLYPH__HGTYPES_H__
-
-#include <errno.h>
-#include <hieroglyph/hgmacros.h>
-
-
-G_BEGIN_DECLS
-
-/**
- * typedefs
- */
-typedef struct hg_object_header_s hg_object_header_t;
-typedef gint32 hg_integer_t;
-typedef gfloat hg_real_t;
-typedef struct hg_name_s hg_name_t;
-typedef struct hg_encoding_name_s hg_encoding_name_t;
-typedef gboolean hg_boolean_t;
-typedef struct hg_string_s hg_string_t;
-typedef struct hg_stringdata_s hg_stringdata_t;
-typedef struct hg_array_s hg_array_t;
-typedef struct hg_arraydata_s hg_arraydata_t;
-typedef struct hg_dict_s hg_dict_t;
-typedef struct hg_dictdata_s hg_dictdata_t;
-typedef struct hg_file_s hg_file_t;
-typedef struct hg_filedata_s hg_filedata_t;
-typedef struct hg_filetable_s hg_filetable_t;
-typedef enum hg_filetype_e hg_filetype_t;
-typedef enum hg_filemode_e hg_filemode_t;
-typedef enum hg_filepos_e hg_filepos_t;
-typedef struct hg_operator_s hg_operator_t;
-typedef struct hg_operatordata_s hg_operatordata_t;
-typedef union hg_attribute_u hg_attribute_t;
-typedef struct _hg_object_s _hg_object_t;
-typedef struct hg_object_s hg_object_t;
-typedef enum hg_objecttype_e hg_objecttype_t;
-typedef enum hg_stacktype_e hg_stacktype_t;
-typedef struct hg_stackdata_s hg_stackdata_t;
-typedef struct hg_stack_s hg_stack_t;
-typedef enum hg_error_e hg_error_t;
-typedef enum hg_system_encoding_e hg_system_encoding_t;
-typedef enum hg_emulationtype_e hg_emulationtype_t;
-typedef struct hg_vm_s hg_vm_t;
-
-typedef gboolean (* hg_operator_func_t) (hg_vm_t *vm,
- hg_object_t *data);
-
-
-/**
- * Structures
- */
-struct hg_object_header_s {
- guchar token_type;
- guint16 n_objects;
- guint32 total_length;
-};
-struct hg_name_s {
- guint16 reserved1;
- guint16 length;
-};
-struct hg_encoding_name_s {
- gint16 representation;
- guint16 index;
-};
-struct hg_string_s {
- guint16 length;
- guint16 real_length;
-};
-struct hg_array_s {
- guint16 length;
- guint16 real_length;
-};
-struct hg_dict_s {
- guint16 length;
- guint16 used;
-};
-struct hg_file_s {
- guint16 reserved1;
- guint16 reserved2;
-};
-struct hg_operator_s {
- guint16 length;
- guint16 reserved1;
-};
-struct hg_operatordata_s {
- hg_operator_func_t func;
- gchar *name[];
-};
-union hg_attribute_u {
- struct {
- guint8 is_accessible:1; /* flagging off this bit means noaccess */
- guint8 is_readable:1; /* flagging off this bit means readonly */
- guint8 is_executeonly:1; /* flagging on this bit means executeonly */
- guint8 is_locked:1; /* flagging on this bit means the object is locked. */
- guint8 reserved4:1;
- guint8 reserved5:1;
- guint8 is_global:1; /* flagging on this bit means the object was allocated at the global memory */
- guint8 is_checked:1; /* for checking the circular reference */
- } bit;
- guint8 attributes;
-};
-struct _hg_object_s {
- hg_attribute_t attr;
- union {
- struct {
- guint is_executable:1;
- guint object_type:7;
- } v;
- guchar type;
- } t;
- union {
- hg_integer_t integer;
- hg_real_t real;
- hg_name_t name;
- hg_encoding_name_t encoding;
- hg_boolean_t boolean;
- hg_string_t string;
- hg_array_t array;
- hg_dict_t dict;
- hg_file_t file;
- hg_operator_t operator;
- } v;
-};
-struct hg_object_s {
- hg_object_header_t header;
- _hg_object_t object;
- gpointer data[];
-};
-
-struct hg_arraydata_s {
- gchar name[256];
- gpointer array;
- gpointer data[];
-};
-struct hg_stringdata_s {
- gpointer string;
- gpointer data[];
-};
-struct hg_dictdata_s {
- hg_object_t *key;
- hg_object_t *value;
-};
-enum hg_filetype_e {
- HG_FILE_TYPE_FILE_IO = 1,
- HG_FILE_TYPE_MMAPPED_IO,
- HG_FILE_TYPE_BUFFER,
- HG_FILE_TYPE_STDIN,
- HG_FILE_TYPE_STDOUT,
- HG_FILE_TYPE_STDERR,
- HG_FILE_TYPE_LINEEDIT,
- HG_FILE_TYPE_STATEMENTEDIT,
- HG_FILE_TYPE_CALLBACK,
- HG_FILE_TYPE_END
-};
-enum hg_filemode_e {
- HG_FILE_MODE_READ = 1 << 0,
- HG_FILE_MODE_WRITE = 1 << 1,
- HG_FILE_MODE_READWRITE = 1 << 2
-};
-enum hg_filepos_e {
- HG_FILE_SEEK_SET = SEEK_SET,
- HG_FILE_SEEK_CUR = SEEK_CUR,
- HG_FILE_SEEK_END = SEEK_END
-};
-struct hg_filetable_s {
- gboolean (* open) (gpointer user_data,
- error_t *error);
- gsize (* read) (gpointer user_data,
- gpointer buffer,
- gsize size,
- gsize n,
- error_t *error);
- gsize (* write) (gpointer user_data,
- gconstpointer buffer,
- gsize size,
- gsize n,
- error_t *error);
- gboolean (* flush) (gpointer user_data,
- error_t *error);
- gssize (* seek) (gpointer user_data,
- gssize offset,
- hg_filepos_t whence,
- error_t *error);
- void (* close) (gpointer user_data,
- error_t *error);
- gboolean (* is_closed) (gpointer user_data);
- gboolean (* is_eof) (gpointer user_data);
- void (* clear_eof) (gpointer user_data);
-};
-struct hg_filedata_s {
- union {
- gpointer buffer;
- hg_filetable_t *table;
- } v;
- gint fd;
- gsize filesize;
- gsize current_position;
- gsize current_line;
- hg_filetype_t iotype;
- hg_filemode_t mode;
- gsize filename_length;
- gchar *filename[];
-};
-
-enum hg_objecttype_e {
- HG_OBJECT_TYPE_NULL = 0,
- HG_OBJECT_TYPE_INTEGER,
- HG_OBJECT_TYPE_REAL,
- HG_OBJECT_TYPE_NAME,
- HG_OBJECT_TYPE_BOOLEAN,
- HG_OBJECT_TYPE_STRING,
- HG_OBJECT_TYPE_EVAL,
- HG_OBJECT_TYPE_ARRAY = 9,
- HG_OBJECT_TYPE_MARK,
- /* extended for hieroglyph */
- HG_OBJECT_TYPE_DICT = 65,
- HG_OBJECT_TYPE_FILE,
- HG_OBJECT_TYPE_OPERATOR,
- HG_OBJECT_TYPE_END = (1 << 7) - 1
-};
-
-enum hg_stacktype_e {
- HG_STACK_TYPE_OSTACK,
- HG_STACK_TYPE_ESTACK,
- HG_STACK_TYPE_DSTACK,
- HG_STACK_TYPE_END
-};
-struct hg_stackdata_s {
- gpointer data;
- hg_stackdata_t *next;
- hg_stackdata_t *prev;
-};
-struct hg_stack_s {
- hg_stackdata_t *stack_top;
- gsize stack_depth;
- gsize current_depth;
- gpointer data[];
-};
-
-enum hg_error_e {
- HG_e_dictfull = 1,
- HG_e_dictstackoverflow,
- HG_e_dictstackunderflow,
- HG_e_execstackoverflow,
- HG_e_handleerror,
- HG_e_interrupt,
- HG_e_invalidaccess,
- HG_e_invalidexit,
- HG_e_invalidfileaccess,
- HG_e_invalidfont,
- HG_e_invalidrestore,
- HG_e_ioerror,
- HG_e_limitcheck,
- HG_e_nocurrentpoint,
- HG_e_rangecheck,
- HG_e_stackoverflow,
- HG_e_stackunderflow,
- HG_e_syntaxerror,
- HG_e_timeout,
- HG_e_typecheck,
- HG_e_undefined,
- HG_e_undefinedfilename,
- HG_e_undefinedresult,
- HG_e_unmatchedmark,
- HG_e_unregistered,
- HG_e_VMerror,
- HG_e_configurationerror,
- HG_e_undefinedresource,
- HG_e_END,
-};
-
-enum hg_system_encoding_e {
- HG_enc_abs = 0,
- HG_enc_add,
- HG_enc_aload,
- HG_enc_anchorsearch,
- HG_enc_and,
- HG_enc_arc,
- HG_enc_arcn,
- HG_enc_arct,
- HG_enc_arcto,
- HG_enc_array,
-
- HG_enc_ashow,
- HG_enc_astore,
- HG_enc_awidthshow,
- HG_enc_begin,
- HG_enc_bind,
- HG_enc_bitshift,
- HG_enc_ceiling,
- HG_enc_charpath,
- HG_enc_clear,
- HG_enc_cleartomark,
-
- HG_enc_clip,
- HG_enc_clippath,
- HG_enc_closepath,
- HG_enc_concat,
- HG_enc_concatmatrix,
- HG_enc_copy,
- HG_enc_count,
- HG_enc_counttomark,
- HG_enc_currentcmykcolor,
- HG_enc_currentdash,
-
- HG_enc_currentdict,
- HG_enc_currentfile,
- HG_enc_currentfont,
- HG_enc_currentgray,
- HG_enc_currentgstate,
- HG_enc_currenthsbcolor,
- HG_enc_currentlinecap,
- HG_enc_currentlinejoin,
- HG_enc_currentlinewidth,
- HG_enc_currentmatrix,
-
- HG_enc_currentpoint,
- HG_enc_currentrgbcolor,
- HG_enc_currentshared,
- HG_enc_curveto,
- HG_enc_cvi,
- HG_enc_cvlit,
- HG_enc_cvn,
- HG_enc_cvr,
- HG_enc_cvrs,
- HG_enc_cvs,
-
- HG_enc_cvx,
- HG_enc_def,
- HG_enc_defineusername,
- HG_enc_dict,
- HG_enc_div,
- HG_enc_dtransform,
- HG_enc_dup,
- HG_enc_end,
- HG_enc_eoclip,
- HG_enc_eofill,
-
- HG_enc_eoviewclip,
- HG_enc_eq,
- HG_enc_exch,
- HG_enc_exec,
- HG_enc_exit,
- HG_enc_file,
- HG_enc_fill,
- HG_enc_findfont,
- HG_enc_flattenpath,
- HG_enc_floor,
-
- HG_enc_flush,
- HG_enc_flushfile,
- HG_enc_for,
- HG_enc_forall,
- HG_enc_ge,
- HG_enc_get,
- HG_enc_getinterval,
- HG_enc_grestore,
- HG_enc_gsave,
- HG_enc_gstate,
-
- HG_enc_gt,
- HG_enc_identmatrix,
- HG_enc_idiv,
- HG_enc_idtransform,
- HG_enc_if,
- HG_enc_ifelse,
- HG_enc_image,
- HG_enc_imagemask,
- HG_enc_index,
- HG_enc_ineofill,
-
- HG_enc_infill,
- HG_enc_initviewclip,
- HG_enc_inueofill,
- HG_enc_inufill,
- HG_enc_invertmatrix,
- HG_enc_itransform,
- HG_enc_known,
- HG_enc_le,
- HG_enc_length,
- HG_enc_lineto,
-
- HG_enc_load,
- HG_enc_loop,
- HG_enc_lt,
- HG_enc_makefont,
- HG_enc_matrix,
- HG_enc_maxlength,
- HG_enc_mod,
- HG_enc_moveto,
- HG_enc_mul,
- HG_enc_ne,
-
- HG_enc_neg,
- HG_enc_newpath,
- HG_enc_not,
- HG_enc_null,
- HG_enc_or,
- HG_enc_pathbbox,
- HG_enc_pathforall,
- HG_enc_pop,
- HG_enc_print,
- HG_enc_printobject,
-
- HG_enc_put,
- HG_enc_putinterval,
- HG_enc_rcurveto,
- HG_enc_read,
- HG_enc_readhexstring,
- HG_enc_readline,
- HG_enc_readstring,
- HG_enc_rectclip,
- HG_enc_rectfill,
- HG_enc_rectstroke,
-
- HG_enc_rectviewclip,
- HG_enc_repeat,
- HG_enc_restore,
- HG_enc_rlineto,
- HG_enc_rmoveto,
- HG_enc_roll,
- HG_enc_rotate,
- HG_enc_round,
- HG_enc_save,
- HG_enc_scale,
-
- HG_enc_scalefont,
- HG_enc_search,
- HG_enc_selectfont,
- HG_enc_setbbox,
- HG_enc_setcachedevice,
- HG_enc_setcachedevice2,
- HG_enc_setcharwidth,
- HG_enc_setcmykcolor,
- HG_enc_setdash,
- HG_enc_setfont,
-
- HG_enc_setgray,
- HG_enc_setgstate,
- HG_enc_sethsbcolor,
- HG_enc_setlinecap,
- HG_enc_setlinejoin,
- HG_enc_setlinewidth,
- HG_enc_setmatrix,
- HG_enc_setrgbcolor,
- HG_enc_setshared,
- HG_enc_shareddict,
-
- HG_enc_show,
- HG_enc_showpage,
- HG_enc_stop,
- HG_enc_stopped,
- HG_enc_store,
- HG_enc_string,
- HG_enc_stringwidth,
- HG_enc_stroke,
- HG_enc_strokepath,
- HG_enc_sub,
-
- HG_enc_systemdict,
- HG_enc_token,
- HG_enc_transform,
- HG_enc_translate,
- HG_enc_truncate,
- HG_enc_type,
- HG_enc_uappend,
- HG_enc_ucache,
- HG_enc_ueofill,
- HG_enc_ufill,
-
- HG_enc_undef,
- HG_enc_upath,
- HG_enc_userdict,
- HG_enc_ustroke,
- HG_enc_viewclip,
- HG_enc_viewclippath,
- HG_enc_where,
- HG_enc_widthshow,
- HG_enc_write,
- HG_enc_writehexstring,
-
- HG_enc_writeobject,
- HG_enc_writestring,
- HG_enc_wtranslation,
- HG_enc_xor,
- HG_enc_xshow,
- HG_enc_xyshow,
- HG_enc_yshow,
- HG_enc_FontDirectory,
- HG_enc_SharedFontDirectory,
- HG_enc_Courier,
-
- HG_enc_Courier_Bold,
- HG_enc_Courier_BoldOblique,
- HG_enc_Courier_Oblique,
- HG_enc_Helvetica,
- HG_enc_Helvetica_Bold,
- HG_enc_Helvetica_BoldOblique,
- HG_enc_Helvetica_Oblique,
- HG_enc_Symbol,
- HG_enc_Times_Bold,
- HG_enc_Times_BoldItalic,
-
- HG_enc_Times_Italic,
- HG_enc_Times_Roman,
- HG_enc_execuserobject,
- HG_enc_currentcolor,
- HG_enc_currentcolorspace,
- HG_enc_currentglobal,
- HG_enc_execform,
- HG_enc_filter,
- HG_enc_findresource,
- HG_enc_globaldict,
-
- HG_enc_makepattern,
- HG_enc_setcolor,
- HG_enc_setcolorspace,
- HG_enc_setglobal,
- HG_enc_setpagedevice,
- HG_enc_setpattern,
-
- HG_enc_sym_eq = 256,
- HG_enc_sym_eqeq,
- HG_enc_ISOLatin1Encoding,
- HG_enc_StandardEncoding,
-
- HG_enc_sym_left_square_bracket,
- HG_enc_sym_right_square_bracket,
- HG_enc_atan,
- HG_enc_banddevice,
- HG_enc_bytesavailable,
- HG_enc_cachestatus,
- HG_enc_closefile,
- HG_enc_colorimage,
- HG_enc_condition,
- HG_enc_copypage,
-
- HG_enc_cos,
- HG_enc_countdictstack,
- HG_enc_countexecstack,
- HG_enc_cshow,
- HG_enc_currentblackgeneration,
- HG_enc_currentcacheparams,
- HG_enc_currentcolorscreen,
- HG_enc_currentcolortransfer,
- HG_enc_currentcontext,
- HG_enc_currentflat,
-
- HG_enc_currenthalftone,
- HG_enc_currenthalftonephase,
- HG_enc_currentmiterlimit,
- HG_enc_currentobjectformat,
- HG_enc_currentpacking,
- HG_enc_currentscreen,
- HG_enc_currentstrokeadjust,
- HG_enc_currenttransfer,
- HG_enc_currentundercolorremoval,
- HG_enc_defaultmatrix,
-
- HG_enc_definefont,
- HG_enc_deletefile,
- HG_enc_detach,
- HG_enc_deviceinfo,
- HG_enc_dictstack,
- HG_enc_echo,
- HG_enc_erasepage,
- HG_enc_errordict,
- HG_enc_execstack,
- HG_enc_executeonly,
-
- HG_enc_exp,
- HG_enc_false,
- HG_enc_filenameforall,
- HG_enc_fileposition,
- HG_enc_fork,
- HG_enc_framedevice,
- HG_enc_grestoreall,
- HG_enc_handleerror,
- HG_enc_initclip,
- HG_enc_initgraphics,
-
- HG_enc_initmatrix,
- HG_enc_instroke,
- HG_enc_inustroke,
- HG_enc_join,
- HG_enc_kshow,
- HG_enc_ln,
- HG_enc_lock,
- HG_enc_log,
- HG_enc_mark,
- HG_enc_monitor,
-
- HG_enc_noaccess,
- HG_enc_notify,
- HG_enc_nulldevice,
- HG_enc_packedarray,
- HG_enc_quit,
- HG_enc_rand,
- HG_enc_rcheck,
- HG_enc_readonly,
- HG_enc_realtime,
- HG_enc_renamefile,
-
- HG_enc_renderbands,
- HG_enc_resetfile,
- HG_enc_reversepath,
- HG_enc_rootfont,
- HG_enc_rrand,
- HG_enc_run,
- HG_enc_scheck,
- HG_enc_setblackgeneration,
- HG_enc_setcachelimit,
- HG_enc_setcacheparams,
-
- HG_enc_setcolorscreen,
- HG_enc_setcolortransfer,
- HG_enc_setfileposition,
- HG_enc_setflat,
- HG_enc_sethalftone,
- HG_enc_sethalftonephase,
- HG_enc_setmiterlimit,
- HG_enc_setobjectformat,
- HG_enc_setpacking,
- HG_enc_setscreen,
-
- HG_enc_setstrokeadjust,
- HG_enc_settransfer,
- HG_enc_setucacheparams,
- HG_enc_setundercolorremoval,
- HG_enc_sin,
- HG_enc_sqrt,
- HG_enc_srand,
- HG_enc_stack,
- HG_enc_status,
- HG_enc_statusdict,
-
- HG_enc_true,
- HG_enc_ucachestatus,
- HG_enc_undefinefont,
- HG_enc_usertime,
- HG_enc_ustrokepath,
- HG_enc_version,
- HG_enc_vmreclaim,
- HG_enc_vmstatus,
- HG_enc_wait,
- HG_enc_wcheck,
-
- HG_enc_xcheck,
- HG_enc_yield,
- HG_enc_defineuserobject,
- HG_enc_undefineuserobject,
- HG_enc_UserObjects,
- HG_enc_cleardictstack,
- HG_enc_A,
- HG_enc_B,
- HG_enc_C,
- HG_enc_D,
-
- HG_enc_E,
- HG_enc_F,
- HG_enc_G,
- HG_enc_H,
- HG_enc_I,
- HG_enc_J,
- HG_enc_K,
- HG_enc_L,
- HG_enc_M,
- HG_enc_N,
-
- HG_enc_O,
- HG_enc_P,
- HG_enc_Q,
- HG_enc_R,
- HG_enc_S,
- HG_enc_T,
- HG_enc_U,
- HG_enc_V,
- HG_enc_W,
- HG_enc_X,
-
- HG_enc_Y,
- HG_enc_Z,
- HG_enc_a,
- HG_enc_b,
- HG_enc_c,
- HG_enc_d,
- HG_enc_e,
- HG_enc_f,
- HG_enc_g,
- HG_enc_h,
-
- HG_enc_i,
- HG_enc_j,
- HG_enc_k,
- HG_enc_l,
- HG_enc_m,
- HG_enc_n,
- HG_enc_o,
- HG_enc_p,
- HG_enc_q,
- HG_enc_r,
-
- HG_enc_s,
- HG_enc_t,
- HG_enc_u,
- HG_enc_v,
- HG_enc_w,
- HG_enc_x,
- HG_enc_y,
- HG_enc_z,
- HG_enc_setvmthreshold,
- HG_enc_sym_begin_dict_mark,
-
- HG_enc_sym_end_dict_mark,
- HG_enc_currentcolorrendering,
- HG_enc_currentdevparams,
- HG_enc_currentoverprint,
- HG_enc_currentpagedevice,
- HG_enc_currentsystemparams,
- HG_enc_currentuserparams,
- HG_enc_defineresource,
- HG_enc_findencoding,
- HG_enc_gcheck,
-
- HG_enc_glyphshow,
- HG_enc_languagelevel,
- HG_enc_product,
- HG_enc_pstack,
- HG_enc_resourceforall,
- HG_enc_resourcestatus,
- HG_enc_revision,
- HG_enc_serialnumber,
- HG_enc_setcolorrendering,
- HG_enc_setdevparams,
-
- HG_enc_setoverprint,
- HG_enc_setsystemparams,
- HG_enc_setuserparams,
- HG_enc_startjob,
- HG_enc_undefineresource,
- HG_enc_GlobalFontDirectory,
- HG_enc_ASCII85Decode,
- HG_enc_ASCII85Encode,
- HG_enc_ASCIIHexDecode,
- HG_enc_ASCIIHexEncode,
-
- HG_enc_CCITTFaxDecode,
- HG_enc_CCITTFaxEncode,
- HG_enc_DCTDecode,
- HG_enc_DCTEncode,
- HG_enc_LZWDecode,
- HG_enc_LZWEncode,
- HG_enc_NullEncode,
- HG_enc_RunLengthDecode,
- HG_enc_RunLengthEncode,
- HG_enc_SubFileDecode,
-
- HG_enc_CIEBasedA,
- HG_enc_CIEBasedABC,
- HG_enc_DeviceCMYK,
- HG_enc_DeviceGray,
- HG_enc_DeviceRGB,
- HG_enc_Indexed,
- HG_enc_Pattern,
- HG_enc_Separation,
- HG_enc_CIEBasedDEF,
- HG_enc_CIEBasedDEFG,
-
- HG_enc_DeviceN,
-
- HG_enc_POSTSCRIPT_RESERVED_END,
-
- HG_enc_END
-};
-enum hg_emulationtype_e {
- HG_EMU_BEGIN,
- HG_EMU_PS_LEVEL_1,
- HG_EMU_PS_LEVEL_2,
- HG_EMU_PS_LEVEL_3,
- HG_EMU_END
-};
-
-struct hg_vm_s {
- gboolean is_global;
-};
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH__HGTYPES_H__ */
diff --git a/hieroglyph/utils.c b/hieroglyph/utils.c
deleted file mode 100644
index 18f0970..0000000
--- a/hieroglyph/utils.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * utils.c
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <execinfo.h>
-#include <stdlib.h>
-#include <glib/gstrfuncs.h>
-#include <glib/gstring.h>
-#include "utils.h"
-
-
-static gboolean __hg_stacktrace_feature = TRUE;
-static gboolean __hg_warning_message_feature = TRUE;
-
-/*
- * private functions
- */
-
-/*
- * public functions
- */
-gchar *
-hg_get_stacktrace(void)
-{
- void *traces[256];
- int size, i;
- char **strings;
- GString *retval = g_string_new(NULL);
-
- if (__hg_stacktrace_feature == FALSE)
- return g_strdup("");
-
- size = backtrace(traces, 256);
- strings = backtrace_symbols(traces, size);
-
- for (i = 0; i < size; i++) {
- g_string_append(retval, strings[i]);
- g_string_append_c(retval, '\n');
- }
- free(strings);
-
- return g_string_free(retval, FALSE);
-}
-
-void
-hg_use_stacktrace(gboolean flag)
-{
-#ifdef DEBUG
- __hg_stacktrace_feature = flag;
-#else
- g_warning("The stacktrace feature are entirely disabled at the build time.");
-#endif
-}
-
-#ifdef DEBUG
-gboolean
-hg_is_stacktrace_enabled(void)
-{
- return __hg_stacktrace_feature;
-}
-#endif
-
-void
-hg_quiet_warning_messages(gboolean flag)
-{
- __hg_warning_message_feature = !flag;
-}
-
-gboolean
-hg_allow_warning_messages(void)
-{
- return __hg_warning_message_feature;
-}
diff --git a/hieroglyph/utils.h b/hieroglyph/utils.h
deleted file mode 100644
index c9856e3..0000000
--- a/hieroglyph/utils.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * utils.h
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH__UTILS_H__
-#define __HIEROGLYPH__UTILS_H__
-
-#include <hieroglyph/hgtypes.h>
-
-
-G_BEGIN_DECLS
-
-gchar *hg_get_stacktrace (void) G_GNUC_MALLOC;
-void hg_use_stacktrace (gboolean flag);
-gboolean hg_is_stacktrace_enabled (void) __attribute__ ((weak));
-void hg_quiet_warning_messages(gboolean flag);
-gboolean hg_allow_warning_messages(void);
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH__UTILS_H__ */
diff --git a/hieroglyph/version.h.in b/hieroglyph/version.h.in
deleted file mode 100644
index 4001dad..0000000
--- a/hieroglyph/version.h.in
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * version.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH__VERSION_H__
-#define __HIEROGLYPH__VERSION_H__
-
-#include <glib/gmacros.h>
-
-
-G_BEGIN_DECLS
-
-#define HIEROGLYPH_VERSION "@VERSION@"
-#define HIEROGLYPH_UUID "07ce2f56-f7d0-4a99-8d96-ba44e827a3d5"
-
-const char *__hg_rcsid G_GNUC_UNUSED = "$Rev$";
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH__VERSION_H__ */
diff --git a/hieroglyph/version.h.in.in b/hieroglyph/version.h.in.in
deleted file mode 100644
index 0c3a799..0000000
--- a/hieroglyph/version.h.in.in
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * version.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH__VERSION_H__
-#define __HIEROGLYPH__VERSION_H__
-
-#include <glib/gmacros.h>
-
-
-G_BEGIN_DECLS
-
-#define HIEROGLYPH_VERSION "@VERSION@"
-#define HIEROGLYPH_UUID "%%HIEROGLYPH%%"
-
-const char *__hg_rcsid G_GNUC_UNUSED = "$Rev$";
-
-G_END_DECLS
-
-#endif /* __HIEROGLYPH__VERSION_H__ */
diff --git a/hieroglyph/vm.c b/hieroglyph/vm.c
deleted file mode 100644
index 0fe0737..0000000
--- a/hieroglyph/vm.c
+++ /dev/null
@@ -1,746 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * vm.c
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <glib/gmem.h>
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/hgoperator.h>
-#include <hieroglyph/hgstack.h>
-#include "vm.h"
-
-
-typedef struct hg_vm_private_s hg_vm_private_t;
-
-struct hg_vm_private_s {
- hg_vm_t instance;
- gboolean is_initialized;
- hg_error_t error;
- hg_emulationtype_t current_level;
- hg_object_t *io[HG_FILE_TYPE_END];
- hg_stack_t *stack[HG_STACK_TYPE_END];
- hg_object_t *dict;
-};
-
-
-static gboolean _hg_vm_lineedit_open (gpointer user_data,
- error_t *error);
-static gsize _hg_vm_lineedit_read (gpointer user_data,
- gpointer buffer,
- gsize size,
- gsize n,
- error_t *error);
-static gsize _hg_vm_lineedit_write (gpointer user_data,
- gconstpointer buffer,
- gsize size,
- gsize n,
- error_t *error);
-static gboolean _hg_vm_lineedit_flush (gpointer user_data,
- error_t *error);
-static gssize _hg_vm_lineedit_seek (gpointer user_data,
- gssize offset,
- hg_filepos_t whence,
- error_t *error);
-static void _hg_vm_lineedit_close (gpointer user_data,
- error_t *error);
-static gboolean _hg_vm_lineedit_is_closed (gpointer user_data);
-static gboolean _hg_vm_lineedit_is_eof (gpointer user_data);
-static void _hg_vm_lineedit_clear_eof (gpointer user_data);
-static gboolean _hg_vm_statementedit_open (gpointer user_data,
- error_t *error);
-static gsize _hg_vm_statementedit_read (gpointer user_data,
- gpointer buffer,
- gsize size,
- gsize n,
- error_t *error);
-static gsize _hg_vm_statementedit_write (gpointer user_data,
- gconstpointer buffer,
- gsize size,
- gsize n,
- error_t *error);
-static gboolean _hg_vm_statementedit_flush (gpointer user_data,
- error_t *error);
-static gssize _hg_vm_statementedit_seek (gpointer user_data,
- gssize offset,
- hg_filepos_t whence,
- error_t *error);
-static void _hg_vm_statementedit_close (gpointer user_data,
- error_t *error);
-static gboolean _hg_vm_statementedit_is_closed(gpointer user_data);
-static gboolean _hg_vm_statementedit_is_eof (gpointer user_data);
-static void _hg_vm_statementedit_clear_eof(gpointer user_data);
-
-
-static hg_filetable_t _hg_vm_lineedit_table = {
- .open = _hg_vm_lineedit_open,
- .read = _hg_vm_lineedit_read,
- .write = _hg_vm_lineedit_write,
- .flush = _hg_vm_lineedit_flush,
- .seek = _hg_vm_lineedit_seek,
- .close = _hg_vm_lineedit_close,
- .is_closed = _hg_vm_lineedit_is_closed,
- .is_eof = _hg_vm_lineedit_is_eof,
- .clear_eof = _hg_vm_lineedit_clear_eof,
-};
-static hg_filetable_t _hg_vm_statementedit_table = {
- .open = _hg_vm_statementedit_open,
- .read = _hg_vm_statementedit_read,
- .write = _hg_vm_statementedit_write,
- .flush = _hg_vm_statementedit_flush,
- .seek = _hg_vm_statementedit_seek,
- .close = _hg_vm_statementedit_close,
- .is_closed = _hg_vm_statementedit_is_closed,
- .is_eof = _hg_vm_statementedit_is_eof,
- .clear_eof = _hg_vm_statementedit_clear_eof,
-};
-
-/*
- * Private functions
- */
-static gboolean
-_hg_vm_lineedit_open(gpointer user_data,
- error_t *error)
-{
- /* XXX */
- return FALSE;
-}
-
-static gsize
-_hg_vm_lineedit_read(gpointer user_data,
- gpointer buffer,
- gsize size,
- gsize n,
- error_t *error)
-{
- /* XXX */
- return 0;
-}
-
-static gsize
-_hg_vm_lineedit_write(gpointer user_data,
- gconstpointer buffer,
- gsize size,
- gsize n,
- error_t *error)
-{
- /* XXX */
- return 0;
-}
-
-static gboolean
-_hg_vm_lineedit_flush(gpointer user_data,
- error_t *error)
-{
- /* XXX */
- return FALSE;
-}
-
-static gssize
-_hg_vm_lineedit_seek(gpointer user_data,
- gssize offset,
- hg_filepos_t whence,
- error_t *error)
-{
- /* XXX */
- return 0;
-}
-
-static void
-_hg_vm_lineedit_close(gpointer user_data,
- error_t *error)
-{
- /* XXX */
-}
-
-static gboolean
-_hg_vm_lineedit_is_closed(gpointer user_data)
-{
- /* XXX */
- return FALSE;
-}
-
-static gboolean
-_hg_vm_lineedit_is_eof(gpointer user_data)
-{
- /* XXX */
- return FALSE;
-}
-
-static void
-_hg_vm_lineedit_clear_eof(gpointer user_data)
-{
- /* XXX */
-}
-
-static gboolean
-_hg_vm_statementedit_open(gpointer user_data,
- error_t *error)
-{
- /* XXX */
- return FALSE;
-}
-
-static gsize
-_hg_vm_statementedit_read(gpointer user_data,
- gpointer buffer,
- gsize size,
- gsize n,
- error_t *error)
-{
- /* XXX */
- return 0;
-}
-
-static gsize
-_hg_vm_statementedit_write(gpointer user_data,
- gconstpointer buffer,
- gsize size,
- gsize n,
- error_t *error)
-{
- /* XXX */
- return 0;
-}
-
-static gboolean
-_hg_vm_statementedit_flush(gpointer user_data,
- error_t *error)
-{
- /* XXX */
- return FALSE;
-}
-
-static gssize
-_hg_vm_statementedit_seek(gpointer user_data,
- gssize offset,
- hg_filepos_t whence,
- error_t *error)
-{
- /* XXX */
- return FALSE;
-}
-
-static void
-_hg_vm_statementedit_close(gpointer user_data,
- error_t *error)
-{
- /* XXX */
-}
-
-static gboolean
-_hg_vm_statementedit_is_closed(gpointer user_data)
-{
- /* XXX */
- return FALSE;
-}
-
-static gboolean
-_hg_vm_statementedit_is_eof(gpointer user_data)
-{
- /* XXX */
- return FALSE;
-}
-
-static void
-_hg_vm_statementedit_clear_eof(gpointer user_data)
-{
- /* XXX */
-}
-
-/*
- * Public functions
- */
-hg_vm_t *
-hg_vm_new(void)
-{
- hg_vm_private_t *retval = g_new0(hg_vm_private_t, 1);
- hg_stacktype_t i;
-
- /* initialize VM */
- retval->is_initialized = FALSE;
- retval->current_level = HG_EMU_BEGIN;
- for (i = HG_STACK_TYPE_OSTACK; i < HG_STACK_TYPE_END; i++)
- retval->stack[i] = NULL;
- retval->dict = NULL;
-
- /* complete the initialization here */
- retval->io[HG_FILE_TYPE_STDIN] = hg_object_file_new((hg_vm_t *)retval,
- "%stdin",
- HG_FILE_MODE_READ);
- retval->io[HG_FILE_TYPE_STDOUT] = hg_object_file_new((hg_vm_t *)retval,
- "%stdout",
- HG_FILE_MODE_WRITE);
- retval->io[HG_FILE_TYPE_STDERR] = hg_object_file_new((hg_vm_t *)retval,
- "%stderr",
- HG_FILE_MODE_WRITE);
- retval->io[HG_FILE_TYPE_LINEEDIT] = hg_object_file_new_with_custom((hg_vm_t *)retval,
- &_hg_vm_lineedit_table,
- HG_FILE_MODE_READ);
- retval->io[HG_FILE_TYPE_STATEMENTEDIT] = hg_object_file_new_with_custom((hg_vm_t *)retval,
- &_hg_vm_statementedit_table,
- HG_FILE_MODE_READ);
-
- return (hg_vm_t *)retval;
-}
-
-void
-hg_vm_destroy(hg_vm_t *vm)
-{
- hg_vm_private_t *priv;
- hg_filetype_t i;
-
- hg_return_if_fail (vm != NULL);
-
- priv = (hg_vm_private_t *)vm;
-
- if (priv->is_initialized)
- hg_vm_finalize(vm);
- for (i = 0; i < HG_FILE_TYPE_END; i++) {
- if (priv->io[i])
- hg_object_free(vm, priv->io[i]);
- }
-
- g_free(vm);
-}
-
-gpointer
-hg_vm_malloc(hg_vm_t *vm,
- gsize size)
-{
- gpointer retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- /* XXX */
- retval = g_malloc(size);
-
- return retval;
-}
-
-gpointer
-hg_vm_realloc(hg_vm_t *vm,
- gpointer object,
- gsize size)
-{
- gpointer retval;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- /* XXX */
- retval = g_realloc(object, size);
-
- return retval;
-}
-
-void
-hg_vm_mfree(hg_vm_t *vm,
- gpointer data)
-{
- hg_return_if_fail (vm != NULL);
-
- /* XXX */
- g_free(data);
-}
-
-guchar
-hg_vm_get_object_format(hg_vm_t *vm)
-{
- hg_return_val_if_fail (vm != NULL, 0);
-
- /* XXX */
- return 0;
-}
-
-gboolean
-hg_vm_get_current_allocation_mode(hg_vm_t *vm)
-{
- return vm->is_global;
-}
-
-void
-hg_vm_set_current_allocation_mode(hg_vm_t *vm,
- gboolean is_global)
-{
- vm->is_global = is_global;
-}
-
-void
-hg_vm_get_attributes(hg_vm_t *vm,
- hg_attribute_t *attr)
-{
- hg_return_if_fail (vm != NULL);
- hg_return_if_fail (attr != NULL);
-
- /* XXX */
- attr->bit.is_accessible = TRUE;
- attr->bit.is_readable = TRUE;
- attr->bit.is_executeonly = FALSE;
- attr->bit.is_locked = FALSE;
- attr->bit.reserved4 = FALSE;
- attr->bit.reserved5 = FALSE;
- attr->bit.is_global = hg_vm_get_current_allocation_mode(vm);
- attr->bit.is_checked = FALSE;
-}
-
-void
-hg_vm_set_error(hg_vm_t *vm,
- hg_error_t error)
-{
- hg_vm_private_t *priv;
-
- hg_return_if_fail (vm != NULL);
-
- priv = (hg_vm_private_t *)vm;
- if (priv->error == 0) {
- priv->error = error;
- } else {
- /* XXX */
- }
-}
-
-hg_error_t
-hg_vm_get_error(hg_vm_t *vm)
-{
- hg_vm_private_t *priv;
-
- hg_return_val_if_fail (vm != NULL, HG_e_VMerror);
-
- priv = (hg_vm_private_t *)vm;
-
- return priv->error;
-}
-
-void
-hg_vm_clear_error(hg_vm_t *vm)
-{
- hg_vm_private_t *priv;
-
- hg_return_if_fail (vm != NULL);
-
- priv = (hg_vm_private_t *)vm;
- priv->error = 0;
-}
-
-hg_object_t *
-hg_vm_get_io(hg_vm_t *vm,
- hg_filetype_t iotype)
-{
- hg_vm_private_t *priv;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- priv = (hg_vm_private_t *)vm;
-
- return priv->io[iotype];
-}
-
-void
-hg_vm_set_io(hg_vm_t *vm,
- hg_object_t *object)
-{
- hg_vm_private_t *priv;
-
- hg_return_if_fail (vm != NULL);
- hg_return_if_fail (object != NULL);
- hg_return_if_fail (HG_OBJECT_IS_FILE (object));
-
- priv = (hg_vm_private_t *)vm;
- priv->io[HG_OBJECT_FILE_DATA (object)->iotype] = object;
-}
-
-gboolean
-hg_vm_initialize(hg_vm_t *vm)
-{
- hg_vm_private_t *priv;
- gboolean retval;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
-
- priv = (hg_vm_private_t *)vm;
- if (priv->is_initialized)
- return FALSE;
-
- priv->is_initialized = TRUE;
- priv->stack[HG_STACK_TYPE_OSTACK] = hg_stack_new(vm, 65535);
- priv->stack[HG_STACK_TYPE_ESTACK] = hg_stack_new(vm, 65535);
- priv->stack[HG_STACK_TYPE_DSTACK] = hg_stack_new(vm, 65535);
- priv->dict = hg_object_dict_new(vm, 65535);
-
- /* push globaldict to dstack */
- hg_stack_push(priv->stack[HG_STACK_TYPE_DSTACK], priv->dict);
-
- /* initialize operators */
- retval = hg_object_operator_initialize(vm, HG_EMU_PS_LEVEL_3);
-
- return TRUE;
-}
-
-gboolean
-hg_vm_finalize(hg_vm_t *vm)
-{
- hg_vm_private_t *priv;
- hg_stacktype_t j;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
-
- priv = (hg_vm_private_t *)vm;
-
- hg_return_val_if_fail (priv->is_initialized, FALSE);
-
- hg_object_operator_finalize(vm, HG_EMU_BEGIN);
- if (priv->dict)
- hg_object_free(vm, priv->dict);
- for (j = 0; j < HG_STACK_TYPE_END; j++) {
- if (priv->stack[j])
- hg_stack_free(vm, priv->stack[j]);
- }
- /* XXX */
-
- priv->is_initialized = FALSE;
-
- return TRUE;
-}
-
-hg_emulationtype_t
-hg_vm_get_emulation_level(hg_vm_t *vm)
-{
- hg_vm_private_t *priv;
-
- hg_return_val_if_fail (vm != NULL, HG_EMU_BEGIN);
-
- priv = (hg_vm_private_t *)vm;
-
- return priv->current_level;
-}
-
-gboolean
-hg_vm_set_emulation_level(hg_vm_t *vm,
- hg_emulationtype_t level)
-{
- hg_vm_private_t *priv;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
-
- priv = (hg_vm_private_t *)vm;
-
- if (hg_object_operator_finalize(vm, level - 1) == FALSE)
- return FALSE;
-
- if (hg_object_operator_initialize(vm, level) == FALSE)
- return FALSE;
-
- priv->current_level = level;
-
- return TRUE;
-}
-
-gboolean
-hg_vm_stepi(hg_vm_t *vm,
- gboolean *is_proceeded)
-{
- hg_vm_private_t *priv;
- hg_stack_t *estack, *ostack;
- hg_object_t *object, *result;
- gboolean retval = TRUE;
- gsize index;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
- hg_return_val_if_fail (is_proceeded != NULL, FALSE);
-
- priv = (hg_vm_private_t *)vm;
- estack = priv->stack[HG_STACK_TYPE_ESTACK];
- ostack = priv->stack[HG_STACK_TYPE_OSTACK];
- object = hg_stack_index(estack, 0);
-
- *is_proceeded = FALSE;
- evaluate:
- switch (HG_OBJECT_GET_TYPE (object)) {
- case HG_OBJECT_TYPE_ARRAY:
- case HG_OBJECT_TYPE_NAME:
- if (HG_OBJECT_ATTR_IS_EXECUTABLE (object)) {
- if (HG_OBJECT_GET_TYPE (object) == HG_OBJECT_TYPE_NAME) {
- result = hg_vm_dict_lookup(vm, object);
- if (result == NULL) {
- hg_vm_set_error(vm, HG_e_undefined);
- return FALSE;
- }
- } else {
- result = object;
- *is_proceeded = TRUE;
- }
- if (!hg_stack_push(estack, result)) {
- hg_vm_set_error(vm, HG_e_execstackoverflow);
- return FALSE;
- }
- hg_stack_roll(estack, 2, 1);
- hg_stack_pop(estack);
- break;
- }
- case HG_OBJECT_TYPE_NULL:
- case HG_OBJECT_TYPE_INTEGER:
- case HG_OBJECT_TYPE_REAL:
- case HG_OBJECT_TYPE_BOOLEAN:
- case HG_OBJECT_TYPE_STRING:
- case HG_OBJECT_TYPE_DICT:
- case HG_OBJECT_TYPE_MARK:
- if (hg_stack_push(ostack, object) == FALSE) {
- hg_vm_set_error(vm, HG_e_stackoverflow);
- retval = FALSE;
- }
- hg_stack_pop(estack);
- *is_proceeded = TRUE;
- break;
- case HG_OBJECT_TYPE_EVAL:
- result = hg_vm_dict_lookup(vm, object);
- if (result == NULL) {
- hg_vm_set_error(vm, HG_e_undefined);
- return FALSE;
- }
- object = result;
- goto evaluate;
- case HG_OBJECT_TYPE_FILE:
- /* XXX: read a token and push to estack */
- break;
- case HG_OBJECT_TYPE_OPERATOR:
- index = hg_stack_length(estack);
- retval = hg_object_operator_invoke(vm, object);
- hg_stack_roll(estack, hg_stack_length(estack) - index + 1, 1);
- hg_stack_pop(estack);
- *is_proceeded = TRUE;
- break;
- default:
- g_warning("[BUG] Unknown object type `%d'", HG_OBJECT_GET_TYPE (object));
- break;
- }
-
- return retval;
-}
-
-gboolean
-hg_vm_step(hg_vm_t *vm)
-{
- gboolean retval, is_proceeded;
-
- while ((retval = hg_vm_stepi(vm, &is_proceeded))) {
- if (is_proceeded)
- break;
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_vm_get_dict(hg_vm_t *vm)
-{
- hg_vm_private_t *priv;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- priv = (hg_vm_private_t *)vm;
-
- return priv->dict;
-}
-
-hg_object_t *
-hg_vm_dict_lookup(hg_vm_t *vm,
- hg_object_t *object)
-{
- hg_vm_private_t *priv;
- hg_stack_t *dstack;
- hg_object_t *dict, *retval;
- gsize i, length;
-
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (object != NULL, NULL);
-
- priv = (hg_vm_private_t *)vm;
- dstack = priv->stack[HG_STACK_TYPE_DSTACK];
- length = hg_stack_length(dstack);
- for (i = 0; i < length; i++) {
- dict = hg_stack_index(dstack, i);
- if ((retval = hg_object_dict_lookup(dict, object)) != NULL)
- return retval;
- }
-
- return NULL;
-}
-
-gboolean
-hg_vm_dict_remove(hg_vm_t *vm,
- const gchar *name,
- gboolean remove_all)
-{
- hg_vm_private_t *priv;
- hg_stack_t *dstack;
- hg_object_t *dict, *nobject;
- gsize i, length;
- gboolean retval = FALSE;
-
- hg_return_val_if_fail (vm != NULL, FALSE);
- hg_return_val_if_fail (name != NULL, FALSE);
-
- priv = (hg_vm_private_t *)vm;
- dstack = priv->stack[HG_STACK_TYPE_DSTACK];
- length = hg_stack_length(dstack);
- for (i = 0; i < length; i++) {
- dict = hg_stack_index(dstack, i);
- nobject = hg_vm_name_lookup(vm, name);
- retval |= hg_object_dict_remove(dict, nobject);
- if (retval && remove_all == FALSE)
- break;
- }
-
- return retval;
-}
-
-hg_object_t *
-hg_vm_get_currentdict(hg_vm_t *vm)
-{
- hg_vm_private_t *priv;
- hg_object_t *retval;
- hg_stack_t *dstack;
-
- hg_return_val_if_fail (vm != NULL, NULL);
-
- priv = (hg_vm_private_t *)vm;
- dstack = priv->stack[HG_STACK_TYPE_DSTACK];
- retval = hg_stack_index(dstack, 0);
-
- return retval;
-}
-
-hg_object_t *
-hg_vm_name_lookup(hg_vm_t *vm,
- const gchar *name)
-{
- hg_return_val_if_fail (vm != NULL, NULL);
- hg_return_val_if_fail (name != NULL, NULL);
-
- /* XXX */
-
- return hg_object_name_new(vm, name, FALSE);
-}
diff --git a/hieroglyph/vm.h b/hieroglyph/vm.h
deleted file mode 100644
index b04199e..0000000
--- a/hieroglyph/vm.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * vm.h
- * Copyright (C) 2005-2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH__VM_H__
-#define __HIEROGLYPH__VM_H__
-
-#include <hieroglyph/hgtypes.h>
-
-
-hg_vm_t *hg_vm_new (void) G_GNUC_WARN_UNUSED_RESULT;
-void hg_vm_destroy (hg_vm_t *vm);
-gpointer hg_vm_malloc (hg_vm_t *vm,
- gsize size) G_GNUC_WARN_UNUSED_RESULT;
-gpointer hg_vm_realloc (hg_vm_t *vm,
- gpointer object,
- gsize size) G_GNUC_WARN_UNUSED_RESULT;
-void hg_vm_mfree (hg_vm_t *vm,
- gpointer data);
-guchar hg_vm_get_object_format (hg_vm_t *vm);
-gboolean hg_vm_get_current_allocation_mode(hg_vm_t *vm);
-void hg_vm_set_current_allocation_mode(hg_vm_t *vm,
- gboolean is_global);
-void hg_vm_get_attributes (hg_vm_t *vm,
- hg_attribute_t *attr);
-void hg_vm_set_error (hg_vm_t *vm,
- hg_error_t error);
-hg_error_t hg_vm_get_error (hg_vm_t *vm);
-void hg_vm_clear_error (hg_vm_t *vm);
-hg_object_t *hg_vm_get_io (hg_vm_t *vm,
- hg_filetype_t iotype);
-void hg_vm_set_io (hg_vm_t *vm,
- hg_object_t *object);
-gboolean hg_vm_initialize (hg_vm_t *vm);
-gboolean hg_vm_finalize (hg_vm_t *vm);
-hg_emulationtype_t hg_vm_get_emulation_level (hg_vm_t *vm);
-gboolean hg_vm_set_emulation_level (hg_vm_t *vm,
- hg_emulationtype_t level);
-gboolean hg_vm_stepi (hg_vm_t *vm,
- gboolean *is_proceeded);
-gboolean hg_vm_step (hg_vm_t *vm);
-hg_object_t *hg_vm_get_dict (hg_vm_t *vm);
-hg_object_t *hg_vm_dict_lookup (hg_vm_t *vm,
- hg_object_t *object);
-gboolean hg_vm_dict_remove (hg_vm_t *vm,
- const gchar *name,
- gboolean remove_all);
-hg_object_t *hg_vm_get_currentdict (hg_vm_t *vm);
-hg_object_t *hg_vm_name_lookup (hg_vm_t *vm,
- const gchar *name) G_GNUC_WARN_UNUSED_RESULT;
-
-
-#endif /* __HIEROGLYPH__VM_H__ */
diff --git a/lib/Makefile.am b/lib/Makefile.am
deleted file mode 100644
index ec8d027..0000000
--- a/lib/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-NULL =
-
-hgpslibdir = $(HIEROGLYPH_LIBDIR)
-hgpslib_DATA = \
- hg_init.ps \
- hg_init_lv2.ps \
- hg_init_lv3.ps \
- $(NULL)
-
-EXTRA_DIST = \
- $(hgpslib_DATA) \
- $(NULL)
diff --git a/lib/hg_init.ps b/lib/hg_init.ps
deleted file mode 100644
index 8a8236f..0000000
--- a/lib/hg_init.ps
+++ /dev/null
@@ -1,463 +0,0 @@
-%!PS-Adobe-1.0
-
-%% NOTE: don't use "end" operator until initialization is finished
-%% NOTE: and push userdict into the dictionary stack.
-%% NOTE: otherwise all initialization will fails due to invalid
-%% NOTE: dictionary stack. at this time, systemdict is only in
-%% NOTE: the dictionary stack.
-
-% create userdict if it's not defined
-false .setglobal
-systemdict /userdict known not {
- systemdict /userdict 200 dict .forceput % need to avoid the object sanity check.
-} if
-
-% change an allocation mode to global
-true .setglobal
-
-%%
-%% Define procedures
-%%
-
-%%%
-%%% pre-required operators
-% key any odef -
-/odef {
- {
- % prepare for error recovery
- count copy count 2 idiv array astore
- $error /.ostack 3 -1 roll put
- null stopped {
- $error /command null put
- clear $error /.ostack get aload pop
- stop
- } if
- } % -key- -any- -proc-
- dup 13 4 -1 roll .forceput % -key- -proc-
- dup 15 get % -key- -proc- -proc-
- 2 3 index .forceput
- .odef
-} bind .odef
-%% disable .forceput for security reason
-systemdict /.forceput .undef
-systemdict /.odef .undef
-
-%%%
-%%% these aren't official operators/procedures for PostScript
-% -string- runlibfile -
-/runlibfile {
- .findlibfile {
- run
- } {
- errordict /undefinedfilename get exec
- } ifelse
-} bind def
-% -file- any write=only -
-/write=only {
- .stringcvs writestring
-} bind odef
-% -file- any write==only -
-/write==only {
- .write==only
-} bind odef
-% any =only -
-/=only {
- (%stdout) (w) file exch write=only
-} bind odef
-% any ==only -
-/==only {
- (%stdout) (w) file exch write==only
-} bind odef
-% -string- -string- .concatstring -string-
-/.concatstring {
- exch dup length 2 index length add string
- dup dup 4 2 roll copy
- length 4 -1 roll putinterval
-} bind def
-% - .printversion -
-/.printversion {
- .product print .revision dup 1000000 idiv exch 1000000 mod dup 1000 idiv exch 1000 mod
- ( ) print 3 -1 roll ==only (.) print exch ==only (.) print ==only
- ( \(r) print .hgrevision ==only (\)\n\n) print
-} bind def
-% - .promptmsg -string-
-/.promptmsg {
- count mark (PS) 3 -1 roll dup 0 ne {
- ([) exch 4 string cvs (])
- counttomark 1 sub {
- .concatstring
- } repeat
- } {
- pop
- } ifelse
- (>) .concatstring
- exch pop
-} bind def
-systemdict /.statementedit known {
- /..statementedit {
- % null isn't exactly used. it's just pushed to align the depth of the stack.
- .promptmsg //null exch .statementedit exch pop
- } bind def
-} {
- /..statementedit {
- prompt (%statementedit) (r) file
- } bind def
-} ifelse
-
-%%%
-%%% Level 1 operators
-% string seek anchorsearch post match true | string false
-/anchorsearch {
- {1 index 3 1 roll} stopped {
- $error /newerror get {
- $error /errorname get /rangecheck eq {
- $error /errorname /stackunderflow put
- } if
- stop
- } if
- } if
- search {
- length 0 eq {
- 3 -1 roll pop true
- } {
- pop pop false
- } ifelse
- } {
- pop false
- } ifelse
-} bind odef
-% any -string- cvs -substring-
-/cvs {
- count 2 lt {
- /cvs errordict /stackunderflow get exec
- } if
- dup type /stringtype ne {
- /cvs errordict /typecheck get exec
- } {
- exch .stringcvs exch copy
- } ifelse
-} bind odef
-% key font|cidfont definefont font|cidfont
-/definefont {
- .definefont
-} bind odef
-% - executive -
-/executive {
- {
- {
- {..statementedit} stopped {
- % need to detect an empty line separately to take care of /undefinedfilename.
- $error /newerror get {
- $error /errorname get /undefinedfilename eq {
- pop pop .clearerror .exit
- } {
- % we don't care of this error here.
- stop
- } ifelse
- } if
- } if
- dup type /filetype eq {cvx exec} if
- } stopped {
- $error /newerror get {
- errordict /handleerror get exec
- .clearerror
- } if
- } if
- } loop
-} bind def
-% key findfont -dict-
-/findfont {
- .findfont
-} bind odef
-% num floor num
-/floor {
- dup cvi
- 1 index 1 index sub
- 0 lt {
- 1 sub
- } if
- exch type /realtype eq {cvr} if
-} bind odef
-% -key- load -value-
-/load {
- dup where {
- exch get
- } {
- /load errordict /undefined get exec
- } ifelse
-} bind odef
-% matrix -matrix-
-/matrix {
- 6 array identmatrix
-} bind odef
-% pstack -
-/pstack {
- 0 1 count 3 sub {index ==} for
-} bind odef
-% - prompt -
-/prompt {
- .promptmsg print flush
-} bind odef
-% -array- index -array- putinterval -
-% -string- index -string- putinterval -
-/putinterval {
- dup length
- 2 index add
- 3 index length gt {
- /putinterval cvx
- errordict /rangecheck get exec
- } if
- {2 index 2 index 3 -1 roll put 1 add} forall
- pop pop
-} bind odef
-% - quit -
-/quit {
- 0 .quit
-} bind odef
-% -string- run -
-/run {
- (r) file cvx exec
-} bind odef
-% stack -
-/stack {
- 0 1 count 3 sub {index =} for
-} bind odef
-% - start -
-/start {
- executive
-} bind odef
-% key value store -
-/store {
- 1 index where {
- } {
- currentdict
- } ifelse
- 3 1 roll put
-} bind odef
-% key undefinefont -
-/undefinefont {
- .undefinefont
-} bind odef
-% - version -string-
-/version {
- (1000)
-} odef
-% any = -
-/= {
- =only (\n) print
-} bind odef
-% any == -
-/== {
- ==only (\n) print
-} bind odef
-
-%% Initialize error procedures
-% <command> <error> .seterror -
-/.seterror {
- $error /newerror true put
- $error exch /errorname exch put
- $error exch /command exch put
- $error /.isstop true put
- $error /recordstacks known {
- $error /recordstacks get
- } {
- true
- } ifelse {
- % record stacks
- count copy count 2 idiv array astore $error /ostack 3 -1 roll put
- countexecstack array execstack $error /estack 3 -1 roll % -dict- /estack -array-
- % modify estack to make a correct stack when an error actually happened
- dup length 1 sub 0 exch getinterval % -dict- /estack -array-
- dup length array copy % -dict- /estack -array-
- dup dup length 1 sub $error /command get put put
- countdictstack array dictstack $error /dstack 3 -1 roll put
- } if
-} bind def
-% <command> <error> .defaulterrorhandler -
-/.defaulterrorhandler {
- % enter the local allocation mode in advance to avoid /invalidaccess again.
- false .setglobal
- .seterror
- stop
-} bind def
-% - handleerror -
-/handleerror {
- errordict /handleerror get exec
-} bind odef
-% - .printerror -
-/.printerror {
- % stacking $error and evaluate the value doesn't work.
- % because the executable object may be in the dictionary.
- % it will does into the estack directly then.
- $error /newerror get {
- (Error: ) print $error /errorname get ==only
- ( in ) print $error /command get ==only
- (\n) print
- % save objects in current ostack
- count array astore
- $error /ostack known {
- $error /ostack get dup length
- (Operand Stack[) print =only (]:\n) print
- {( ) print ==only} forall
- (\n) print
- } if
- $error /estack known {
- $error /estack get dup length
- (Execution Stack[) print =only (]:\n) print
- {( ) print ==only} forall
- (\n) print
- } if
- $error /dstack known {
- $error /dstack get dup length
- (Dictionary stack[) print =only (]:\n) print
- {
- ( ) print
- dup type /dicttype eq {
- (--dict:) print
- dup length ==only (/) print dup maxlength ==only
- dup wcheck not {
- ((ro)) print
- } if
- /gcheck where {
- pop gcheck {
- ((G))
- } {
- ((L))
- } ifelse print
- } {
- pop
- } ifelse (--) print
- } {
- ==only
- } ifelse
- } forall
- (\n) print
- } if
- % restore objects
- aload pop
- } if
-} bind def
-
-mark /dictfull /dictstackoverflow /dictstackunderflow /execstackoverflow
-/interrupt /invalidaccess /invalidexit /invalidfileaccess /invalidfont
-/invalidrestore /ioerror /limitcheck /nocurrentpoint /rangecheck
-/stackoverflow /stackunderflow /syntaxerror /timeout /typecheck /undefined
-/undefinedfilename /undefinedresult /unmatchedmark /unregistered /VMerror
-counttomark {
- dup [exch {.defaulterrorhandler} /exec load] cvx bind errordict 3 1 roll put
-} repeat
-cleartomark
-
-% create StandardEncoding vector table
-/StandardEncoding [
- % \00x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \01x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \02x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \03x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \04x
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
- % \05x
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
- % \06x
- /zero /one /two /three /four /five /six /seven
- % \07x
- /eight /nine /colon /semicolon /less /equal /greater /question
- % \10x
- /at /A /B /C /D /E /F /G
- % \11x
- /H /I /J /K /L /M /N /O
- % \12x
- /P /Q /R /S /T /U /V /W
- % \13x
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
- % \14x
- /quoteleft /a /b /c /d /e /f /g
- % \15x
- /h /i /j /k /l /m /n /o
- % \16x
- /p /q /r /s /t /u /v /w
- % \17x
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
- % \20x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \21x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \22x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \23x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \24x
- /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section
- % \25x
- /currency /quotesingle /quotedblleft /guillemotleft /guilsingleft /guilsinglright /fi /fl
- % \26x
- /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet
- % \27x
- /.quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /.notdef /questiondown
- % \30x
- /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent
- % \31x
- /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
- % \32x
- /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \33x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \34x
- /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef
- % \35x
- /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef
- % \36x
- /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef
- % \37x
- /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef] def
-
-% initialize PostScript Level specific things.
-systemdict /languagelevel known {
- languagelevel 2 gt {
- (hg_init_lv2.ps) run
- } if
-} if
-
-false .setglobal
-userdict begin
-
-%%
-%% almost initialization finished here
-%% and allows 'end' operator to be described now.
-%%
-
-%% initialize $error dictionary
-% $error is a built-in dictionary on hieroglyph.
-$error begin
- /newerror false def
- /command null def
-end
-%% initialize handleerror in errordict
-errordict begin
- /handleerror /.printerror load def
-end
-%% initialize serverdict
-serverdict begin
- /exitserver { } def
-end
-
-%%
-%% Initialize the plugins
-%%
-.initplugins
-
-%%
-%% Set the default value for system parapeters
-%%
-/QUIET where not {/QUIET false def} {pop} ifelse
-
-%%
-%% ready to go
-%%
-QUIET not {.printversion} if
-
-% /start will be invoked.
diff --git a/lib/hg_init_lv2.ps b/lib/hg_init_lv2.ps
deleted file mode 100644
index 54f070c..0000000
--- a/lib/hg_init_lv2.ps
+++ /dev/null
@@ -1,55 +0,0 @@
-%!PS-Adobe-2.0
-
-%% NOTE: don't use "end" operator until initialization is finished
-%% NOTE: and push userdict into the dictionary stack.
-%% NOTE: otherwise all initialization will fails due to invalid
-%% NOTE: dictionary stack. at this time, systemdict is only in
-%% NOTE: the dictionary stack.
-
-% change an allocation mode to global.
-true .setglobal
-
-% create globaldict if it's not defined
-/globaldict known not {
- /globaldict 200 dict def
-} if
-
-% - currentglobal bool
-/currentglobal /.currentglobal load def
-% key font|cidfont definefont font|cidfont
-/definefont {
- /Font defineresource
-} bind odef
-% key findfont -dict-
-/findfont {
- /Font findresource
-} bind odef
-/product /.product load def
-/revision /.revision load def
-% bool setglobal -
-/setglobal /.setglobal load def
-% dict key undef -
-/undef /.undef load def
-% key undefinefont -
-/undefinefont {
- /Font undefineresource
-} bind odef
-
-%%
-%% Initialize error procedures on PS Level2
-%%
-mark /configurationerror /undefinedresource
-counttomark {
- dup [exch {.defaulterrorhandler} /exec cvx] cvx bind errordict 3 1 roll put
-} repeat
-cleartomark
-
-% initialize $error dictionary
-$error /recordstacks true put % this parameter are available on PS2 or later.
-
-% initialize PostScript Level specific things
-languagelevel 3 gt {
- (hg_init_lv3.ps) run
-} if
-
-globaldict begin
diff --git a/lib/hg_init_lv3.ps b/lib/hg_init_lv3.ps
deleted file mode 100644
index 9ab0384..0000000
--- a/lib/hg_init_lv3.ps
+++ /dev/null
@@ -1,7 +0,0 @@
-%!PS-Adobe-3.0
-
-%% NOTE: don't use "end" operator until initialization is finished
-%% NOTE: and push userdict into the dictionary stack.
-%% NOTE: otherwise all initialization will fails due to invalid
-%% NOTE: dictionary stack. at this time, systemdict is only in
-%% NOTE: the dictionary stack.
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
deleted file mode 100644
index 0d79d52..0000000
--- a/plugins/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-NULL =
-SUBDIRS = debug test
-
-if ENABLE_LIBEDIT
-SUBDIRS += libedit
-endif
-
-EXTRA_DIST = \
- $(NULL)
diff --git a/plugins/debug/Makefile.am b/plugins/debug/Makefile.am
deleted file mode 100644
index b0f97e1..0000000
--- a/plugins/debug/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-NULL =
-
-INCLUDES = \
- $(HG_CFLAGS) \
- $(NULL)
-
-LIBS = \
- @LDFLAGS@ \
- -export-dynamic \
- $(HG_LIBS) \
- $(NULL)
-LDADDS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-plugindir = $(HIEROGLYPH_PLUGINDIR)
-plugin_LTLIBRARIES = \
- libext-debug.la \
- $(NULL)
-
-libext_debug_la_SOURCES = \
- debug-main.c \
- $(NULL)
-libext_debug_la_CFLAGS = \
- -DHG_LOG_DOMAIN="\"Debug-Extension\"" \
- $(CFLAGS) \
- $(NULL)
-libext_debug_la_LDFLAGS = \
- -avoid-version \
- -module \
- $(LDFLAGS) \
- $(NULL)
-libext_debug_la_LIBADD = \
- $(LDADDS) \
- $(NULL)
diff --git a/plugins/debug/debug-main.c b/plugins/debug/debug-main.c
deleted file mode 100644
index 02f6c0d..0000000
--- a/plugins/debug/debug-main.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * debug-main.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hglog.h>
-#include <hieroglyph/hgmem.h>
-#include <hieroglyph/hgplugins.h>
-#include <hieroglyph/hgstack.h>
-#include <hieroglyph/hgvaluenode.h>
-#include <hieroglyph/operator.h>
-#include <hieroglyph/vm.h>
-
-#define BUILD_OP(vm, pool, sdict, name, func) \
- G_STMT_START { \
- HgOperator *__hg_op; \
- \
- hg_operator_build_operator__inline(_debug_op_, vm, pool, sdict, name, func, __hg_op); \
- if (__hg_op != NULL) { \
- __debug_operator_list[HG_debug_op_##func] = __hg_op; \
- hg_mem_pool_add_root_node(pool, __hg_op); \
- } \
- } G_STMT_END
-#define REMOVE_OP(pool, sdict, name, func) \
- G_STMT_START { \
- HgValueNode *__hg_node, *__hg_key; \
- HgOperator *__hg_op; \
- \
- HG_VALUE_MAKE_NAME_STATIC (pool, __hg_key, #name); \
- if ((__hg_node = hg_dict_lookup(sdict, __hg_key)) != NULL) { \
- __hg_op = HG_VALUE_GET_OPERATOR (__hg_node); \
- if (__hg_op == __debug_operator_list[HG_debug_op_##func]) { \
- hg_dict_remove(sdict, __hg_key); \
- } \
- hg_mem_pool_remove_root_node(pool, __hg_op); \
- hg_mem_free(__hg_op); \
- } \
- hg_mem_free(__hg_key); \
- } G_STMT_END
-#define DEFUNC_OP(func) \
- static gboolean \
- _debug_op_##func(HgOperator *op, \
- gpointer data) \
- { \
- HgVM *vm = data; \
- gboolean retval = FALSE;
-#define DEFUNC_OP_END \
- return retval; \
- }
-
-typedef enum {
- HG_debug_op_breakpoint = 0,
- HG_debug_op_startgc,
- HG_debug_op_END
-} HgOperatorDebugEncoding;
-
-
-static gboolean plugin_init (void);
-static gboolean plugin_finalize (void);
-static gboolean plugin_load (HgPlugin *plugin,
- HgVM *vm);
-static gboolean plugin_unload (HgPlugin *plugin,
- HgVM *vm);
-
-
-static HgPluginVTable vtable = {
- .init = plugin_init,
- .finalize = plugin_finalize,
- .load = plugin_load,
- .unload = plugin_unload,
-};
-HgOperator *__debug_operator_list[HG_debug_op_END];
-
-
-/*
- * Private Functions
- */
-DEFUNC_OP (breakpoint)
-G_STMT_START
-{
- (void)vm;
- retval = TRUE;
- G_BREAKPOINT();
-} G_STMT_END;
-DEFUNC_OP_END
-
-DEFUNC_OP (startgc)
-G_STMT_START
-{
- HgMemPool *pool;
- HgStack *ostack = hg_vm_get_ostack(vm);
- gboolean result, flag = hg_vm_is_global_pool_used(vm);
- HgValueNode *node;
-
- /* do GC for only local pool */
- hg_vm_use_global_pool(vm, FALSE);
- pool = hg_vm_get_current_pool(vm);
- result = hg_mem_garbage_collection(pool);
- HG_VALUE_MAKE_BOOLEAN (pool, node, result);
- hg_vm_use_global_pool(vm, flag);
-
- retval = hg_stack_push(ostack, node);
- if (!retval)
- _hg_operator_set_error(vm, op, VM_e_stackoverflow);
-} G_STMT_END;
-DEFUNC_OP_END
-
-static gboolean
-plugin_init(void)
-{
- gint i;
-
- for (i = 0; i < HG_debug_op_END; i++) {
- __debug_operator_list[i] = NULL;
- }
-
- return TRUE;
-}
-
-static gboolean
-plugin_finalize(void)
-{
- return TRUE;
-}
-
-static gboolean
-plugin_load(HgPlugin *plugin,
- HgVM *vm)
-{
- HgDict *systemdict;
- HgMemPool *pool;
- gboolean is_global;
-
- g_return_val_if_fail (plugin != NULL, FALSE);
- g_return_val_if_fail (vm != NULL, FALSE);
-
- if (plugin->user_data != NULL) {
- hg_log_warning("already loaded.");
- return FALSE;
- }
- systemdict = hg_vm_get_dict_systemdict(vm);
- is_global = hg_vm_is_global_pool_used(vm);
- hg_vm_use_global_pool(vm, TRUE);
- pool = hg_vm_get_current_pool(vm);
-
- BUILD_OP (vm, pool, systemdict, .breakpoint, breakpoint);
- BUILD_OP (vm, pool, systemdict, .startgc, startgc);
-
- hg_vm_use_global_pool(vm, is_global);
-
- plugin->user_data = systemdict;
-
- return TRUE;
-}
-
-static gboolean
-plugin_unload(HgPlugin *plugin,
- HgVM *vm)
-{
- HgMemPool *pool;
- HgDict *systemdict;
- gboolean is_global;
-
- g_return_val_if_fail (plugin != NULL, FALSE);
- g_return_val_if_fail (vm != NULL, FALSE);
-
- if (plugin->user_data != NULL) {
- hg_log_warning("not yet loaded.");
- return FALSE;
- }
-
- systemdict = hg_vm_get_dict_systemdict(vm);
- is_global = hg_vm_is_global_pool_used(vm);
- hg_vm_use_global_pool(vm, TRUE);
- pool = hg_vm_get_current_pool(vm);
-
- REMOVE_OP (pool, systemdict, .startgc, startgc);
- hg_vm_use_global_pool(vm, is_global);
-
- plugin->user_data = NULL;
-
- return TRUE;
-}
-
-/*
- * Public Functions
- */
-HgPlugin *
-plugin_new(HgMemPool *pool)
-{
- HgPlugin *retval;
-
- g_return_val_if_fail (pool != NULL, NULL);
-
- retval = hg_plugin_new(pool, HG_PLUGIN_EXTENSION);
- retval->version = HG_PLUGIN_VERSION;
- retval->vtable = &vtable;
-
- return retval;
-}
diff --git a/plugins/libedit/Makefile.am b/plugins/libedit/Makefile.am
deleted file mode 100644
index ab18388..0000000
--- a/plugins/libedit/Makefile.am
+++ /dev/null
@@ -1,36 +0,0 @@
-NULL =
-
-INCLUDES = \
- $(HG_CFLAGS) \
- $(NULL)
-
-LIBS = \
- @LDFLAGS@ \
- -export-dynamic \
- $(HG_LIBS) \
- $(LIBEDIT_LIBS) \
- $(NULL)
-LDADDS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-plugindir = $(HIEROGLYPH_PLUGINDIR)
-plugin_LTLIBRARIES = \
- libext-libedit.la \
- $(NULL)
-
-libext_libedit_la_SOURCES = \
- libedit-main.c \
- $(NULL)
-libext_libedit_la_CFLAGS = \
- -DHG_LOG_DOMAIN="\"Libedit-Extension\"" \
- $(CFLAGS) \
- $(NULL)
-libext_libedit_la_LDFLAGS = \
- -avoid-version \
- -module \
- $(LDFLAGS) \
- $(NULL)
-libext_libedit_la_LIBADD = \
- $(LDADDS) \
- $(NULL)
diff --git a/plugins/libedit/libedit-main.c b/plugins/libedit/libedit-main.c
deleted file mode 100644
index f3be90c..0000000
--- a/plugins/libedit/libedit-main.c
+++ /dev/null
@@ -1,414 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * libedit-main.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef USE_LIBEDIT
-#error Please install libedit and run configure again. This plugin is for libedit only.
-#endif /* !USE_LIBEDIT */
-
-#include <editline/readline.h>
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/hglineedit.h>
-#include <hieroglyph/hglog.h>
-#include <hieroglyph/hgmem.h>
-#include <hieroglyph/hgplugins.h>
-#include <hieroglyph/hgstack.h>
-#include <hieroglyph/hgstring.h>
-#include <hieroglyph/hgvaluenode.h>
-#include <hieroglyph/operator.h>
-#include <hieroglyph/vm.h>
-
-
-#define BUILD_OP(vm, pool, sdict, name, func) \
- G_STMT_START { \
- HgOperator *__hg_op; \
- \
- hg_operator_build_operator__inline(_libedit_op_, vm, pool, sdict, name, func, __hg_op); \
- if (__hg_op != NULL) { \
- __libedit_operator_list[HG_libedit_op_##func] = __hg_op; \
- hg_mem_pool_add_root_node(pool, __hg_op); \
- } \
- } G_STMT_END
-#define REMOVE_OP(pool, sdict, name, func) \
- G_STMT_START { \
- HgValueNode *__hg_node, *__hg_key; \
- HgOperator *__hg_op; \
- \
- HG_VALUE_MAKE_NAME_STATIC (pool, __hg_key, #name); \
- if ((__hg_node = hg_dict_lookup(sdict, __hg_key)) != NULL) { \
- __hg_op = HG_VALUE_GET_OPERATOR (__hg_node); \
- if (__hg_op == __libedit_operator_list[HG_libedit_op_##func]) { \
- hg_dict_remove(sdict, __hg_key); \
- } \
- hg_mem_pool_remove_root_node(pool, __hg_op); \
- hg_mem_free(__hg_op); \
- } \
- hg_mem_free(__hg_key); \
- } G_STMT_END
-#define DEFUNC_OP(func) \
- static gboolean \
- _libedit_op_##func(HgOperator *op, \
- gpointer data) \
- { \
- HgVM *vm = data; \
- gboolean retval = FALSE;
-#define DEFUNC_OP_END \
- return retval; \
- }
-
-typedef enum {
- HG_libedit_op_loadhistory = 0,
- HG_libedit_op_statementedit,
- HG_libedit_op_savehistory,
- HG_libedit_op_END
-} HgOperatorLibeditEncoding;
-
-
-static gboolean plugin_init (void);
-static gboolean plugin_finalize (void);
-static gboolean plugin_load (HgPlugin *plugin,
- HgVM *vm);
-static gboolean plugin_unload (HgPlugin *plugin,
- HgVM *vm);
-static gchar *_hg_line_edit__libedit_real_get_line (HgLineEdit *lineedit,
- const gchar *prompt);
-static void _hg_line_edit__libedit_real_add_history (HgLineEdit *lineedit,
- const gchar *strings);
-static void _hg_line_edit__libedit_real_load_history(HgLineEdit *lineedit,
- const gchar *filename);
-static void _hg_line_edit__libedit_real_save_history(HgLineEdit *lineedit,
- const gchar *filename);
-
-
-static HgPluginVTable vtable = {
- .init = plugin_init,
- .finalize = plugin_finalize,
- .load = plugin_load,
- .unload = plugin_unload,
-};
-
-static const HgLineEditVTable lineedit_vtable = {
- .get_line = _hg_line_edit__libedit_real_get_line,
- .add_history = _hg_line_edit__libedit_real_add_history,
- .load_history = _hg_line_edit__libedit_real_load_history,
- .save_history = _hg_line_edit__libedit_real_save_history,
-};
-HgOperator *__libedit_operator_list[HG_libedit_op_END];
-
-/*
- * Operators
- */
-DEFUNC_OP (loadhistory)
-G_STMT_START
-{
- HgStack *ostack = hg_vm_get_ostack(vm);
- guint depth = hg_stack_depth(ostack);
- HgValueNode *node;
- HgString *hs;
- gchar *filename, *histfile;
- const gchar *env;
-
- while (1) {
- if (depth < 1) {
- _hg_operator_set_error(vm, op, VM_e_stackunderflow);
- break;
- }
- node = hg_stack_index(ostack, 0);
- if (!HG_IS_VALUE_STRING (node)) {
- _hg_operator_set_error(vm, op, VM_e_typecheck);
- break;
- }
- hs = HG_VALUE_GET_STRING (node);
- env = g_getenv("HOME");
- filename = g_path_get_basename(hg_string_get_string(hs));
- if (env != NULL) {
- histfile = g_build_filename(env, filename, NULL);
- } else {
- histfile = g_strdup(filename);
- }
- retval = hg_line_edit_load_history(hg_vm_get_line_editor(vm),
- histfile);
- g_free(histfile);
- g_free(filename);
- hg_stack_pop(ostack);
- break;
- }
-} G_STMT_END;
-DEFUNC_OP_END
-
-DEFUNC_OP (statementedit)
-G_STMT_START
-{
- HgStack *ostack = hg_vm_get_ostack(vm);
- guint depth = hg_stack_depth(ostack);
- HgValueNode *node;
- HgMemPool *pool = hg_vm_get_current_pool(vm);
- HgString *hs;
- HgFileObject *file;
- gchar *line, *prompt;
-
- while (1) {
- if (depth < 1) {
- _hg_operator_set_error(vm, op, VM_e_stackunderflow);
- break;
- }
- node = hg_stack_index(ostack, 0);
- if (!HG_IS_VALUE_STRING (node)) {
- _hg_operator_set_error(vm, op, VM_e_typecheck);
- break;
- }
- hs = HG_VALUE_GET_STRING (node);
- prompt = g_strndup(hg_string_get_string(hs), hg_string_maxlength(hs));
- line = hg_line_edit_get_statement(hg_vm_get_line_editor(vm),
- prompt);
- g_free(prompt);
- if (line == NULL || line[0] == 0) {
- _hg_operator_set_error(vm, op, VM_e_undefinedfilename);
- if (line)
- g_free(line);
- break;
- }
- file = hg_file_object_new(pool, HG_FILE_TYPE_BUFFER,
- HG_FILE_MODE_READ,
- "%statementedit",
- line, -1);
- g_free(line);
- if (file == NULL) {
- _hg_operator_set_error(vm, op, VM_e_VMerror);
- break;
- }
- HG_VALUE_MAKE_FILE (node, file);
- if (node == NULL) {
- _hg_operator_set_error(vm, op, VM_e_VMerror);
- break;
- }
- hg_stack_pop(ostack);
- retval = hg_stack_push(ostack, node);
- /* it must be true */
- break;
- }
-} G_STMT_END;
-DEFUNC_OP_END
-
-DEFUNC_OP (savehistory)
-G_STMT_START
-{
- HgStack *ostack = hg_vm_get_ostack(vm);
- guint depth = hg_stack_depth(ostack);
- HgValueNode *node;
- HgString *hs;
- gchar *filename, *histfile;
- const gchar *env;
-
- while (1) {
- if (depth < 1) {
- _hg_operator_set_error(vm, op, VM_e_stackunderflow);
- break;
- }
- node = hg_stack_index(ostack, 0);
- if (!HG_IS_VALUE_STRING (node)) {
- _hg_operator_set_error(vm, op, VM_e_typecheck);
- break;
- }
- hs = HG_VALUE_GET_STRING (node);
- env = g_getenv("HOME");
- filename = g_path_get_basename(hg_string_get_string(hs));
- if (env != NULL) {
- histfile = g_build_filename(env, filename, NULL);
- } else {
- histfile = g_strdup(filename);
- }
- retval = hg_line_edit_save_history(hg_vm_get_line_editor(vm),
- histfile);
- g_free(histfile);
- g_free(filename);
- hg_stack_pop(ostack);
- break;
- }
-} G_STMT_END;
-DEFUNC_OP_END
-
-/*
- * Private Functions
- */
-static gboolean
-plugin_init(void)
-{
- gint i;
-
- for (i = 0; i < HG_libedit_op_END; i++) {
- __libedit_operator_list[i] = NULL;
- }
-
- return TRUE;
-}
-
-static gboolean
-plugin_finalize(void)
-{
- return TRUE;
-}
-
-static gboolean
-plugin_load(HgPlugin *plugin,
- HgVM *vm)
-{
- HgDict *systemdict;
- HgMemPool *pool;
- gboolean is_global, error;
- HgLineEdit *editor;
- HgStack *estack;
-
- g_return_val_if_fail (plugin != NULL, FALSE);
- g_return_val_if_fail (vm != NULL, FALSE);
-
- if (plugin->user_data != NULL) {
- hg_log_warning("already loaded.");
- return FALSE;
- }
- plugin->user_data = hg_vm_get_line_editor(vm);
-
- editor = hg_line_edit_new(hg_vm_get_current_pool(vm),
- &lineedit_vtable,
- __hg_file_stdin,
- __hg_file_stdout);
- hg_vm_set_line_editor(vm, editor);
-
- systemdict = hg_vm_get_dict_systemdict(vm);
- is_global = hg_vm_is_global_pool_used(vm);
- hg_vm_use_global_pool(vm, TRUE);
- pool = hg_vm_get_current_pool(vm);
-
- BUILD_OP (vm, pool, systemdict, .loadhistory, loadhistory);
- BUILD_OP (vm, pool, systemdict, .statementedit, statementedit);
- BUILD_OP (vm, pool, systemdict, .savehistory, savehistory);
-
- estack = hg_stack_new(pool, 256);
- hg_vm_eval(vm, "/.libedit.old..statementedit /..statementedit load def /..statementedit {.promptmsg //null exch .statementedit exch pop} bind def",
- NULL, estack, NULL, &error);
- hg_mem_free(estack);
- hg_vm_use_global_pool(vm, is_global);
-
- return TRUE;
-}
-
-static gboolean
-plugin_unload(HgPlugin *plugin,
- HgVM *vm)
-{
- HgMemPool *pool;
- HgDict *systemdict;
- gboolean is_global, error;
- HgStack *estack;
-
- g_return_val_if_fail (plugin != NULL, FALSE);
- g_return_val_if_fail (vm != NULL, FALSE);
-
- if (plugin->user_data != NULL) {
- hg_log_warning("not yet loaded.");
- return FALSE;
- }
- hg_vm_set_line_editor(vm, plugin->user_data);
-
- systemdict = hg_vm_get_dict_systemdict(vm);
- is_global = hg_vm_is_global_pool_used(vm);
- hg_vm_use_global_pool(vm, TRUE);
- pool = hg_vm_get_current_pool(vm);
-
- REMOVE_OP (pool, systemdict, .loadhistory, loadhistory);
- REMOVE_OP (pool, systemdict, .statementedit, statementedit);
- REMOVE_OP (pool, systemdict, .savehistory, savehistory);
-
- estack = hg_stack_new(pool, 256);
- hg_vm_eval(vm, "/..statementedit /.libedit.old..statementedit load def",
- NULL, estack, NULL, &error);
- hg_mem_free(estack);
-
- hg_vm_use_global_pool(vm, is_global);
-
- plugin->user_data = NULL;
-
- return TRUE;
-}
-
-static gchar *
-_hg_line_edit__libedit_real_get_line(HgLineEdit *lineedit,
- const gchar *prompt)
-{
- gchar *retval;
-
- if (prompt == NULL)
- retval = readline("");
- else
- retval = readline(prompt);
-
- return retval;
-}
-
-static void
-_hg_line_edit__libedit_real_add_history(HgLineEdit *lineedit,
- const gchar *strings)
-{
- g_return_if_fail (strings != NULL);
-
- add_history(strings);
-}
-
-static void
-_hg_line_edit__libedit_real_load_history(HgLineEdit *lineedit,
- const gchar *filename)
-{
- g_return_if_fail (filename != NULL);
-
- read_history(filename);
-}
-
-static void
-_hg_line_edit__libedit_real_save_history(HgLineEdit *lineedit,
- const gchar *filename)
-{
- g_return_if_fail (filename != NULL);
-
- write_history(filename);
-}
-
-/*
- * Public Functions
- */
-HgPlugin *
-plugin_new(HgMemPool *pool)
-{
- HgPlugin *retval;
-
- g_return_val_if_fail (pool != NULL, NULL);
-
- retval = hg_plugin_new(pool, HG_PLUGIN_EXTENSION);
- retval->version = HG_PLUGIN_VERSION;
- retval->vtable = &vtable;
-
- return retval;
-}
diff --git a/plugins/test/Makefile.am b/plugins/test/Makefile.am
deleted file mode 100644
index 24d098e..0000000
--- a/plugins/test/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
-NULL =
-
-INCLUDES = \
- $(HG_CFLAGS) \
- $(NULL)
-
-LIBS = \
- @LDFLAGS@ \
- -export-dynamic \
- $(HG_LIBS) \
- $(NULL)
-LDADDS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-plugindir = $(HIEROGLYPH_PLUGINDIR)
-plugin_LTLIBRARIES = \
- libext-test.la \
- $(NULL)
-
-libext_test_la_SOURCES = \
- test-main.c \
- $(NULL)
-libext_test_la_CFLAGS = \
- -DHG_LOG_DOMAIN="\"Test-Extension\"" \
- $(CFLAGS) \
- $(NULL)
-libext_test_la_LDFLAGS = \
- -avoid-version \
- -module \
- $(LDFLAGS) \
- $(NULL)
-libext_test_la_LIBADD = \
- $(LDADDS) \
- $(NULL)
-
-hgpslibdir = $(HIEROGLYPH_LIBDIR)
-hgpslib_DATA = \
- hg_unittest.ps \
- $(NULL)
-
-EXTRA_DIST = \
- $(hgpslib_DATA) \
- $(NULL)
diff --git a/plugins/test/hg_unittest.ps b/plugins/test/hg_unittest.ps
deleted file mode 100644
index 55f9e9d..0000000
--- a/plugins/test/hg_unittest.ps
+++ /dev/null
@@ -1,249 +0,0 @@
-% initialize unittest dictionary
-19 dict dup begin
- /nunit 0 def
- /nsuccess 0 def
- /nfailure 0 def
- /.ostack null def
- /expectederror null def
- /expectedostack null def
- /actualerror null def
- /actualostack null def
- /verbose true def
- /expression null def
- /operator null def
- /arguments null def
- /testargs null def
- /testargssymbol null def
- /typecheckresult false def
- /expectedtypecheckresult false def
- /anytypes [/booleantype /integertype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] readonly def
- /attributes <<
- /readable 1
- /writable 2
- /executable 4
- /executeonly 8
- /accessible 16
- >> readonly def
- /attrsmask 0 def
-end /.unittestdict exch def
-
-% - initunittest -
-/initunittest {
- .unittestdict begin
- /nunit 0 def
- /nsuccess 0 def
- /nfailure 0 def
- end
- .promptmsg length 2 add dup string 1 1 4 -1 roll 2 sub {1 index exch 32 put} for
- dup 0 13 put
- dup dup length 1 sub 13 put =only
-} bind odef
-
-% -array- -name- -bool- initunittestdict -
-/initunittestdict {
- .unittestdict begin
- /verbose exch def
- /expectederror exch def
- /expectedostack exch def
- /attrsmask 0 def
- end
-} bind odef
-
-% -name- ... n setunittestmask -integer-
-/setunittestmask {
- .unittestdict begin
- /attrsmask 0 def
- {
- attributes exch get
- attrsmask or /attrsmask exch def
- } repeat
- end
-} bind odef
-
-/.updateunittestprogress {
- [(|) (/) (-) (\\)]
- .unittestdict /nunit get 4 mod
- get (\r) .concatstring =only flush
-} bind odef
-
-% proc unittest -bool-
-/unittest {
- .dounittest
- .unittestdict .validateunittest
- .unittestdict begin
- /nunit nunit 1 add def
- {
- /nsuccess nsuccess 1 add def
- } {
- /nfailure nfailure 1 add def
- } ifelse
- end
-} bind odef
-
-% proc .dounittest -
-/.dounittest {
- .updateunittestprogress
- % back the ostack up into dict
- count copy pop count 1 sub 2 idiv array astore .unittestdict /.ostack 3 -1 roll put
- dup .unittestdict /expression 3 -1 roll put
- {exec} stopped {
- $error /newerror get {
- $error /errorname get .unittestdict /actualerror 3 -1 roll put
- } {
- .unittestdict /actualerror /stop put
- } ifelse
- } {
- .unittestdict /actualerror null put
- } ifelse
- count .unittestdict /.ostack get length sub copy
- count .unittestdict /.ostack get length sub 2 idiv array astore
- .unittestdict /actualostack 3 -1 roll put
- % recover
- clear .clearerror
- .unittestdict /.ostack get aload pop
-} bind odef
-
-% bool name [[type ...] ...] typecheck -
-/typecheck {
- .unittestdict begin
- /arguments exch def
- /operator exch def
- /testargs arguments length array def
- /testargssymbol arguments length array def
- dup /expectedtypecheckresult exch def
- /typecheckresult exch def
- arguments length 1 sub .dotypecheck
- expectedtypecheckresult typecheckresult ne {
- 1 .quit
- } if
- end
-} bind def
-
-% -num- .dotypecheck -
-/.dotypecheck {
- arguments 1 index get {
- dup /booleantype eq {
- testargs 2 index true put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /integertype eq {
- testargs 2 index 0 put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /realtype eq {
- testargs 2 index 0.1 put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /nametype eq {
- testargs 2 index /foo put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /arraytype eq {
- testargs 2 index [] put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /stringtype eq {
- testargs 2 index (foo) put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /dicttype eq {
- testargs 2 index 1 dict put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /nulltype eq {
- testargs 2 index null put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /operatortype eq {
- testargs 2 index /add load put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /marktype eq {
- testargs 2 index mark put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /filetype eq {
- testargs 2 index (.) (r) file put
- testargssymbol 2 index 3 -1 roll put
- } {
- dup /savetype eq {
- testargs 2 index save put
- testargssymbol 2 index 3 -1 roll put
- } {
- % this is not correct type.
- dup /proctype eq {
- testargs 2 index {} put
- testargssymbol 2 index 3 -1 roll put
- } {
- % error
- (Unknown type ) ==only
- == 1 .quit
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- dup 0 eq {
- [testargs /aload load /pop load operator cvx] cvx .dounittest
- .unittestdict begin
- /nunit nunit 1 add def
- actualerror dup /stackunderflow eq
- exch dup /typecheck eq
- exch dup /limitcheck eq
- exch pop
- or or {
- expectedtypecheckresult {
- (ERROR: ) =only
- actualerror ==only
- ( in ) =only
- operator cvx ==only
- ( with ) =only
- testargssymbol ==
- /typecheckresult false def
- /nfailure nfailure 1 add def
- } {
- /nsuccess nsuccess 1 add def
- } ifelse
- } {
- expectedtypecheckresult not {
- (ERROR: no errors or no expected errors happened in ) =only
- operator cvx ==only
- ( with ) =only
- testargssymbol ==only
- ( actualerror was ) =only
- actualerror ==
- /typecheckresult true def
- /nfailure nfailure 1 add def
- } {
- /nsuccess nsuccess 1 add def
- } ifelse
- } ifelse
- end
- } {
- dup 1 sub .dotypecheck
- } ifelse
- } forall
- pop
-} bind def
-
-% - unittestresult -
-/unittestresult {
- .unittestdict begin
- nunit 128 string cvs ( Unit(s) / )
- nsuccess 128 string cvs ( Success(es) / )
- nfailure 128 string cvs ( Failure(s))
- .concatstring .concatstring .concatstring .concatstring .concatstring
- =
- nfailure 0 gt {
- 1 .quit
- } if
- end
-} bind odef
diff --git a/plugins/test/test-main.c b/plugins/test/test-main.c
deleted file mode 100644
index eb1f2a2..0000000
--- a/plugins/test/test-main.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * test-main.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <hieroglyph/hgarray.h>
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/hglog.h>
-#include <hieroglyph/hgmem.h>
-#include <hieroglyph/hgplugins.h>
-#include <hieroglyph/hgstack.h>
-#include <hieroglyph/hgstring.h>
-#include <hieroglyph/hgvaluenode.h>
-#include <hieroglyph/operator.h>
-#include <hieroglyph/vm.h>
-
-
-#define BUILD_OP(vm, pool, sdict, name, func) \
- G_STMT_START { \
- HgOperator *__hg_op; \
- \
- hg_operator_build_operator__inline(_test_op_, vm, pool, sdict, name, func, __hg_op); \
- if (__hg_op != NULL) { \
- __test_operator_list[HG_test_op_##func] = __hg_op; \
- hg_mem_pool_add_root_node(pool, __hg_op); \
- } \
- } G_STMT_END
-#define REMOVE_OP(pool, sdict, name, func) \
- G_STMT_START { \
- HgValueNode *__hg_node, *__hg_key; \
- HgOperator *__hg_op; \
- \
- HG_VALUE_MAKE_NAME_STATIC (pool, __hg_key, #name); \
- if ((__hg_node = hg_dict_lookup(sdict, __hg_key)) != NULL) { \
- __hg_op = HG_VALUE_GET_OPERATOR (__hg_node); \
- if (__hg_op == __test_operator_list[HG_test_op_##func]) { \
- hg_dict_remove(sdict, __hg_key); \
- } \
- hg_mem_pool_remove_root_node(pool, __hg_op); \
- hg_mem_free(__hg_op); \
- } \
- hg_mem_free(__hg_key); \
- } G_STMT_END
-#define DEFUNC_OP(func) \
- static gboolean \
- _test_op_##func(HgOperator *op, \
- gpointer data) \
- { \
- HgVM *vm = data; \
- gboolean retval = FALSE;
-#define DEFUNC_OP_END \
- return retval; \
- }
-
-typedef enum {
- HG_test_op_validateunittest = 0,
- HG_test_op_END
-} HgOperatorTestEncoding;
-
-
-static gboolean plugin_init (void);
-static gboolean plugin_finalize(void);
-static gboolean plugin_load (HgPlugin *plugin,
- HgVM *vm);
-static gboolean plugin_unload (HgPlugin *plugin,
- HgVM *vm);
-
-
-static HgPluginVTable vtable = {
- .init = plugin_init,
- .finalize = plugin_finalize,
- .load = plugin_load,
- .unload = plugin_unload,
-};
-HgOperator *__test_operator_list[HG_test_op_END];
-
-/*
- * Operators
- */
-DEFUNC_OP (validateunittest)
-G_STMT_START
-{
- HgStack *ostack = hg_vm_get_ostack(vm);
- guint depth = hg_stack_depth(ostack);
- HgValueNode *n, *ndict, *nverbose, *nexp, *nactual, *nexpected, *nattrs;
- HgDict *dict;
- HgMemPool *pool = hg_vm_get_current_pool(vm);
- gboolean result = TRUE, verbose = FALSE;
- HgString *sexp;
- HgArray *actual, *expected;
- guint length, i;
- gint32 attrs = 0;
-
- while (1) {
- if (depth < 1) {
- _hg_operator_set_error(vm, op, VM_e_stackunderflow);
- break;
- }
- ndict = hg_stack_index(ostack, 0);
- if (!HG_IS_VALUE_DICT (ndict)) {
- _hg_operator_set_error(vm, op, VM_e_typecheck);
- break;
- }
- dict = HG_VALUE_GET_DICT (ndict);
- if (!hg_object_is_readable((HgObject *)dict)) {
- _hg_operator_set_error(vm, op, VM_e_invalidaccess);
- break;
- }
- nverbose = hg_dict_lookup_with_string(dict, "verbose");
- if (nverbose != NULL && HG_IS_VALUE_BOOLEAN (nverbose)) {
- verbose = HG_VALUE_GET_BOOLEAN (nverbose);
- }
- nattrs = hg_dict_lookup_with_string(dict, "attrsmask");
- if (nattrs != NULL && HG_IS_VALUE_INTEGER (nattrs)) {
- attrs = HG_VALUE_GET_INTEGER (nattrs);
- }
- nexp = hg_dict_lookup_with_string(dict, "expression");
- sexp = hg_object_to_string((HgObject *)nexp);
- nactual = hg_dict_lookup_with_string(dict, "actualerror");
- nexpected = hg_dict_lookup_with_string(dict, "expectederror");
- if (nactual == NULL || nexpected == NULL) {
- hg_file_object_printf(hg_vm_get_io(vm, VM_IO_STDERR),
- "[BUG] Unknown result happened during testing an exception at `%s'\n",
- hg_string_get_string(sexp));
- result = FALSE;
- } else if (!hg_value_node_compare(nactual, nexpected)) {
- if (verbose) {
- HgString *sa, *se;
-
- sa = hg_object_to_string((HgObject *)nactual);
- se = hg_object_to_string((HgObject *)nexpected);
- hg_file_object_printf(hg_vm_get_io(vm, VM_IO_STDERR),
- "Expression: %s - expected error is %s, but actual error was %s\n",
- hg_string_get_string(sexp),
- hg_string_get_string(se),
- hg_string_get_string(sa));
- hg_mem_free(sa);
- hg_mem_free(se);
- }
- result = FALSE;
- }
- nactual = hg_dict_lookup_with_string(dict, "actualostack");
- nexpected = hg_dict_lookup_with_string(dict, "expectedostack");
- if (nactual == NULL || nexpected == NULL ||
- !HG_IS_VALUE_ARRAY (nactual) ||
- !HG_IS_VALUE_ARRAY (nexpected)) {
- hg_file_object_printf(hg_vm_get_io(vm, VM_IO_STDERR),
- "[BUG] Uknown result happened during testing the result at `%s'\n",
- hg_string_get_string(sexp));
- result = FALSE;
- } else {
- HgString *sa, *se;
-
- sa = hg_object_to_string((HgObject *)nactual);
- se = hg_object_to_string((HgObject *)nexpected);
- actual = HG_VALUE_GET_ARRAY (nactual);
- expected = HG_VALUE_GET_ARRAY (nexpected);
- if ((length = hg_array_length(actual)) != hg_array_length(expected)) {
- if (verbose) {
- ostack_mismatch:
- hg_file_object_printf(hg_vm_get_io(vm, VM_IO_STDERR),
- "Expression: %s - expected ostack is %s, but actual ostack was %s\n",
- hg_string_get_string(sexp),
- hg_string_get_string(se),
- hg_string_get_string(sa));
- }
- result = FALSE;
- } else {
- for (i = 0; i < length; i++) {
- HgValueNode *nna = hg_array_index(actual, i);
- HgValueNode *nne = hg_array_index(expected, i);
-
- if (!hg_value_node_compare_content(nna, nne, attrs)) {
- goto ostack_mismatch;
- }
- }
- }
- hg_mem_free(sa);
- hg_mem_free(se);
- }
- hg_mem_free(sexp);
- HG_VALUE_MAKE_BOOLEAN (pool, n, result);
- hg_stack_pop(ostack);
- retval = hg_stack_push(ostack, n);
- /* it must be true */
- break;
- }
-} G_STMT_END;
-DEFUNC_OP_END
-
-/*
- * Private Functions
- */
-static gboolean
-plugin_init(void)
-{
- gint i;
-
- for (i = 0; i < HG_test_op_END; i++) {
- __test_operator_list[i] = NULL;
- }
-
- return TRUE;
-}
-
-static gboolean
-plugin_finalize(void)
-{
- return TRUE;
-}
-
-static gboolean
-plugin_load(HgPlugin *plugin,
- HgVM *vm)
-{
- HgDict *systemdict;
- HgMemPool *pool;
- gboolean is_global, error;
- HgStack *estack;
-
- g_return_val_if_fail (plugin != NULL, FALSE);
- g_return_val_if_fail (vm != NULL, FALSE);
-
- if (plugin->user_data != NULL) {
- hg_log_warning("already loaded.");
- return FALSE;
- }
- systemdict = hg_vm_get_dict_systemdict(vm);
- is_global = hg_vm_is_global_pool_used(vm);
- hg_vm_use_global_pool(vm, TRUE);
- pool = hg_vm_get_current_pool(vm);
-
- BUILD_OP (vm, pool, systemdict, .validateunittest, validateunittest);
-
- estack = hg_stack_new(pool, 256);
- hg_vm_eval(vm, "{(hg_unittest.ps) runlibfile} stopped pop",
- NULL, estack, NULL, &error);
- hg_mem_free(estack);
- hg_vm_use_global_pool(vm, is_global);
-
- plugin->user_data = systemdict;
-
- return error == FALSE;
-}
-
-static gboolean
-plugin_unload(HgPlugin *plugin,
- HgVM *vm)
-{
- HgMemPool *pool;
- HgDict *systemdict;
- gboolean is_global;
-
- g_return_val_if_fail (plugin != NULL, FALSE);
- g_return_val_if_fail (vm != NULL, FALSE);
-
- if (plugin->user_data != NULL) {
- hg_log_warning("not yet loaded.");
- return FALSE;
- }
-
- systemdict = hg_vm_get_dict_systemdict(vm);
- is_global = hg_vm_is_global_pool_used(vm);
- hg_vm_use_global_pool(vm, TRUE);
- pool = hg_vm_get_current_pool(vm);
-
- REMOVE_OP (pool, systemdict, .validateunittest, validateunittest);
- hg_vm_use_global_pool(vm, is_global);
-
- plugin->user_data = NULL;
-
- return TRUE;
-}
-
-/*
- * Public Functions
- */
-HgPlugin *
-plugin_new(HgMemPool *pool)
-{
- HgPlugin *retval;
-
- g_return_val_if_fail (pool != NULL, NULL);
-
- retval = hg_plugin_new(pool, HG_PLUGIN_EXTENSION);
- retval->version = HG_PLUGIN_VERSION;
- retval->vtable = &vtable;
-
- return retval;
-}
diff --git a/po/ChangeLog b/po/ChangeLog
deleted file mode 100644
index 67385f1..0000000
--- a/po/ChangeLog
+++ /dev/null
@@ -1,8 +0,0 @@
-2006-06-05 Akira TAGOH <at@gclab.org>
-
- * ja.po: added Japanese translation.
-
-2005-10-20 Akira TAGOH <at@gclab.org>
-
- * POTFILES.in: new.
-
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100644
index 2f3de17..0000000
--- a/po/POTFILES.in
+++ /dev/null
@@ -1,3 +0,0 @@
-src/hgspy.c
-src/visualizer.c
-
diff --git a/po/ja.po b/po/ja.po
deleted file mode 100644
index ea57b34..0000000
--- a/po/ja.po
+++ /dev/null
@@ -1,72 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: hieroglyph 0.0.1\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-06-05 02:48+0900\n"
-"PO-Revision-Date: 2006-06-05 03:07+0900\n"
-"Last-Translator: Akira TAGOH <at@gclab.org>\n"
-"Language-Team: Japanese <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../src/hgspy.c:103
-msgid "PostScript file"
-msgstr "PostScriptファイル"
-
-#: ../src/hgspy.c:106
-msgid "Open a PostScript file"
-msgstr "PostScriptファイルを開きます。"
-
-#: ../src/hgspy.c:190
-msgid "V_M"
-msgstr "仮想マシン(_M)"
-
-#: ../src/hgspy.c:198
-msgid "_View"
-msgstr "表示(_V)"
-
-#: ../src/hgspy.c:206
-msgid "_Help"
-msgstr "ヘルプ(_H)"
-
-#: ../src/hgspy.c:217
-msgid "Run VM interactively"
-msgstr "対話形式で仮想マシンを実行します。"
-
-#: ../src/hgspy.c:225
-msgid "Run a PostScript file on VM"
-msgstr "仮想マシン上でPostScriptファイルを実行します。"
-
-#: ../src/hgspy.c:233
-msgid "Quit"
-msgstr "終了"
-
-#: ../src/hgspy.c:240
-msgid "Pool"
-msgstr "プール"
-
-#: ../src/hgspy.c:242
-msgid "Pool to be visualized."
-msgstr "表示するためのプール"
-
-#: ../src/hgspy.c:249
-msgid "None"
-msgstr "なし"
-
-#: ../src/hgspy.c:260
-msgid "About"
-msgstr "情報"
-
-#: ../src/visualizer.c:279
-msgid "Max size of memory pool"
-msgstr "メモリプールの最大サイズ"
-
-#: ../src/visualizer.c:280
-msgid "Max size of memory pool that is now being visualized."
-msgstr "表示するメモリプールの最大サイズ"
diff --git a/requires b/requires
deleted file mode 100644
index 805ecd7..0000000
--- a/requires
+++ /dev/null
@@ -1,2 +0,0 @@
-GLIB_REQUIRED=2.8.0
-CAIRO_REQUIRED=1.0.0 \ No newline at end of file
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index 6574015..0000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1,82 +0,0 @@
-NULL =
-
-INCLUDES = \
- $(HG_CFLAGS) \
- $(NULL)
-LIBS = \
- @LDFLAGS@ \
- $(HG_LIBS) \
- $(NULL)
-DEPS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-bin_PROGRAMS = \
- hgs \
- $(NULL)
-noinst_PROGRAMS = \
- hgspy-bin \
- $(NULL)
-noinst_LTLIBRARIES = \
- libhgspy.la \
- libhgspy-helper.la \
- $(NULL)
-
-hgs_SOURCES = \
- hgs.c \
- $(NULL)
-hgs_LDADD = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-hgspy_bin_SOURCES = \
- hgspy.c \
- $(NULL)
-hgspy_bin_CFLAGS = \
- $(GTK2_CFLAGS) \
- $(HG_MODULE_CFLAGS) \
- $(GTHREAD_CFLAGS) \
- $(NULL)
-hgspy_bin_LDADD = \
- $(GTK2_LIBS) \
- $(HG_MODULE_LIBS) \
- $(GTHREAD_LIBS) \
- libhgspy.la \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-
-libhgspy_la_SOURCES = \
- visualizer.c \
- visualizer.h \
- $(NULL)
-libhgspy_la_CFLAGS = \
- $(GTK2_CFLAGS) \
- $(NULL)
-libhgspy_la_LIBADD = \
- $(GTK2_LIBS) \
- $(NULL)
-libhgspy.la: $(libhgspy_la_OBJECTS) $(libhgspy_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libhgspy_la_LDFLAGS) $(libhgspy_la_OBJECTS) $(libhgspy_la_LIBADD) $(LIBS)
-
-libhgspy_helper_la_SOURCES = \
- hgspy_helper.c \
- hgspy_helper.h \
- $(NULL)
-libhgspy_helper_la_CFLAGS = \
- $(GTK2_CFLAGS) \
- $(HG_MODULE_CFLAGS) \
- $(NULL)
-libhgspy_helper_la_LDFLAGS = \
- -avoid-version \
- -module \
- $(LDFLAGS) \
- $(GTK2_LIBS) \
- $(HG_MODULE_LIBS) \
- libhgspy.la \
- $(NULL)
-libhgspy-helper.la: $(libhgspy_helper_la_OBJECTS) $(libhgspy_helper_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libhgspy_helper_la_LDFLAGS) $(libhgspy_helper_la_OBJECTS) $(libhgspy_helper_la_LIBADD) $(LIBS)
-
-EXTRA_DIST = \
- hgspy.sh \
- $(NULL)
diff --git a/src/hgs.c b/src/hgs.c
deleted file mode 100644
index fe90d4d..0000000
--- a/src/hgs.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgs.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#include <hieroglyph/hgdevice.h>
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/hglog.h>
-#include <hieroglyph/hgmem.h>
-#include <hieroglyph/hgvaluenode.h>
-#include <hieroglyph/vm.h>
-
-
-static gboolean
-_hgs_arg_define_cb(const char *option_name,
- const char *value,
- gpointer data)
-{
- gboolean retval = FALSE;
- HgVM *vm = data;
- HgValueNode *n1, *n2;
- gboolean mode = hg_vm_is_global_pool_used(vm);
- HgMemPool *pool;
- HgDict *systemdict = hg_vm_get_dict_systemdict(vm);
-
- if (value && *value) {
- hg_vm_use_global_pool(vm, TRUE);
- pool = hg_vm_get_current_pool(vm);
-
- /* FIXME: validate characters in value */
- n1 = hg_vm_get_name_node(vm, value);
- HG_VALUE_MAKE_BOOLEAN (pool, n2, TRUE);
- hg_dict_insert(pool, systemdict, n1, n2);
-
- hg_vm_use_global_pool(vm, mode);
- retval = TRUE;
- }
-
- return retval;
-}
-
-static gboolean
-_hgs_arg_load_plugin_cb(const char *option_name,
- const char *value,
- gpointer data)
-{
- gboolean retval = FALSE;
- HgVM *vm = data;
-
- if (value && *value) {
- retval = hg_vm_load_plugin(vm, value);
- }
-
- return retval;
-}
-
-int
-main(int argc,
- char **argv)
-{
- gchar *device_name = NULL;
- gboolean opt_io_sync = FALSE;
- HgVM *vm;
- HgDevice *device = NULL;
- GOptionContext *ctxt = g_option_context_new("<PostScript file>");
- GOptionGroup *group;
- GOptionEntry entries[] = {
- {"define", 'd', 0, G_OPTION_ARG_CALLBACK, _hgs_arg_define_cb, "Define a variable in systemdict.", "SYMBOL"},
- {"load-plugin", 'l', 0, G_OPTION_ARG_CALLBACK, _hgs_arg_load_plugin_cb, "Load a plugin", "NAME"},
- {"sync-io", 0, 0, G_OPTION_ARG_NONE, &opt_io_sync, "Make I/O calls synchronous", NULL},
- {"device", 0, 0, G_OPTION_ARG_STRING, &device_name, "Output device that the rendering goes to", "DEVICE"},
- {NULL}
- };
- GError *error = NULL;
- const gchar *psfile = NULL, *env;
- gint32 errcode = 0;
-
- HG_MEM_INIT;
- hg_vm_init();
-
- /* set debugging flags prior to initialize VM */
- if ((env = g_getenv("HIEROGLYPH_DEBUG")) != NULL) {
- gchar **flags = g_strsplit(env, ",:", 0);
- int i;
-
- for (i = 0; flags[i] != NULL; i++) {
- gchar *key = g_strdup_printf("DEBUG_%s", flags[i]);
-
- hg_log_set_flag(key, TRUE);
- g_free(key);
- }
-
- g_strfreev(flags);
- }
-
- vm = hg_vm_new(VM_EMULATION_LEVEL_1);
-
- group = g_option_group_new(NULL, NULL, NULL, vm, NULL);
- g_option_context_set_main_group(ctxt, group);
- g_option_context_add_main_entries(ctxt, entries, NULL);
- if (!g_option_context_parse(ctxt, &argc, &argv, &error)) {
- g_print("Option parse error.\n");
- hg_vm_finalize();
- return 1;
- }
-
- if (opt_io_sync)
- hg_file_io_synchronous(TRUE);
- if (device_name) {
- device = hg_device_new(device_name);
- if (device == NULL) {
- g_print("Failed to open `%s' device.\n", device_name);
- return 1;
- }
- }
- if (argc > 1)
- psfile = argv[1];
-
- if (!hg_vm_startjob(vm, psfile, TRUE)) {
- g_print("Failed to start a job.\n");
- return 1;
- }
-
- if (device) {
- /* FIXME: need to support asynchronous rendering */
- if (!hg_vm_has_error(vm)) {
- HgGraphics *graphics = hg_vm_get_graphics(vm);
- GList *l, *prev;
- gint i;
-
- for (l = graphics->pages, i = 1; l != NULL; l = g_list_next(l), i++) {
- hg_device_draw(device, l->data);
- g_print("%d page\n", i);
- sleep(1);
- prev = l;
- }
- if (prev != NULL &&
- graphics->current_page != prev->data &&
- graphics->current_page->node)
- hg_device_draw(device, graphics->current_page);
- sleep(5);
- }
- }
-
- errcode = hg_vm_get_error_code(vm);
-
- hg_vm_finalize();
- g_option_context_free(ctxt);
-
- return errcode;
-}
diff --git a/src/hgspy.c b/src/hgspy.c
deleted file mode 100644
index 1d90ba9..0000000
--- a/src/hgspy.c
+++ /dev/null
@@ -1,963 +0,0 @@
-/*
- * hgspy.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <string.h>
-#include <errno.h>
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include <hieroglyph/hgmem.h>
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hgstack.h>
-#include <hieroglyph/hgvaluenode.h>
-#include <hieroglyph/vm.h>
-#include <hieroglyph/operator.h>
-#include "visualizer.h"
-
-
-typedef struct _HieroGlyphSpy HgSpy;
-
-struct _HieroGlyphSpy {
- GtkWidget *window;
- GtkWidget *status;
- GtkWidget *visualizer;
- GtkWidget *total_vm_size;
- GtkWidget *used_vm_size;
- GtkWidget *free_vm_size;
- GtkWidget *textview;
- GtkWidget *entry;
- GtkWidget *prompt;
- GtkUIManager *ui;
- GThread *vm_thread;
- HgVM *vm;
- gchar *file;
- gint error;
- gchar *statementedit_buffer;
- gboolean destroyed;
- guint gc_status_ctxt_id;
- guint gc_status_msg_id;
-};
-
-static void _hgspy_update_vm_status (HgMemoryVisualizer *visual,
- HgSpy *spy,
- const gchar *name);
-static void _hgspy_insert_text_into_textview(HgSpy *spy,
- const gchar *text,
- gsize length);
-
-static gpointer __hg_spy_helper_get_widget = NULL;
-
-/*
- * Private Functions
- */
-static gboolean
-_hgspy_ask_dialog(HgSpy *spy,
- const gchar *message)
-{
- gboolean retval = TRUE;
- GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW (spy->window),
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_YES_NO,
- _(message));
- gint result = gtk_dialog_run (GTK_DIALOG (dialog));
-
- switch (result) {
- case GTK_RESPONSE_YES:
- retval = FALSE;
- break;
- case GTK_RESPONSE_NO:
- default:
- break;
- }
-
- gtk_widget_destroy(dialog);
-
- return !retval;
-}
-
-static gboolean
-_hgspy_op_private_statementedit(HgOperator *op,
- gpointer data)
-{
- HgVM *vm = data;
- gboolean retval = FALSE;
- gsize ret;
- HgFileObject *stdin = hg_vm_get_io(vm, VM_IO_STDIN), *file;
- gchar buffer[1025];
- HgMemPool *pool = hg_vm_get_current_pool(vm);
- HgValueNode *node;
- HgStack *ostack = hg_vm_get_ostack(vm);
-
- while (1) {
- ret = hg_file_object_read(stdin, buffer, sizeof (gchar), 1024);
- if (ret == 0) {
- _hg_operator_set_error(vm, op, VM_e_undefinedfilename);
- break;
- }
- file = hg_file_object_new(pool, HG_FILE_TYPE_BUFFER,
- HG_FILE_MODE_READ,
- "%statementedit",
- buffer, -1);
- if (file == NULL) {
- _hg_operator_set_error(vm, op, VM_e_VMerror);
- break;
- }
- HG_VALUE_MAKE_FILE (node, file);
- if (node == NULL) {
- _hg_operator_set_error(vm, op, VM_e_VMerror);
- break;
- }
- retval = hg_stack_push(ostack, node);
- break;
- }
-
- return retval;
-}
-
-static gsize
-_hgspy_file_read_cb(gpointer user_data,
- gpointer buffer,
- gsize size,
- gsize n)
-{
- HgSpy *spy = user_data;
- gsize retval = 0;
- HgStack *ostack = hg_vm_get_ostack(spy->vm);
- gchar *prompt;
- /* depends on hg_init.ps. */
- guint depth = hg_stack_depth(ostack) - 2;
-
- if (depth > 0)
- prompt = g_strdup_printf("PS[%d]>", depth);
- else
- prompt = g_strdup("PS>");
-
- gdk_threads_enter();
- gtk_label_set_text(GTK_LABEL (spy->prompt), prompt);
- gdk_flush();
- gdk_threads_leave();
-
- g_free(prompt);
-
- while (spy->statementedit_buffer == NULL && !spy->destroyed)
- sleep(1);
-
- if (spy->statementedit_buffer) {
- size_t len = strlen(spy->statementedit_buffer);
- gpointer p;
-
- if (len > size * n)
- retval = size * n;
- else
- retval = len;
- strncpy(buffer, spy->statementedit_buffer, retval);
- ((gchar *)buffer)[retval] = 0;
- p = spy->statementedit_buffer;
- spy->statementedit_buffer = NULL;
- g_free(p);
-
- /* to be thread-safe */
- gdk_threads_enter();
-
- gtk_widget_set_sensitive(spy->entry, TRUE);
- gtk_widget_grab_focus(spy->entry);
-
- gdk_flush();
- gdk_threads_leave();
- }
-
- return retval;
-}
-
-static gsize
-_hgspy_file_write_cb(gpointer user_data,
- gconstpointer buffer,
- gsize size,
- gsize n)
-{
- HgSpy *spy = user_data;
-
- /* to be thread-safe */
- gdk_threads_enter();
-
- _hgspy_insert_text_into_textview(spy, buffer, size * n);
-
- gdk_flush();
- gdk_threads_leave();
-
- spy->error = 0;
-
- return size * n;
-}
-
-static gchar
-_hgspy_file_getc_cb(gpointer user_data)
-{
- g_print("FIXME: getc\n");
-
- return 0;
-}
-
-static gboolean
-_hgspy_file_flush_cb(gpointer user_data)
-{
- g_print("FIXME: flush\n");
-
- return FALSE;
-}
-
-static gssize
-_hgspy_file_seek_cb(gpointer user_data,
- gssize offset,
- HgFilePosType whence)
-{
- HgSpy *spy = user_data;
-
- g_print("FIXME: seek.\n");
- spy->error = ESPIPE;
-
- return -1;
-}
-
-static void
-_hgspy_file_close_cb(gpointer user_data)
-{
- g_print("FIXME: close.\n");
-}
-
-static gboolean
-_hgspy_file_is_closed_cb(gpointer user_data)
-{
- g_print("FIXME: is_closed.\n");
-
- return FALSE;
-}
-
-static gboolean
-_hgspy_file_is_eof_cb(gpointer user_data)
-{
- return FALSE;
-}
-
-static void
-_hgspy_file_clear_eof_cb(gpointer user_data)
-{
- g_print("FIXME: clear_eof\n");
-}
-
-static gint
-_hgspy_file_get_error_code_cb(gpointer user_data)
-{
- HgSpy *spy = user_data;
-
- return spy->error;
-}
-
-static gpointer
-_hgspy_vm_thread(gpointer data)
-{
- HG_MEM_INIT;
-
- HgSpy *spy = data;
- HgFileObjectCallback callback = {
- .read = _hgspy_file_read_cb,
- .write = _hgspy_file_write_cb,
- .getc = _hgspy_file_getc_cb,
- .flush = _hgspy_file_flush_cb,
- .seek = _hgspy_file_seek_cb,
- .close = _hgspy_file_close_cb,
- .is_closed = _hgspy_file_is_closed_cb,
- .is_eof = _hgspy_file_is_eof_cb,
- .clear_eof = _hgspy_file_clear_eof_cb,
- .get_error_code = _hgspy_file_get_error_code_cb,
- };
- HgFileObject * volatile in, * volatile out;
- HgMemPool *pool;
- HgOperator *op;
- HgValueNode *key, *val;
- HgDict *dict;
- gint fd;
- gchar *filename = NULL;
- GString *buffer;
-
- hg_vm_init();
- spy->vm = hg_vm_new(VM_EMULATION_LEVEL_1);
- pool = hg_vm_get_current_pool(spy->vm);
- dict = hg_vm_get_dict_systemdict(spy->vm);
- in = hg_file_object_new(pool,
- HG_FILE_TYPE_BUFFER_WITH_CALLBACK,
- HG_FILE_MODE_READ,
- "stdin with callback",
- &callback,
- spy);
- out = hg_file_object_new(pool,
- HG_FILE_TYPE_BUFFER_WITH_CALLBACK,
- HG_FILE_MODE_WRITE,
- "stdout with callback",
- &callback,
- spy);
- hg_vm_set_io(spy->vm, VM_IO_STDIN, in);
- hg_vm_set_io(spy->vm, VM_IO_STDOUT, out);
- hg_vm_set_io(spy->vm, VM_IO_STDERR, out);
-
- op = hg_operator_new(pool, "...statementedit", _hgspy_op_private_statementedit);
- if (op == NULL) {
- g_warning("Failed to create an operator");
- return NULL;
- }
- key = hg_vm_get_name_node(spy->vm, "...statementedit");
- HG_VALUE_MAKE_OPERATOR (val, op);
- if (val == NULL) {
- hg_vm_set_error(spy->vm, key, VM_e_VMerror, FALSE);
- } else {
- hg_object_executable((HgObject *)val);
- hg_dict_insert(pool, dict, key, val);
- }
- fd = g_file_open_tmp("hgspy-XXXXXX", &filename, NULL);
- if (fd == -1) {
- g_warning("Failed to create an initialize file.");
- return NULL;
- }
- buffer = g_string_new(NULL);
- g_string_append(buffer, "/..statementedit {//null //null ...statementedit exch pop exch pop} bind def ");
- if (spy->file != NULL) {
- g_string_append_printf(buffer, "(%s) run", spy->file);
- } else {
- g_string_append(buffer, ".startjobserver executive");
- }
- write(fd, buffer->str, buffer->len);
- close(fd);
- hg_vm_startjob(spy->vm, filename, TRUE);
- unlink(filename);
- g_free(filename);
- hg_mem_free(spy->vm);
- spy->vm = NULL;
- hg_vm_finalize();
- spy->destroyed = FALSE;
-
- return NULL;
-}
-
-static void
-_hgspy_run_vm(HgSpy *spy,
- const gchar *file)
-{
- if (spy->vm_thread != NULL) {
- if (!_hgspy_ask_dialog(spy, N_("HieroglyphVM is still running.\nAre you sure that you really want to restart?"))) {
- return;
- }
- g_thread_exit(spy->vm_thread);
- hg_mem_free(spy->vm);
- hg_vm_finalize();
- }
- spy->file = g_strdup(file);
- spy->vm_thread = g_thread_create(_hgspy_vm_thread, spy, FALSE, NULL);
-}
-
-static gboolean
-_hgspy_quit_cb(GtkWidget *widget,
- GdkEventAny *event,
- gpointer data)
-{
- HgSpy *spy = data;
- gboolean retval = TRUE;
-
- if (spy->vm) {
- retval = _hgspy_ask_dialog(spy, N_("Hieroglyph VM is still running.\nAre you sure that you really want to quit?"));
- if (retval)
- hg_vm_shutdown(spy->vm, 0);
- } else {
- retval = TRUE;
- }
- if (retval) {
- gtk_widget_unrealize(spy->window);
- gtk_main_quit();
- }
-
- return TRUE;
-}
-
-static void
-_hgspy_about_email_cb(GtkAboutDialog *about,
- const gchar *link,
- gpointer data)
-{
-}
-
-static void
-_hgspy_about_url_cb(GtkAboutDialog *about,
- const gchar *link,
- gpointer data)
-{
-}
-
-static void
-_hgspy_action_menubar_run_cb(GtkAction *action,
- HgSpy *spy)
-{
- _hgspy_run_vm(spy, NULL);
-}
-
-static void
-_hgspy_action_menubar_open_cb(GtkAction *action,
- HgSpy *spy)
-{
- GtkWidget *dialog;
- gint result;
- GtkFileFilter *filter;
-
- filter = gtk_file_filter_new();
- gtk_file_filter_set_name(filter, _("PostScript file"));
- gtk_file_filter_add_mime_type(filter, "application/postscript");
-
- dialog = gtk_file_chooser_dialog_new(_("Open a PostScript file"),
- GTK_WINDOW (spy->window),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN,
- GTK_RESPONSE_OK,
- NULL);
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
-
- result = gtk_dialog_run(GTK_DIALOG (dialog));
- switch (result) {
- case GTK_RESPONSE_OK:
- _hgspy_run_vm(spy,
- gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (dialog)));
- break;
- case GTK_RESPONSE_CANCEL:
- default:
- break;
- }
- gtk_widget_destroy(dialog);
-}
-
-static void
-_hgspy_action_menubar_quit_cb(GtkAction *action,
- HgSpy *spy)
-{
- _hgspy_quit_cb(spy->window, NULL, spy);
-}
-
-static void
-_hgspy_action_menubar_about_cb(GtkAction *action,
- HgSpy *spy)
-{
- const gchar *authors[] = {
- "Akira TAGOH",
- NULL
- };
- const gchar *license =
- "This library is free software; you can redistribute it and/or\n"
- "modify it under the terms of the GNU Lesser General Public\n"
- "License as published by the Free Software Foundation; either\n"
- "version 2 of the License, or (at your option) any later version.\n"
- "\n"
- "This library is distributed in the hope that it will be useful,\n"
- "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
- "Lesser General Public License for more details.\n"
- "\n"
- "You should have received a copy of the GNU Lesser General Public\n"
- "License along with this library; if not, write to the\n"
- "Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
- "Boston, MA 02111-1307, USA.\n";
-
- gtk_about_dialog_set_email_hook(_hgspy_about_email_cb, NULL, NULL);
- gtk_about_dialog_set_url_hook(_hgspy_about_url_cb, NULL, NULL);
- gtk_show_about_dialog(GTK_WINDOW (spy->window),
- "name", "Memory visualizer",
- "version", PACKAGE_VERSION,
- "copyright", "(C) 2006 Akira TAGOH",
- "license", license,
- "website", "http://hieroglyph.freedesktop.org/",
- "comments", "for Hieroglyph memory management system",
- "authors", authors,
- NULL);
-}
-
-static void
-_hgspy_radio_menu_pool_activate_cb(GtkMenuItem *menuitem,
- gpointer data)
-{
- const gchar *name;
- HgSpy *spy = data;
-
- if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem))) {
- name = g_object_get_data(G_OBJECT (menuitem), "user-data");
- hg_memory_visualizer_change_pool(HG_MEMORY_VISUALIZER (spy->visualizer), name);
- }
-}
-
-static void
-_hgspy_pool_updated_cb(HgMemoryVisualizer *visual,
- gpointer list,
- gpointer data)
-{
- GSList *slist = list, *l, *sigwidget = NULL;
- HgSpy *spy = data;
- GtkWidget *bin, *menu, *menuitem = NULL;
- gulong sigid;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
-
- bin = gtk_ui_manager_get_widget(spy->ui, "/MenuBar/ViewMenu/PoolMenu");
- menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM (bin));
- sigwidget = (GSList *)g_object_get_data(G_OBJECT (menu), "signal-widget-list");
- for (l = sigwidget; l != NULL; l = g_slist_next(l)) {
- sigid = (gulong)g_object_get_data(G_OBJECT (l->data), "signal-id");
- if (sigid > 0)
- g_signal_handler_disconnect(l->data, sigid);
- }
- gtk_menu_item_remove_submenu(GTK_MENU_ITEM (bin));
- menu = gtk_menu_new();
- sigwidget = NULL;
- for (l = slist; l != NULL; l = g_slist_next(l)) {
- if (menuitem == NULL) {
- menuitem = gtk_radio_menu_item_new_with_label(NULL, l->data);
- } else {
- menuitem = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM (menuitem), l->data);
- }
- sigid = g_signal_connect(menuitem, "activate",
- G_CALLBACK (_hgspy_radio_menu_pool_activate_cb), spy);
- sigwidget = g_slist_append(sigwidget, menuitem);
- g_object_set_data(G_OBJECT (menuitem), "signal-id", (gpointer)sigid);
- g_object_set_data(G_OBJECT (menuitem), "user-data", l->data);
- gtk_menu_shell_append(GTK_MENU_SHELL (menu), menuitem);
- gtk_widget_show(menuitem);
- }
- if (sigwidget == NULL) {
- menuitem = gtk_menu_item_new_with_label(_("None"));
- gtk_menu_shell_append(GTK_MENU_SHELL (menu), menuitem);
- gtk_widget_set_sensitive(menuitem, FALSE);
- gtk_widget_show(menuitem);
- }
- g_object_set_data(G_OBJECT (menu), "signal-widget-list", sigwidget);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM (bin), menu);
-}
-
-static void
-_hgspy_draw_updated_cb(HgMemoryVisualizer *visual,
- gpointer data)
-{
- HgSpy *spy = data;
- const gchar *name;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (data != NULL);
-
- name = hg_memory_visualizer_get_current_pool_name(visual);
- _hgspy_update_vm_status(visual, spy, name);
-}
-
-static void
-_hgspy_gc_started_cb(HgMemoryVisualizer *visual,
- gpointer data)
-{
- HgSpy *spy = data;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (data != NULL);
-
- spy->gc_status_msg_id = gtk_statusbar_push(GTK_STATUSBAR (spy->status),
- spy->gc_status_ctxt_id,
- _("Collecting the garbages..."));
-}
-
-static void
-_hgspy_gc_finished_cb(HgMemoryVisualizer *visual,
- gpointer data)
-{
- HgSpy *spy = data;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (data != NULL);
-
- gtk_statusbar_remove(GTK_STATUSBAR (spy->status),
- spy->gc_status_ctxt_id,
- spy->gc_status_msg_id);
-}
-
-static void
-_hgspy_entry_activate_cb(GtkWidget *widget,
- gpointer data)
-{
- GtkEntry *entry;
- HgSpy *spy = data;
- const gchar *text;
- gchar *echoback;
-
- g_return_if_fail (GTK_IS_ENTRY (widget));
- g_return_if_fail (data != NULL);
-
- entry = GTK_ENTRY (widget);
- if (spy->statementedit_buffer) {
- g_warning("FIXME: something lost.");
- }
- text = gtk_entry_get_text(entry);
- if (text == NULL || text[0] == 0)
- return;
- if (spy->vm) {
- echoback = g_strdup_printf("%s%s\n",
- gtk_label_get_text(GTK_LABEL (spy->prompt)),
- text);
- _hgspy_insert_text_into_textview(spy, echoback, strlen(echoback));
- g_free(echoback);
- spy->statementedit_buffer = g_strdup(text);
- gtk_widget_set_sensitive(spy->entry, FALSE);
- }
- gtk_entry_set_text(entry, "");
-}
-
-static void
-_hgspy_update_vm_status(HgMemoryVisualizer *visual,
- HgSpy *spy,
- const gchar *name)
-{
- gsize total, used;
- gchar *p;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (spy != NULL);
-
- if (name) {
- total = hg_memory_visualizer_get_max_size(visual, name);
- p = g_strdup_printf("%" G_GSIZE_FORMAT, total);
- gtk_entry_set_text(GTK_ENTRY (spy->total_vm_size), p);
- g_free(p);
- used = hg_memory_visualizer_get_used_size(visual, name);
- p = g_strdup_printf("%" G_GSIZE_FORMAT, used);
- gtk_entry_set_text(GTK_ENTRY (spy->used_vm_size), p);
- g_free(p);
- p = g_strdup_printf("%" G_GSIZE_FORMAT, total - used);
- gtk_entry_set_text(GTK_ENTRY (spy->free_vm_size), p);
- g_free(p);
- } else {
- gtk_entry_set_text(GTK_ENTRY (spy->total_vm_size), "");
- gtk_entry_set_text(GTK_ENTRY (spy->used_vm_size), "");
- gtk_entry_set_text(GTK_ENTRY (spy->free_vm_size), "");
- }
-}
-
-static void
-_hgspy_insert_text_into_textview(HgSpy *spy,
- const gchar *text,
- gsize length)
-{
- GtkTextBuffer *textbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW (spy->textview));
- GtkTextIter iter;
- gdouble val;
-
- gtk_text_buffer_get_end_iter(textbuf, &iter);
- gtk_text_buffer_insert(textbuf, &iter, text, length);
- val = GTK_TEXT_VIEW (spy->textview)->vadjustment->upper;
- gtk_adjustment_set_value(GTK_TEXT_VIEW (spy->textview)->vadjustment,
- val);
-}
-
-/*
- * Public Functions
- */
-int
-main(int argc,
- char **argv)
-{
- GModule *module;
- HgSpy *spy;
- GtkWidget *menubar, *vbox, *none, *table, *label, *hbox, *vbox2, *scrolled, *hbox2;
- GtkWidget *vpaned, *vbox3;
- GtkActionGroup *actions;
- GtkActionEntry action_entries[] = {
- /* toplevel menu */
- {
- .name = "VMMenu",
- .stock_id = NULL,
- .label = _("V_M"),
- .accelerator = NULL,
- .tooltip = NULL,
- .callback = NULL
- },
- {
- .name = "ViewMenu",
- .stock_id = NULL,
- .label = _("_View"),
- .accelerator = NULL,
- .tooltip = NULL,
- .callback = NULL
- },
- {
- .name = "HelpMenu",
- .stock_id = NULL,
- .label = _("_Help"),
- .accelerator = NULL,
- .tooltip = NULL,
- .callback = NULL
- },
- /* submenu - VM */
- {
- .name = "Run",
- .stock_id = GTK_STOCK_EXECUTE,
- .label = NULL,
- .accelerator = NULL,
- .tooltip = _("Run VM interactively"),
- .callback = G_CALLBACK (_hgspy_action_menubar_run_cb)
- },
- {
- .name = "Open",
- .stock_id = GTK_STOCK_OPEN,
- .label = NULL,
- .accelerator = "<control>O",
- .tooltip = _("Run a PostScript file on VM"),
- .callback = G_CALLBACK (_hgspy_action_menubar_open_cb)
- },
- {
- .name = "Quit",
- .stock_id = GTK_STOCK_QUIT,
- .label = NULL,
- .accelerator = "<control>Q",
- .tooltip = _("Quit"),
- .callback = G_CALLBACK (_hgspy_action_menubar_quit_cb)
- },
- /* submenu - View */
- {
- .name = "PoolMenu",
- .stock_id = NULL,
- .label = _("Pool"),
- .accelerator = NULL,
- .tooltip = _("Pool to be visualized."),
- .callback = NULL
- },
- /* submenu - Pool */
- {
- .name = "PoolNone",
- .stock_id = NULL,
- .label = _("None"),
- .accelerator = NULL,
- .tooltip = NULL,
- .callback = NULL
- },
- /* submenu - Help */
- {
- .name = "About",
- .stock_id = GTK_STOCK_ABOUT,
- .label = NULL,
- .accelerator = NULL,
- .tooltip = _("About"),
- .callback = G_CALLBACK (_hgspy_action_menubar_about_cb)
- }
- };
- gchar *uixml =
- "<ui>"
- " <menubar name='MenuBar'>"
- " <menu action='VMMenu'>"
- " <menuitem action='Run'/>"
- " <menuitem action='Open'/>"
- " <separator/>"
- " <menuitem action='Quit'/>"
- " </menu>"
- " <menu action='ViewMenu'>"
- " <menu action='PoolMenu'>"
- " <menuitem action='PoolNone'/>"
- " </menu>"
- " </menu>"
- " <menu action='HelpMenu'>"
- " <menuitem action='About'/>"
- " </menu>"
- " </menubar>"
- "</ui>";
- guint i = 0;
-
- if ((module = g_module_open("libhgspy-helper.so", 0)) == NULL) {
- g_warning("Failed g_module_open: %s", g_module_error());
- return 1;
- }
- if (!g_module_symbol(module, "hg_spy_helper_get_widget", &__hg_spy_helper_get_widget)) {
- g_warning("Failed g_module_symbol: %s", g_module_error());
- g_module_close(module);
- return 1;
- }
-
-#ifdef ENABLE_NLS
- bindtextdomain (GETTEXT_PACKAGE, HGSPY_LOCALEDIR);
-#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-#endif /* HAVE_BIND_TEXTDOMAIN_CODESET */
- textdomain (GETTEXT_PACKAGE);
-#endif /* ENABLE_NLS */
-
- g_thread_init(NULL);
- gdk_threads_init();
- gtk_init(&argc, &argv);
-
- spy = g_new(HgSpy, 1);
- spy->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- spy->vm_thread = NULL;
- spy->vm = NULL;
- spy->file = NULL;
- spy->error = 0;
- spy->statementedit_buffer = NULL;
- spy->destroyed = FALSE;
- spy->gc_status_ctxt_id = 0;
- spy->gc_status_msg_id = 0;
-
- actions = gtk_action_group_new("MenuBar");
- spy->ui = gtk_ui_manager_new();
- vbox = gtk_vbox_new(FALSE, 0);
- vbox2 = gtk_vbox_new(FALSE, 0);
- vbox3 = gtk_vbox_new(FALSE, 0);
- hbox = gtk_hbox_new(FALSE, 0);
- hbox2 = gtk_hbox_new(FALSE, 0);
- table = gtk_table_new(3, 2, FALSE);
- scrolled = gtk_scrolled_window_new(NULL, NULL);
- vpaned = gtk_vpaned_new();
- spy->total_vm_size = gtk_entry_new();
- spy->used_vm_size = gtk_entry_new();
- spy->free_vm_size = gtk_entry_new();
- spy->visualizer = ((GtkWidget * (*) (void))__hg_spy_helper_get_widget) ();
- spy->textview = gtk_text_view_new();
- spy->entry = gtk_entry_new();
- spy->prompt = gtk_label_new("PS>");
- spy->status = gtk_statusbar_new();
-
- if (spy->visualizer == NULL) {
- g_warning("Failed to initialize a helper module.");
- return 1;
- }
-
- /* setup action groups */
- gtk_action_group_add_actions(actions,
- action_entries,
- sizeof (action_entries) / sizeof (GtkActionEntry),
- spy);
-
- /* setup UI */
- gtk_window_set_default_size(GTK_WINDOW (spy->window), 400, 300);
- gtk_window_set_title(GTK_WINDOW (spy->window), "Memory Visualizer for Hieroglyph");
- gtk_ui_manager_add_ui_from_string(spy->ui, uixml, strlen(uixml), NULL);
- gtk_ui_manager_insert_action_group(spy->ui, actions, 0);
- none = gtk_ui_manager_get_widget(spy->ui, "/MenuBar/ViewMenu/PoolMenu/PoolNone");
- gtk_widget_set_sensitive(none, FALSE);
- gtk_editable_set_editable(GTK_EDITABLE (spy->total_vm_size), FALSE);
- gtk_editable_set_editable(GTK_EDITABLE (spy->used_vm_size), FALSE);
- gtk_editable_set_editable(GTK_EDITABLE (spy->free_vm_size), FALSE);
- GTK_WIDGET_UNSET_FLAGS (spy->total_vm_size, GTK_CAN_FOCUS);
- GTK_WIDGET_UNSET_FLAGS (spy->used_vm_size, GTK_CAN_FOCUS);
- GTK_WIDGET_UNSET_FLAGS (spy->free_vm_size, GTK_CAN_FOCUS);
- GTK_WIDGET_UNSET_FLAGS (spy->textview, GTK_CAN_FOCUS);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_text_view_set_editable(GTK_TEXT_VIEW (spy->textview), FALSE);
- gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW (spy->textview), GTK_WRAP_WORD_CHAR);
- spy->gc_status_ctxt_id = gtk_statusbar_get_context_id(GTK_STATUSBAR (spy->status),
- "Status for GC");
-
- /* setup accelerators */
- gtk_window_add_accel_group(GTK_WINDOW (spy->window), gtk_ui_manager_get_accel_group(spy->ui));
-
- /* widget connections */
- menubar = gtk_ui_manager_get_widget(spy->ui, "/MenuBar");
- gtk_box_pack_start(GTK_BOX (vbox), menubar, FALSE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX (vbox), spy->visualizer, TRUE, TRUE, 0);
- /* total */
- label = gtk_label_new(_("Total memory size:"));
- gtk_table_attach(GTK_TABLE (table), label,
- 0, 1, i, i + 1,
- 0, GTK_FILL,
- 0, 0);
- gtk_table_attach(GTK_TABLE (table), spy->total_vm_size,
- 1, 2, i, i + 1,
- GTK_FILL | GTK_EXPAND, GTK_FILL,
- 0, 0);
- i++;
- /* used */
- label = gtk_label_new(_("Used memory size:"));
- gtk_table_attach(GTK_TABLE (table), label,
- 0, 1, i, i + 1,
- 0, GTK_FILL,
- 0, 0);
- gtk_table_attach(GTK_TABLE (table), spy->used_vm_size,
- 1, 2, i, i + 1,
- GTK_FILL | GTK_EXPAND, GTK_FILL,
- 0, 0);
- i++;
- /* free */
- label = gtk_label_new(_("Free memory size:"));
- gtk_table_attach(GTK_TABLE (table), label,
- 0, 1, i, i + 1,
- 0, GTK_FILL,
- 0, 0);
- gtk_table_attach(GTK_TABLE (table), spy->free_vm_size,
- 1, 2, i, i + 1,
- GTK_FILL | GTK_EXPAND, GTK_FILL,
- 0, 0);
- i++;
-
- gtk_container_add(GTK_CONTAINER (scrolled), spy->textview);
- gtk_box_pack_start(GTK_BOX (vbox2), scrolled, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX (hbox2), spy->prompt, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX (hbox2), spy->entry, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX (vbox2), hbox2, FALSE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX (hbox), vbox2, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX (hbox), table, FALSE, FALSE, 0);
- gtk_paned_pack1(GTK_PANED (vpaned), vbox, TRUE, FALSE);
- gtk_paned_pack2(GTK_PANED (vpaned), hbox, TRUE, FALSE);
- gtk_box_pack_start(GTK_BOX (vbox3), vpaned, TRUE, TRUE, 0);
- gtk_box_pack_end(GTK_BOX (vbox3), spy->status, FALSE, FALSE, 0);
- gtk_container_add(GTK_CONTAINER (spy->window), vbox3);
-
- /* setup signals */
- g_signal_connect(spy->visualizer, "pool-updated",
- G_CALLBACK (_hgspy_pool_updated_cb), spy);
- g_signal_connect(spy->visualizer, "draw-updated",
- G_CALLBACK (_hgspy_draw_updated_cb), spy);
- g_signal_connect(spy->visualizer, "gc-started",
- G_CALLBACK (_hgspy_gc_started_cb), spy);
- g_signal_connect(spy->visualizer, "gc-finished",
- G_CALLBACK (_hgspy_gc_finished_cb), spy);
- g_signal_connect(spy->window, "delete-event",
- G_CALLBACK (_hgspy_quit_cb), spy);
- g_signal_connect(spy->entry, "activate",
- G_CALLBACK (_hgspy_entry_activate_cb), spy);
-
- gtk_widget_show_all(spy->window);
- gtk_widget_grab_focus(spy->entry);
-
- gdk_threads_enter();
- gtk_main();
- gdk_threads_leave();
-
- if (spy->vm) {
- spy->destroyed = TRUE;
- while (spy->destroyed)
- sleep(1);
- }
-
- /* finalize */
- g_module_close(module);
-
- return 0;
-}
diff --git a/src/hgspy.sh b/src/hgspy.sh
deleted file mode 100755
index 98b3288..0000000
--- a/src/hgspy.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#! /bin/sh
-
-topdir=`dirname $0`
-
-LD_LIBRARY_PATH=$topdir/.libs:$LD_LIBRARY_PATH LD_PRELOAD=$topdir/.libs/libhgspy-helper.so $topdir/.libs/hgspy-bin $@
diff --git a/src/hgspy_helper.c b/src/hgspy_helper.c
deleted file mode 100644
index 7c64386..0000000
--- a/src/hgspy_helper.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * hgspy_helper.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <stdlib.h>
-#include <gmodule.h>
-#include <hieroglyph/hgtypes.h>
-#include <hieroglyph/hgmem.h>
-#include "../hieroglyph/hgallocator-private.h"
-#include "hgspy_helper.h"
-#include "visualizer.h"
-
-
-static gpointer __hg_mem_pool_destroy = NULL;
-static gpointer __hg_mem_pool_add_heap = NULL;
-static gpointer __hg_mem_alloc_with_flags = NULL;
-static gpointer __hg_mem_free = NULL;
-static gpointer __hg_mem_resize = NULL;
-static gpointer __hg_mem_garbage_collection = NULL;
-static GModule *__handle = NULL;
-static GtkWidget *visual = NULL;
-
-/*
- * Private Functions
- */
-static void __attribute__((constructor))
-helper_init(void)
-{
- unsetenv("LD_PRELOAD");
- __handle = g_module_open("libhieroglyph.so", 0);
- if (__handle == NULL) {
- g_warning("Failed g_module_open: %s", g_module_error());
- exit(1);
- }
- if (!g_module_symbol(__handle, "hg_mem_pool_destroy", &__hg_mem_pool_destroy)) {
- g_warning("Failed g_module_symbol: %s", g_module_error());
- exit(1);
- }
- if (!g_module_symbol(__handle, "hg_mem_pool_add_heap", &__hg_mem_pool_add_heap)) {
- g_warning("Failed g_module_symbol: %s", g_module_error());
- exit(1);
- }
- if (!g_module_symbol(__handle, "hg_mem_alloc_with_flags", &__hg_mem_alloc_with_flags)) {
- g_warning("Failed g_module_symbol: %s", g_module_error());
- exit(1);
- }
- if (!g_module_symbol(__handle, "hg_mem_free", &__hg_mem_free)) {
- g_warning("Failed g_module_symbol: %s", g_module_error());
- exit(1);
- }
- if (!g_module_symbol(__handle, "hg_mem_resize", &__hg_mem_resize)) {
- g_warning("Failed g_module_symbol: %s", g_module_error());
- exit(1);
- }
- if (!g_module_symbol(__handle, "hg_mem_garbage_collection", &__hg_mem_garbage_collection)) {
- g_warning("Failed g_module_symbol: %s", g_module_error());
- exit(1);
- }
- g_type_init();
- visual = hg_memory_visualizer_new();
-}
-
-void __attribute__((destructor))
-helper_finalize(void)
-{
- if (__handle)
- g_module_close(__handle);
-}
-
-/*
- * preload functions
- */
-void
-hg_mem_pool_destroy(HgMemPool *pool)
-{
- gchar *pool_name = g_strdup(hg_mem_pool_get_name(pool));
-
- ((void (*) (HgMemPool *))__hg_mem_pool_destroy) (pool);
-
- hg_memory_visualizer_remove_pool(HG_MEMORY_VISUALIZER (visual),
- pool_name);
- g_free(pool_name);
-}
-
-void
-hg_mem_pool_add_heap(HgMemPool *pool,
- HgHeap *heap)
-{
- ((void (*) (HgMemPool *, HgHeap *))__hg_mem_pool_add_heap) (pool, heap);
- hg_memory_visualizer_set_heap_state(HG_MEMORY_VISUALIZER (visual),
- hg_mem_pool_get_name(pool),
- heap);
-}
-
-gpointer
-hg_mem_alloc_with_flags(HgMemPool *pool,
- gsize size,
- guint flags)
-{
- gpointer retval = ((gpointer (*) (HgMemPool *, gsize, guint))
- __hg_mem_alloc_with_flags) (pool, size, flags);
- HgMemObject *obj;
-
- if (retval) {
- hg_mem_get_object__inline(retval, obj);
- if (obj) {
- gint heap_id = HG_MEMOBJ_GET_HEAP_ID (obj);
- GPtrArray *a = obj->pool->heap_list;
- HgHeap *h;
-
- if (a && a->len > 0) {
- h = g_ptr_array_index(a, heap_id);
- hg_memory_visualizer_set_chunk_state(HG_MEMORY_VISUALIZER (visual),
- hg_mem_pool_get_name(obj->pool),
- heap_id,
- (gsize)obj - (gsize)h->heaps,
- hg_mem_get_object_size(retval),
- HG_CHUNK_USED);
- }
- }
- }
-
- return retval;
-}
-
-gboolean
-hg_mem_free(gpointer data)
-{
- HgMemObject *obj;
-
- hg_mem_get_object__inline(data, obj);
- if (obj) {
- gint heap_id = HG_MEMOBJ_GET_HEAP_ID (obj);
- HgHeap *h = g_ptr_array_index(obj->pool->heap_list, heap_id);
-
- hg_memory_visualizer_set_chunk_state(HG_MEMORY_VISUALIZER (visual),
- hg_mem_pool_get_name(obj->pool),
- heap_id,
- (gsize)obj - (gsize)h->heaps,
- hg_mem_get_object_size(data),
- HG_CHUNK_FREE);
- }
-
- return ((gboolean (*) (gpointer))__hg_mem_free) (data);
-}
-
-gpointer
-hg_mem_resize(gpointer data,
- gsize size)
-{
- gpointer retval;
- HgMemObject *obj;
-
- hg_mem_get_object__inline(data, obj);
- if (obj) {
- gint heap_id = HG_MEMOBJ_GET_HEAP_ID (obj);
- HgHeap *h = g_ptr_array_index(obj->pool->heap_list, heap_id);
-
- hg_memory_visualizer_set_chunk_state(HG_MEMORY_VISUALIZER (visual),
- hg_mem_pool_get_name(obj->pool),
- heap_id,
- (gsize)obj - (gsize)h->heaps,
- hg_mem_get_object_size(data),
- HG_CHUNK_FREE);
- }
-
- retval = ((gpointer (*) (gpointer, gsize))__hg_mem_resize) (data, size);
-
- if (retval) {
- hg_mem_get_object__inline(retval, obj);
- if (obj) {
- gint heap_id = HG_MEMOBJ_GET_HEAP_ID (obj);
- HgHeap *h = g_ptr_array_index(obj->pool->heap_list, heap_id);
-
- hg_memory_visualizer_set_chunk_state(HG_MEMORY_VISUALIZER (visual),
- hg_mem_pool_get_name(obj->pool),
- heap_id,
- (gsize)obj - (gsize)h->heaps,
- hg_mem_get_object_size(retval),
- HG_CHUNK_USED);
- }
- }
-
- return retval;
-}
-
-gboolean
-hg_mem_garbage_collection(HgMemPool *pool)
-{
- gboolean retval;
-
- hg_memory_visualizer_notify_gc_state(HG_MEMORY_VISUALIZER (visual), FALSE);
- retval = ((gboolean (*) (HgMemPool *))__hg_mem_garbage_collection) (pool);
- hg_memory_visualizer_notify_gc_state(HG_MEMORY_VISUALIZER (visual), TRUE);
-
- return retval;
-}
-
-/*
- * Public Functions
- */
-GtkWidget *
-hg_spy_helper_get_widget(void)
-{
- return visual;
-}
diff --git a/src/hgspy_helper.h b/src/hgspy_helper.h
deleted file mode 100644
index 974e447..0000000
--- a/src/hgspy_helper.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * hgspy_helper.h
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HG_SPY_HELPER_H__
-#define __HG_SPY_HELPER_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-G_END_DECLS
-
-#endif /* __HG_SPY_HELPER_H__ */
diff --git a/src/visualizer.c b/src/visualizer.c
deleted file mode 100644
index ec276d1..0000000
--- a/src/visualizer.c
+++ /dev/null
@@ -1,848 +0,0 @@
-/*
- * visualizer.c
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <math.h>
-#include <string.h>
-#include <glib/gi18n.h>
-#include <hieroglyph/hgtypes.h>
-#include "../hieroglyph/hgallocator-private.h"
-#include "visualizer.h"
-
-
-enum {
- PROP_0,
- PROP_MAX_SIZE,
-};
-
-enum {
- POOL_UPDATED,
- DRAW_UPDATED,
- GC_STARTED,
- GC_FINISHED,
- LAST_SIGNAL
-};
-
-struct _HgMemoryVisualizerClass {
- GtkMiscClass parent_class;
-
- void (* pool_updated) (HgMemoryVisualizer *visual,
- gpointer list);
- void (* draw_updated) (HgMemoryVisualizer *visual);
- void (* gc_started) (HgMemoryVisualizer *visual);
- void (* gc_finished) (HgMemoryVisualizer *visual);
-};
-
-struct Heap2Offset {
- gsize *heap2offset;
- gchar *bitmaps;
- guint alloc;
- gsize total_size;
-};
-
-struct _HgMemoryVisualizer {
- GtkMisc parent_instance;
-
- /*< private >*/
- gdouble block_size;
- GHashTable *pool2total_size;
- GHashTable *pool2used_size;
- GHashTable *pool2array;
- GSList *pool_name_list;
- gchar *current_pool_name;
- struct Heap2Offset *current_h2o;
- gboolean need_update;
- guint idle_id;
- GdkGC *bg_gc;
- GdkGC *used_gc;
- GdkGC *free_gc;
- GdkGC *used_and_free_gc;
- GdkPixmap *pixmap;
-};
-
-
-static struct Heap2Offset *_heap2offset_new (guint prealloc);
-static void _heap2offset_free (gpointer data);
-static void _hg_memory_visualizer_add_idle (HgMemoryVisualizer *visual);
-static void _hg_memory_visualizer_remove_idle (HgMemoryVisualizer *visual);
-static void _hg_memory_visualizer_create_gc (HgMemoryVisualizer *visual);
-static void _hg_memory_visualizer_redraw_in_pixmap(HgMemoryVisualizer *visual);
-
-
-static GtkMiscClass *parent_class = NULL;
-static guint signals[LAST_SIGNAL] = { 0 };
-
-G_LOCK_DEFINE_STATIC (visualizer);
-
-
-/*
- * Signal handlers
- */
-/* GObject */
-
-/* GtkObject */
-static void
-hg_memory_visualizer_real_destroy(GtkObject *object)
-{
- HgMemoryVisualizer *visual;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (object));
-
- visual = HG_MEMORY_VISUALIZER (object);
- if (visual->pool2total_size) {
- g_hash_table_destroy(visual->pool2total_size);
- visual->pool2total_size = NULL;
- }
- if (visual->pool2used_size) {
- g_hash_table_destroy(visual->pool2used_size);
- visual->pool2used_size = NULL;
- }
- if (visual->pool2array) {
- g_hash_table_destroy(visual->pool2array);
- visual->pool2array = NULL;
- }
- if (visual->pool_name_list) {
- GSList *l;
-
- for (l = visual->pool_name_list; l != NULL; l = g_slist_next(l))
- g_free(l->data);
- g_slist_free(visual->pool_name_list);
- visual->pool_name_list = NULL;
- }
- visual->current_pool_name = NULL;
- visual->current_h2o = NULL;
- _hg_memory_visualizer_remove_idle(visual);
-
- if (visual->bg_gc) {
- g_object_unref(visual->bg_gc);
- visual->bg_gc = NULL;
- }
- if (visual->used_gc) {
- g_object_unref(visual->used_gc);
- visual->used_gc = NULL;
- }
- if (visual->free_gc) {
- g_object_unref(visual->free_gc);
- visual->free_gc = NULL;
- }
- if (visual->used_and_free_gc) {
- g_object_unref(visual->used_and_free_gc);
- visual->used_and_free_gc = NULL;
- }
-
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-/* GtkWidget */
-static void
-hg_memory_visualizer_real_size_request(GtkWidget *widget,
- GtkRequisition *requisition)
-{
- GtkWidget *parent = gtk_widget_get_parent(widget);
-
- requisition->width = widget->requisition.width = parent->requisition.width;
- requisition->height = widget->requisition.height = parent->requisition.height;
-}
-
-static void
-hg_memory_visualizer_real_size_allocate(GtkWidget *widget,
- GtkAllocation *allocation)
-{
- HgMemoryVisualizer *visual;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (widget));
- g_return_if_fail (allocation != NULL);
-
- if (GTK_WIDGET_CLASS (parent_class)->size_allocate)
- (* GTK_WIDGET_CLASS (parent_class)->size_allocate) (widget, allocation);
-
- visual = HG_MEMORY_VISUALIZER (widget);
-
- G_LOCK (visualizer);
-
- _hg_memory_visualizer_redraw_in_pixmap(visual);
-
- G_UNLOCK (visualizer);
-}
-
-static void
-hg_memory_visualizer_real_realize(GtkWidget *widget)
-{
- HgMemoryVisualizer *visual;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (widget));
-
- if (GTK_WIDGET_CLASS (parent_class)->realize)
- (* GTK_WIDGET_CLASS (parent_class)->realize) (widget);
-
- visual = HG_MEMORY_VISUALIZER (widget);
-
- widget->style = gtk_style_attach(widget->style, widget->window);
- gdk_window_set_background(widget->window, &widget->style->base[GTK_WIDGET_STATE (widget)]);
-
- if (visual->bg_gc == NULL ||
- visual->used_gc == NULL ||
- visual->free_gc == NULL ||
- visual->used_and_free_gc == NULL)
- _hg_memory_visualizer_create_gc(visual);
-
- G_LOCK (visualizer);
-
- _hg_memory_visualizer_redraw_in_pixmap(visual);
-
- G_UNLOCK (visualizer);
-}
-
-static void
-hg_memory_visualizer_real_unrealize(GtkWidget *widget)
-{
- HgMemoryVisualizer *visual;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (widget));
-
- visual = HG_MEMORY_VISUALIZER (widget);
-
- _hg_memory_visualizer_remove_idle(visual);
-
- if (visual->bg_gc) {
- g_object_unref(visual->bg_gc);
- visual->bg_gc = NULL;
- }
- if (visual->used_gc) {
- g_object_unref(visual->used_gc);
- visual->used_gc = NULL;
- }
- if (visual->free_gc) {
- g_object_unref(visual->free_gc);
- visual->free_gc = NULL;
- }
- if (visual->used_and_free_gc) {
- g_object_unref(visual->used_and_free_gc);
- visual->used_and_free_gc = NULL;
- }
-
- if (GTK_WIDGET_CLASS (parent_class)->unrealize)
- (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
-}
-
-static void
-hg_memory_visualizer_real_map(GtkWidget *widget)
-{
- HgMemoryVisualizer *visual;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (widget));
-
- if (GTK_WIDGET_CLASS (parent_class)->map)
- (* GTK_WIDGET_CLASS (parent_class)->map) (widget);
-
- visual = HG_MEMORY_VISUALIZER (widget);
-
- if (visual->need_update)
- _hg_memory_visualizer_add_idle(visual);
-}
-
-static void
-hg_memory_visualizer_real_unmap(GtkWidget *widget)
-{
- HgMemoryVisualizer *visual;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (widget));
-
- visual = HG_MEMORY_VISUALIZER (widget);
-
- _hg_memory_visualizer_remove_idle(visual);
-
- if (GTK_WIDGET_CLASS (parent_class)->unmap)
- (* GTK_WIDGET_CLASS (parent_class)->unmap) (widget);
-}
-
-static gboolean
-hg_memory_visualizer_real_expose(GtkWidget *widget,
- GdkEventExpose *event)
-{
- HgMemoryVisualizer *visual;
- GtkMisc *misc;
-
- g_return_val_if_fail (HG_IS_MEMORY_VISUALIZER (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- misc = GTK_MISC (widget);
- visual = HG_MEMORY_VISUALIZER (widget);
-
- if (!GTK_WIDGET_MAPPED (widget))
- return FALSE;
-
- gdk_draw_drawable(widget->window,
- widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
- visual->pixmap,
- event->area.x, event->area.y,
- event->area.x, event->area.y,
- event->area.width, event->area.height);
-
- return FALSE;
-}
-
-/*
- * Private Functions
- */
-static void
-hg_memory_visualizer_class_init(HgMemoryVisualizerClass *klass)
-{
- GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
- parent_class = g_type_class_peek_parent(klass);
-
- /* initialize GObject */
-
- /* initialize GtkObject */
- object_class->destroy = hg_memory_visualizer_real_destroy;
-
- /* initialize GtkWidget */
- widget_class->expose_event = hg_memory_visualizer_real_expose;
- widget_class->realize = hg_memory_visualizer_real_realize;
- widget_class->unrealize = hg_memory_visualizer_real_unrealize;
- widget_class->map = hg_memory_visualizer_real_map;
- widget_class->unmap = hg_memory_visualizer_real_unmap;
- widget_class->size_request = hg_memory_visualizer_real_size_request;
- widget_class->size_allocate = hg_memory_visualizer_real_size_allocate;
-
- /* initialize HgMemoryVisualizer */
-
- /* GObject properties */
-
- /* signals */
- signals[POOL_UPDATED] = g_signal_new("pool-updated",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (HgMemoryVisualizerClass, pool_updated),
- NULL, NULL,
- gtk_marshal_VOID__POINTER,
- G_TYPE_NONE, 1,
- G_TYPE_POINTER);
- signals[DRAW_UPDATED] = g_signal_new("draw-updated",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (HgMemoryVisualizerClass, draw_updated),
- NULL, NULL,
- gtk_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
- signals[GC_STARTED] = g_signal_new("gc-started",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (HgMemoryVisualizerClass, gc_started),
- NULL, NULL,
- gtk_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
- signals[GC_FINISHED] = g_signal_new("gc-finished",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (HgMemoryVisualizerClass, gc_finished),
- NULL, NULL,
- gtk_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-}
-
-static void
-hg_memory_visualizer_instance_init(HgMemoryVisualizer *visual)
-{
- visual->pool2total_size = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
- visual->pool2used_size = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
- visual->pool2array = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, _heap2offset_free);
- visual->pool_name_list = NULL;
- visual->current_pool_name = NULL;
- visual->current_h2o = NULL;
- visual->need_update = FALSE;
- visual->idle_id = 0;
- visual->bg_gc = NULL;
- visual->used_gc = NULL;
- visual->free_gc = NULL;
- visual->used_and_free_gc = NULL;
- visual->pixmap = NULL;
-}
-
-static struct Heap2Offset *
-_heap2offset_new(guint prealloc)
-{
- struct Heap2Offset *retval;
-
- g_return_val_if_fail (prealloc > 0, NULL);
-
- retval = g_new(struct Heap2Offset, 1);
- if (retval != NULL) {
- retval->heap2offset = g_new(gsize, prealloc);
- retval->bitmaps = NULL;
- retval->alloc = prealloc;
- retval->total_size = 0;
- }
-
- return retval;
-}
-
-static void
-_heap2offset_free(gpointer data)
-{
- struct Heap2Offset *p = data;
-
- if (p->heap2offset)
- g_free(p->heap2offset);
- if (p->bitmaps)
- g_free(p->bitmaps);
- g_free(data);
-}
-
-static gboolean
-_hg_memory_visualizer_idle_handler_cb(gpointer data)
-{
- HgMemoryVisualizer *visual;
-
- visual = HG_MEMORY_VISUALIZER (data);
-
- G_LOCK (visualizer);
-
- _hg_memory_visualizer_redraw_in_pixmap(visual);
-
- gtk_widget_queue_draw(GTK_WIDGET (visual));
-
- visual->idle_id = 0;
- visual->need_update = FALSE;
-
- G_UNLOCK (visualizer);
-
- g_signal_emit(visual, signals[DRAW_UPDATED], 0);
-
- return FALSE;
-}
-
-static void
-_hg_memory_visualizer_add_idle(HgMemoryVisualizer *visual)
-{
- g_return_if_fail (visual->need_update);
-
- if (!visual->idle_id) {
- visual->idle_id = gtk_idle_add(_hg_memory_visualizer_idle_handler_cb, visual);
- }
-}
-
-static void
-_hg_memory_visualizer_remove_idle(HgMemoryVisualizer *visual)
-{
- if (visual->idle_id != 0) {
- gtk_idle_remove(visual->idle_id);
- visual->idle_id = 0;
- }
-}
-
-static void
-_hg_memory_visualizer_create_gc(HgMemoryVisualizer *visual)
-{
- GdkGCValues values;
-
- gdk_color_black(gdk_colormap_get_system(), &values.background);
- visual->bg_gc = gdk_gc_new_with_values(GTK_WIDGET (visual)->window, &values,
- GDK_GC_BACKGROUND);
- values.foreground.pixel = 0;
- values.foreground.red = 0;
- values.foreground.green = 0;
- values.foreground.blue = 32768;
- gdk_colormap_alloc_color(gdk_colormap_get_system(), &values.foreground, FALSE, FALSE);
- visual->free_gc = gdk_gc_new_with_values(GTK_WIDGET (visual)->window, &values,
- GDK_GC_FOREGROUND);
- values.foreground.pixel = 0;
- values.foreground.red = 32768;
- values.foreground.green = 0;
- values.foreground.blue = 0;
- gdk_colormap_alloc_color(gdk_colormap_get_system(), &values.foreground, FALSE, FALSE);
- visual->used_gc = gdk_gc_new_with_values(GTK_WIDGET (visual)->window, &values,
- GDK_GC_FOREGROUND);
- values.foreground.pixel = 0;
- values.foreground.red = 32768;
- values.foreground.green = 0;
- values.foreground.blue = 32768;
- gdk_colormap_alloc_color(gdk_colormap_get_system(), &values.foreground, FALSE, FALSE);
- visual->used_and_free_gc = gdk_gc_new_with_values(GTK_WIDGET (visual)->window, &values,
- GDK_GC_FOREGROUND);
-}
-
-static void
-_hg_memory_visualizer_redraw_in_pixmap(HgMemoryVisualizer *visual)
-{
- GtkWidget *widget = GTK_WIDGET (visual);
- GtkMisc *misc = GTK_MISC (visual);
- gint i, j, base_x, base_y, x, y, width, height, base_scale, block_size, area;
-
- if (GTK_WIDGET_REALIZED (widget)) {
- if (visual->pixmap)
- g_object_unref(G_OBJECT (visual->pixmap));
- visual->pixmap = gdk_pixmap_new(widget->window,
- widget->allocation.width,
- widget->allocation.height,
- -1);
- base_x = x = misc->xpad;
- base_y = y = misc->ypad;
- width = widget->allocation.width - misc->xpad;
- height = widget->allocation.height - misc->ypad;
- area = (gdouble)(width - base_x) * (gdouble)(height - base_y);
- /* draw a background */
- gdk_draw_rectangle(visual->pixmap,
- visual->bg_gc,
- TRUE,
- x, y, width, height);
- /* draw a memory images */
- if (visual->current_h2o) {
- struct Heap2Offset *h2o = visual->current_h2o;
- gint _used = 0, _free = 0, _scale;
- GdkGC *gc;
-
- if (area >= h2o->total_size) {
- block_size = (gint)sqrt(area / h2o->total_size);
- base_scale = 1;
- } else {
- base_scale = (gint)(1 / sqrt((gdouble)area / (gdouble)h2o->total_size));
- base_scale *= base_scale;
- block_size = 1;
- }
- _scale = base_scale;
- for (i = 0; i < h2o->total_size / 8; i++) {
- for (j = 7; j >= 0; j--) {
- if ((x + block_size) > width) {
- x = base_x;
- y += block_size;
- }
- if ((h2o->bitmaps[i] & (1 << j)) != 0) {
- _used++;
- } else {
- _free++;
- }
- _scale--;
- if (_scale == 0) {
- if (_used > 0 && _free == 0)
- gc = visual->used_gc;
- else if (_used == 0 && _free > 0)
- gc = visual->free_gc;
- else
- gc = visual->used_and_free_gc;
- gdk_draw_rectangle(visual->pixmap,
- gc,
- TRUE,
- x, y,
- block_size, block_size);
- x += block_size;
- _scale = base_scale;
- _used = 0;
- _free = 0;
- }
- }
- }
- }
- visual->need_update = TRUE;
- _hg_memory_visualizer_add_idle(visual);
- }
-}
-
-static gint
-_hg_memory_visualizer_compare_pool_name_list(gconstpointer a,
- gconstpointer b)
-{
- return strcmp(a, b);
-}
-
-/*
- * Public Functions
- */
-GType
-hg_memory_visualizer_get_type(void)
-{
- static GType mv_type = 0;
-
- if (!mv_type) {
- static const GTypeInfo mv_info = {
- .class_size = sizeof (HgMemoryVisualizerClass),
- .base_init = NULL,
- .base_finalize = NULL,
- .class_init = (GClassInitFunc)hg_memory_visualizer_class_init,
- .class_finalize = NULL,
- .class_data = NULL,
- .instance_size = sizeof (HgMemoryVisualizer),
- .n_preallocs = 0,
- .instance_init = (GInstanceInitFunc)hg_memory_visualizer_instance_init,
- .value_table = NULL,
- };
-
- mv_type = g_type_register_static(GTK_TYPE_MISC, "HgMemoryVisualizer",
- &mv_info, 0);
- }
-
- return mv_type;
-}
-
-GtkWidget *
-hg_memory_visualizer_new(void)
-{
- return GTK_WIDGET (g_object_new(HG_TYPE_MEMORY_VISUALIZER, NULL));
-}
-
-void
-hg_memory_visualizer_set_max_size(HgMemoryVisualizer *visual,
- const gchar *name,
- gsize size)
-{
- struct Heap2Offset *h2o;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (name != NULL);
-
- g_hash_table_insert(visual->pool2total_size, g_strdup(name), GSIZE_TO_POINTER (size));
- if ((h2o = g_hash_table_lookup(visual->pool2array, name)) == NULL) {
- h2o = _heap2offset_new(256);
- g_hash_table_insert(visual->pool2array, g_strdup(name), h2o);
- }
- if (h2o->bitmaps) {
- if (size > h2o->total_size) {
- gpointer p = g_realloc(h2o->bitmaps, sizeof (gchar) * ((size + 8) / 8));
- if (p == NULL) {
- g_warning("Failed to allocate a memory for bitmaps.");
- return;
- }
- h2o->bitmaps = p;
- memset((void *)((gsize)h2o->bitmaps + (h2o->total_size / 8)),
- 0,
- (size - h2o->total_size) / 8);
- }
- } else {
- h2o->bitmaps = g_new0(gchar, (size + 8) / 8);
- }
- h2o->total_size = size;
-}
-
-gsize
-hg_memory_visualizer_get_max_size(HgMemoryVisualizer *visual,
- const gchar *name)
-{
- g_return_val_if_fail (HG_IS_MEMORY_VISUALIZER (visual), 0);
- g_return_val_if_fail (name != NULL, 0);
-
- return GPOINTER_TO_SIZE (g_hash_table_lookup(visual->pool2total_size, name));
-}
-
-void
-hg_memory_visualizer_set_heap_state(HgMemoryVisualizer *visual,
- const gchar *name,
- HgHeap *heap)
-{
- gsize current_size;
- struct Heap2Offset *h2o;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (name != NULL);
- g_return_if_fail (heap != NULL);
-
- if ((h2o = g_hash_table_lookup(visual->pool2array, name)) == NULL) {
- h2o = _heap2offset_new(256);
- g_hash_table_insert(visual->pool2array, g_strdup(name), h2o);
- }
- current_size = hg_memory_visualizer_get_max_size(visual, name);
- if (heap->serial >= h2o->alloc) {
- gpointer p = g_realloc(h2o->heap2offset,
- sizeof (gsize) * (heap->serial + 256));
-
- if (p == NULL) {
- g_warning("Failed to allocate a memory for heap.");
- return;
- }
- h2o->heap2offset = p;
- h2o->alloc = heap->serial + 256;
- }
- h2o->heap2offset[heap->serial] = current_size;
- hg_memory_visualizer_set_max_size(visual, name, current_size + heap->total_heap_size);
- if (g_slist_find_custom(visual->pool_name_list,
- name,
- _hg_memory_visualizer_compare_pool_name_list) == NULL) {
- visual->pool_name_list = g_slist_append(visual->pool_name_list,
- g_strdup(name));
- }
- if (visual->current_pool_name == NULL) {
- visual->current_pool_name = g_strdup(name);
- visual->current_h2o = h2o;
- }
-
- gdk_threads_enter();
- g_signal_emit(visual, signals[POOL_UPDATED], 0, visual->pool_name_list);
- gdk_threads_leave();
-}
-
-void
-hg_memory_visualizer_remove_pool(HgMemoryVisualizer *visual,
- const gchar *name)
-{
- GSList *l;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (name != NULL);
-
- if ((l = g_slist_find_custom(visual->pool_name_list,
- name,
- _hg_memory_visualizer_compare_pool_name_list)) == NULL) {
- g_warning("pool %s isn't registered.", name);
- return;
- }
-
- G_LOCK (visualizer);
-
- g_hash_table_remove(visual->pool2total_size, name);
- g_hash_table_remove(visual->pool2used_size, name);
- g_hash_table_remove(visual->pool2array, name);
- g_free(l->data);
- visual->pool_name_list = g_slist_delete_link(visual->pool_name_list, l);
-
- G_UNLOCK (visualizer);
-
- if (strcmp(name, visual->current_pool_name) == 0) {
- const gchar *pool_name;
-
- if (visual->pool_name_list)
- pool_name = visual->pool_name_list->data;
- else
- pool_name = "";
- hg_memory_visualizer_change_pool(visual, pool_name);
- }
-}
-
-void
-hg_memory_visualizer_set_chunk_state(HgMemoryVisualizer *visual,
- const gchar *name,
- gint heap_id,
- gsize offset,
- gsize size,
- HgMemoryChunkState state)
-{
- struct Heap2Offset *h2o;
- gsize base, location, start, end, i, used_size;
- gint bit;
-
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (name != NULL);
-
- h2o = g_hash_table_lookup(visual->pool2array, name);
- if (h2o == NULL) {
- g_warning("Unknown pool found (pool: %s)\n", name);
- return;
- }
- base = h2o->heap2offset[heap_id];
- start = base + offset;
- end = start + size;
-
- G_LOCK (visualizer);
-
- used_size = hg_memory_visualizer_get_used_size(visual, name);
- for (i = start; i < end; i++) {
- location = i / 8;
- bit = 7 - (i % 8);
- switch (state) {
- case HG_CHUNK_FREE:
- h2o->bitmaps[location] &= ~(1 << bit);
- if (i == start)
- used_size -= size;
- break;
- case HG_CHUNK_USED:
- h2o->bitmaps[location] |= (1 << bit);
- if (i == start)
- used_size += size;
- break;
- default:
- break;
- }
- }
- g_hash_table_insert(visual->pool2used_size, g_strdup(name), GSIZE_TO_POINTER (used_size));
-
- if (strcmp(name, visual->current_pool_name) == 0) {
- visual->need_update = TRUE;
- _hg_memory_visualizer_add_idle(visual);
- }
- G_UNLOCK (visualizer);
-}
-
-void
-hg_memory_visualizer_change_pool(HgMemoryVisualizer *visual,
- const gchar *name)
-{
- g_return_if_fail (HG_IS_MEMORY_VISUALIZER (visual));
- g_return_if_fail (name != NULL);
-
- G_LOCK (visualizer);
-
- if (g_slist_find(visual->pool_name_list, name) != NULL) {
- if (visual->current_pool_name)
- g_free(visual->current_pool_name);
- visual->current_pool_name = g_strdup(name);
- visual->current_h2o = g_hash_table_lookup(visual->pool2array, name);
- } else {
- /* send a signal to update the out of date list */
- if (visual->current_pool_name)
- g_free(visual->current_pool_name);
- visual->current_pool_name = NULL;
- visual->current_h2o = NULL;
-
- g_signal_emit(visual, signals[POOL_UPDATED], 0, visual->pool_name_list);
- }
- visual->need_update = TRUE;
- _hg_memory_visualizer_add_idle(visual);
-
- G_UNLOCK (visualizer);
-}
-
-gsize
-hg_memory_visualizer_get_used_size(HgMemoryVisualizer *visual,
- const gchar *name)
-{
- g_return_val_if_fail (HG_IS_MEMORY_VISUALIZER (visual), 0);
- g_return_val_if_fail (name != NULL, 0);
-
- return GPOINTER_TO_SIZE (g_hash_table_lookup(visual->pool2used_size, name));
-}
-
-const gchar *
-hg_memory_visualizer_get_current_pool_name(HgMemoryVisualizer *visual)
-{
- return visual->current_pool_name;
-}
-
-void
-hg_memory_visualizer_notify_gc_state(HgMemoryVisualizer *visual,
- gboolean is_finished)
-{
- gdk_threads_enter();
- if (is_finished)
- g_signal_emit(visual, signals[GC_FINISHED], 0);
- else
- g_signal_emit(visual, signals[GC_STARTED], 0);
- gdk_threads_leave();
-
- G_LOCK (visualizer);
-
- visual->need_update = TRUE;
- _hg_memory_visualizer_add_idle(visual);
-
- G_UNLOCK (visualizer);
-}
diff --git a/src/visualizer.h b/src/visualizer.h
deleted file mode 100644
index f8e0c3a..0000000
--- a/src/visualizer.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * visualizer.h
- * Copyright (C) 2006 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <at@gclab.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __VISUALIZER_H__
-#define __VISUALIZER_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define HG_TYPE_MEMORY_VISUALIZER (hg_memory_visualizer_get_type())
-#define HG_MEMORY_VISUALIZER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), HG_TYPE_MEMORY_VISUALIZER, HgMemoryVisualizer))
-#define HG_MEMORY_VISUALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), HG_TYPE_MEMORY_VISUALIZER, HgMemoryVisualizerClass))
-#define HG_IS_MEMORY_VISUALIZER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HG_TYPE_MEMORY_VISUALIZER))
-#define HG_IS_MEMORY_VISUALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HG_TYPE_MEMORY_VISUALIZER))
-#define HG_MEMORY_VISUALIZER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), HG_TYPE_MEMORY_VISUALIZER, HgMemoryVisualizerClass))
-
-
-typedef struct _HgMemoryVisualizerClass HgMemoryVisualizerClass;
-typedef struct _HgMemoryVisualizer HgMemoryVisualizer;
-typedef enum _HgMemoryChunkState HgMemoryChunkState;
-
-
-enum _HgMemoryChunkState {
- HG_CHUNK_FREE,
- HG_CHUNK_USED,
-};
-
-
-GType hg_memory_visualizer_get_type (void) G_GNUC_CONST;
-GtkWidget *hg_memory_visualizer_new (void);
-void hg_memory_visualizer_set_max_size (HgMemoryVisualizer *visual,
- const gchar *name,
- gsize size);
-gsize hg_memory_visualizer_get_max_size (HgMemoryVisualizer *visual,
- const gchar *name);
-void hg_memory_visualizer_set_heap_state (HgMemoryVisualizer *visual,
- const gchar *name,
- HgHeap *heap);
-void hg_memory_visualizer_remove_pool (HgMemoryVisualizer *visual,
- const gchar *name);
-void hg_memory_visualizer_set_chunk_state (HgMemoryVisualizer *visual,
- const gchar *name,
- gint heap_id,
- gsize offset,
- gsize size,
- HgMemoryChunkState state);
-void hg_memory_visualizer_change_pool (HgMemoryVisualizer *visual,
- const gchar *name);
-gsize hg_memory_visualizer_get_used_size (HgMemoryVisualizer *visual,
- const gchar *name);
-const gchar *hg_memory_visualizer_get_current_pool_name(HgMemoryVisualizer *visual);
-void hg_memory_visualizer_notify_gc_state (HgMemoryVisualizer *visual,
- gboolean is_finished);
-
-
-G_END_DECLS
-
-#endif /* __VISUALIZER_H__ */
diff --git a/tests/Makefile.am b/tests/Makefile.am
deleted file mode 100644
index 3a742ad..0000000
--- a/tests/Makefile.am
+++ /dev/null
@@ -1,64 +0,0 @@
-NULL =
-SUBDIRS =
-
-INCLUDES = \
- -I$(top_srcdir)/hieroglyph \
- $(HG_CFLAGS) \
- $(CHECK_CFLAGS) \
- $(NULL)
-DEPS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(NULL)
-LDADDS = \
- $(top_builddir)/hieroglyph/libhieroglyph.la \
- $(CHECK_LIBS) \
- $(NULL)
-
-noinst_PROGRAMS = \
- test-hgobject \
- test-hgarray \
- test-hgdict \
- test-hgfile \
- test-hgstack \
- test-hgstring \
- $(NULL)
-
-test_hgobject_SOURCES = \
- main.c \
- hgobject.c \
- $(NULL)
-test_hgobject_LDADD = $(LDADDS)
-test_hgarray_SOURCES = \
- main.c \
- hgarray.c \
- $(NULL)
-test_hgarray_LDADD = $(LDADDS)
-test_hgdict_SOURCES = \
- main.c \
- hgdict.c \
- $(NULL)
-test_hgdict_LDADD = $(LDADDS)
-test_hgfile_SOURCES = \
- main.c \
- hgfile.c \
- $(NULL)
-test_hgfile_LDADD = $(LDADDS)
-test_hgstack_SOURCES = \
- main.c \
- hgstack.c \
- $(NULL)
-test_hgstack_LDADD = $(LDADDS)
-test_hgstring_SOURCES = \
- main.c \
- hgstring.c \
- $(NULL)
-test_hgstring_LDADD = $(LDADDS)
-
-TESTS = \
- test-hgobject \
- test-hgarray \
- test-hgdict \
- test-hgfile \
- test-hgstack \
- test-hgstring \
- $(NULL)
diff --git a/tests/hgarray.c b/tests/hgarray.c
deleted file mode 100644
index b933014..0000000
--- a/tests/hgarray.c
+++ /dev/null
@@ -1,460 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgarray.c
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <hieroglyph/hgarray.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "main.h"
-
-
-hg_vm_t *vm;
-hg_object_t *obj;
-
-void
-setup(void)
-{
- vm = hg_vm_new();
-}
-
-void
-teardown(void)
-{
- hg_vm_destroy(vm);
-}
-
-/* array object */
-TDEF (hg_object_array_new)
-{
- obj = hg_object_array_new(vm, 10);
-
- TNUL (obj);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj) == 1, "The amount of the object is different.");
- fail_unless(HG_OBJECT_IS_ARRAY (obj), "Object isn't an array.");
- fail_unless(HG_OBJECT_ARRAY (obj)->length == 10, "The amount of the array is different.");
-
- hg_object_free(vm, obj);
-
- obj = hg_object_array_new(vm, 0);
-
- TNUL (obj);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj) == 1, "The amount of the object is different.");
- fail_unless(HG_OBJECT_IS_ARRAY (obj), "Object isn't an array.");
- fail_unless(HG_OBJECT_ARRAY (obj)->length == 0, "The amount of the array is different.");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-TDEF (hg_object_array_subarray_new)
-{
- gboolean flag;
- hg_object_t *obj2;
-
- obj = hg_object_array_new(vm, 10);
-
- TNUL (obj);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj) == 1, "The amount of the object is different.");
- fail_unless(HG_OBJECT_IS_ARRAY (obj), "Object isn't an array.");
- fail_unless(HG_OBJECT_ARRAY (obj)->length == 10, "The amount of the array is different.");
-
- obj2 = hg_object_array_subarray_new(vm, obj, 5, 5);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj2) == 1, "The amount of the object is different.");
- fail_unless(HG_OBJECT_IS_ARRAY (obj2), "Object isn't an array.");
- fail_unless(HG_OBJECT_ARRAY (obj2)->length == 0, "The amount of the array is different.");
- fail_unless(HG_OBJECT_ARRAY (obj2)->real_length == 5, "The amount of the array is different.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- obj = hg_object_new(vm, 1);
-
- TNUL (obj);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj) == 1, "The amount of the object is different.");
-
- if (hg_is_stacktrace_enabled)
- flag = hg_is_stacktrace_enabled();
- hg_use_stacktrace(FALSE);
- hg_quiet_warning_messages(TRUE);
- obj2 = hg_object_array_subarray_new(vm, obj, 0, 0);
- if (hg_is_stacktrace_enabled)
- hg_use_stacktrace(flag);
- hg_quiet_warning_messages(FALSE);
-
- fail_unless(obj2 == NULL, "Not allowed to create an array object without the parent array object.");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-TDEF (hg_object_array_put)
-{
- hg_object_t *obj2, *obj3;
- gboolean retval;
-
- obj = hg_object_array_new(vm, 5);
-
- TNUL (obj);
-
- obj2 = hg_object_boolean_new(vm, TRUE);
-
- TNUL (obj2);
- fail_unless(HG_OBJECT_IS_BOOLEAN (obj2), "Failed to create a boolean object");
-
- retval = hg_object_array_put(vm, obj, obj2, 0);
- fail_unless(retval == TRUE, "Failed to put an object to the array");
- fail_unless(((hg_object_t **)HG_OBJECT_ARRAY_DATA (obj)->array)[0] == obj2, "Failed to put an object to the array expectedly");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- obj = hg_object_array_new(vm, 10);
-
- TNUL (obj);
-
- obj2 = hg_object_array_subarray_new(vm, obj, 5, 5);
-
- TNUL (obj2);
-
- obj3 = hg_object_boolean_new(vm, TRUE);
-
- TNUL (obj3);
-
- retval = hg_object_array_put(vm, obj2, obj3, 0);
- fail_unless(retval == TRUE, "Failed to put an object to the sub array");
- fail_unless(((hg_object_t **)HG_OBJECT_ARRAY_DATA (obj2)->array)[0] == obj3, "Failed to put an object to the sub array expectedly");
- fail_unless(((hg_object_t **)HG_OBJECT_ARRAY_DATA (obj)->array)[5] == obj3, "Failed to sync between the array and the sub array on putting an object");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj3);
-}
-TEND
-
-TDEF (hg_object_array_get)
-{
- hg_object_t *obj2, *obj3;
- gboolean retval;
-
- obj = hg_object_array_new(vm, 10);
- TNUL (obj);
-
- obj2 = hg_object_boolean_new(vm, TRUE);
- TNUL (obj2);
-
- retval = hg_object_array_put(vm, obj, obj2, 0);
- fail_unless(retval == TRUE, "Failed to put an object to the array");
-
- obj3 = hg_object_array_get(vm, obj, 0);
- fail_unless(obj3 != NULL, "Failed to get an object from the array");
- fail_unless(hg_object_compare(obj2, obj3), "Failed to get an expected object from the array");
- fail_unless(obj2 != obj3, "Object has to be new one");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj3);
-
- obj = hg_object_array_new(vm, 10);
- TNUL (obj);
-
- obj2 = hg_object_array_new(vm, 5);
- TNUL (obj2);
-
- retval = hg_object_array_put(vm, obj, obj2, 0);
- fail_unless(retval == TRUE, "Failed to put an object to the array");
-
- obj3 = hg_object_array_get(vm, obj, 0);
- fail_unless(obj3 != NULL, "Failed to get an object from the array");
- fail_unless(hg_object_compare(obj2, obj3), "Failed to get an expected object from the array");
- fail_unless(obj2 == obj3, "Have to return the same object for the complex object");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-}
-TEND
-
-TDEF (hg_object_array_get_const)
-{
- hg_object_t *obj2, *obj3;
- gboolean retval;
-
- obj = hg_object_array_new(vm, 10);
- TNUL (obj);
-
- obj2 = hg_object_boolean_new(vm, TRUE);
- TNUL (obj2);
-
- retval = hg_object_array_put(vm, obj, obj2, 0);
- fail_unless(retval == TRUE, "Failed to put an object to the array");
-
- obj3 = hg_object_array_get_const(obj, 0);
- fail_unless(obj3 != NULL, "Failed to get an object from the array");
- fail_unless(hg_object_compare(obj2, obj3), "Failed to get an expected object from the array");
- fail_unless(obj2 == obj3, "Object has to be the same");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- obj = hg_object_array_new(vm, 10);
- TNUL (obj);
-
- obj2 = hg_object_array_new(vm, 5);
- TNUL (obj2);
-
- retval = hg_object_array_put(vm, obj, obj2, 0);
- fail_unless(retval == TRUE, "Failed to put an object to the array");
-
- obj3 = hg_object_array_get_const(obj, 0);
- fail_unless(obj3 != NULL, "Failed to get an object from the array");
- fail_unless(hg_object_compare(obj2, obj3), "Failed to get an expected object from the array");
- fail_unless(obj2 == obj3, "Have to return the same object for the complex object");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-}
-TEND
-
-TDEF (hg_object_array_compare)
-{
- hg_object_t *obj_, *obj1, *obj1_, *obj2, *obj2_;
- gboolean r, r_;
-
- obj = hg_object_array_new(vm, 2);
- obj_ = hg_object_array_new(vm, 2);
-
- TNUL (obj);
- TNUL (obj_);
-
- obj1 = hg_object_boolean_new(vm, TRUE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
-
- TNUL (obj1);
- TNUL (obj1_);
-
- obj2 = hg_object_integer_new(vm, 10);
- obj2_ = hg_object_integer_new(vm, 10);
-
- TNUL (obj2);
- TNUL (obj2_);
-
- r = hg_object_array_put(vm, obj, obj1, 0);
- r_ = hg_object_array_put(vm, obj_, obj1_, 0);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- r = hg_object_array_put(vm, obj, obj2, 1);
- r_ = hg_object_array_put(vm, obj_, obj2_, 1);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- fail_unless(hg_object_array_compare(obj, obj_), "Failed to compare the objects");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj_);
- hg_object_free(vm, obj1);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj2_);
-
- /* check failing pattern */
- obj = hg_object_array_new(vm, 2);
- obj_ = hg_object_array_new(vm, 2);
-
- TNUL (obj);
- TNUL (obj_);
-
- obj1 = hg_object_boolean_new(vm, TRUE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
-
- TNUL (obj1);
- TNUL (obj1_);
-
- obj2 = hg_object_integer_new(vm, 10);
- obj2_ = hg_object_integer_new(vm, 1);
-
- TNUL (obj2);
- TNUL (obj2_);
-
- r = hg_object_array_put(vm, obj, obj1, 0);
- r_ = hg_object_array_put(vm, obj_, obj1_, 0);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- r = hg_object_array_put(vm, obj, obj2, 1);
- r_ = hg_object_array_put(vm, obj_, obj2_, 1);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- fail_unless(!hg_object_array_compare(obj, obj_), "Failed to compare the objects");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj_);
- hg_object_free(vm, obj1);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj2_);
-
- /* check with the complex object */
- obj = hg_object_array_new(vm, 2);
- obj_ = hg_object_array_new(vm, 2);
-
- TNUL (obj);
- TNUL (obj_);
-
- obj1 = hg_object_boolean_new(vm, TRUE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
-
- TNUL (obj1);
- TNUL (obj1_);
-
- obj2 = hg_object_array_new(vm, 0);
- obj2_ = hg_object_array_new(vm, 0);
-
- TNUL (obj2);
- TNUL (obj2_);
-
- r = hg_object_array_put(vm, obj, obj1, 0);
- r_ = hg_object_array_put(vm, obj_, obj1_, 0);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- r = hg_object_array_put(vm, obj, obj2, 1);
- r_ = hg_object_array_put(vm, obj_, obj2_, 1);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- fail_unless(hg_object_array_compare(obj, obj_), "Failed to compare the objects");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj_);
- hg_object_free(vm, obj1);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj2_);
-
- /* check the circular reference */
- obj = hg_object_array_new(vm, 2);
- obj_ = hg_object_array_new(vm, 2);
-
- TNUL (obj);
- TNUL (obj_);
-
- obj1 = hg_object_boolean_new(vm, TRUE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
-
- TNUL (obj1);
- TNUL (obj1_);
-
- obj2 = obj;
- obj2_ = obj_;
-
- r = hg_object_array_put(vm, obj, obj1, 0);
- r_ = hg_object_array_put(vm, obj_, obj1_, 0);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- r = hg_object_array_put(vm, obj, obj2, 1);
- r_ = hg_object_array_put(vm, obj_, obj2_, 1);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- fail_unless(hg_object_array_compare(obj, obj_), "Failed to compare the objects");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj_);
- hg_object_free(vm, obj1);
- hg_object_free(vm, obj1_);
-
- /* check the circular reference (failing pattern) */
- obj = hg_object_array_new(vm, 2);
- obj_ = hg_object_array_new(vm, 2);
-
- TNUL (obj);
- TNUL (obj_);
-
- obj1 = hg_object_boolean_new(vm, TRUE);
- obj1_ = hg_object_boolean_new(vm, FALSE);
-
- TNUL (obj1);
- TNUL (obj1_);
-
- obj2 = obj;
- obj2_ = obj_;
-
- r = hg_object_array_put(vm, obj, obj1, 0);
- r_ = hg_object_array_put(vm, obj_, obj1_, 0);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- r = hg_object_array_put(vm, obj, obj2, 1);
- r_ = hg_object_array_put(vm, obj_, obj2_, 1);
-
- fail_unless(r, "Failed to put an object to the array");
- fail_unless(r_, "Failed to put an object to the array");
-
- fail_unless(!hg_object_array_compare(obj, obj_), "Failed to compare the objects");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj_);
- hg_object_free(vm, obj1);
- hg_object_free(vm, obj1_);
-}
-TEND
-
-TDEF (hg_object_array_dump)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-/************************************************************/
-Suite *
-hieroglyph_suite(void)
-{
- Suite *s = suite_create("hg_array_t");
- TCase *tc = tcase_create("Generic Functionalities");
-
- tcase_add_checked_fixture(tc, setup, teardown);
- T (hg_object_array_new);
- T (hg_object_array_subarray_new);
- T (hg_object_array_put);
- T (hg_object_array_get);
- T (hg_object_array_get_const);
- T (hg_object_array_compare);
- T (hg_object_array_dump);
-
- suite_add_tcase(s, tc);
-
- return s;
-}
diff --git a/tests/hgdict.c b/tests/hgdict.c
deleted file mode 100644
index 84f1db2..0000000
--- a/tests/hgdict.c
+++ /dev/null
@@ -1,489 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgdict.c
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <hieroglyph/hgdict.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "main.h"
-
-
-hg_vm_t *vm;
-hg_object_t *obj;
-
-void
-setup(void)
-{
- vm = hg_vm_new();
-}
-
-void
-teardown(void)
-{
- hg_vm_destroy(vm);
-}
-
-/* dict object */
-TDEF (hg_object_dict_new)
-{
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
- fail_unless(HG_OBJECT_IS_DICT (obj), "Object isn't a dict object");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-TDEF (hg_object_dict_compare)
-{
- hg_object_t *obj2;
-
- obj = hg_object_dict_new(vm, 10);
- obj2 = hg_object_dict_new(vm, 10);
-
- TNUL (obj);
- TNUL (obj2);
- fail_unless(!hg_object_dict_compare(obj, obj2), "Different allocation has to be failed");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- obj = hg_object_dict_new(vm, 10);
- obj2 = hg_object_dup(vm, obj);
-
- TNUL (obj);
- TNUL (obj2);
- fail_unless(hg_object_dict_compare(obj, obj2), "Failed to compare the dict objects");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-TDEF (hg_object_dict_dump)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-TDEF (hg_object_dict_insert)
-{
- hg_object_t *obj1, *obj1_, *obj2, *obj2_, *obj3, *obj3_, *obj4, *obj4_, *obj_;
- gboolean allocmode = hg_vm_get_current_allocation_mode(vm);
-
- /* objects allocated from the global pool */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
-
- obj1 = hg_object_name_new(vm, "bool", FALSE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
- obj2 = hg_object_name_new(vm, "int", FALSE);
- obj2_ = hg_object_integer_new(vm, 10);
- obj3 = hg_object_name_new(vm, "name", FALSE);
- obj3_ = hg_object_name_new(vm, "foo", FALSE);
- TNUL (obj1);
- TNUL (obj1_);
- TNUL (obj2);
- TNUL (obj2_);
- TNUL (obj3);
- TNUL (obj3_);
-
- fail_unless(hg_object_dict_insert(obj, obj1, obj1_), "Failed to insert an object (bool)");
- fail_unless(hg_object_dict_insert(obj, obj2, obj2_), "Failed to insert an object (int)");
- fail_unless(hg_object_dict_insert(obj, obj3, obj3_), "Failed to insert an object (named)");
-
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj1)) != NULL, "Failed to look up the object (bool)");
- fail_unless(hg_object_compare(obj1_, obj_), "Failed to compare the object after looking up (bool)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj2)) != NULL, "Failed to look up the object (int)");
- fail_unless(hg_object_compare(obj2_, obj_), "Failed to compare the object after looking up (int)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj3)) != NULL, "Failed to look up the object (named)");
- fail_unless(hg_object_compare(obj3_, obj_), "Failed to compare the object after looking up (named)");
-
- /* Insert object allocated in the local pool to the global object */
- hg_vm_set_current_allocation_mode(vm, FALSE);
-
- obj4 = hg_object_name_new(vm, "bool2", FALSE);
- obj4_ = hg_object_boolean_new(vm, TRUE);
- TNUL (obj4);
- TNUL (obj4_);
- fail_unless(!hg_object_dict_insert(obj, obj4, obj4_), "Have to fail inserting the local object into the global object.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj4_);
- hg_object_free(vm, obj4);
- hg_object_free(vm, obj3_);
- hg_object_free(vm, obj3);
- hg_object_free(vm, obj2_);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* objects allocated from the local pool */
- hg_vm_set_current_allocation_mode(vm, FALSE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
- fail_unless(!HG_OBJECT_ATTR_IS_GLOBAL (obj), "Object wasn't allocated from the local pool.");
-
- obj1 = hg_object_name_new(vm, "bool", FALSE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
- obj2 = hg_object_name_new(vm, "int", FALSE);
- obj2_ = hg_object_integer_new(vm, 10);
- obj3 = hg_object_name_new(vm, "name", FALSE);
- obj3_ = hg_object_name_new(vm, "foo", FALSE);
- TNUL (obj1);
- TNUL (obj1_);
- TNUL (obj2);
- TNUL (obj2_);
- TNUL (obj3);
- TNUL (obj3_);
-
- fail_unless(hg_object_dict_insert(obj, obj1, obj1_), "Failed to insert an object (bool)");
- fail_unless(hg_object_dict_insert(obj, obj2, obj2_), "Failed to insert an object (int)");
- fail_unless(hg_object_dict_insert(obj, obj3, obj3_), "Failed to insert an object (named)");
-
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj1)) != NULL, "Failed to look up the object (bool)");
- fail_unless(hg_object_compare(obj1_, obj_), "Failed to compare the object after looking up (bool)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj2)) != NULL, "Failed to look up the object (int)");
- fail_unless(hg_object_compare(obj2_, obj_), "Failed to compare the object after looking up (int)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj3)) != NULL, "Failed to look up the object (named)");
- fail_unless(hg_object_compare(obj3_, obj_), "Failed to compare the object after looking up (named)");
-
- /* Insert object allocated in the global pool to the local object */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj4 = hg_object_name_new(vm, "bool2", FALSE);
- obj4_ = hg_object_boolean_new(vm, TRUE);
- TNUL (obj4);
- TNUL (obj4_);
- fail_unless(HG_OBJECT_ATTR_IS_GLOBAL (obj4), "Object wasn't allocated from the global pool.");
- fail_unless(HG_OBJECT_ATTR_IS_GLOBAL (obj4_), "Object wasn't allocated from the global pool.");
- fail_unless(hg_object_dict_insert(obj, obj4, obj4_), "Don't have to fail inserting the global object into the local object.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj4_);
- hg_object_free(vm, obj4);
- hg_object_free(vm, obj3_);
- hg_object_free(vm, obj3);
- hg_object_free(vm, obj2_);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* recover the allocation mode */
- hg_vm_set_current_allocation_mode(vm, allocmode);
-}
-TEND
-
-TDEF (hg_object_dict_insert_without_consistency)
-{
- hg_object_t *obj1, *obj1_;
- gboolean allocmode = hg_vm_get_current_allocation_mode(vm);
-
- /* objects allocated from the global pool */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
-
- /* Insert object allocated in the local pool to the global object */
- hg_vm_set_current_allocation_mode(vm, FALSE);
-
- obj1 = hg_object_name_new(vm, "bool2", FALSE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
- TNUL (obj1);
- TNUL (obj1_);
- fail_unless(hg_object_dict_insert_without_consistency(obj, obj1, obj1_), "Failed to insert the local object into the global object.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* objects allocated from the local pool */
- hg_vm_set_current_allocation_mode(vm, FALSE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
- fail_unless(!HG_OBJECT_ATTR_IS_GLOBAL (obj), "Object wasn't allocated from the local pool.");
-
- /* Insert object allocated in the global pool to the local object */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj1 = hg_object_name_new(vm, "bool2", FALSE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
- TNUL (obj1);
- TNUL (obj1_);
- fail_unless(HG_OBJECT_ATTR_IS_GLOBAL (obj1), "Object wasn't allocated from the global pool.");
- fail_unless(HG_OBJECT_ATTR_IS_GLOBAL (obj1_), "Object wasn't allocated from the global pool.");
- fail_unless(hg_object_dict_insert_without_consistency(obj, obj1, obj1_), "Failed to insert the global object into the local object.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* recover the allocation mode */
- hg_vm_set_current_allocation_mode(vm, allocmode);
-}
-TEND
-
-TDEF (hg_object_dict_replace)
-{
- hg_object_t *obj1, *obj1_, *obj2, *obj2_, *obj3, *obj3_, *obj4, *obj4_, *obj_;
- gboolean allocmode = hg_vm_get_current_allocation_mode(vm);
-
- /* objects allocated from the global pool */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
-
- obj1 = hg_object_name_new(vm, "name", FALSE);
- obj1_ = hg_object_name_new(vm, "bar", FALSE);
- obj2 = hg_object_name_new(vm, "int", FALSE);
- obj2_ = hg_object_integer_new(vm, 10);
- TNUL (obj1);
- TNUL (obj1_);
- TNUL (obj2);
- TNUL (obj2_);
-
- fail_unless(hg_object_dict_insert(obj, obj1, obj1_), "Failed to insert an object (named)");
- fail_unless(hg_object_dict_insert(obj, obj2, obj2_), "Failed to insert an object (int)");
-
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj1)) != NULL, "Failed to look up the object (named)");
- fail_unless(hg_object_compare(obj1_, obj_), "Failed to compare the object after looking up (named)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj2)) != NULL, "Failed to look up the object (int)");
- fail_unless(hg_object_compare(obj2_, obj_), "Failed to compare the object after looking up (int)");
-
- obj3 = hg_object_name_new(vm, "name", FALSE);
- obj3_ = hg_object_name_new(vm, "foo", FALSE);
- TNUL (obj3);
- TNUL (obj3_);
- fail_unless(hg_object_dict_replace(obj, obj3, obj3_), "Failed to replace an object (named)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj3)) != NULL, "Failed to look up the object (named)");
- fail_unless(hg_object_compare(obj3_, obj_), "Failed to compare the object after looking up (named)");
-
- /* Insert object allocated in the local pool to the global object */
- hg_vm_set_current_allocation_mode(vm, FALSE);
-
- obj4 = hg_object_name_new(vm, "name", FALSE);
- obj4_ = hg_object_name_new(vm, "baz", FALSE);
- TNUL (obj4);
- TNUL (obj4_);
- fail_unless(!hg_object_dict_replace(obj, obj4, obj4_), "Have to fail replacing the local object into the global object.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj4_);
- hg_object_free(vm, obj4);
- hg_object_free(vm, obj3_);
- hg_object_free(vm, obj3);
- hg_object_free(vm, obj2_);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* objects allocated from the local pool */
- hg_vm_set_current_allocation_mode(vm, FALSE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
- fail_unless(!HG_OBJECT_ATTR_IS_GLOBAL (obj), "Object wasn't allocated from the local pool.");
-
- obj1 = hg_object_name_new(vm, "name", FALSE);
- obj1_ = hg_object_name_new(vm, "bar", FALSE);
- obj2 = hg_object_name_new(vm, "int", FALSE);
- obj2_ = hg_object_integer_new(vm, 10);
- TNUL (obj1);
- TNUL (obj1_);
- TNUL (obj2);
- TNUL (obj2_);
-
- fail_unless(hg_object_dict_insert(obj, obj1, obj1_), "Failed to insert an object (named)");
- fail_unless(hg_object_dict_insert(obj, obj2, obj2_), "Failed to insert an object (int)");
-
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj1)) != NULL, "Failed to look up the object (named)");
- fail_unless(hg_object_compare(obj1_, obj_), "Failed to compare the object after looking up (named)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj2)) != NULL, "Failed to look up the object (int)");
- fail_unless(hg_object_compare(obj2_, obj_), "Failed to compare the object after looking up (int)");
-
- obj3 = hg_object_name_new(vm, "name", FALSE);
- obj3_ = hg_object_name_new(vm, "foo", FALSE);
- TNUL (obj3);
- TNUL (obj3_);
- fail_unless(hg_object_dict_replace(obj, obj3, obj3_), "Failed to replace an object (named)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj3)) != NULL, "Failed to look up the object (named)");
- fail_unless(hg_object_compare(obj3_, obj_), "Failed to compare the object after looking up (named)");
-
- /* Insert object allocated in the global pool to the local object */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj4 = hg_object_name_new(vm, "name", FALSE);
- obj4_ = hg_object_name_new(vm, "baz", FALSE);
- TNUL (obj4);
- TNUL (obj4_);
- fail_unless(HG_OBJECT_ATTR_IS_GLOBAL (obj4), "Object wasn't allocated from the global pool.");
- fail_unless(HG_OBJECT_ATTR_IS_GLOBAL (obj4_), "Object wasn't allocated from the global pool.");
- fail_unless(hg_object_dict_replace(obj, obj4, obj4_), "Don't have to fail inserting the global object into the local object.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj4_);
- hg_object_free(vm, obj4);
- hg_object_free(vm, obj3_);
- hg_object_free(vm, obj3);
- hg_object_free(vm, obj2_);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* recover the allocation mode */
- hg_vm_set_current_allocation_mode(vm, allocmode);
-}
-TEND
-
-TDEF (hg_object_dict_replace_without_consistency)
-{
- hg_object_t *obj1, *obj1_;
- gboolean allocmode = hg_vm_get_current_allocation_mode(vm);
-
- /* objects allocated from the global pool */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
-
- /* Insert object allocated in the local pool to the global object */
- hg_vm_set_current_allocation_mode(vm, FALSE);
-
- obj1 = hg_object_name_new(vm, "bool2", FALSE);
- obj1_ = hg_object_name_new(vm, "foo", FALSE);
- TNUL (obj1);
- TNUL (obj1_);
- fail_unless(hg_object_dict_replace_without_consistency(obj, obj1, obj1_), "Failed to insert the local object into the global object.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* objects allocated from the local pool */
- hg_vm_set_current_allocation_mode(vm, FALSE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
- fail_unless(!HG_OBJECT_ATTR_IS_GLOBAL (obj), "Object wasn't allocated from the local pool.");
-
- /* Insert object allocated in the global pool to the local object */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj1 = hg_object_name_new(vm, "bool2", FALSE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
- TNUL (obj1);
- TNUL (obj1_);
- fail_unless(HG_OBJECT_ATTR_IS_GLOBAL (obj1), "Object wasn't allocated from the global pool.");
- fail_unless(HG_OBJECT_ATTR_IS_GLOBAL (obj1_), "Object wasn't allocated from the global pool.");
- fail_unless(hg_object_dict_replace_without_consistency(obj, obj1, obj1_), "Failed to insert the global object into the local object.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* recover the allocation mode */
- hg_vm_set_current_allocation_mode(vm, allocmode);
-}
-TEND
-
-TDEF (hg_object_dict_remove)
-{
- hg_object_t *obj1, *obj1_, *obj2, *obj2_, *obj3, *obj_;
- gboolean allocmode = hg_vm_get_current_allocation_mode(vm);
-
- /* objects allocated from the global pool */
- hg_vm_set_current_allocation_mode(vm, TRUE);
-
- obj = hg_object_dict_new(vm, 10);
- TNUL (obj);
-
- obj1 = hg_object_name_new(vm, "bool", FALSE);
- obj1_ = hg_object_boolean_new(vm, TRUE);
- obj2 = hg_object_name_new(vm, "int", FALSE);
- obj2_ = hg_object_integer_new(vm, 10);
- TNUL (obj1);
- TNUL (obj1_);
- TNUL (obj2);
- TNUL (obj2_);
-
- fail_unless(hg_object_dict_insert(obj, obj1, obj1_), "Failed to insert an object (bool)");
- fail_unless(hg_object_dict_insert(obj, obj2, obj2_), "Failed to insert an object (int)");
-
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj1)) != NULL, "Failed to look up the object (bool)");
- fail_unless(hg_object_compare(obj1_, obj_), "Failed to compare the object after looking up (bool)");
- fail_unless((obj_ = hg_object_dict_lookup(obj, obj2)) != NULL, "Failed to look up the object (int)");
- fail_unless(hg_object_compare(obj2_, obj_), "Failed to compare the object after looking up (int)");
-
- obj3 = hg_object_name_new(vm, "int", FALSE);
- fail_unless(hg_object_dict_remove(obj, obj3), "Failed to remove the key from the dict.");
- fail_unless(hg_object_dict_lookup(obj, obj3) == NULL, "There are still data in the dict.");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj3);
- hg_object_free(vm, obj2_);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj1_);
- hg_object_free(vm, obj1);
-
- /* recover the allocation mode */
- hg_vm_set_current_allocation_mode(vm, allocmode);
-}
-TEND
-
-TDEF (hg_object_dict_lookup)
-{
- /* all the testcases should be in insert/replace testing.
- * so there are nothing we have to do here so far.
- */
-}
-TEND
-
-/************************************************************/
-Suite *
-hieroglyph_suite(void)
-{
- Suite *s = suite_create("hg_dict_t");
- TCase *tc = tcase_create("Generic Functionalities");
-
- tcase_add_checked_fixture(tc, setup, teardown);
- T (hg_object_dict_new);
- T (hg_object_dict_compare);
- T (hg_object_dict_dump);
- T (hg_object_dict_insert);
- T (hg_object_dict_insert_without_consistency);
- T (hg_object_dict_replace);
- T (hg_object_dict_replace_without_consistency);
- T (hg_object_dict_remove);
- T (hg_object_dict_lookup);
-
- suite_add_tcase(s, tc);
-
- return s;
-}
diff --git a/tests/hgfile.c b/tests/hgfile.c
deleted file mode 100644
index 5a2be10..0000000
--- a/tests/hgfile.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgfile.c
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <hieroglyph/hgfile.h>
-#include <hieroglyph/vm.h>
-#include "main.h"
-
-
-hg_vm_t *vm;
-hg_object_t *obj;
-
-void
-setup(void)
-{
- vm = hg_vm_new();
-}
-
-void
-teardown(void)
-{
- hg_vm_destroy(vm);
-}
-
-/* file object */
-TDEF (hg_object_file_new)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-TDEF (hg_object_file_new_from_string)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-TDEF (hg_object_file_new_with_custom)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-TDEF (hg_object_file_free)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-TDEF (hg_object_file_notify_error)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-TDEF (hg_object_file_compare)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-TDEF (hg_object_file_dump)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-/************************************************************/
-Suite *
-hieroglyph_suite(void)
-{
- Suite *s = suite_create("hg_file_t");
- TCase *tc = tcase_create("Generic Functionalities");
-
- tcase_add_checked_fixture(tc, setup, teardown);
- T (hg_object_file_new);
- T (hg_object_file_new_from_string);
- T (hg_object_file_new_with_custom);
- T (hg_object_file_free);
- T (hg_object_file_notify_error);
- T (hg_object_file_compare);
- T (hg_object_file_dump);
-
- suite_add_tcase(s, tc);
-
- return s;
-}
diff --git a/tests/hgobject.c b/tests/hgobject.c
deleted file mode 100644
index 53fbc9c..0000000
--- a/tests/hgobject.c
+++ /dev/null
@@ -1,533 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgobject.c
- * Copyright (C) 2007-2009 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "main.h"
-
-
-hg_vm_t *vm;
-hg_object_t *obj;
-
-void
-setup(void)
-{
- vm = hg_vm_new();
-}
-
-void
-teardown(void)
-{
- hg_vm_destroy(vm);
-}
-
-/* core object */
-TDEF (hg_object_new)
-{
- gboolean flag;
-
- obj = hg_object_new(vm, 1);
-
- TNUL (obj);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj) == 1, "The amount of the object is different.");
-
- hg_object_free(vm, obj);
-
- obj = hg_object_new(vm, 10);
-
- TNUL (obj);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj) == 10, "The amount of the object is different.");
-
- hg_object_free(vm, obj);
-
- /* disable stacktrace */
- if (hg_is_stacktrace_enabled)
- flag = hg_is_stacktrace_enabled();
- hg_use_stacktrace(FALSE);
- /* disable warnings */
- hg_quiet_warning_messages(TRUE);
-
- obj = hg_object_new(vm, 0);
- if (hg_is_stacktrace_enabled)
- hg_use_stacktrace(flag);
- hg_quiet_warning_messages(FALSE);
-
- fail_unless(obj == NULL, "Not allowed to create empty object");
-}
-TEND
-
-TDEF (hg_object_sized_new)
-{
- obj = hg_object_sized_new(vm, 10);
-
- TNUL (obj);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj) == 1, "The amount of the object is different.");
- fail_unless(HG_OBJECT_HEADER (obj)->total_length == hg_n_alignof (hg_n_alignof (sizeof (hg_object_header_t) + sizeof (_hg_object_t)) + 10), "The length of the object is different.");
-
- hg_object_free(vm, obj);
-
- obj = hg_object_sized_new(vm, 0);
-
- TNUL (obj);
- fail_unless(HG_OBJECT_GET_N_OBJECTS (obj) == 1, "The amount of the object is different.");
- fail_unless(HG_OBJECT_HEADER (obj)->total_length == hg_n_alignof (sizeof (hg_object_header_t) + sizeof (_hg_object_t)), "The length of the object is different.");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-TDEF (hg_object_dup)
-{
- hg_object_t *obj2;
-
- obj = hg_object_new(vm, 1);
-
- TNUL (obj);
- /* disable warning messages */
- hg_quiet_warning_messages(TRUE);
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 == NULL, "Not allowed to duplicate the uninitialized object");
- hg_quiet_warning_messages(FALSE);
-
- hg_object_free(vm, obj);
-
- /* null */
- obj = hg_object_null_new(vm);
-
- fail_unless(obj != NULL, "Failed to create a null object");
- fail_unless(HG_OBJECT_IS_NULL (obj), "Created object isn't a null object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate a null object");
- fail_unless(HG_OBJECT_IS_NULL (obj2), "Duplicated object isn't a null object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* integer */
- obj = hg_object_integer_new(vm, 123);
-
- fail_unless(obj != NULL, "Failed to create an integer object");
- fail_unless(HG_OBJECT_IS_INTEGER (obj), "Created object isn't an integer object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate an integer object");
- fail_unless(HG_OBJECT_IS_INTEGER (obj2), "Duplicated object isn't an integer object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* real */
- obj = hg_object_real_new(vm, 0.01);
-
- fail_unless(obj != NULL, "Failed to create an real object");
- fail_unless(HG_OBJECT_IS_REAL (obj), "Created object isn't an real object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate an real object");
- fail_unless(HG_OBJECT_IS_REAL (obj2), "Duplicated object isn't an real object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* name */
- obj = hg_object_name_new(vm, "foo", FALSE);
-
- fail_unless(obj != NULL, "Failed to create a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj), "Created object isn't a name object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj2), "Duplicated object isn't a name object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* name eval */
- obj = hg_object_name_new(vm, "foo", TRUE);
-
- fail_unless(obj != NULL, "Failed to create a name(eval) object");
- fail_unless(HG_OBJECT_IS_EVAL (obj), "Created object isn't a name(eval) object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate a name object");
- fail_unless(HG_OBJECT_IS_EVAL (obj2), "Duplicated object isn't a name(eval) object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* system encoding */
- obj = hg_object_system_encoding_new(vm, HG_enc_abs, FALSE);
-
- fail_unless(obj != NULL, "Failed to create a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj), "Created object isn't a name object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj2), "Duplicated object isn't a name object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* system encoding eval */
- obj = hg_object_system_encoding_new(vm, HG_enc_abs, TRUE);
-
- fail_unless(obj != NULL, "Failed to create a name(eval) object");
- fail_unless(HG_OBJECT_IS_EVAL (obj), "Created object isn't a name(eval) object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate a name(eval) object");
- fail_unless(HG_OBJECT_IS_EVAL (obj2), "Duplicated object isn't a name(eval) object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* boolean */
- obj = hg_object_boolean_new(vm, TRUE);
-
- fail_unless(obj != NULL, "Failed to create a boolean object");
- fail_unless(HG_OBJECT_IS_BOOLEAN (obj), "Created object isn't a boolean object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate a boolean object");
- fail_unless(HG_OBJECT_IS_BOOLEAN (obj2), "Duplicated object isn't a boolean object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* mark */
- obj = hg_object_mark_new(vm);
-
- fail_unless(obj != NULL, "Failed to create a mark object");
- fail_unless(HG_OBJECT_IS_MARK (obj), "Created object isn't a mark object");
- obj2 = hg_object_dup(vm, obj);
- fail_unless(obj2 != NULL, "Failed to duplicate a mark object");
- fail_unless(HG_OBJECT_IS_MARK (obj2), "Duplicated object isn't a mark object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly duplicated");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-}
-TEND
-
-TDEF (hg_object_copy)
-{
- hg_object_t *obj2;
-
- obj = hg_object_new(vm, 1);
-
- TNUL (obj);
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy an uninitialized object");
-
- hg_object_free(vm, obj);
-
- /* null */
- obj = hg_object_null_new(vm);
-
- fail_unless(obj != NULL, "Failed to create a null object");
- fail_unless(HG_OBJECT_IS_NULL (obj), "Created object isn't a null object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy a null object");
- fail_unless(HG_OBJECT_IS_NULL (obj2), "Copied object isn't a null object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* integer */
- obj = hg_object_integer_new(vm, 123);
-
- fail_unless(obj != NULL, "Failed to create an integer object");
- fail_unless(HG_OBJECT_IS_INTEGER (obj), "Created object isn't an integer object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy an integer object");
- fail_unless(HG_OBJECT_IS_INTEGER (obj2), "Copied object isn't an integer object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* real */
- obj = hg_object_real_new(vm, 0.01);
-
- fail_unless(obj != NULL, "Failed to create an real object");
- fail_unless(HG_OBJECT_IS_REAL (obj), "Created object isn't an real object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy an real object");
- fail_unless(HG_OBJECT_IS_REAL (obj2), "Copied object isn't an real object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* name */
- obj = hg_object_name_new(vm, "foo", FALSE);
-
- fail_unless(obj != NULL, "Failed to create a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj), "Created object isn't a name object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj2), "Copied object isn't a name object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* name eval */
- obj = hg_object_name_new(vm, "foo", TRUE);
-
- fail_unless(obj != NULL, "Failed to create a name(eval) object");
- fail_unless(HG_OBJECT_IS_EVAL (obj), "Created object isn't a name(eval) object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy a name object");
- fail_unless(HG_OBJECT_IS_EVAL (obj2), "Copied object isn't a name(eval) object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* system encoding */
- obj = hg_object_system_encoding_new(vm, HG_enc_abs, FALSE);
-
- fail_unless(obj != NULL, "Failed to create a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj), "Created object isn't a name object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj2), "Copied object isn't a name object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* system encoding eval */
- obj = hg_object_system_encoding_new(vm, HG_enc_abs, TRUE);
-
- fail_unless(obj != NULL, "Failed to create a name(eval) object");
- fail_unless(HG_OBJECT_IS_EVAL (obj), "Created object isn't a name(eval) object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy a name(eval) object");
- fail_unless(HG_OBJECT_IS_EVAL (obj2), "Copied object isn't a name(eval) object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* boolean */
- obj = hg_object_boolean_new(vm, TRUE);
-
- fail_unless(obj != NULL, "Failed to create a boolean object");
- fail_unless(HG_OBJECT_IS_BOOLEAN (obj), "Created object isn't a boolean object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy a boolean object");
- fail_unless(HG_OBJECT_IS_BOOLEAN (obj2), "Copied object isn't a boolean object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-
- /* mark */
- obj = hg_object_mark_new(vm);
-
- fail_unless(obj != NULL, "Failed to create a mark object");
- fail_unless(HG_OBJECT_IS_MARK (obj), "Created object isn't a mark object");
- obj2 = hg_object_copy(vm, obj);
- fail_unless(obj2 != NULL, "Failed to copy a mark object");
- fail_unless(HG_OBJECT_IS_MARK (obj2), "Copied object isn't a mark object");
- fail_unless(hg_object_compare(obj, obj2), "Object wasn't exactly copied");
-
- hg_object_free(vm, obj);
- hg_object_free(vm, obj2);
-}
-TEND
-
-TDEF (hg_object_compare)
-{
- /* almost test cases has been done at hg_object_dup/copy */
-}
-TEND
-
-TDEF (hg_object_dump)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-/* null object */
-TDEF (hg_object_null_new)
-{
- obj = hg_object_null_new(vm);
-
- fail_unless(obj != NULL, "Failed to create a null object");
- fail_unless(HG_OBJECT_IS_NULL (obj), "Created object isn't a null object.");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-/* integer object */
-TDEF (hg_object_integer_new)
-{
- obj = hg_object_integer_new(vm, 1);
-
- fail_unless(obj != NULL, "Failed to create an integer object");
- fail_unless(HG_OBJECT_IS_INTEGER (obj), "Created object isn't an integer object");
- fail_unless(HG_OBJECT_INTEGER (obj) == 1, "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
- obj = hg_object_integer_new(vm, -1);
-
- fail_unless(obj != NULL, "Failed to create an integer object");
- fail_unless(HG_OBJECT_IS_INTEGER (obj), "Created object isn't an integer object");
- fail_unless(HG_OBJECT_INTEGER (obj) == -1, "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-/* real object */
-TDEF (hg_object_real_new)
-{
- obj = hg_object_real_new(vm, 1);
-
- fail_unless(obj != NULL, "Failed to create an real object");
- fail_unless(HG_OBJECT_IS_REAL (obj), "Created object isn't an real object");
- fail_unless(HG_OBJECT_REAL_IS_EQUAL_TO (obj, 1), "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
- obj = hg_object_real_new(vm, -1);
-
- fail_unless(obj != NULL, "Failed to create an real object");
- fail_unless(HG_OBJECT_IS_REAL (obj), "Created object isn't an real object");
- fail_unless(HG_OBJECT_REAL_IS_EQUAL_TO (obj, -1), "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-/* name object */
-TDEF (hg_object_name_new)
-{
- obj = hg_object_name_new(vm, "foo", FALSE);
-
- fail_unless(obj != NULL, "Failed to create a name object");
- fail_unless(HG_OBJECT_IS_NAME (obj), "Created object isn't a name object");
- fail_unless(hg_object_name_compare_with_raw(obj, "foo"), "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
-
- obj = hg_object_name_new(vm, "foo", TRUE);
-
- fail_unless(obj != NULL, "Failed to create a name object");
- fail_unless(HG_OBJECT_IS_EVAL (obj), "Created object isn't a name object");
- fail_unless(hg_object_name_compare_with_raw(obj, "foo"), "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-/* system encoding object */
-TDEF (hg_object_system_encoding_new)
-{
- hg_vm_initialize(vm);
- obj = hg_object_system_encoding_new(vm, HG_enc_abs, FALSE);
-
- fail_unless(obj != NULL, "Failed to create a system encoding object");
- fail_unless(HG_OBJECT_IS_NAME (obj), "Created object isn't a system encoding object");
- fail_unless(hg_object_name_compare_with_raw(obj, "abs"), "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
-
- obj = hg_object_system_encoding_new(vm, HG_enc_abs, TRUE);
-
- fail_unless(obj != NULL, "Failed to create a system encoding object");
- fail_unless(HG_OBJECT_IS_EVAL (obj), "Created object isn't a system encoding object");
- fail_unless(hg_object_name_compare_with_raw(obj, "abs"), "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
- hg_vm_finalize(vm);
-}
-TEND
-
-/* boolean object */
-TDEF (hg_object_boolean_new)
-{
- obj = hg_object_boolean_new(vm, FALSE);
-
- fail_unless(obj != NULL, "Failed to create a boolean object");
- fail_unless(HG_OBJECT_IS_BOOLEAN (obj), "Created object isn't a boolean object");
- fail_unless(HG_OBJECT_BOOLEAN (obj) == FALSE, "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
-
- obj = hg_object_boolean_new(vm, TRUE);
-
- fail_unless(obj != NULL, "Failed to create a boolean object");
- fail_unless(HG_OBJECT_IS_BOOLEAN (obj), "Created object isn't a boolean object");
- fail_unless(HG_OBJECT_BOOLEAN (obj) == TRUE, "Object isn't set correctly on creation");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-/* mark object */
-TDEF (hg_object_mark_new)
-{
- obj = hg_object_mark_new(vm);
-
- fail_unless(obj != NULL, "Failed to create a mark object");
- fail_unless(HG_OBJECT_IS_MARK (obj), "Created object isn't a mark object");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-/************************************************************/
-Suite *
-hieroglyph_suite(void)
-{
- Suite *s = suite_create("hg_object_t");
- TCase *tc = tcase_create("Generic Functionalities");
-
- tcase_add_checked_fixture(tc, setup, teardown);
- T (hg_object_new);
- T (hg_object_sized_new);
- T (hg_object_dup);
- T (hg_object_copy);
- T (hg_object_compare);
- T (hg_object_dump);
- T (hg_object_null_new);
- T (hg_object_integer_new);
- T (hg_object_real_new);
- T (hg_object_name_new);
- T (hg_object_system_encoding_new);
- T (hg_object_boolean_new);
- T (hg_object_mark_new);
-
- suite_add_tcase(s, tc);
-
- return s;
-}
diff --git a/tests/hgstack.c b/tests/hgstack.c
deleted file mode 100644
index c5c3027..0000000
--- a/tests/hgstack.c
+++ /dev/null
@@ -1,343 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgstack.c
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <hieroglyph/hgstack.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "main.h"
-
-
-hg_vm_t *vm;
-hg_stack_t *obj;
-
-void
-setup(void)
-{
- vm = hg_vm_new();
-}
-
-void
-teardown(void)
-{
- hg_vm_destroy(vm);
-}
-
-/* stack */
-TDEF (hg_stack_new)
-{
- gboolean flag;
-
- obj = hg_stack_new(vm, 10);
-
- fail_unless(obj != NULL, "Failed to create a stack object");
- fail_unless(obj->stack_depth == 10, "the stack depth isn't expected depth.");
-
- hg_stack_free(vm, obj);
-
- /* disable stacktrace */
- if (hg_is_stacktrace_enabled)
- flag = hg_is_stacktrace_enabled();
- hg_use_stacktrace(FALSE);
- /* disable warnings */
- hg_quiet_warning_messages(TRUE);
-
- obj = hg_stack_new(vm, 0);
-
- if (hg_is_stacktrace_enabled)
- hg_use_stacktrace(flag);
- hg_quiet_warning_messages(FALSE);
-
- fail_unless(obj == NULL, "depth must be more than 0");
-}
-TEND
-
-TDEF (hg_stack_free)
-{
- /* nothing to check here particularly */
-}
-TEND
-
-TDEF (hg_stack_push)
-{
- hg_object_t *obj2;
- gboolean flag, retval;
-
- obj = hg_stack_new(vm, 1);
-
- fail_unless(obj != NULL, "Failed to create a stack object");
-
- obj2 = hg_object_boolean_new(vm, TRUE);
- fail_unless(obj2 != NULL, "Failed to create a boolean object");
-
- fail_unless(hg_stack_push(obj, obj2), "Failed to push an object to stack");
-
- /* disable stacktrace */
- if (hg_is_stacktrace_enabled)
- flag = hg_is_stacktrace_enabled();
- hg_use_stacktrace(FALSE);
- /* disable warnings */
- hg_quiet_warning_messages(TRUE);
-
- retval = hg_stack_push(obj, obj2);
-
- if (hg_is_stacktrace_enabled)
- hg_use_stacktrace(flag);
- hg_quiet_warning_messages(FALSE);
-
- fail_unless(!retval, "Object has to be unable to be pushed.");
-
- hg_stack_free(vm, obj);
- hg_object_free(vm, obj2);
-}
-TEND
-
-TDEF (hg_stack_pop)
-{
- hg_object_t *obj2, *obj3;
- gboolean flag;
-
- obj = hg_stack_new(vm, 10);
-
- fail_unless(obj != NULL, "Failed to create a stack object");
-
- obj2 = hg_object_boolean_new(vm, TRUE);
- fail_unless(obj2 != NULL, "Failed to create a boolean object");
-
- fail_unless(hg_stack_push(obj, obj2), "Failed to push an object to stack");
-
- fail_unless((obj3 = hg_stack_pop(obj)) != NULL, "Failed to pop an object from stack");
- fail_unless(obj2 == obj3, "Failed to pop an object from stack (verifying)");
-
- /* disable stacktrace */
- if (hg_is_stacktrace_enabled)
- flag = hg_is_stacktrace_enabled();
- hg_use_stacktrace(FALSE);
- /* disable warnings */
- hg_quiet_warning_messages(TRUE);
-
- obj3 = hg_stack_pop(obj);
-
- if (hg_is_stacktrace_enabled)
- hg_use_stacktrace(flag);
- hg_quiet_warning_messages(FALSE);
-
- fail_unless(obj3 == NULL, "stack has to be empty.");
-
- hg_stack_free(vm, obj);
- hg_object_free(vm, obj2);
-}
-TEND
-
-TDEF (hg_stack_length)
-{
- hg_object_t *obj2;
-
- obj = hg_stack_new(vm, 10);
-
- fail_unless(obj != NULL, "Failed to create a stack object");
- fail_unless(hg_stack_length(obj) == 0, "stack has to be empty.");
-
- obj2 = hg_object_boolean_new(vm, TRUE);
- fail_unless(obj2 != NULL, "Failed to create a boolean object");
-
- fail_unless(hg_stack_push(obj, obj2), "Failed to push an object to stack");
- fail_unless(hg_stack_length(obj) == 1, "Failed to get current depth");
-
- hg_stack_free(vm, obj);
- hg_object_free(vm, obj2);
-}
-TEND
-
-TDEF (hg_stack_clear)
-{
- hg_object_t *obj2;
-
- obj = hg_stack_new(vm, 10);
-
- fail_unless(obj != NULL, "Failed to create a stack object");
-
- obj2 = hg_object_boolean_new(vm, TRUE);
- fail_unless(obj2 != NULL, "Failed to create a boolean object");
-
- fail_unless(hg_stack_push(obj, obj2), "Failed to push an object to stack");
- fail_unless(hg_stack_length(obj) == 1, "Failed to get current depth");
-
- hg_stack_clear(obj);
-
- fail_unless(hg_stack_length(obj) == 0, "Failed to clear the stack");
-
- hg_stack_free(vm, obj);
- hg_object_free(vm, obj2);
-}
-TEND
-
-TDEF (hg_stack_index)
-{
- hg_object_t *obj2, *obj3, *obj4;
- gboolean flag;
-
- obj = hg_stack_new(vm, 10);
-
- fail_unless(obj != NULL, "Failed to create a stack object");
-
- /* disable stacktrace */
- if (hg_is_stacktrace_enabled)
- flag = hg_is_stacktrace_enabled();
- hg_use_stacktrace(FALSE);
- /* disable warnings */
- hg_quiet_warning_messages(TRUE);
-
- obj2 = hg_stack_index(obj, 0);
-
- if (hg_is_stacktrace_enabled)
- hg_use_stacktrace(flag);
- hg_quiet_warning_messages(FALSE);
-
- fail_unless(obj2 == NULL, "index has to be less than the amount of the objects in the stack.");
-
- obj2 = hg_object_boolean_new(vm, TRUE);
- fail_unless(obj2 != NULL, "Failed to create a boolean object");
-
- hg_stack_push(obj, obj2);
- obj3 = hg_stack_index(obj, 0);
- fail_unless(obj2 == obj3, "gotten object isn't an expected object");
-
- obj3 = hg_object_integer_new(vm, 10);
- fail_unless(obj3 != NULL, "Failed to create an integer object");
-
- hg_stack_push(obj, obj3);
- obj4 = hg_stack_index(obj, 0);
- fail_unless(obj3 == obj4, "gotten object isn't an expected object (integer)");
- obj4 = hg_stack_index(obj, 1);
- fail_unless(obj4 == obj2, "gotten object isn't an expected object (boolean)");
-
- hg_stack_free(vm, obj);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj3);
-}
-TEND
-
-TDEF (hg_stack_roll)
-{
- hg_object_t *obj2, *obj3, *obj4, *obj5;
- gboolean flag, retval;
-
- obj = hg_stack_new(vm, 1);
- fail_unless(obj != NULL, "Failed to create a stack object");
-
- /* disable stacktrace */
- if (hg_is_stacktrace_enabled)
- flag = hg_is_stacktrace_enabled();
- hg_use_stacktrace(FALSE);
- /* disable warnings */
- hg_quiet_warning_messages(TRUE);
-
- retval = hg_stack_roll(obj, 2, 1);
-
- if (hg_is_stacktrace_enabled)
- hg_use_stacktrace(flag);
- hg_quiet_warning_messages(FALSE);
-
- fail_unless(!retval, "block has to be less than the stack size");
-
- hg_stack_free(vm, obj);
-
- obj = hg_stack_new(vm, 10);
- fail_unless(obj != NULL, "Failed to create a stack object");
-
- obj2 = hg_object_boolean_new(vm, TRUE);
- obj3 = hg_object_integer_new(vm, 1);
- obj4 = hg_object_mark_new(vm);
- obj5 = hg_object_boolean_new(vm, FALSE);
- fail_unless(obj2 != NULL, "Failed to create a boolean object");
- fail_unless(obj3 != NULL, "Failed to create an integer object");
- fail_unless(obj4 != NULL, "Failed to create a mark object");
- fail_unless(obj5 != NULL, "Failed to create a boolean object");
-
- hg_stack_push(obj, obj2);
- hg_stack_push(obj, obj3);
- fail_unless(hg_stack_roll(obj, 0, 1), "Failed to roll the objects");
- fail_unless(hg_stack_index(obj, 0) == obj3, "Failed to verify after rolling (integer) n_blocks == 0");
- fail_unless(hg_stack_index(obj, 1) == obj2, "Failed to verify after rolling (boolean) n_blocks == 0");
-
- fail_unless(hg_stack_roll(obj, 2, 0), "Failed to roll the objects");
- fail_unless(hg_stack_index(obj, 0) == obj3, "Failed to verify after rolling (integer) n_times == 0");
- fail_unless(hg_stack_index(obj, 1) == obj2, "Failed to verify after rolling (boolean) n_times == 0");
-
- hg_stack_push(obj, obj4);
- fail_unless(hg_stack_roll(obj, 3, 2), "Failed to roll the objects");
- fail_unless(hg_stack_index(obj, 0) == obj2, "Failed to verify after rolling (boolean)");
- fail_unless(hg_stack_index(obj, 1) == obj4, "Failed to verify after rolling (mark)");
- fail_unless(hg_stack_index(obj, 2) == obj3, "Failed to verify after rolling (integer)");
-
- hg_stack_push(obj, obj5);
- fail_unless(hg_stack_roll(obj, 3, -2), "Failed to roll the objects");
- fail_unless(hg_stack_index(obj, 0) == obj2, "Failed to verify after rolling (boolean)");
- fail_unless(hg_stack_index(obj, 1) == obj4, "Failed to verify after rolling (mark)");
- fail_unless(hg_stack_index(obj, 2) == obj5, "Failed to verify after rolling (boolean)");
- fail_unless(hg_stack_index(obj, 3) == obj3, "Failed to verify after rolling (integer)");
-
- fail_unless(hg_stack_roll(obj, 4, 3), "Failed to roll the objects");
- fail_unless(hg_stack_index(obj, 0) == obj3, "Failed to verify after rolling (integer)");
- fail_unless(hg_stack_index(obj, 1) == obj2, "Failed to verify after rolling (boolean)");
- fail_unless(hg_stack_index(obj, 2) == obj4, "Failed to verify after rolling (mark)");
- fail_unless(hg_stack_index(obj, 3) == obj5, "Failed to verify after rolling (boolean)");
-
- hg_stack_free(vm, obj);
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj3);
- hg_object_free(vm, obj4);
-}
-TEND
-
-TDEF (hg_stack_dump)
-{
- g_print("FIXME: %s\n", __FUNCTION__);
-}
-TEND
-
-/************************************************************/
-Suite *
-hieroglyph_suite(void)
-{
- Suite *s = suite_create("hg_stack_t");
- TCase *tc = tcase_create("Generic Functionalities");
-
- tcase_add_checked_fixture(tc, setup, teardown);
- T (hg_stack_new);
- T (hg_stack_free);
- T (hg_stack_push);
- T (hg_stack_pop);
- T (hg_stack_clear);
- T (hg_stack_length);
- T (hg_stack_index);
- T (hg_stack_roll);
- T (hg_stack_dump);
-
- suite_add_tcase(s, tc);
-
- return s;
-}
diff --git a/tests/hgstring.c b/tests/hgstring.c
deleted file mode 100644
index 8331ef1..0000000
--- a/tests/hgstring.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * hgstring.c
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <string.h>
-#include <hieroglyph/hgstring.h>
-#include <hieroglyph/hgobject.h>
-#include <hieroglyph/vm.h>
-#include "main.h"
-
-
-hg_vm_t *vm;
-hg_object_t *obj;
-
-void
-setup(void)
-{
- vm = hg_vm_new();
-}
-
-void
-teardown(void)
-{
- hg_vm_destroy(vm);
-}
-
-/* string object */
-TDEF (hg_object_string_new)
-{
- gchar *p;
-
- obj = hg_object_string_new(vm, "foo");
-
- fail_unless(obj != NULL, "Failed to create a string object");
- fail_unless(HG_OBJECT_IS_STRING (obj), "Created object isn't a string object");
- p = HG_OBJECT_STRING_DATA (obj)->string;
- fail_unless(p[0] == 'f' && p[1] == 'o' && p[2] == 'o', "Object isn't set correctly on object creation");
- fail_unless(HG_OBJECT_STRING (obj)->real_length == 3, "Object doesn't have an expected length");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-TDEF (hg_object_string_sized_new)
-{
- obj = hg_object_string_sized_new(vm, 10);
-
- fail_unless(obj != NULL, "Failed to create a string object");
- fail_unless(HG_OBJECT_IS_STRING (obj), "Created object isn't a string object");
- fail_unless(HG_OBJECT_STRING (obj)->length == 10, "Object doesn't have an expected length");
-
- hg_object_free(vm, obj);
-
- obj = hg_object_string_sized_new(vm, 0);
-
- fail_unless(obj != NULL, "Failed to create a string object");
- fail_unless(HG_OBJECT_IS_STRING (obj), "Created object isn't a string object");
- fail_unless(HG_OBJECT_STRING_DATA (obj)->string == NULL, "Don't have an allocated space");
- fail_unless(HG_OBJECT_STRING (obj)->length == 0, "Object doesn't have an expected length");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-TDEF (hg_object_string_substring_new)
-{
- hg_object_t *obj2;
-
- obj = hg_object_string_new(vm, "I like a dog");
-
- fail_unless(obj != NULL, "Failed to create a string object");
- fail_unless(HG_OBJECT_IS_STRING (obj), "Created object isn't a string object");
-
- obj2 = hg_object_string_substring_new(vm, obj, 9, 3);
-
- fail_unless(obj2 != NULL, "Failed to create a substring.");
- fail_unless(HG_OBJECT_IS_STRING (obj2), "Created substring isn't a string object");
-
- memcpy(HG_OBJECT_STRING_DATA (obj2)->string, "cat", 3);
- fail_unless(strncmp(HG_OBJECT_STRING_DATA (obj)->string,
- "I like a cat",
- HG_OBJECT_STRING (obj)->real_length) == 0, "Failed to modify through a substring");
-
- hg_object_free(vm, obj);
-}
-TEND
-
-TDEF (hg_object_string_compare)
-{
- hg_object_t *obj2;
-
- obj = hg_object_string_new(vm, "foo");
- obj2 = hg_object_string_new(vm, "foo");
-
- fail_unless(obj != NULL, "Failed to create a string object");
- fail_unless(obj2 != NULL, "Failed to create a string object(2)");
-
- fail_unless(hg_object_string_compare(obj, obj2), "Failed to compare the string objects");
-
- hg_object_free(vm, obj2);
-
- obj2 = hg_object_string_new(vm, "bar");
-
- fail_unless(obj2 != NULL, "Failed to create a string object(3)");
-
- fail_unless(!hg_object_string_compare(obj, obj2), "Have to be different.");
-
- hg_object_free(vm, obj2);
- hg_object_free(vm, obj);
-}
-TEND
-
-/************************************************************/
-Suite *
-hieroglyph_suite(void)
-{
- Suite *s = suite_create("hg_string_t");
- TCase *tc = tcase_create("Generic Functionalities");
-
- tcase_add_checked_fixture(tc, setup, teardown);
- T (hg_object_string_new);
- T (hg_object_string_sized_new);
- T (hg_object_string_substring_new);
- T (hg_object_string_compare);
-
- suite_add_tcase(s, tc);
-
- return s;
-}
diff --git a/tests/main.c b/tests/main.c
deleted file mode 100644
index 916c00a..0000000
--- a/tests/main.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * main.c
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#include <stdlib.h>
-#include <check.h>
-
-extern Suite *hieroglyph_suite(void);
-
-int
-main(void)
-{
- int number_failed;
- Suite *s = hieroglyph_suite();
- SRunner *sr = srunner_create(s);
-
- srunner_run_all(sr, CK_NORMAL);
- number_failed = srunner_ntests_failed(sr);
- srunner_free(sr);
-
- return (number_failed == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
-}
diff --git a/tests/main.h b/tests/main.h
deleted file mode 100644
index e65bae2..0000000
--- a/tests/main.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * main.h
- * Copyright (C) 2007 Akira TAGOH
- *
- * Authors:
- * Akira TAGOH <akira@tagoh.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-#ifndef __HIEROGLYPH_TEST_MAIN_H__
-#define __HIEROGLYPH_TEST_MAIN_H__
-
-#include <check.h>
-
-#define TDEF(fn) START_TEST (test_ ## fn)
-#define TEND END_TEST
-#define T(fn) tcase_add_test(tc, test_ ## fn)
-#define TNUL(obj) fail_unless((obj) != NULL, "Failed to create an object")
-
-#endif /* __HIEROGLYPH_TEST_MAIN_H__ */
diff --git a/tests/ps/Makefile.am b/tests/ps/Makefile.am
deleted file mode 100644
index 240d81e..0000000
--- a/tests/ps/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-NULL =
-
-DEPS = \
- $(top_builddir)/src/hgs \
- $(NULL)
-
-EXTRA_DIST = \
- test-ps.sh \
- *.ps \
- $(NULL)
-
-check:
- $(srcdir)/test-ps.sh \ No newline at end of file
diff --git a/tests/ps/arc.ps b/tests/ps/arc.ps
deleted file mode 100644
index c8b1358..0000000
--- a/tests/ps/arc.ps
+++ /dev/null
@@ -1,2 +0,0 @@
-0 0 50 0 90 arc pathbbox pstack
-clear closepath newpath 0 0 50 45 90 arc pathbbox pstack
diff --git a/tests/ps/concat.ps b/tests/ps/concat.ps
deleted file mode 100644
index d60ef57..0000000
--- a/tests/ps/concat.ps
+++ /dev/null
@@ -1 +0,0 @@
-[1 0 0 1 0 0] setmatrix [76 0 0 76 0 0] concat 6 array currentmatrix ==
diff --git a/tests/ps/currentpoint.ps b/tests/ps/currentpoint.ps
deleted file mode 100644
index db436b1..0000000
--- a/tests/ps/currentpoint.ps
+++ /dev/null
@@ -1,2 +0,0 @@
-100 0 moveto
-currentpoint pstack
diff --git a/tests/ps/curveto.ps b/tests/ps/curveto.ps
deleted file mode 100644
index 73f8de1..0000000
--- a/tests/ps/curveto.ps
+++ /dev/null
@@ -1 +0,0 @@
-0 0 1 1 2 2 curveto
diff --git a/tests/ps/doretree.ps b/tests/ps/doretree.ps
deleted file mode 100644
index aecbb4a..0000000
--- a/tests/ps/doretree.ps
+++ /dev/null
@@ -1,2485 +0,0 @@
-%!PS-Adobe-1.0
-%%Title: dore.ps
-%%Creator: Dore' Postscript Device Driver
-%%For: Jesse Don Hickson III
-%%CreationDate: Sat Apr 11 18:26:44 1998
-%%Pages: (atend)
-%%DocumentFonts:
-%%BoundingBox: 0 0 612 612
-%%EndComments
-/doretreesave save def % prevent left over effects
-% The author, Jesse Don Hickson III, hereby places this file into
-% the public domain on this day 23 Feb 2000.
-/Dore 20 dict def
-Dore begin
-/Prgb { moveto -1 -1 rmoveto 2 0 rlineto
- 0 2 rlineto -2 0 rlineto
- closepath setrgbcolor fill } def
-/Lrgb { moveto lineto setrgbcolor stroke } def
-/Trgb { moveto lineto lineto closepath
- setrgbcolor fill } def
-/BGrgb { dup 3 -1 roll dup 5 -1 roll dup
- 7 -1 roll dup 3 -1 roll moveto
- 6 -1 roll lineto exch 4 -1 roll
- lineto lineto closepath
- setrgbcolor
- fill } def
-/Pgray { moveto -1 -1 rmoveto 2 0 rlineto
- 0 2 rlineto -2 0 rlineto
- closepath setgray fill } def
-/Lgray { moveto lineto setgray stroke } def
-/Tgray { moveto lineto lineto closepath
- setgray fill } def
-/BGgray { dup 3 -1 roll dup 5 -1 roll dup
- 7 -1 roll dup 3 -1 roll moveto
- 6 -1 roll lineto exch 4 -1 roll
- lineto lineto closepath setgray
- fill } def
-/BDR { dup 3 -1 roll dup 5 -1 roll dup
- 7 -1 roll dup 3 -1 roll moveto
- 6 -1 roll lineto exch 4 -1 roll
- lineto lineto closepath
- setgray 40 setlinewidth
- stroke } def
-%%EndProlog
-%%Page: 1 1
-
-gsave
-0.400000 0.400000 0.400000 0 0 612 612 BGrgb
-
-0.25028 0.20022 0.15028 66 73 545 73 478 350 Trgb
-0.25028 0.20022 0.15028 66 73 478 350 133 350 Trgb
-0.312849 0.250279 0.312849 69 61 542 61 545 73 Trgb
-0.312849 0.250279 0.312849 69 61 545 73 66 73 Trgb
-
-0.000000 0.699172 0.209751 308 254 305 260 302 254 Trgb
-0.000000 0.699172 0.209751 305 260 299 260 302 254 Trgb
-0.000000 0.699172 0.209751 299 260 296 255 302 254 Trgb
-0.000000 0.699172 0.209751 296 255 299 249 302 254 Trgb
-0.000000 0.699172 0.209751 299 249 305 249 302 254 Trgb
-0.000000 0.699172 0.209751 305 249 308 254 302 254 Trgb
-0.000000 0.000000 0.000000 303 225 299 249 296 255 Trgb
-0.000000 0.000000 0.000000 303 225 296 255 300 230 Trgb
-0.000000 0.006800 0.002040 308 225 305 249 299 249 Trgb
-0.000000 0.003400 0.001020 308 225 299 249 303 225 Trgb
-0.000000 0.025554 0.007666 311 230 308 254 305 249 Trgb
-0.000000 0.017877 0.005363 311 230 305 249 308 225 Trgb
-0.000000 0.698504 0.209551 318 220 315 223 313 218 Trgb
-0.000000 0.698504 0.209551 315 223 310 222 313 218 Trgb
-0.000000 0.698504 0.209551 310 222 309 217 313 218 Trgb
-0.000000 0.698504 0.209551 309 217 312 214 313 218 Trgb
-0.000000 0.698504 0.209551 312 214 317 215 313 218 Trgb
-0.000000 0.698504 0.209551 317 215 318 220 313 218 Trgb
-0.000000 0.039441 0.011832 303 258 315 223 318 220 Trgb
-0.000000 0.039755 0.011926 303 258 318 220 306 256 Trgb
-0.000000 0.013042 0.003913 299 257 310 222 315 223 Trgb
-0.000000 0.026084 0.007825 299 257 315 223 303 258 Trgb
-0.000000 0.000000 0.000000 298 253 309 217 310 222 Trgb
-0.000000 0.000000 0.000000 298 253 310 222 299 257 Trgb
-0.000000 0.696509 0.208953 351 168 348 168 348 166 Trgb
-0.000000 0.696509 0.208953 348 168 346 166 348 166 Trgb
-0.000000 0.696509 0.208953 346 166 345 164 348 166 Trgb
-0.000000 0.696509 0.208953 345 164 348 164 348 166 Trgb
-0.000000 0.696509 0.208953 348 164 351 166 348 166 Trgb
-0.000000 0.696509 0.208953 351 166 351 168 348 166 Trgb
-0.000000 0.059893 0.017968 314 220 348 168 351 168 Trgb
-0.000000 0.060927 0.018278 314 220 351 168 316 221 Trgb
-0.000000 0.019620 0.005886 311 218 346 166 348 168 Trgb
-0.000000 0.039239 0.011772 311 218 348 168 314 220 Trgb
-0.000000 0.000000 0.000000 311 216 345 164 346 166 Trgb
-0.000000 0.000000 0.000000 311 216 346 166 311 218 Trgb
-0.000000 0.000000 0.000000 350 168 349 168 348 166 Trgb
-0.000000 0.000000 0.000000 349 168 347 166 348 166 Trgb
-0.000000 0.000000 0.000000 347 166 346 164 348 166 Trgb
-0.000000 0.000000 0.000000 346 164 347 164 348 166 Trgb
-0.000000 0.000000 0.000000 347 164 349 166 348 166 Trgb
-0.000000 0.000000 0.000000 349 166 350 168 348 166 Trgb
-0.000000 0.238723 0.071617 349 166 385 141 386 143 Trgb
-0.000000 0.241460 0.072438 349 166 386 143 350 168 Trgb
-0.000000 0.078662 0.023599 347 164 384 140 385 141 Trgb
-0.000000 0.157324 0.047197 347 164 385 141 349 166 Trgb
-0.000000 0.000000 0.000000 346 164 383 140 384 140 Trgb
-0.000000 0.000000 0.000000 346 164 384 140 347 164 Trgb
-0.340732 0.248642 0.117875 397 153 395 142 402 143 Trgb
-0.278657 0.203344 0.096400 395 127 402 143 395 142 Trgb
-0.247789 0.180819 0.085722 395 142 386 130 395 127 Trgb
-0.119439 0.087158 0.041319 386 130 377 126 395 127 Trgb
-0.106393 0.077638 0.036806 376 140 383 156 371 151 Trgb
-0.318775 0.232620 0.110279 395 142 397 153 383 156 Trgb
-0.234743 0.171299 0.081209 383 156 376 140 395 142 Trgb
-0.225832 0.164797 0.078126 386 130 395 142 376 140 Trgb
-0.033948 0.024773 0.011744 366 140 376 140 371 151 Trgb
-0.000000 0.000000 0.000000 372 130 377 126 366 140 Trgb
-0.033948 0.024773 0.011744 376 140 366 140 377 126 Trgb
-0.097482 0.071136 0.033724 377 126 386 130 376 140 Trgb
-0.072446 0.052866 0.025062 383 156 373 156 371 151 Trgb
-0.228924 0.167052 0.079195 397 153 391 158 383 156 Trgb
-0.110944 0.080959 0.038381 373 156 383 156 391 158 Trgb
-0.000000 0.699929 0.209979 390 172 391 170 391 172 Trgb
-0.000000 0.699929 0.209979 391 170 392 170 391 172 Trgb
-0.000000 0.699929 0.209979 392 170 393 172 391 172 Trgb
-0.000000 0.699929 0.209979 393 172 392 174 391 172 Trgb
-0.000000 0.699929 0.209979 392 174 391 174 391 172 Trgb
-0.000000 0.699929 0.209979 391 174 390 172 391 172 Trgb
-0.000000 0.004526 0.001358 348 164 391 170 390 172 Trgb
-0.000000 0.006998 0.002099 348 164 390 172 347 166 Trgb
-0.000000 0.000685 0.000205 349 164 392 170 391 170 Trgb
-0.000000 0.001370 0.000411 349 164 391 170 348 164 Trgb
-0.000000 0.008785 0.002635 347 166 390 172 391 174 Trgb
-0.000000 0.008100 0.002430 347 166 391 174 347 168 Trgb
-0.315444 0.255254 0.114140 397 175 404 160 408 174 Trgb
-0.160986 0.130268 0.058251 383 174 386 160 397 175 Trgb
-0.207378 0.167808 0.075037 404 160 397 175 386 160 Trgb
-0.095933 0.077628 0.034712 386 160 393 153 404 160 Trgb
-0.267978 0.216844 0.096964 404 160 409 172 408 174 Trgb
-0.330957 0.267806 0.119752 402 187 397 175 408 174 Trgb
-0.176499 0.142820 0.063864 384 186 383 174 397 175 Trgb
-0.238403 0.192912 0.086263 397 175 402 187 384 186 Trgb
-0.137926 0.111608 0.049907 390 190 384 186 402 187 Trgb
-0.049541 0.040088 0.017926 386 160 383 174 374 172 Trgb
-0.015977 0.012928 0.005781 374 172 381 157 386 160 Trgb
-0.015977 0.012928 0.005781 393 153 386 160 381 157 Trgb
-0.283490 0.229397 0.102577 409 172 402 187 408 174 Trgb
-0.065053 0.052640 0.023539 383 174 384 186 374 172 Trgb
-0.031489 0.025481 0.011394 379 183 374 172 384 186 Trgb
-0.042458 0.034357 0.015363 384 186 390 190 379 183 Trgb
-0.000000 0.697723 0.209317 341 150 344 149 343 152 Trgb
-0.000000 0.697723 0.209317 344 149 346 151 343 152 Trgb
-0.000000 0.697723 0.209317 346 151 345 153 343 152 Trgb
-0.000000 0.697723 0.209317 345 153 343 154 343 152 Trgb
-0.000000 0.697723 0.209317 343 154 341 152 343 152 Trgb
-0.000000 0.697723 0.209317 341 152 341 150 343 152 Trgb
-0.000000 0.049494 0.014848 350 168 345 153 346 151 Trgb
-0.000000 0.044068 0.013220 350 168 346 151 350 165 Trgb
-0.000000 0.029160 0.008748 348 168 343 154 345 153 Trgb
-0.000000 0.042040 0.012612 348 168 345 153 350 168 Trgb
-0.000000 0.005426 0.001628 346 167 341 152 343 154 Trgb
-0.000000 0.010853 0.003256 346 167 343 154 348 168 Trgb
-0.041998 0.199607 0.048321 336 144 348 143 342 148 Trgb
-0.000000 0.000000 0.000000 334 144 343 140 336 144 Trgb
-0.020666 0.098222 0.023778 348 143 336 144 343 140 Trgb
-0.028561 0.135744 0.032861 343 140 351 143 348 143 Trgb
-0.080827 0.384157 0.092997 348 143 349 154 342 148 Trgb
-0.101740 0.483551 0.117058 356 151 352 159 349 154 Trgb
-0.088824 0.422164 0.102198 349 154 348 143 356 151 Trgb
-0.057889 0.275137 0.066605 351 143 356 151 348 143 Trgb
-0.030833 0.146542 0.035475 337 155 336 144 342 148 Trgb
-0.000000 0.000000 0.000000 331 153 334 144 336 144 Trgb
-0.009501 0.045158 0.010932 336 144 337 155 331 153 Trgb
-0.009501 0.045158 0.010932 335 161 331 153 337 155 Trgb
-0.069662 0.331092 0.080151 349 154 337 155 342 148 Trgb
-0.090575 0.430486 0.104212 352 159 344 163 349 154 Trgb
-0.066494 0.316036 0.076506 337 155 349 154 344 163 Trgb
-0.027665 0.131486 0.031830 344 163 335 161 337 155 Trgb
-0.000000 0.699775 0.209933 370 210 368 207 370 207 Trgb
-0.000000 0.699775 0.209933 368 207 369 204 370 207 Trgb
-0.000000 0.699775 0.209933 369 204 370 203 370 207 Trgb
-0.000000 0.699775 0.209933 370 203 372 206 370 207 Trgb
-0.000000 0.699775 0.209933 372 206 372 209 370 207 Trgb
-0.000000 0.699775 0.209933 372 209 370 210 370 207 Trgb
-0.000000 0.011674 0.003502 312 219 368 207 370 210 Trgb
-0.000000 0.014707 0.004412 312 219 370 210 313 222 Trgb
-0.000000 0.002881 0.000864 312 216 369 204 368 207 Trgb
-0.000000 0.005761 0.001728 312 216 368 207 312 219 Trgb
-0.000000 0.014859 0.004458 313 222 370 210 372 209 Trgb
-0.000000 0.011978 0.003594 313 222 372 209 315 221 Trgb
-0.000000 0.000000 0.000000 369 208 369 209 370 207 Trgb
-0.000000 0.000000 0.000000 369 209 369 207 370 207 Trgb
-0.000000 0.000000 0.000000 369 207 371 205 370 207 Trgb
-0.000000 0.000000 0.000000 371 205 372 205 370 207 Trgb
-0.000000 0.000000 0.000000 372 205 371 206 370 207 Trgb
-0.000000 0.000000 0.000000 371 206 369 208 370 207 Trgb
-0.000000 0.033825 0.010148 371 206 410 235 409 237 Trgb
-0.000000 0.027366 0.008210 371 206 409 237 369 208 Trgb
-0.000000 0.026347 0.007904 372 205 411 234 410 235 Trgb
-0.000000 0.033316 0.009995 372 205 410 235 371 206 Trgb
-0.000000 0.013938 0.004181 369 208 409 237 408 237 Trgb
-0.000000 0.006969 0.002091 369 208 408 237 369 209 Trgb
-0.402052 0.138238 0.108058 417 254 429 236 426 248 Trgb
-0.324052 0.111419 0.087094 402 249 413 237 417 254 Trgb
-0.415721 0.142938 0.111732 429 236 417 254 413 237 Trgb
-0.399297 0.137291 0.107317 413 237 421 224 429 236 Trgb
-0.303041 0.104195 0.081447 421 224 422 218 429 236 Trgb
-0.196628 0.067607 0.052847 397 253 402 249 417 254 Trgb
-0.000000 0.000000 0.000000 405 218 392 236 392 223 Trgb
-0.195487 0.067215 0.052540 413 237 402 249 392 236 Trgb
-0.127423 0.043812 0.034247 392 236 405 218 413 237 Trgb
-0.239564 0.082370 0.064387 421 224 413 237 405 218 Trgb
-0.000000 0.000000 0.000000 402 218 405 218 392 223 Trgb
-0.031167 0.010716 0.008377 405 218 402 218 422 218 Trgb
-0.143308 0.049274 0.038516 422 218 421 224 405 218 Trgb
-0.000000 0.000000 0.000000 392 236 390 235 392 223 Trgb
-0.068063 0.023402 0.018293 402 249 397 253 392 236 Trgb
-0.000000 0.000000 0.000000 390 235 392 236 397 253 Trgb
-0.000000 0.699725 0.209917 388 238 390 237 389 239 Trgb
-0.000000 0.699725 0.209917 390 237 392 238 389 239 Trgb
-0.000000 0.699725 0.209917 392 238 391 240 389 239 Trgb
-0.000000 0.699725 0.209917 391 240 388 241 389 239 Trgb
-0.000000 0.699725 0.209917 388 241 387 240 389 239 Trgb
-0.000000 0.699725 0.209917 387 240 388 238 389 239 Trgb
-0.000000 0.011031 0.003309 371 205 390 237 388 238 Trgb
-0.000000 0.005515 0.001655 371 205 388 238 369 206 Trgb
-0.000000 0.017121 0.005136 372 206 392 238 390 237 Trgb
-0.000000 0.016834 0.005050 372 206 390 237 371 205 Trgb
-0.000000 0.000000 0.000000 369 206 388 238 387 240 Trgb
-0.000000 0.000000 0.000000 369 206 387 240 368 207 Trgb
-0.349698 0.218700 0.113680 387 242 406 239 397 252 Trgb
-0.133776 0.083663 0.043488 379 231 393 224 387 242 Trgb
-0.271918 0.170056 0.088395 406 239 387 242 393 224 Trgb
-0.255724 0.159929 0.083131 393 224 405 226 406 239 Trgb
-0.354064 0.221431 0.115099 406 239 402 254 397 252 Trgb
-0.280651 0.175518 0.091234 402 254 406 239 407 236 Trgb
-0.260091 0.162660 0.084550 405 226 407 236 406 239 Trgb
-0.250481 0.156650 0.081426 384 257 387 242 397 252 Trgb
-0.086350 0.054003 0.028071 371 242 379 231 387 242 Trgb
-0.125275 0.078347 0.040724 387 242 384 257 371 242 Trgb
-0.038925 0.024344 0.012654 374 251 371 242 384 257 Trgb
-0.047425 0.029660 0.015417 393 224 379 231 376 224 Trgb
-0.047425 0.029660 0.015417 376 224 394 221 393 224 Trgb
-0.117582 0.073536 0.038224 405 226 393 224 394 221 Trgb
-0.254847 0.159381 0.082846 402 254 384 257 397 252 Trgb
-0.000000 0.000000 0.000000 379 231 371 242 376 224 Trgb
-0.000000 0.682373 0.204712 391 162 392 163 390 162 Trgb
-0.000000 0.682373 0.204712 392 163 391 163 390 162 Trgb
-0.000000 0.682373 0.204712 391 163 389 162 390 162 Trgb
-0.000000 0.682373 0.204712 389 162 388 161 390 162 Trgb
-0.000000 0.682373 0.204712 388 161 389 161 390 162 Trgb
-0.000000 0.682373 0.204712 389 161 391 162 390 162 Trgb
-0.000000 0.137665 0.041299 371 208 391 163 392 163 Trgb
-0.000000 0.128141 0.038442 371 208 392 163 372 208 Trgb
-0.000000 0.068110 0.020433 369 207 389 162 391 163 Trgb
-0.000000 0.107649 0.032295 369 207 391 163 371 208 Trgb
-0.000000 0.009524 0.002857 368 206 388 161 389 162 Trgb
-0.000000 0.019047 0.005714 368 206 389 162 369 207 Trgb
-0.163081 0.086165 0.049849 403 150 407 155 399 143 Trgb
-0.357741 0.189016 0.109351 408 169 406 171 407 155 Trgb
-0.201687 0.106563 0.061650 407 155 389 148 399 143 Trgb
-0.192638 0.101782 0.058884 394 168 380 161 389 148 Trgb
-0.292072 0.154319 0.089278 389 148 407 155 394 168 Trgb
-0.396347 0.209413 0.121152 406 171 394 168 407 155 Trgb
-0.311639 0.164657 0.095259 406 171 408 169 395 181 Trgb
-0.074953 0.039602 0.022911 389 148 385 143 399 143 Trgb
-0.069652 0.036801 0.021291 380 161 372 155 389 148 Trgb
-0.042354 0.022378 0.012946 385 143 389 148 372 155 Trgb
-0.080631 0.042602 0.024647 377 174 395 181 382 180 Trgb
-0.150284 0.079404 0.045937 380 161 394 168 377 174 Trgb
-0.203616 0.107582 0.062240 395 181 377 174 394 168 Trgb
-0.350245 0.185055 0.107060 394 168 406 171 395 181 Trgb
-0.027298 0.014423 0.008344 372 155 380 161 377 174 Trgb
-0.000000 0.000000 0.000000 377 174 374 169 372 155 Trgb
-0.000000 0.697969 0.209391 293 250 295 248 296 251 Trgb
-0.000000 0.697969 0.209391 295 248 299 249 296 251 Trgb
-0.000000 0.697969 0.209391 299 249 299 253 296 251 Trgb
-0.000000 0.697969 0.209391 299 253 297 254 296 251 Trgb
-0.000000 0.697969 0.209391 297 254 293 253 296 251 Trgb
-0.000000 0.697969 0.209391 293 253 293 250 296 251 Trgb
-0.000000 0.000000 0.000000 313 215 295 248 293 250 Trgb
-0.000000 0.000000 0.000000 313 215 293 250 310 217 Trgb
-0.000000 0.029354 0.008806 316 217 299 249 295 248 Trgb
-0.000000 0.014677 0.004403 316 217 295 248 313 215 Trgb
-0.000000 0.046680 0.014004 317 220 299 253 299 249 Trgb
-0.000000 0.045355 0.013607 317 220 299 249 316 217 Trgb
-0.156998 0.121144 0.055628 280 252 297 247 291 260 Trgb
-0.000000 0.000000 0.000000 279 244 288 235 280 252 Trgb
-0.084838 0.065463 0.030060 297 247 280 252 288 235 Trgb
-0.132657 0.102362 0.047004 288 235 302 236 297 247 Trgb
-0.278211 0.214675 0.098577 297 247 305 263 291 260 Trgb
-0.324474 0.250373 0.114969 312 246 313 259 305 263 Trgb
-0.310052 0.239244 0.109859 305 263 297 247 312 246 Trgb
-0.236658 0.182612 0.083854 302 236 312 246 297 247 Trgb
-0.089372 0.068962 0.031667 289 268 280 252 291 260 Trgb
-0.000000 0.000000 0.000000 280 256 279 244 280 252 Trgb
-0.017212 0.013281 0.006099 280 252 289 268 280 256 Trgb
-0.047819 0.036898 0.016943 302 236 288 235 303 235 Trgb
-0.210585 0.162493 0.074615 305 263 289 268 291 260 Trgb
-0.256848 0.198191 0.091008 313 259 304 267 305 263 Trgb
-0.174799 0.134880 0.061936 289 268 305 263 304 267 Trgb
-0.151820 0.117148 0.053794 312 246 302 236 303 235 Trgb
-0.000000 0.699942 0.209983 348 304 347 302 351 301 Trgb
-0.000000 0.699942 0.209983 347 302 349 298 351 301 Trgb
-0.000000 0.699942 0.209983 349 298 353 297 351 301 Trgb
-0.000000 0.699942 0.209983 353 297 355 300 351 301 Trgb
-0.000000 0.699942 0.209983 355 300 352 303 351 301 Trgb
-0.000000 0.699942 0.209983 352 303 348 304 351 301 Trgb
-0.000000 0.000000 0.000000 298 255 347 302 348 304 Trgb
-0.000000 0.000000 0.000000 298 255 348 304 300 258 Trgb
-0.000000 0.001821 0.000546 301 252 349 298 347 302 Trgb
-0.000000 0.000911 0.000273 301 252 347 302 298 255 Trgb
-0.000000 0.006793 0.002038 304 251 353 297 349 298 Trgb
-0.000000 0.004762 0.001429 304 251 349 298 301 252 Trgb
-0.000000 0.018322 0.005497 350 301 386 356 384 357 Trgb
-0.000000 0.009161 0.002748 350 301 384 357 348 302 Trgb
-0.000000 0.035636 0.010691 353 299 389 354 386 356 Trgb
-0.000000 0.031560 0.009468 353 299 386 356 350 301 Trgb
-0.000000 0.021390 0.006417 353 299 390 354 389 354 Trgb
-0.000000 0.030551 0.009165 353 299 389 354 353 299 Trgb
-0.000000 0.677885 0.203366 386 356 385 355 387 356 Trgb
-0.000000 0.677885 0.203366 385 355 386 354 387 356 Trgb
-0.000000 0.677885 0.203366 386 354 388 355 387 356 Trgb
-0.000000 0.677885 0.203366 388 355 389 356 387 356 Trgb
-0.000000 0.677885 0.203366 389 356 388 357 387 356 Trgb
-0.000000 0.677885 0.203366 388 357 386 356 387 356 Trgb
-0.000000 0.144797 0.043439 388 357 369 396 367 395 Trgb
-0.000000 0.115047 0.034514 388 357 367 395 386 356 Trgb
-0.000000 0.117682 0.035305 389 356 369 395 369 396 Trgb
-0.000000 0.146114 0.043834 389 356 369 396 388 357 Trgb
-0.000000 0.056865 0.017059 386 356 367 395 365 394 Trgb
-0.000000 0.028432 0.008530 386 356 365 394 385 355 Trgb
-0.009232 0.148327 0.031512 363 401 370 403 364 402 Trgb
-0.022270 0.357806 0.076015 365 397 371 399 363 401 Trgb
-0.022149 0.355867 0.075603 370 403 363 401 371 399 Trgb
-0.031065 0.499105 0.106034 371 399 375 399 370 403 Trgb
-0.009353 0.150267 0.031924 360 393 365 397 363 401 Trgb
-0.002795 0.044900 0.009539 363 401 359 396 360 393 Trgb
-0.000000 0.000000 0.000000 360 390 360 393 359 396 Trgb
-0.019209 0.308621 0.065566 376 392 369 391 371 387 Trgb
-0.025955 0.417018 0.088595 371 399 365 397 369 391 Trgb
-0.029520 0.474291 0.100762 369 391 376 392 371 399 Trgb
-0.034750 0.558317 0.118613 375 399 371 399 376 392 Trgb
-0.009086 0.145981 0.031013 369 391 365 386 371 387 Trgb
-0.013038 0.209479 0.044503 365 397 360 393 369 391 Trgb
-0.006480 0.104112 0.022118 365 386 369 391 360 393 Trgb
-0.000000 0.000000 0.000000 360 393 360 390 365 386 Trgb
-0.000000 0.698602 0.209581 389 395 390 396 387 396 Trgb
-0.000000 0.698602 0.209581 390 396 388 397 387 396 Trgb
-0.000000 0.698602 0.209581 388 397 386 397 387 396 Trgb
-0.000000 0.698602 0.209581 386 397 385 396 387 396 Trgb
-0.000000 0.698602 0.209581 385 396 387 395 387 396 Trgb
-0.000000 0.698602 0.209581 387 395 389 395 387 396 Trgb
-0.000000 0.037233 0.011170 389 356 390 396 389 395 Trgb
-0.000000 0.038872 0.011662 389 356 389 395 389 355 Trgb
-0.000000 0.003278 0.000983 386 354 387 395 385 396 Trgb
-0.000000 0.001639 0.000492 386 354 385 396 385 355 Trgb
-0.000000 0.028646 0.008594 389 355 389 395 387 395 Trgb
-0.000000 0.016781 0.005034 389 355 387 395 386 354 Trgb
-0.404995 0.114698 0.103939 398 404 399 414 388 415 Trgb
-0.435739 0.123405 0.111829 402 388 409 395 398 404 Trgb
-0.425131 0.120400 0.109106 399 414 398 404 409 395 Trgb
-0.324162 0.091805 0.083193 376 404 398 404 388 415 Trgb
-0.354905 0.100512 0.091083 386 385 402 388 398 404 Trgb
-0.263463 0.074615 0.067616 398 404 376 404 386 385 Trgb
-0.091315 0.025861 0.023435 371 389 386 385 376 404 Trgb
-0.276324 0.078257 0.070916 409 395 402 388 397 377 Trgb
-0.152013 0.043051 0.039013 377 414 376 404 388 415 Trgb
-0.039290 0.011127 0.010084 376 404 377 414 366 396 Trgb
-0.039290 0.011127 0.010084 366 396 371 389 376 404 Trgb
-0.195491 0.055364 0.050171 402 388 386 385 397 377 Trgb
-0.064759 0.018340 0.016620 376 378 397 377 386 385 Trgb
-0.052024 0.014734 0.013352 386 385 371 389 376 378 Trgb
-0.000000 0.000000 0.000000 371 389 366 396 376 378 Trgb
-0.000000 0.699996 0.209999 421 374 420 376 419 375 Trgb
-0.000000 0.699996 0.209999 420 376 419 377 419 375 Trgb
-0.000000 0.699996 0.209999 419 377 418 376 419 375 Trgb
-0.000000 0.699996 0.209999 418 376 418 374 419 375 Trgb
-0.000000 0.699996 0.209999 418 374 420 373 419 375 Trgb
-0.000000 0.699996 0.209999 420 373 421 374 419 375 Trgb
-0.000000 0.000000 0.000000 385 357 418 376 419 377 Trgb
-0.000000 0.000000 0.000000 385 357 419 377 386 358 Trgb
-0.000000 0.000000 0.000000 386 355 418 374 418 376 Trgb
-0.000000 0.000000 0.000000 386 355 418 376 385 357 Trgb
-0.000000 0.001176 0.000353 388 354 420 373 418 374 Trgb
-0.000000 0.000588 0.000176 388 354 418 374 386 355 Trgb
-0.289362 0.280459 0.113964 436 374 429 389 431 382 Trgb
-0.278122 0.269564 0.109537 429 389 419 386 431 382 Trgb
-0.077960 0.075561 0.030704 412 390 407 384 419 386 Trgb
-0.159921 0.155000 0.062984 419 386 429 389 412 390 Trgb
-0.292601 0.283598 0.115240 426 371 436 374 431 382 Trgb
-0.104389 0.101177 0.041113 426 360 431 366 436 374 Trgb
-0.181640 0.176051 0.071538 436 374 426 371 426 360 Trgb
-0.094729 0.091814 0.037309 417 362 426 360 426 371 Trgb
-0.281360 0.272703 0.110813 419 386 426 371 431 382 Trgb
-0.077960 0.075561 0.030704 407 384 409 372 419 386 Trgb
-0.163159 0.158139 0.064260 426 371 419 386 409 372 Trgb
-0.087489 0.084798 0.034457 409 372 417 362 426 371 Trgb
-0.009530 0.009236 0.003753 426 360 417 362 410 361 Trgb
-0.000000 0.000000 0.000000 409 372 407 384 403 376 Trgb
-0.000000 0.000000 0.000000 403 376 410 361 409 372 Trgb
-0.002290 0.002219 0.000902 417 362 409 372 410 361 Trgb
-0.000000 0.697280 0.209184 347 363 350 363 349 364 Trgb
-0.000000 0.697280 0.209184 350 363 352 364 349 364 Trgb
-0.000000 0.697280 0.209184 352 364 351 365 349 364 Trgb
-0.000000 0.697280 0.209184 351 365 348 365 349 364 Trgb
-0.000000 0.697280 0.209184 348 365 346 364 349 364 Trgb
-0.000000 0.697280 0.209184 346 364 347 363 349 364 Trgb
-0.000000 0.034648 0.010394 352 300 350 363 347 363 Trgb
-0.000000 0.017324 0.005197 352 300 347 363 349 300 Trgb
-0.000000 0.053795 0.016138 354 301 352 364 350 363 Trgb
-0.000000 0.052883 0.015865 354 301 350 363 352 300 Trgb
-0.000000 0.000000 0.000000 349 300 347 363 346 364 Trgb
-0.000000 0.000000 0.000000 349 300 346 364 348 301 Trgb
-0.308371 0.106028 0.082880 340 375 360 376 349 384 Trgb
-0.157725 0.054231 0.042391 336 359 352 359 340 375 Trgb
-0.324928 0.111721 0.087330 360 376 340 375 352 359 Trgb
-0.420222 0.144486 0.112941 352 359 366 361 360 376 Trgb
-0.317849 0.109287 0.085427 360 376 358 381 349 384 Trgb
-0.343885 0.118239 0.092425 358 381 360 376 369 365 Trgb
-0.429700 0.147745 0.115489 366 361 369 365 360 376 Trgb
-0.141167 0.048538 0.037941 337 380 340 375 349 384 Trgb
-0.055697 0.019150 0.014970 329 363 336 359 340 375 Trgb
-0.055697 0.019150 0.014970 340 375 337 380 329 363 Trgb
-0.046330 0.015930 0.012452 361 348 341 347 350 344 Trgb
-0.102027 0.035080 0.027422 352 359 336 359 341 347 Trgb
-0.148358 0.051010 0.039874 341 347 361 348 352 359 Trgb
-0.299349 0.102926 0.080455 366 361 352 359 361 348 Trgb
-0.308827 0.106185 0.083002 369 365 366 361 361 348 Trgb
-0.000000 0.000000 0.000000 336 359 329 363 341 347 Trgb
-0.000000 0.698661 0.209598 356 291 357 294 353 293 Trgb
-0.000000 0.698661 0.209598 357 294 354 296 353 293 Trgb
-0.000000 0.698661 0.209598 354 296 351 295 353 293 Trgb
-0.000000 0.698661 0.209598 351 295 350 292 353 293 Trgb
-0.000000 0.698661 0.209598 350 292 353 290 353 293 Trgb
-0.000000 0.698661 0.209598 353 290 356 291 353 293 Trgb
-0.000000 0.033302 0.009991 352 304 354 296 357 294 Trgb
-0.000000 0.037838 0.011351 352 304 357 294 354 302 Trgb
-0.000000 0.009589 0.002877 348 303 351 295 354 296 Trgb
-0.000000 0.019177 0.005753 348 303 354 296 352 304 Trgb
-0.000000 0.000000 0.000000 348 300 350 292 351 295 Trgb
-0.000000 0.000000 0.000000 348 300 351 295 348 303 Trgb
-0.000000 0.000000 0.000000 328 260 328 261 326 261 Trgb
-0.000000 0.000000 0.000000 328 261 326 263 326 261 Trgb
-0.000000 0.000000 0.000000 326 263 324 263 326 261 Trgb
-0.000000 0.000000 0.000000 324 263 324 262 326 261 Trgb
-0.000000 0.000000 0.000000 324 262 326 260 326 261 Trgb
-0.000000 0.000000 0.000000 326 260 328 260 326 261 Trgb
-0.000000 0.115033 0.034510 355 293 328 261 328 260 Trgb
-0.000000 0.073975 0.022192 355 293 328 260 355 291 Trgb
-0.000000 0.134147 0.040244 354 295 326 263 328 261 Trgb
-0.000000 0.145119 0.043536 354 295 328 261 355 293 Trgb
-0.000000 0.041058 0.012317 352 295 324 263 326 263 Trgb
-0.000000 0.082116 0.024635 352 295 326 263 354 295 Trgb
-0.012930 0.111978 0.024982 327 251 325 259 320 255 Trgb
-0.024464 0.211872 0.047267 334 254 335 258 327 251 Trgb
-0.032663 0.282874 0.063107 325 259 327 251 335 258 Trgb
-0.055838 0.483582 0.107884 335 258 331 265 325 259 Trgb
-0.012930 0.111978 0.024982 325 259 317 262 320 255 Trgb
-0.013042 0.112948 0.025198 324 269 319 269 317 262 Trgb
-0.025972 0.224926 0.050180 317 262 325 259 324 269 Trgb
-0.049147 0.425634 0.094956 331 265 324 269 325 259 Trgb
-0.000000 0.000000 0.000000 319 254 327 251 320 255 Trgb
-0.046381 0.401681 0.089613 336 261 334 269 335 258 Trgb
-0.062754 0.543471 0.121245 331 265 335 258 334 269 Trgb
-0.000000 0.000000 0.000000 317 262 319 254 320 255 Trgb
-0.013154 0.113918 0.025414 319 269 324 269 325 272 Trgb
-0.032999 0.285785 0.063757 334 269 325 272 324 269 Trgb
-0.056063 0.485523 0.108317 324 269 331 265 334 269 Trgb
-0.000000 0.677401 0.203220 372 250 370 250 370 249 Trgb
-0.000000 0.677401 0.203220 370 250 368 249 370 249 Trgb
-0.000000 0.677401 0.203220 368 249 367 248 370 249 Trgb
-0.000000 0.677401 0.203220 367 248 369 248 370 249 Trgb
-0.000000 0.677401 0.203220 369 248 371 249 370 249 Trgb
-0.000000 0.677401 0.203220 371 249 372 250 370 249 Trgb
-0.000000 0.155473 0.046642 354 294 370 250 372 250 Trgb
-0.000000 0.146657 0.043997 354 294 372 250 356 294 Trgb
-0.000000 0.072397 0.021719 352 293 368 249 370 250 Trgb
-0.000000 0.118344 0.035503 352 293 370 250 354 294 Trgb
-0.000000 0.008817 0.002645 351 292 367 248 368 249 Trgb
-0.000000 0.017634 0.005290 351 292 368 249 352 293 Trgb
-0.253712 0.080223 0.066787 390 240 373 240 377 229 Trgb
-0.428856 0.135602 0.112892 390 257 383 259 390 240 Trgb
-0.393311 0.124363 0.103535 373 240 390 240 383 259 Trgb
-0.382168 0.120840 0.100601 383 259 367 256 373 240 Trgb
-0.133898 0.042338 0.035247 373 240 360 230 377 229 Trgb
-0.000000 0.000000 0.000000 353 248 349 241 360 230 Trgb
-0.100475 0.031770 0.026449 360 230 373 240 353 248 Trgb
-0.209145 0.066131 0.055055 367 256 353 248 373 240 Trgb
-0.125755 0.039763 0.033104 363 268 379 268 362 269 Trgb
-0.381589 0.120657 0.100449 383 259 390 257 379 268 Trgb
-0.298777 0.094472 0.078650 379 268 363 268 383 259 Trgb
-0.334900 0.105894 0.088159 367 256 383 259 363 268 Trgb
-0.053208 0.016824 0.014006 350 258 363 268 362 269 Trgb
-0.000000 0.000000 0.000000 349 241 353 248 350 258 Trgb
-0.053208 0.016824 0.014006 363 268 350 258 353 248 Trgb
-0.161878 0.051185 0.042613 353 248 367 256 363 268 Trgb
-0.000000 0.699775 0.209932 374 329 375 328 376 328 Trgb
-0.000000 0.699775 0.209932 375 328 377 327 376 328 Trgb
-0.000000 0.699775 0.209932 377 327 378 327 376 328 Trgb
-0.000000 0.699775 0.209932 378 327 378 329 376 328 Trgb
-0.000000 0.699775 0.209932 378 329 375 330 376 328 Trgb
-0.000000 0.699775 0.209932 375 330 374 329 376 328 Trgb
-0.000000 0.000000 0.000000 352 292 375 328 374 329 Trgb
-0.000000 0.000000 0.000000 352 292 374 329 351 294 Trgb
-0.000000 0.010089 0.003027 354 291 377 327 375 328 Trgb
-0.000000 0.005044 0.001513 354 291 375 328 352 292 Trgb
-0.000000 0.015452 0.004635 356 292 378 327 377 327 Trgb
-0.000000 0.015292 0.004588 356 292 377 327 354 291 Trgb
-0.251815 0.220453 0.094454 371 344 380 331 385 342 Trgb
-0.043448 0.038037 0.016297 360 337 362 328 371 344 Trgb
-0.140870 0.123326 0.052839 380 331 371 344 362 328 Trgb
-0.124253 0.108778 0.046606 362 328 373 319 380 331 Trgb
-0.321818 0.281738 0.120711 380 331 393 331 385 342 Trgb
-0.216925 0.189909 0.081367 385 315 392 319 393 331 Trgb
-0.264847 0.231862 0.099342 393 331 380 331 385 315 Trgb
-0.178226 0.156030 0.066851 373 319 385 315 380 331 Trgb
-0.213871 0.187235 0.080221 384 344 371 344 385 342 Trgb
-0.000000 0.000000 0.000000 362 328 360 337 359 325 Trgb
-0.000000 0.000000 0.000000 359 325 368 312 362 328 Trgb
-0.026831 0.023489 0.010064 373 319 362 328 368 312 Trgb
-0.283874 0.248520 0.106479 393 331 384 344 385 342 Trgb
-0.103473 0.090587 0.038812 392 319 385 315 381 313 Trgb
-0.053974 0.047252 0.020245 368 312 381 313 385 315 Trgb
-0.080804 0.070741 0.030309 385 315 373 319 368 312 Trgb
-0.000000 0.665402 0.199621 241 278 244 280 242 282 Trgb
-0.000000 0.665402 0.199621 244 280 245 284 242 282 Trgb
-0.000000 0.665402 0.199621 245 284 243 286 242 282 Trgb
-0.000000 0.665402 0.199621 243 286 240 284 242 282 Trgb
-0.000000 0.665402 0.199621 240 284 239 280 242 282 Trgb
-0.000000 0.665402 0.199621 239 280 241 278 242 282 Trgb
-0.000000 0.101649 0.030495 305 252 244 280 241 278 Trgb
-0.000000 0.050824 0.015247 305 252 241 278 301 250 Trgb
-0.000000 0.191076 0.057323 305 257 245 284 244 280 Trgb
-0.000000 0.171775 0.051532 305 257 244 280 305 252 Trgb
-0.000000 0.108729 0.032619 303 259 243 286 245 284 Trgb
-0.000000 0.159553 0.047866 303 259 245 284 305 257 Trgb
-0.000000 0.000000 0.000000 183 257 182 260 181 259 Trgb
-0.000000 0.000000 0.000000 182 260 180 262 181 259 Trgb
-0.000000 0.000000 0.000000 180 262 180 261 181 259 Trgb
-0.000000 0.000000 0.000000 180 261 181 258 181 259 Trgb
-0.000000 0.000000 0.000000 181 258 182 256 181 259 Trgb
-0.000000 0.000000 0.000000 182 256 183 257 181 259 Trgb
-0.000000 0.058545 0.017564 243 283 182 260 183 257 Trgb
-0.000000 0.052058 0.015618 243 283 183 257 243 280 Trgb
-0.000000 0.034650 0.010395 241 285 180 262 182 260 Trgb
-0.000000 0.049841 0.014952 241 285 182 260 243 283 Trgb
-0.000000 0.030381 0.009114 243 280 183 257 182 256 Trgb
-0.000000 0.015191 0.004557 243 280 182 256 243 279 Trgb
-0.000000 0.699531 0.209859 182 258 183 258 181 259 Trgb
-0.000000 0.699531 0.209859 183 258 182 259 181 259 Trgb
-0.000000 0.699531 0.209859 182 259 180 260 181 259 Trgb
-0.000000 0.699531 0.209859 180 260 179 260 181 259 Trgb
-0.000000 0.699531 0.209859 179 260 180 259 181 259 Trgb
-0.000000 0.699531 0.209859 180 259 182 258 181 259 Trgb
-0.000000 0.018127 0.005438 180 259 158 222 160 221 Trgb
-0.000000 0.021833 0.006550 180 259 160 221 182 258 Trgb
-0.000000 0.004807 0.001442 179 260 157 224 158 222 Trgb
-0.000000 0.009615 0.002884 179 260 158 222 180 259 Trgb
-0.000000 0.020731 0.006219 182 258 160 221 161 221 Trgb
-0.000000 0.015923 0.004777 182 258 161 221 183 258 Trgb
-0.000000 0.000000 0.000000 158 206 144 215 151 210 Trgb
-0.125687 0.116237 0.048385 165 212 154 217 158 206 Trgb
-0.054272 0.050191 0.020893 144 215 158 206 154 217 Trgb
-0.059609 0.055128 0.022947 154 217 145 225 144 215 Trgb
-0.005337 0.004936 0.002055 145 225 145 232 144 215 Trgb
-0.118139 0.109256 0.045479 173 213 165 212 158 206 Trgb
-0.290405 0.268570 0.111795 155 233 169 224 167 235 Trgb
-0.245347 0.226900 0.094449 154 217 165 212 169 224 Trgb
-0.246867 0.228306 0.095035 169 224 155 233 154 217 Trgb
-0.132545 0.122579 0.051025 145 225 154 217 155 233 Trgb
-0.189409 0.175168 0.072915 160 239 155 233 167 235 Trgb
-0.091599 0.084712 0.035262 155 233 160 239 145 232 Trgb
-0.078273 0.072388 0.030132 145 232 145 225 155 233 Trgb
-0.282857 0.261589 0.108889 169 224 174 230 167 235 Trgb
-0.237798 0.219919 0.091543 165 212 173 213 169 224 Trgb
-0.231771 0.214345 0.089223 174 230 169 224 173 213 Trgb
-0.000000 0.687742 0.206322 155 248 154 246 156 245 Trgb
-0.000000 0.687742 0.206322 154 246 155 244 156 245 Trgb
-0.000000 0.687742 0.206322 155 244 157 243 156 245 Trgb
-0.000000 0.687742 0.206322 157 243 158 244 156 245 Trgb
-0.000000 0.687742 0.206322 158 244 157 247 156 245 Trgb
-0.000000 0.687742 0.206322 157 247 155 248 156 245 Trgb
-0.000000 0.066457 0.019937 183 258 158 244 157 243 Trgb
-0.000000 0.033228 0.009969 183 258 157 243 182 257 Trgb
-0.000000 0.115018 0.034505 183 261 157 247 158 244 Trgb
-0.000000 0.107351 0.032205 183 261 158 244 183 258 Trgb
-0.000000 0.056227 0.016868 181 261 155 248 157 247 Trgb
-0.000000 0.089455 0.026837 181 261 157 247 183 261 Trgb
-0.095233 0.034446 0.025936 143 255 136 238 145 239 Trgb
-0.080765 0.029213 0.021996 149 265 139 256 143 255 Trgb
-0.051549 0.018645 0.014039 136 238 143 255 139 256 Trgb
-0.053915 0.019501 0.014683 136 238 153 226 145 239 Trgb
-0.010230 0.003700 0.002786 153 226 136 238 149 228 Trgb
-0.241449 0.087332 0.065756 160 244 143 255 145 239 Trgb
-0.216750 0.078399 0.059030 163 263 149 265 143 255 Trgb
-0.333750 0.120718 0.090894 143 255 160 244 163 263 Trgb
-0.445297 0.161065 0.121272 173 250 163 263 160 244 Trgb
-0.200131 0.072388 0.054504 153 226 160 244 145 239 Trgb
-0.104898 0.037942 0.028568 163 225 173 234 153 226 Trgb
-0.251114 0.090828 0.068388 160 244 153 226 173 234 Trgb
-0.403979 0.146120 0.110020 173 234 173 250 160 244 Trgb
-0.165202 0.059754 0.044991 149 265 163 263 159 264 Trgb
-0.383518 0.138719 0.104448 163 263 173 250 176 253 Trgb
-0.342200 0.123775 0.093195 173 250 173 234 176 253 Trgb
-0.000000 0.000000 0.000000 138 279 137 277 139 279 Trgb
-0.000000 0.000000 0.000000 137 277 138 277 139 279 Trgb
-0.000000 0.000000 0.000000 138 277 139 279 139 279 Trgb
-0.000000 0.000000 0.000000 139 279 140 281 139 279 Trgb
-0.000000 0.000000 0.000000 140 281 139 281 139 279 Trgb
-0.000000 0.000000 0.000000 139 281 138 279 139 279 Trgb
-0.000000 0.007901 0.002370 181 257 138 277 137 277 Trgb
-0.000000 0.003951 0.001185 181 257 137 277 180 257 Trgb
-0.000000 0.086361 0.025908 182 259 139 279 138 277 Trgb
-0.000000 0.049106 0.014732 182 259 138 277 181 257 Trgb
-0.000000 0.115714 0.034714 182 261 140 281 139 279 Trgb
-0.000000 0.119664 0.035899 182 261 139 279 182 259 Trgb
-0.103705 0.001023 0.020945 115 270 125 287 116 290 Trgb
-0.383332 0.003780 0.077422 134 263 143 280 125 287 Trgb
-0.180283 0.001778 0.036412 125 287 115 270 134 263 Trgb
-0.076578 0.000755 0.015467 128 256 134 263 115 270 Trgb
-0.130831 0.001290 0.026424 125 287 130 303 116 290 Trgb
-0.517330 0.005102 0.104486 143 280 149 296 125 287 Trgb
-0.341407 0.003367 0.068955 130 303 125 287 149 296 Trgb
-0.332454 0.003279 0.067146 149 296 149 301 130 303 Trgb
-0.239839 0.002365 0.048441 158 272 147 256 161 269 Trgb
-0.463077 0.004567 0.093529 143 280 134 263 158 272 Trgb
-0.260028 0.002564 0.052519 147 256 158 272 134 263 Trgb
-0.076578 0.000755 0.015467 134 263 128 256 147 256 Trgb
-0.346710 0.003419 0.070026 162 287 158 272 161 269 Trgb
-0.597075 0.005888 0.120593 149 296 143 280 158 272 Trgb
-0.500898 0.004940 0.101168 158 272 162 287 149 296 Trgb
-0.412199 0.004065 0.083253 149 301 149 296 162 287 Trgb
-0.000000 0.698970 0.209691 239 286 235 285 237 282 Trgb
-0.000000 0.698970 0.209691 235 285 233 282 237 282 Trgb
-0.000000 0.698970 0.209691 233 282 235 279 237 282 Trgb
-0.000000 0.698970 0.209691 235 279 239 279 237 282 Trgb
-0.000000 0.698970 0.209691 239 279 241 283 237 282 Trgb
-0.000000 0.698970 0.209691 241 283 239 286 237 282 Trgb
-0.000000 0.004282 0.001285 244 279 239 279 235 279 Trgb
-0.000000 0.002141 0.000642 244 279 235 279 241 279 Trgb
-0.000000 0.025877 0.007763 245 282 241 283 239 279 Trgb
-0.000000 0.016150 0.004845 245 282 239 279 244 279 Trgb
-0.000000 0.031322 0.009397 244 285 239 286 241 283 Trgb
-0.000000 0.033463 0.010039 244 285 241 283 245 282 Trgb
-0.000000 0.699983 0.209995 269 294 268 292 270 291 Trgb
-0.000000 0.699983 0.209995 268 292 269 290 270 291 Trgb
-0.000000 0.699983 0.209995 269 290 270 289 270 291 Trgb
-0.000000 0.699983 0.209995 270 289 272 290 270 291 Trgb
-0.000000 0.699983 0.209995 272 290 271 293 270 291 Trgb
-0.000000 0.699983 0.209995 271 293 269 294 270 291 Trgb
-0.000000 0.002735 0.000821 235 283 268 292 269 294 Trgb
-0.000000 0.003769 0.001131 235 283 269 294 236 285 Trgb
-0.000000 0.000567 0.000170 236 281 269 290 268 292 Trgb
-0.000000 0.001134 0.000340 236 281 268 292 235 283 Trgb
-0.000000 0.000000 0.000000 238 280 270 289 269 290 Trgb
-0.000000 0.000000 0.000000 238 280 269 290 236 281 Trgb
-0.376135 0.200455 0.115318 276 308 269 291 284 295 Trgb
-0.154087 0.082118 0.047241 265 311 256 303 276 308 Trgb
-0.237541 0.126594 0.072827 269 291 276 308 256 303 Trgb
-0.116308 0.061985 0.035659 256 303 255 288 269 291 Trgb
-0.346879 0.184863 0.106348 269 291 283 279 284 295 Trgb
-0.091976 0.049017 0.028199 263 274 275 271 283 279 Trgb
-0.196118 0.104518 0.060127 283 279 269 291 263 274 Trgb
-0.104142 0.055501 0.031929 255 288 263 274 269 291 Trgb
-0.381060 0.203080 0.116828 290 296 276 308 284 295 Trgb
-0.012166 0.006484 0.003730 255 288 256 303 250 286 Trgb
-0.351803 0.187488 0.107858 283 279 290 296 284 295 Trgb
-0.091976 0.049017 0.028199 275 271 284 279 283 279 Trgb
-0.201042 0.107142 0.061637 290 296 283 279 284 279 Trgb
-0.000000 0.000000 0.000000 263 274 255 288 250 286 Trgb
-0.000000 0.696680 0.209004 220 322 221 321 222 322 Trgb
-0.000000 0.696680 0.209004 221 321 224 322 222 322 Trgb
-0.000000 0.696680 0.209004 224 322 225 323 222 322 Trgb
-0.000000 0.696680 0.209004 225 323 223 324 222 322 Trgb
-0.000000 0.696680 0.209004 223 324 221 323 222 322 Trgb
-0.000000 0.696680 0.209004 221 323 220 322 222 322 Trgb
-0.000000 0.003836 0.001151 236 281 221 321 220 322 Trgb
-0.000000 0.001918 0.000575 236 281 220 322 235 282 Trgb
-0.000000 0.043010 0.012903 238 282 224 322 221 321 Trgb
-0.000000 0.024382 0.007315 238 282 221 321 236 281 Trgb
-0.000000 0.057802 0.017341 239 283 225 323 224 322 Trgb
-0.000000 0.059720 0.017916 239 283 224 322 238 282 Trgb
-0.032130 0.233204 0.053067 212 326 221 325 219 331 Trgb
-0.000000 0.000000 0.000000 212 319 216 316 212 326 Trgb
-0.019262 0.139807 0.031814 221 325 212 326 216 316 Trgb
-0.033635 0.244129 0.055553 216 316 223 317 221 325 Trgb
-0.055827 0.405196 0.092205 221 325 227 331 219 331 Trgb
-0.069102 0.501547 0.114130 231 321 233 326 227 331 Trgb
-0.067720 0.491517 0.111847 227 331 221 325 231 321 Trgb
-0.058397 0.423846 0.096448 223 317 231 321 221 325 Trgb
-0.012868 0.093396 0.021253 219 333 212 326 219 331 Trgb
-0.000000 0.000000 0.000000 216 316 212 319 217 314 Trgb
-0.001064 0.007725 0.001758 217 314 225 312 216 316 Trgb
-0.015437 0.112046 0.025497 223 317 216 316 225 312 Trgb
-0.036565 0.265389 0.060391 227 331 219 333 219 331 Trgb
-0.050904 0.369464 0.084074 233 326 231 321 232 318 Trgb
-0.031324 0.227352 0.051735 225 312 232 318 231 321 Trgb
-0.040198 0.291763 0.066392 231 321 223 317 225 312 Trgb
-0.000000 0.000000 0.000000 194 295 195 296 195 297 Trgb
-0.000000 0.000000 0.000000 195 296 196 298 195 297 Trgb
-0.000000 0.000000 0.000000 196 298 196 299 195 297 Trgb
-0.000000 0.000000 0.000000 196 299 194 299 195 297 Trgb
-0.000000 0.000000 0.000000 194 299 193 296 195 297 Trgb
-0.000000 0.000000 0.000000 193 296 194 295 195 297 Trgb
-0.000000 0.120080 0.036024 238 281 195 296 194 295 Trgb
-0.000000 0.060040 0.018012 238 281 194 295 236 280 Trgb
-0.000000 0.307224 0.092167 238 283 196 298 195 296 Trgb
-0.000000 0.243672 0.073102 238 283 195 296 238 281 Trgb
-0.000000 0.250695 0.075208 238 285 196 299 196 298 Trgb
-0.000000 0.310735 0.093220 238 285 196 298 238 283 Trgb
-0.017736 0.110162 0.025580 185 292 191 298 185 301 Trgb
-0.007836 0.048670 0.011301 191 286 195 288 185 292 Trgb
-0.025572 0.158832 0.036881 191 298 185 292 195 288 Trgb
-0.053236 0.330662 0.076779 195 288 199 295 191 298 Trgb
-0.027636 0.171654 0.039858 191 298 191 307 185 301 Trgb
-0.057770 0.358825 0.083319 201 303 199 308 191 307 Trgb
-0.058923 0.365987 0.084982 191 307 191 298 201 303 Trgb
-0.076687 0.476325 0.110603 199 295 201 303 191 298 Trgb
-0.000000 0.000000 0.000000 185 301 185 292 185 301 Trgb
-0.007836 0.048670 0.011301 195 288 191 286 199 287 Trgb
-0.029223 0.181512 0.042147 199 287 205 293 195 288 Trgb
-0.056887 0.353342 0.082046 199 295 195 288 205 293 Trgb
-0.009900 0.061492 0.014278 191 307 185 301 185 301 Trgb
-0.061421 0.381505 0.088585 199 308 201 303 204 302 Trgb
-0.066226 0.411348 0.095515 205 293 204 302 201 303 Trgb
-0.080339 0.499005 0.115869 201 303 199 295 205 293 Trgb
-0.000000 0.000000 0.000000 204 336 203 336 206 337 Trgb
-0.000000 0.000000 0.000000 203 336 206 337 206 337 Trgb
-0.000000 0.000000 0.000000 206 337 208 339 206 337 Trgb
-0.000000 0.000000 0.000000 208 339 208 339 206 337 Trgb
-0.000000 0.000000 0.000000 208 339 206 337 206 337 Trgb
-0.000000 0.000000 0.000000 206 337 204 336 206 337 Trgb
-0.000000 0.287100 0.086130 242 282 206 337 203 336 Trgb
-0.000000 0.143550 0.043065 242 282 203 336 240 280 Trgb
-0.000000 0.549999 0.165000 244 283 208 339 206 337 Trgb
-0.000000 0.490325 0.147098 244 283 206 337 242 282 Trgb
-0.000000 0.322574 0.096772 244 284 208 339 208 339 Trgb
-0.000000 0.466124 0.139837 244 284 208 339 244 283 Trgb
-0.000000 0.698197 0.209459 204 336 205 335 206 337 Trgb
-0.000000 0.698197 0.209459 205 335 207 337 206 337 Trgb
-0.000000 0.698197 0.209459 207 337 208 339 206 337 Trgb
-0.000000 0.698197 0.209459 208 339 206 339 206 337 Trgb
-0.000000 0.698197 0.209459 206 339 204 338 206 337 Trgb
-0.000000 0.698197 0.209459 204 338 204 336 206 337 Trgb
-0.000000 0.008040 0.002412 204 338 183 364 182 362 Trgb
-0.000000 0.004020 0.001206 204 338 182 362 204 336 Trgb
-0.000000 0.036178 0.010854 206 339 185 365 183 364 Trgb
-0.000000 0.024119 0.007236 206 339 183 364 204 338 Trgb
-0.000000 0.040198 0.012059 208 339 186 364 185 365 Trgb
-0.000000 0.044218 0.013265 208 339 185 365 206 339 Trgb
-0.000000 0.000000 0.000000 166 351 166 365 164 363 Trgb
-0.000000 0.000000 0.000000 172 382 164 363 166 365 Trgb
-0.121419 0.011415 0.026567 166 365 177 378 172 382 Trgb
-0.296498 0.027876 0.064875 177 378 193 382 172 382 Trgb
-0.293709 0.027614 0.064265 187 364 178 346 195 351 Trgb
-0.000000 0.000000 0.000000 166 365 166 351 178 346 Trgb
-0.171952 0.016166 0.037624 178 346 187 364 166 365 Trgb
-0.293371 0.027582 0.064191 177 378 166 365 187 364 Trgb
-0.469028 0.044097 0.102625 205 363 187 364 195 351 Trgb
-0.476578 0.044806 0.104277 203 375 193 382 205 363 Trgb
-0.522349 0.049110 0.114292 187 364 205 363 193 382 Trgb
-0.468450 0.044042 0.102498 193 382 177 378 187 364 Trgb
-0.121997 0.011470 0.026693 178 346 197 344 195 351 Trgb
-0.000000 0.000000 0.000000 166 351 176 345 178 346 Trgb
-0.000239 0.000023 0.000052 197 344 178 346 176 345 Trgb
-0.297315 0.027953 0.065054 197 344 205 363 195 351 Trgb
-0.000000 0.699742 0.209923 205 337 206 335 206 337 Trgb
-0.000000 0.699742 0.209923 206 335 207 336 206 337 Trgb
-0.000000 0.699742 0.209923 207 336 207 338 206 337 Trgb
-0.000000 0.699742 0.209923 207 338 206 340 206 337 Trgb
-0.000000 0.699742 0.209923 206 340 205 339 206 337 Trgb
-0.000000 0.699742 0.209923 205 339 205 337 206 337 Trgb
-0.000000 0.015210 0.004563 205 339 165 339 165 337 Trgb
-0.000000 0.011503 0.003451 205 339 165 337 205 337 Trgb
-0.000000 0.013720 0.004116 206 340 167 340 165 339 Trgb
-0.000000 0.016319 0.004896 206 340 165 339 205 339 Trgb
-0.000000 0.005197 0.001559 205 337 165 337 166 335 Trgb
-0.000000 0.002599 0.000780 205 337 166 335 206 335 Trgb
-0.058239 0.091602 0.029968 159 333 159 344 153 334 Trgb
-0.040484 0.063676 0.020832 156 347 153 334 159 344 Trgb
-0.079983 0.125802 0.041157 159 344 164 351 156 347 Trgb
-0.017755 0.027926 0.009136 163 325 159 333 153 334 Trgb
-0.232855 0.366250 0.119821 173 347 170 334 178 337 Trgb
-0.127138 0.199970 0.065422 159 344 159 333 170 334 Trgb
-0.193657 0.304596 0.099650 170 334 173 347 159 344 Trgb
-0.164256 0.258353 0.084522 164 351 159 344 173 347 Trgb
-0.207746 0.326757 0.106901 180 341 173 347 178 337 Trgb
-0.139147 0.218860 0.071601 170 350 164 351 173 347 Trgb
-0.176996 0.278391 0.091077 170 334 177 328 178 337 Trgb
-0.086654 0.136294 0.044590 159 333 163 325 170 334 Trgb
-0.097313 0.153061 0.050075 177 328 170 334 163 325 Trgb
-0.028415 0.044692 0.014621 163 325 169 324 177 328 Trgb
-0.151887 0.238897 0.078157 177 328 180 341 178 337 Trgb
-0.000000 0.698962 0.209689 220 381 218 381 220 381 Trgb
-0.000000 0.698962 0.209689 218 381 217 381 220 381 Trgb
-0.000000 0.698962 0.209689 217 381 219 380 220 381 Trgb
-0.000000 0.698962 0.209689 219 380 221 380 220 381 Trgb
-0.000000 0.698962 0.209689 221 380 222 380 220 381 Trgb
-0.000000 0.698962 0.209689 222 380 220 381 220 381 Trgb
-0.000000 0.016514 0.004954 205 337 219 380 217 381 Trgb
-0.000000 0.008257 0.002477 205 337 217 381 204 338 Trgb
-0.000000 0.033230 0.009969 207 336 221 380 219 380 Trgb
-0.000000 0.029001 0.008700 207 336 219 380 205 337 Trgb
-0.000000 0.020944 0.006283 208 337 222 380 221 380 Trgb
-0.000000 0.029201 0.008760 208 337 221 380 207 336 Trgb
-0.307148 0.060281 0.073486 210 400 221 393 226 401 Trgb
-0.252761 0.049607 0.060474 201 384 214 377 221 393 Trgb
-0.175305 0.034406 0.041942 221 393 210 400 201 384 Trgb
-0.015997 0.003140 0.003827 199 388 201 384 210 400 Trgb
-0.461610 0.090596 0.110441 221 393 239 390 226 401 Trgb
-0.396072 0.077734 0.094761 214 377 231 373 221 393 Trgb
-0.473078 0.092847 0.113185 239 390 221 393 231 373 Trgb
-0.422991 0.083017 0.101202 231 373 240 373 239 390 Trgb
-0.000000 0.000000 0.000000 211 364 201 371 213 360 Trgb
-0.093452 0.018341 0.022359 214 377 201 384 211 364 Trgb
-0.000000 0.000000 0.000000 201 371 211 364 201 384 Trgb
-0.000000 0.000000 0.000000 201 384 199 388 201 371 Trgb
-0.000000 0.000000 0.000000 229 361 211 364 213 360 Trgb
-0.236764 0.046468 0.056646 231 373 214 377 211 364 Trgb
-0.143312 0.028127 0.034288 211 364 229 361 231 373 Trgb
-0.252533 0.049563 0.060419 240 373 231 373 229 361 Trgb
-0.000000 0.699663 0.209899 381 310 379 311 383 307 Trgb
-0.000000 0.699663 0.209899 379 311 381 307 383 307 Trgb
-0.000000 0.699663 0.209899 381 307 385 304 383 307 Trgb
-0.000000 0.699663 0.209899 385 304 387 303 383 307 Trgb
-0.000000 0.699663 0.209899 387 303 385 307 383 307 Trgb
-0.000000 0.699663 0.209899 385 307 381 310 383 307 Trgb
-0.000000 0.009326 0.002798 303 230 381 307 379 311 Trgb
-0.000000 0.004663 0.001399 303 230 379 311 301 233 Trgb
-0.000000 0.018911 0.005673 307 226 385 304 381 307 Trgb
-0.000000 0.016450 0.004935 307 226 381 307 303 230 Trgb
-0.000000 0.012047 0.003614 310 226 387 303 385 304 Trgb
-0.000000 0.016710 0.005013 310 226 385 304 307 226 Trgb
-0.000000 0.000000 0.000000 381 310 381 307 383 307 Trgb
-0.000000 0.000000 0.000000 381 307 384 304 383 307 Trgb
-0.000000 0.000000 0.000000 384 304 386 304 383 307 Trgb
-0.000000 0.000000 0.000000 386 304 385 307 383 307 Trgb
-0.000000 0.000000 0.000000 385 307 383 310 383 307 Trgb
-0.000000 0.000000 0.000000 383 310 381 310 383 307 Trgb
-0.000000 0.025647 0.007694 383 310 439 357 437 357 Trgb
-0.000000 0.012824 0.003847 383 310 437 357 381 310 Trgb
-0.000000 0.054647 0.016394 385 307 442 354 439 357 Trgb
-0.000000 0.046559 0.013968 385 307 439 357 383 310 Trgb
-0.000000 0.037089 0.011127 386 304 442 352 442 354 Trgb
-0.000000 0.049912 0.014974 386 304 442 354 385 307 Trgb
-0.000000 0.687787 0.206336 438 356 437 353 440 355 Trgb
-0.000000 0.687787 0.206336 437 353 439 352 440 355 Trgb
-0.000000 0.687787 0.206336 439 352 442 353 440 355 Trgb
-0.000000 0.687787 0.206336 442 353 442 356 440 355 Trgb
-0.000000 0.687787 0.206336 442 356 440 357 440 355 Trgb
-0.000000 0.687787 0.206336 440 357 438 356 440 355 Trgb
-0.000000 0.101740 0.030522 442 356 464 346 462 348 Trgb
-0.000000 0.074722 0.022417 442 356 462 348 440 357 Trgb
-0.000000 0.096953 0.029086 442 353 463 344 464 346 Trgb
-0.000000 0.112855 0.033857 442 353 464 346 442 356 Trgb
-0.000000 0.027017 0.008105 439 352 461 343 463 344 Trgb
-0.000000 0.054034 0.016210 439 352 463 344 442 353 Trgb
-0.000000 0.691825 0.207548 460 345 460 344 461 345 Trgb
-0.000000 0.691825 0.207548 460 344 462 345 461 345 Trgb
-0.000000 0.691825 0.207548 462 345 463 345 461 345 Trgb
-0.000000 0.691825 0.207548 463 345 463 346 461 345 Trgb
-0.000000 0.691825 0.207548 463 346 461 346 461 345 Trgb
-0.000000 0.691825 0.207548 461 346 460 345 461 345 Trgb
-0.000000 0.075590 0.022677 462 345 472 314 474 314 Trgb
-0.000000 0.090975 0.027293 462 345 474 314 463 345 Trgb
-0.000000 0.020068 0.006020 460 344 471 313 472 314 Trgb
-0.000000 0.040137 0.012041 460 344 472 314 462 345 Trgb
-0.000000 0.000000 0.000000 460 345 470 314 471 313 Trgb
-0.000000 0.000000 0.000000 460 345 471 313 460 344 Trgb
-0.009659 0.007219 0.003376 468 307 460 308 472 301 Trgb
-0.060429 0.045167 0.021119 484 307 472 301 476 303 Trgb
-0.283462 0.211871 0.099067 485 316 478 310 484 307 Trgb
-0.156813 0.117208 0.054804 472 301 484 307 478 310 Trgb
-0.106043 0.079261 0.037061 478 310 468 307 472 301 Trgb
-0.182166 0.136158 0.063665 478 324 472 327 468 326 Trgb
-0.328054 0.245201 0.114651 485 316 483 320 478 324 Trgb
-0.077145 0.057661 0.026961 460 321 467 317 468 326 Trgb
-0.000000 0.000000 0.000000 459 313 460 308 460 321 Trgb
-0.035955 0.026874 0.012566 467 317 460 321 460 308 Trgb
-0.045614 0.034094 0.015942 460 308 468 307 467 317 Trgb
-0.195825 0.146368 0.068439 467 317 478 324 468 326 Trgb
-0.341713 0.255410 0.119425 478 310 485 316 478 324 Trgb
-0.251020 0.187622 0.087728 478 324 467 317 478 310 Trgb
-0.141998 0.106135 0.049627 468 307 478 310 467 317 Trgb
-0.000000 0.000000 0.000000 463 344 462 346 461 345 Trgb
-0.000000 0.000000 0.000000 462 346 461 347 461 345 Trgb
-0.000000 0.000000 0.000000 461 347 460 346 461 345 Trgb
-0.000000 0.000000 0.000000 460 346 460 345 461 345 Trgb
-0.000000 0.000000 0.000000 460 345 462 344 461 345 Trgb
-0.000000 0.000000 0.000000 462 344 463 344 461 345 Trgb
-0.000000 0.014411 0.004323 461 347 485 367 485 366 Trgb
-0.000000 0.007206 0.002162 461 347 485 366 460 346 Trgb
-0.000000 0.054003 0.016201 462 346 487 366 485 367 Trgb
-0.000000 0.037810 0.011343 462 346 485 367 461 347 Trgb
-0.000000 0.055784 0.016735 463 344 487 364 487 366 Trgb
-0.000000 0.062990 0.018897 463 344 487 366 462 346 Trgb
-0.117681 0.406254 0.104787 491 366 493 361 495 366 Trgb
-0.126551 0.436877 0.112686 495 366 491 373 491 366 Trgb
-0.122641 0.423379 0.109204 487 372 491 366 491 373 Trgb
-0.006385 0.022042 0.005685 481 358 487 358 480 360 Trgb
-0.038254 0.132061 0.034063 491 358 493 361 487 358 Trgb
-0.006385 0.022042 0.005685 487 358 481 358 491 358 Trgb
-0.077571 0.267788 0.069072 481 373 487 372 491 373 Trgb
-0.000000 0.000000 0.000000 477 365 481 358 480 360 Trgb
-0.014824 0.051177 0.013200 487 358 482 366 480 360 Trgb
-0.085380 0.294746 0.076025 493 361 491 366 487 358 Trgb
-0.061950 0.213861 0.055162 482 366 487 358 491 366 Trgb
-0.090341 0.311871 0.080442 491 366 487 372 482 366 Trgb
-0.008440 0.029135 0.007515 482 366 477 365 480 360 Trgb
-0.002055 0.007094 0.001830 481 373 479 370 477 365 Trgb
-0.010495 0.036229 0.009345 477 365 482 366 481 373 Trgb
-0.045270 0.156280 0.040310 487 372 481 373 482 366 Trgb
-0.000000 0.000000 0.000000 461 344 461 344 461 345 Trgb
-0.000000 0.000000 0.000000 461 344 462 346 461 345 Trgb
-0.000000 0.000000 0.000000 462 346 462 347 461 345 Trgb
-0.000000 0.000000 0.000000 462 347 461 346 461 345 Trgb
-0.000000 0.000000 0.000000 461 346 460 344 461 345 Trgb
-0.000000 0.000000 0.000000 460 344 461 344 461 345 Trgb
-0.000000 0.074013 0.022204 462 346 495 335 494 336 Trgb
-0.000000 0.062494 0.018748 462 346 494 336 462 347 Trgb
-0.000000 0.051548 0.015464 461 344 494 333 495 335 Trgb
-0.000000 0.068539 0.020562 461 344 495 335 462 346 Trgb
-0.000000 0.011519 0.003456 461 344 493 332 494 333 Trgb
-0.000000 0.023037 0.006911 461 344 494 333 461 344 Trgb
-0.094155 0.178202 0.054471 504 331 498 324 503 331 Trgb
-0.011283 0.021354 0.006527 494 326 490 324 498 324 Trgb
-0.075245 0.142413 0.043532 498 324 504 331 494 326 Trgb
-0.135510 0.256474 0.078397 498 333 494 326 504 331 Trgb
-0.000000 0.000000 0.000000 484 337 485 329 484 337 Trgb
-0.170934 0.323519 0.098891 497 344 499 341 503 339 Trgb
-0.190588 0.360716 0.110261 504 331 503 339 499 341 Trgb
-0.198172 0.375072 0.114649 499 341 498 333 504 331 Trgb
-0.021265 0.040247 0.012302 485 329 490 336 484 337 Trgb
-0.011283 0.021354 0.006527 490 324 494 326 485 329 Trgb
-0.032547 0.061601 0.018830 490 336 485 329 494 326 Trgb
-0.092812 0.175662 0.053695 494 326 498 333 490 336 Trgb
-0.031247 0.059140 0.018077 490 336 490 344 484 337 Trgb
-0.128236 0.242707 0.074189 499 341 497 344 490 344 Trgb
-0.105192 0.199092 0.060857 490 344 490 336 499 341 Trgb
-0.155475 0.294260 0.089947 498 333 499 341 490 336 Trgb
-0.000000 0.698488 0.209546 453 408 454 408 451 408 Trgb
-0.000000 0.698488 0.209546 454 408 452 409 451 408 Trgb
-0.000000 0.698488 0.209546 452 409 449 409 451 408 Trgb
-0.000000 0.698488 0.209546 449 409 448 409 451 408 Trgb
-0.000000 0.698488 0.209546 448 409 450 408 451 408 Trgb
-0.000000 0.698488 0.209546 450 408 453 408 451 408 Trgb
-0.000000 0.035029 0.010509 442 354 454 408 453 408 Trgb
-0.000000 0.040113 0.012034 442 354 453 408 441 354 Trgb
-0.000000 0.010168 0.003050 439 354 450 408 448 409 Trgb
-0.000000 0.005084 0.001525 439 354 448 409 437 355 Trgb
-0.000000 0.035216 0.010565 441 354 453 408 450 408 Trgb
-0.000000 0.025234 0.007570 441 354 450 408 439 354 Trgb
-0.000000 0.696558 0.208967 443 433 443 434 441 433 Trgb
-0.000000 0.696558 0.208967 443 434 441 435 441 433 Trgb
-0.000000 0.696558 0.208967 441 435 439 434 441 433 Trgb
-0.000000 0.696558 0.208967 439 434 439 432 441 433 Trgb
-0.000000 0.696558 0.208967 439 432 441 432 441 433 Trgb
-0.000000 0.696558 0.208967 441 432 443 433 441 433 Trgb
-0.000000 0.059446 0.017834 453 409 443 434 443 433 Trgb
-0.000000 0.060519 0.018156 453 409 443 433 453 408 Trgb
-0.000000 0.002147 0.000644 451 407 441 432 439 432 Trgb
-0.000000 0.001074 0.000322 451 407 439 432 449 407 Trgb
-0.000000 0.042136 0.012641 453 408 443 433 441 432 Trgb
-0.000000 0.022679 0.006804 453 408 441 432 451 407 Trgb
-0.329826 0.121701 0.090305 449 438 444 450 437 444 Trgb
-0.430194 0.158735 0.117786 456 429 458 440 449 438 Trgb
-0.398450 0.147022 0.109094 444 450 449 438 458 440 Trgb
-0.318627 0.117568 0.087239 458 440 450 446 444 450 Trgb
-0.180059 0.066439 0.049300 444 450 428 444 437 444 Trgb
-0.230910 0.085202 0.063223 432 432 449 438 437 444 Trgb
-0.331278 0.122236 0.090703 445 421 456 429 449 438 Trgb
-0.200618 0.074025 0.054929 449 438 432 432 445 421 Trgb
-0.050851 0.018763 0.013923 432 420 445 421 432 432 Trgb
-0.081143 0.029941 0.022217 428 444 432 432 437 444 Trgb
-0.004639 0.001712 0.001270 432 432 428 444 425 427 Trgb
-0.004639 0.001712 0.001270 425 427 432 420 432 432 Trgb
-0.223084 0.082315 0.061080 456 429 445 421 455 423 Trgb
-0.087786 0.032392 0.024036 438 416 455 423 445 421 Trgb
-0.046212 0.017052 0.012653 445 421 432 420 438 416 Trgb
-0.000000 0.699959 0.209988 485 427 484 429 484 427 Trgb
-0.000000 0.699959 0.209988 484 429 483 429 484 427 Trgb
-0.000000 0.699959 0.209988 483 429 484 427 484 427 Trgb
-0.000000 0.699959 0.209988 484 427 485 425 484 427 Trgb
-0.000000 0.699959 0.209988 485 425 485 426 484 427 Trgb
-0.000000 0.699959 0.209988 485 426 485 427 484 427 Trgb
-0.000000 0.005578 0.001673 450 408 484 427 483 429 Trgb
-0.000000 0.003816 0.001145 450 408 483 429 450 410 Trgb
-0.000000 0.005972 0.001792 451 407 485 425 484 427 Trgb
-0.000000 0.006656 0.001997 451 407 484 427 450 408 Trgb
-0.000000 0.001762 0.000529 452 407 485 426 485 425 Trgb
-0.000000 0.003525 0.001057 452 407 485 425 451 407 Trgb
-0.371114 0.204675 0.115158 489 443 491 432 498 435 Trgb
-0.172821 0.095313 0.053627 475 436 479 426 491 432 Trgb
-0.240382 0.132574 0.074591 491 432 489 443 475 436 Trgb
-0.114646 0.063229 0.035575 477 441 475 436 489 443 Trgb
-0.382205 0.210792 0.118599 491 432 499 422 498 435 Trgb
-0.183911 0.101430 0.057068 479 426 486 416 491 432 Trgb
-0.262562 0.144807 0.081474 499 422 491 432 486 416 Trgb
-0.144668 0.079787 0.044891 486 416 492 413 499 422 Trgb
-0.000000 0.000000 0.000000 471 421 470 432 471 419 Trgb
-0.047085 0.025968 0.014611 479 426 475 436 471 421 Trgb
-0.016255 0.008965 0.005044 470 432 471 421 475 436 Trgb
-0.016255 0.008965 0.005044 475 436 477 441 470 432 Trgb
-0.000000 0.000000 0.000000 480 412 471 421 471 419 Trgb
-0.058175 0.032084 0.018052 486 416 479 426 471 421 Trgb
-0.027345 0.015081 0.008485 471 421 480 412 486 416 Trgb
-0.035187 0.019406 0.010919 492 413 486 416 480 412 Trgb
-0.000000 0.668910 0.200673 449 408 449 407 451 408 Trgb
-0.000000 0.668910 0.200673 449 407 451 407 451 408 Trgb
-0.000000 0.668910 0.200673 451 407 452 408 451 408 Trgb
-0.000000 0.668910 0.200673 452 408 453 409 451 408 Trgb
-0.000000 0.668910 0.200673 453 409 451 409 451 408 Trgb
-0.000000 0.668910 0.200673 451 409 449 408 451 408 Trgb
-0.000000 0.099272 0.029782 451 409 439 442 437 441 Trgb
-0.000000 0.049636 0.014891 451 409 437 441 449 408 Trgb
-0.000000 0.181706 0.054512 453 409 441 441 439 442 Trgb
-0.000000 0.165307 0.049592 453 409 439 442 451 409 Trgb
-0.000000 0.000000 0.000000 449 408 437 441 437 440 Trgb
-0.000000 0.000000 0.000000 449 408 437 440 449 407 Trgb
-0.004375 0.127388 0.026353 433 445 440 448 437 446 Trgb
-0.003962 0.115366 0.023866 433 441 438 444 433 445 Trgb
-0.008337 0.242754 0.050218 440 448 433 445 438 444 Trgb
-0.015764 0.459008 0.094954 438 444 443 445 440 448 Trgb
-0.018343 0.534106 0.110490 443 445 446 443 440 448 Trgb
-0.000000 0.000000 0.000000 432 438 433 441 433 445 Trgb
-0.007368 0.214543 0.044382 443 439 436 437 441 435 Trgb
-0.003962 0.115366 0.023866 438 444 433 441 436 437 Trgb
-0.010090 0.293808 0.060780 436 437 443 439 438 444 Trgb
-0.017517 0.510062 0.105516 443 445 438 444 443 439 Trgb
-0.009534 0.277619 0.057431 445 436 443 439 441 435 Trgb
-0.014836 0.431982 0.089364 443 439 445 436 446 443 Trgb
-0.020096 0.585160 0.121051 446 443 443 445 443 439 Trgb
-0.001240 0.036101 0.007468 436 437 438 433 441 435 Trgb
-0.000000 0.000000 0.000000 433 441 432 438 436 437 Trgb
-0.000000 0.000000 0.000000 438 433 436 437 432 438 Trgb
-0.000000 0.699421 0.209826 496 351 496 354 496 353 Trgb
-0.000000 0.699421 0.209826 496 354 496 355 496 353 Trgb
-0.000000 0.699421 0.209826 496 355 496 354 496 353 Trgb
-0.000000 0.699421 0.209826 496 354 496 351 496 353 Trgb
-0.000000 0.699421 0.209826 496 351 496 350 496 353 Trgb
-0.000000 0.699421 0.209826 496 350 496 351 496 353 Trgb
-0.000000 0.023624 0.007087 439 356 496 354 496 355 Trgb
-0.000000 0.018777 0.005633 439 356 496 355 440 357 Trgb
-0.000000 0.019183 0.005755 439 354 496 351 496 354 Trgb
-0.000000 0.023827 0.007148 439 354 496 354 439 356 Trgb
-0.000000 0.004847 0.001454 439 352 496 350 496 351 Trgb
-0.000000 0.009693 0.002908 439 352 496 351 439 354 Trgb
-0.000000 0.172605 0.051782 496 353 494 352 496 353 Trgb
-0.000000 0.172605 0.051782 494 352 494 351 496 353 Trgb
-0.000000 0.172605 0.051782 494 351 496 352 496 353 Trgb
-0.000000 0.172605 0.051782 496 352 497 353 496 353 Trgb
-0.000000 0.172605 0.051782 497 353 497 354 496 353 Trgb
-0.000000 0.172605 0.051782 497 354 496 353 496 353 Trgb
-0.000000 0.589120 0.176736 497 353 517 321 517 322 Trgb
-0.000000 0.508333 0.152500 497 353 517 322 497 354 Trgb
-0.000000 0.384877 0.115463 496 352 516 320 517 321 Trgb
-0.000000 0.527393 0.158218 496 352 517 321 497 353 Trgb
-0.000000 0.080787 0.024236 494 351 515 320 516 320 Trgb
-0.000000 0.161575 0.048472 494 351 516 320 496 352 Trgb
-0.147652 0.061182 0.041767 532 317 522 307 524 308 Trgb
-0.249743 0.103485 0.070645 526 322 516 315 522 307 Trgb
-0.298271 0.123593 0.084373 522 307 532 317 526 322 Trgb
-0.412156 0.170783 0.116588 531 329 526 322 532 317 Trgb
-0.040189 0.016653 0.011368 522 307 512 306 524 308 Trgb
-0.099123 0.041073 0.028039 516 315 506 311 522 307 Trgb
-0.040189 0.016653 0.011368 512 306 522 307 506 311 Trgb
-0.000000 0.000000 0.000000 506 311 502 313 512 306 Trgb
-0.155686 0.064511 0.044039 510 326 520 336 507 334 Trgb
-0.252711 0.104714 0.071485 516 315 526 322 510 326 Trgb
-0.304207 0.126053 0.086052 520 336 510 326 526 322 Trgb
-0.415124 0.172013 0.117427 526 322 531 329 520 336 Trgb
-0.045255 0.018752 0.012802 500 325 510 326 507 334 Trgb
-0.102091 0.042303 0.028879 506 311 516 315 510 326 Trgb
-0.043157 0.017883 0.012208 510 326 500 325 506 311 Trgb
-0.000000 0.000000 0.000000 502 313 506 311 500 325 Trgb
-0.000000 0.000000 0.000000 496 354 495 352 496 353 Trgb
-0.000000 0.000000 0.000000 495 352 494 351 496 353 Trgb
-0.000000 0.000000 0.000000 494 351 496 351 496 353 Trgb
-0.000000 0.000000 0.000000 496 351 497 353 496 353 Trgb
-0.000000 0.000000 0.000000 497 353 497 354 496 353 Trgb
-0.000000 0.000000 0.000000 497 354 496 354 496 353 Trgb
-0.000000 0.192098 0.057629 497 353 525 330 525 331 Trgb
-0.000000 0.177366 0.053210 497 353 525 331 497 354 Trgb
-0.000000 0.098407 0.029522 496 351 523 328 525 330 Trgb
-0.000000 0.152618 0.045785 496 351 525 330 497 353 Trgb
-0.000000 0.014732 0.004420 494 351 522 328 523 328 Trgb
-0.000000 0.029463 0.008839 494 351 523 328 496 351 Trgb
-0.180153 0.097673 0.055565 540 329 531 317 535 320 Trgb
-0.192968 0.104621 0.059518 532 329 523 320 531 317 Trgb
-0.282334 0.153073 0.087081 531 317 540 329 532 329 Trgb
-0.391187 0.212089 0.120655 535 338 532 329 540 329 Trgb
-0.087413 0.047393 0.026961 524 342 516 342 512 339 Trgb
-0.315976 0.171312 0.097458 535 338 532 342 524 342 Trgb
-0.067950 0.036840 0.020958 523 320 515 317 531 317 Trgb
-0.092721 0.050270 0.028598 515 330 524 342 512 339 Trgb
-0.160670 0.087110 0.049556 523 320 532 329 515 330 Trgb
-0.217739 0.118051 0.067158 524 342 515 330 532 329 Trgb
-0.358889 0.194578 0.110694 532 329 535 338 524 342 Trgb
-0.005308 0.002878 0.001637 508 330 515 330 512 339 Trgb
-0.035652 0.019330 0.010996 515 317 523 320 515 330 Trgb
-0.005308 0.002878 0.001637 515 330 508 330 515 317 Trgb
-0.000000 0.000000 0.000000 512 321 515 317 508 330 Trgb
-0.000000 0.000000 0.000000 496 353 495 354 496 353 Trgb
-0.000000 0.000000 0.000000 495 354 495 354 496 353 Trgb
-0.000000 0.000000 0.000000 495 354 496 352 496 353 Trgb
-0.000000 0.000000 0.000000 496 352 497 351 496 353 Trgb
-0.000000 0.000000 0.000000 497 351 497 352 496 353 Trgb
-0.000000 0.000000 0.000000 497 352 496 353 496 353 Trgb
-0.000000 0.028228 0.008468 497 352 526 379 524 380 Trgb
-0.000000 0.027588 0.008276 497 352 524 380 496 353 Trgb
-0.000000 0.010903 0.003271 497 351 526 378 526 379 Trgb
-0.000000 0.019885 0.005966 497 351 526 379 497 352 Trgb
-0.000000 0.017965 0.005390 496 353 524 380 523 381 Trgb
-0.000000 0.008983 0.002695 496 353 523 381 495 354 Trgb
-0.553377 0.015557 0.113787 535 393 545 380 539 394 Trgb
-0.488126 0.013722 0.100370 525 384 535 373 535 393 Trgb
-0.537456 0.015109 0.110513 545 380 535 393 535 373 Trgb
-0.413448 0.011623 0.085014 535 373 539 366 545 380 Trgb
-0.433488 0.012186 0.089135 525 399 535 393 539 394 Trgb
-0.368237 0.010352 0.075718 514 393 525 384 535 393 Trgb
-0.297677 0.008368 0.061209 535 393 525 399 514 393 Trgb
-0.088894 0.002499 0.018279 510 393 514 393 525 399 Trgb
-0.000000 0.000000 0.000000 524 360 514 373 510 366 Trgb
-0.279343 0.007853 0.057439 535 373 525 384 514 373 Trgb
-0.150823 0.004240 0.031012 514 373 524 360 535 373 Trgb
-0.235597 0.006623 0.048444 539 366 535 373 524 360 Trgb
-0.000000 0.000000 0.000000 514 373 504 380 510 366 Trgb
-0.159453 0.004483 0.032787 525 384 514 393 514 373 Trgb
-0.030933 0.000870 0.006360 504 380 514 373 514 393 Trgb
-0.030933 0.000870 0.006360 514 393 510 393 504 380 Trgb
-0.000000 0.698638 0.209592 397 383 401 383 397 384 Trgb
-0.000000 0.698638 0.209592 401 383 400 384 397 384 Trgb
-0.000000 0.698638 0.209592 400 384 396 385 397 384 Trgb
-0.000000 0.698638 0.209592 396 385 393 385 397 384 Trgb
-0.000000 0.698638 0.209592 393 385 393 384 397 384 Trgb
-0.000000 0.698638 0.209592 393 384 397 383 397 384 Trgb
-0.000000 0.038092 0.011428 387 306 401 383 397 383 Trgb
-0.000000 0.033330 0.009999 387 306 397 383 384 306 Trgb
-0.000000 0.000000 0.000000 380 307 393 384 393 385 Trgb
-0.000000 0.000000 0.000000 380 307 393 385 380 308 Trgb
-0.000000 0.019045 0.005714 384 306 397 383 393 384 Trgb
-0.000000 0.009523 0.002857 384 306 393 384 380 307 Trgb
-0.000000 0.617376 0.185213 369 434 371 436 369 435 Trgb
-0.000000 0.617376 0.185213 371 436 371 437 369 435 Trgb
-0.000000 0.617376 0.185213 371 437 369 436 369 435 Trgb
-0.000000 0.617376 0.185213 369 436 367 434 369 435 Trgb
-0.000000 0.617376 0.185213 367 434 367 434 369 435 Trgb
-0.000000 0.617376 0.185213 367 434 369 434 369 435 Trgb
-0.000000 0.264623 0.079387 399 385 371 436 369 434 Trgb
-0.000000 0.200825 0.060247 399 385 369 434 397 383 Trgb
-0.000000 0.237071 0.071121 399 386 371 437 371 436 Trgb
-0.000000 0.282747 0.084824 399 386 371 436 399 385 Trgb
-0.000000 0.091351 0.027405 397 383 369 434 367 434 Trgb
-0.000000 0.045675 0.013703 397 383 367 434 394 383 Trgb
-0.000000 0.698748 0.209624 369 435 369 433 369 435 Trgb
-0.000000 0.698748 0.209624 369 433 369 434 369 435 Trgb
-0.000000 0.698748 0.209624 369 434 369 435 369 435 Trgb
-0.000000 0.698748 0.209624 369 435 370 437 369 435 Trgb
-0.000000 0.698748 0.209624 370 437 369 437 369 435 Trgb
-0.000000 0.698748 0.209624 369 437 369 435 369 435 Trgb
-0.000000 0.035263 0.010579 369 437 329 445 329 443 Trgb
-0.000000 0.028701 0.008610 369 437 329 443 369 435 Trgb
-0.000000 0.027065 0.008120 370 437 329 445 329 445 Trgb
-0.000000 0.034445 0.010334 370 437 329 445 369 437 Trgb
-0.000000 0.014759 0.004428 369 435 329 443 328 442 Trgb
-0.000000 0.007380 0.002214 369 435 328 442 369 433 Trgb
-0.000793 0.000950 0.000349 318 443 321 455 315 446 Trgb
-0.122526 0.146716 0.053848 327 441 329 451 318 443 Trgb
-0.080197 0.096030 0.035245 321 455 318 443 329 451 Trgb
-0.149369 0.178859 0.065646 329 451 331 457 321 455 Trgb
-0.000000 0.000000 0.000000 318 436 318 443 315 446 Trgb
-0.043122 0.051635 0.018951 326 432 327 441 318 443 Trgb
-0.000000 0.000000 0.000000 318 443 318 436 326 432 Trgb
-0.000000 0.000000 0.000000 326 430 326 432 318 436 Trgb
-0.243693 0.291804 0.107100 340 451 337 439 342 441 Trgb
-0.201137 0.240847 0.088397 329 451 327 441 337 439 Trgb
-0.255047 0.305399 0.112089 337 439 340 451 329 451 Trgb
-0.245608 0.294097 0.107941 331 457 329 451 340 451 Trgb
-0.146662 0.175617 0.064456 337 439 337 432 342 441 Trgb
-0.121733 0.145766 0.053500 327 441 326 432 337 439 Trgb
-0.078611 0.094131 0.034548 337 432 337 439 326 432 Trgb
-0.000000 0.000000 0.000000 326 432 326 430 337 432 Trgb
-0.000000 0.696899 0.209070 360 448 358 449 358 447 Trgb
-0.000000 0.696899 0.209070 358 449 356 448 358 447 Trgb
-0.000000 0.696899 0.209070 356 448 356 446 358 447 Trgb
-0.000000 0.696899 0.209070 356 446 358 445 358 447 Trgb
-0.000000 0.696899 0.209070 358 445 360 446 358 447 Trgb
-0.000000 0.696899 0.209070 360 446 360 448 358 447 Trgb
-0.000000 0.000000 0.000000 369 433 358 445 356 446 Trgb
-0.000000 0.000000 0.000000 369 433 356 446 367 434 Trgb
-0.000000 0.028512 0.008554 371 434 360 446 358 445 Trgb
-0.000000 0.014256 0.004277 371 434 358 445 369 433 Trgb
-0.000000 0.057393 0.017218 371 436 360 448 360 446 Trgb
-0.000000 0.050081 0.015024 371 436 360 446 371 434 Trgb
-0.031196 0.349100 0.076059 362 452 354 455 356 450 Trgb
-0.044298 0.495717 0.108003 366 452 361 456 362 452 Trgb
-0.031814 0.356014 0.077566 354 455 362 452 361 456 Trgb
-0.013721 0.153545 0.033453 361 456 355 455 354 455 Trgb
-0.013103 0.146631 0.031947 354 455 351 446 356 450 Trgb
-0.000000 0.000000 0.000000 350 450 350 443 351 446 Trgb
-0.004147 0.046407 0.010111 351 446 354 455 350 450 Trgb
-0.035568 0.398023 0.086718 359 444 362 452 356 450 Trgb
-0.048670 0.544640 0.118662 366 445 366 452 362 452 Trgb
-0.040558 0.453861 0.098884 362 452 359 444 366 445 Trgb
-0.025556 0.285986 0.062308 362 440 366 445 359 444 Trgb
-0.017475 0.195555 0.042606 351 446 359 444 356 450 Trgb
-0.000000 0.000000 0.000000 350 443 355 439 351 446 Trgb
-0.008519 0.095331 0.020770 359 444 351 446 355 439 Trgb
-0.011610 0.129925 0.028307 355 439 362 440 359 444 Trgb
-0.017037 0.190656 0.041539 366 445 362 440 362 440 Trgb
-0.000000 0.000000 0.000000 367 434 369 434 369 435 Trgb
-0.000000 0.000000 0.000000 369 434 371 435 369 435 Trgb
-0.000000 0.000000 0.000000 371 435 371 436 369 435 Trgb
-0.000000 0.000000 0.000000 371 436 369 436 369 435 Trgb
-0.000000 0.000000 0.000000 369 436 367 436 369 435 Trgb
-0.000000 0.000000 0.000000 367 436 367 434 369 435 Trgb
-0.000000 0.242861 0.072858 369 436 372 469 370 468 Trgb
-0.000000 0.121430 0.036429 369 436 370 468 367 436 Trgb
-0.000000 0.537282 0.161185 371 436 374 468 372 469 Trgb
-0.000000 0.450787 0.135236 371 436 372 469 369 436 Trgb
-0.000000 0.380917 0.114275 371 435 374 467 374 468 Trgb
-0.000000 0.502347 0.150704 371 435 374 468 371 436 Trgb
-0.023187 0.019364 0.008510 357 469 363 475 366 481 Trgb
-0.316349 0.264191 0.116108 374 477 384 473 381 480 Trgb
-0.200748 0.167650 0.073679 381 480 366 481 374 477 Trgb
-0.121324 0.101321 0.044529 363 475 374 477 366 481 Trgb
-0.006442 0.005380 0.002364 365 465 363 456 371 456 Trgb
-0.006442 0.005380 0.002364 363 456 365 465 357 469 Trgb
-0.018714 0.015629 0.006869 363 475 357 469 365 465 Trgb
-0.298993 0.249697 0.109738 384 473 387 466 381 480 Trgb
-0.093666 0.078222 0.034378 379 463 365 465 371 456 Trgb
-0.311877 0.260456 0.114467 384 473 374 477 379 463 Trgb
-0.191803 0.160180 0.070397 365 465 379 463 374 477 Trgb
-0.116852 0.097586 0.042888 374 477 363 475 365 465 Trgb
-0.000000 0.000000 0.000000 363 456 378 454 371 456 Trgb
-0.087224 0.072843 0.032013 378 454 379 463 371 456 Trgb
-0.294521 0.245962 0.108097 387 466 384 473 379 463 Trgb
-0.168006 0.140306 0.061662 379 463 378 454 387 466 Trgb
-0.000000 0.699893 0.209968 443 419 441 421 443 419 Trgb
-0.000000 0.699893 0.209968 441 421 441 420 443 419 Trgb
-0.000000 0.699893 0.209968 441 420 442 418 443 419 Trgb
-0.000000 0.699893 0.209968 442 418 444 416 443 419 Trgb
-0.000000 0.699893 0.209968 444 416 444 417 443 419 Trgb
-0.000000 0.699893 0.209968 444 417 443 419 443 419 Trgb
-0.000000 0.001169 0.000351 395 386 441 420 441 421 Trgb
-0.000000 0.000585 0.000175 395 386 441 421 396 386 Trgb
-0.000000 0.008146 0.002444 396 383 442 418 441 420 Trgb
-0.000000 0.004950 0.001485 396 383 441 420 395 386 Trgb
-0.000000 0.010173 0.003052 398 382 444 416 442 418 Trgb
-0.000000 0.010758 0.003227 398 382 442 418 396 383 Trgb
-0.000000 0.699690 0.209907 475 413 475 415 474 414 Trgb
-0.000000 0.699690 0.209907 475 415 474 416 474 414 Trgb
-0.000000 0.699690 0.209907 474 416 473 415 474 414 Trgb
-0.000000 0.699690 0.209907 473 415 473 412 474 414 Trgb
-0.000000 0.699690 0.209907 473 412 474 412 474 414 Trgb
-0.000000 0.699690 0.209907 474 412 475 413 474 414 Trgb
-0.000000 0.009727 0.002918 441 419 473 415 474 416 Trgb
-0.000000 0.014819 0.004446 441 419 474 416 443 421 Trgb
-0.000000 0.001545 0.000463 441 417 473 412 473 415 Trgb
-0.000000 0.003090 0.000927 441 417 473 415 441 419 Trgb
-0.000000 0.000000 0.000000 442 416 474 412 473 412 Trgb
-0.000000 0.000000 0.000000 442 416 473 412 441 417 Trgb
-0.444852 0.102658 0.109502 492 406 490 425 489 411 Trgb
-0.475371 0.109701 0.117014 490 425 477 419 489 411 Trgb
-0.234152 0.054035 0.057637 472 433 463 423 477 419 Trgb
-0.394626 0.091068 0.097139 477 419 490 425 472 433 Trgb
-0.358772 0.082794 0.088313 482 431 472 433 490 425 Trgb
-0.311095 0.071791 0.076577 479 399 492 406 489 411 Trgb
-0.148213 0.034203 0.036483 492 406 479 399 476 395 Trgb
-0.048297 0.011145 0.011888 466 396 476 395 479 399 Trgb
-0.341613 0.078834 0.084089 477 419 479 399 489 411 Trgb
-0.152014 0.035080 0.037419 463 423 461 407 477 419 Trgb
-0.178731 0.041246 0.043995 479 399 477 419 461 407 Trgb
-0.048297 0.011145 0.011888 461 407 466 396 479 399 Trgb
-0.103718 0.023935 0.025530 463 423 472 433 456 422 Trgb
-0.021580 0.004980 0.005312 461 407 463 423 456 422 Trgb
-0.000000 0.000000 0.000000 456 422 458 403 461 407 Trgb
-0.000000 0.000000 0.000000 466 396 461 407 458 403 Trgb
-0.000000 0.000000 0.000000 442 419 441 419 443 419 Trgb
-0.000000 0.000000 0.000000 441 419 441 419 443 419 Trgb
-0.000000 0.000000 0.000000 441 419 443 418 443 419 Trgb
-0.000000 0.000000 0.000000 443 418 445 418 443 419 Trgb
-0.000000 0.000000 0.000000 445 418 444 418 443 419 Trgb
-0.000000 0.000000 0.000000 444 418 442 419 443 419 Trgb
-0.000000 0.045400 0.013620 444 418 452 460 450 460 Trgb
-0.000000 0.030855 0.009257 444 418 450 460 442 419 Trgb
-0.000000 0.049070 0.014721 445 418 453 460 452 460 Trgb
-0.000000 0.054507 0.016352 445 418 452 460 444 418 Trgb
-0.000000 0.010874 0.003262 442 419 450 460 449 460 Trgb
-0.000000 0.005437 0.001631 442 419 449 460 441 419 Trgb
-0.353693 0.099034 0.090545 448 476 466 472 455 479 Trgb
-0.272514 0.076304 0.069763 443 463 458 461 448 476 Trgb
-0.402283 0.112639 0.102985 466 472 448 476 458 461 Trgb
-0.462817 0.129589 0.118481 458 461 468 458 466 472 Trgb
-0.182115 0.050992 0.046621 442 475 448 476 455 479 Trgb
-0.134561 0.037677 0.034448 434 464 443 463 448 476 Trgb
-0.092752 0.025971 0.023745 448 476 442 475 434 464 Trgb
-0.045201 0.012656 0.011571 461 445 443 449 447 441 Trgb
-0.179761 0.050333 0.046019 458 461 443 463 443 449 Trgb
-0.183153 0.051283 0.046887 443 449 461 445 458 461 Trgb
-0.336439 0.094203 0.086129 468 458 458 461 461 445 Trgb
-0.277313 0.077648 0.070992 469 456 468 458 461 445 Trgb
-0.000000 0.000000 0.000000 443 449 437 448 447 441 Trgb
-0.041809 0.011706 0.010703 443 463 434 464 443 449 Trgb
-0.000000 0.000000 0.000000 437 448 443 449 434 464 Trgb
-0.000000 0.698795 0.209638 443 439 445 440 442 440 Trgb
-0.000000 0.698795 0.209638 445 440 444 442 442 440 Trgb
-0.000000 0.698795 0.209638 444 442 441 442 442 440 Trgb
-0.000000 0.698795 0.209638 441 442 440 440 442 440 Trgb
-0.000000 0.698795 0.209638 440 440 441 439 442 440 Trgb
-0.000000 0.698795 0.209638 441 439 443 439 442 440 Trgb
-0.000000 0.031657 0.009497 445 418 445 440 443 439 Trgb
-0.000000 0.022869 0.006861 445 418 443 439 444 417 Trgb
-0.000000 0.000000 0.000000 441 417 441 439 440 440 Trgb
-0.000000 0.000000 0.000000 441 417 440 440 440 419 Trgb
-0.000000 0.009388 0.002816 444 417 443 439 441 439 Trgb
-0.000000 0.004694 0.001408 444 417 441 439 441 417 Trgb
-0.464524 0.061662 0.105237 449 436 456 454 442 452 Trgb
-0.328483 0.043604 0.074417 452 424 463 435 449 436 Trgb
-0.473280 0.062825 0.107221 456 454 449 436 463 435 Trgb
-0.488213 0.064807 0.110604 463 435 462 449 456 454 Trgb
-0.388439 0.051563 0.088000 456 454 436 460 442 452 Trgb
-0.321110 0.042625 0.072747 436 460 456 454 449 458 Trgb
-0.265926 0.035300 0.060245 428 442 449 436 442 452 Trgb
-0.186236 0.024722 0.042191 435 423 452 424 449 436 Trgb
-0.132435 0.017580 0.030003 449 436 428 442 435 423 Trgb
-0.000000 0.000000 0.000000 423 432 435 423 428 442 Trgb
-0.196048 0.026024 0.044414 463 435 452 424 449 421 Trgb
-0.189841 0.025200 0.043008 436 460 428 442 442 452 Trgb
-0.056350 0.007480 0.012766 428 442 436 460 422 446 Trgb
-0.000000 0.000000 0.000000 422 446 423 432 428 442 Trgb
-0.053800 0.007142 0.012188 452 424 435 423 449 421 Trgb
-0.000000 0.000000 0.000000 435 423 423 432 429 427 Trgb
-0.000000 0.000000 0.000000 394 385 396 383 397 384 Trgb
-0.000000 0.000000 0.000000 396 383 398 382 397 384 Trgb
-0.000000 0.000000 0.000000 398 382 399 383 397 384 Trgb
-0.000000 0.000000 0.000000 399 383 398 385 397 384 Trgb
-0.000000 0.000000 0.000000 398 385 395 386 397 384 Trgb
-0.000000 0.000000 0.000000 395 386 394 385 397 384 Trgb
-0.000000 0.009095 0.002729 395 386 418 431 417 430 Trgb
-0.000000 0.004548 0.001364 395 386 417 430 394 385 Trgb
-0.000000 0.072128 0.021639 398 385 420 430 418 431 Trgb
-0.000000 0.042886 0.012866 398 385 418 431 395 386 Trgb
-0.000000 0.092276 0.027683 399 383 422 429 420 430 Trgb
-0.000000 0.096823 0.029047 399 383 420 430 398 385 Trgb
-0.000000 0.697133 0.209140 418 430 418 428 419 429 Trgb
-0.000000 0.697133 0.209140 418 428 419 427 419 429 Trgb
-0.000000 0.697133 0.209140 419 427 421 428 419 429 Trgb
-0.000000 0.697133 0.209140 421 428 421 430 419 429 Trgb
-0.000000 0.697133 0.209140 421 430 419 431 419 429 Trgb
-0.000000 0.697133 0.209140 419 431 418 430 419 429 Trgb
-0.000000 0.020589 0.006177 419 431 420 435 418 434 Trgb
-0.000000 0.010295 0.003088 419 431 418 434 418 430 Trgb
-0.000000 0.052480 0.015744 421 430 422 435 420 435 Trgb
-0.000000 0.041682 0.012505 421 430 420 435 419 431 Trgb
-0.000000 0.042689 0.012807 421 428 422 433 422 435 Trgb
-0.000000 0.052984 0.015895 421 428 422 435 421 430 Trgb
-0.291762 0.030182 0.064389 426 444 408 438 420 431 Trgb
-0.050562 0.005231 0.011159 415 452 403 442 408 438 Trgb
-0.235211 0.024332 0.051909 408 438 426 444 415 452 Trgb
-0.389230 0.040265 0.085899 429 450 415 452 426 444 Trgb
-0.425848 0.044053 0.093980 432 426 426 444 420 431 Trgb
-0.413548 0.042781 0.091266 437 425 438 439 432 426 Trgb
-0.503383 0.052074 0.111092 426 444 432 426 438 439 Trgb
-0.523316 0.054136 0.115491 438 439 429 450 426 444 Trgb
-0.107113 0.011081 0.023639 408 438 413 420 420 431 Trgb
-0.005095 0.000527 0.001124 403 442 402 428 408 438 Trgb
-0.005095 0.000527 0.001124 413 420 408 438 402 428 Trgb
-0.000000 0.000000 0.000000 402 428 411 417 413 420 Trgb
-0.241200 0.024952 0.053230 413 420 432 426 420 431 Trgb
-0.233994 0.024206 0.051640 426 416 437 425 432 426 Trgb
-0.139181 0.014398 0.030716 432 426 413 420 426 416 Trgb
-0.000000 0.000000 0.000000 411 417 426 416 413 420 Trgb
-0.000000 0.697171 0.209151 417 467 417 468 415 467 Trgb
-0.000000 0.697171 0.209151 417 468 415 468 415 467 Trgb
-0.000000 0.697171 0.209151 415 468 414 467 415 467 Trgb
-0.000000 0.697171 0.209151 414 467 414 467 415 467 Trgb
-0.000000 0.697171 0.209151 414 467 415 467 415 467 Trgb
-0.000000 0.697171 0.209151 415 467 417 467 415 467 Trgb
-0.000000 0.044776 0.013433 421 430 417 468 417 467 Trgb
-0.000000 0.053715 0.016115 421 430 417 467 421 429 Trgb
-0.000000 0.017878 0.005364 419 428 415 467 414 467 Trgb
-0.000000 0.008939 0.002682 419 428 414 467 418 429 Trgb
-0.000000 0.050709 0.015213 421 429 417 467 415 467 Trgb
-0.000000 0.038763 0.011629 421 429 415 467 419 428 Trgb
-0.398748 0.030157 0.085781 427 480 421 486 413 487 Trgb
-0.541936 0.040987 0.116584 433 466 435 471 427 480 Trgb
-0.376526 0.028477 0.081001 407 476 427 480 413 487 Trgb
-0.519713 0.039306 0.111804 421 461 433 466 427 480 Trgb
-0.393916 0.029792 0.084742 427 480 407 476 421 461 Trgb
-0.185847 0.014056 0.039980 405 460 421 461 407 476 Trgb
-0.393176 0.029736 0.084582 435 471 433 466 429 453 Trgb
-0.168457 0.012740 0.036239 401 482 407 476 413 487 Trgb
-0.063268 0.004785 0.013611 407 476 401 482 396 463 Trgb
-0.063268 0.004785 0.013611 396 463 405 460 407 476 Trgb
-0.059310 0.004486 0.012759 429 453 410 449 417 448 Trgb
-0.370954 0.028055 0.079802 433 466 421 461 429 453 Trgb
-0.181888 0.013756 0.039129 410 449 429 453 421 461 Trgb
-0.122578 0.009271 0.026370 421 461 405 460 410 449 Trgb
-0.000000 0.000000 0.000000 405 460 396 463 410 449 Trgb
-0.000000 0.013103 0.003931 419 430 457 446 456 446 Trgb
-0.000000 0.006551 0.001965 419 430 456 446 419 431 Trgb
-0.000000 0.020230 0.006069 420 429 457 444 457 446 Trgb
-0.000000 0.019942 0.005983 420 429 457 446 419 430 Trgb
-0.000000 0.007416 0.002225 420 427 458 443 457 444 Trgb
-0.000000 0.013967 0.004190 420 427 457 444 420 429 Trgb
-0.105394 0.247297 0.070538 453 455 455 452 463 453 Trgb
-0.099335 0.233080 0.066483 463 453 462 453 453 455 Trgb
-0.076087 0.178532 0.050924 460 437 461 434 467 442 Trgb
-0.177850 0.417308 0.119032 463 453 467 442 468 449 Trgb
-0.134392 0.315339 0.089946 455 452 458 444 463 453 Trgb
-0.157331 0.369162 0.105299 467 442 463 453 458 444 Trgb
-0.113669 0.266714 0.076077 458 444 460 437 467 442 Trgb
-0.000000 0.000000 0.000000 448 446 447 447 447 440 Trgb
-0.041228 0.096737 0.027593 455 452 453 455 448 446 Trgb
-0.008584 0.020141 0.005745 447 447 448 446 453 455 Trgb
-0.000000 0.000000 0.000000 451 436 452 436 447 440 Trgb
-0.020505 0.048112 0.013723 461 434 460 437 452 436 Trgb
-0.000000 0.000000 0.000000 452 436 448 446 447 440 Trgb
-0.070226 0.164778 0.047001 458 444 455 452 448 446 Trgb
-0.037582 0.088182 0.025153 448 446 452 436 458 444 Trgb
-0.058087 0.136295 0.038876 460 437 458 444 452 436 Trgb
-0.000000 0.699414 0.209824 398 361 400 364 396 364 Trgb
-0.000000 0.699414 0.209824 400 364 398 366 396 364 Trgb
-0.000000 0.699414 0.209824 398 366 394 367 396 364 Trgb
-0.000000 0.699414 0.209824 394 367 392 364 396 364 Trgb
-0.000000 0.699414 0.209824 392 364 394 361 396 364 Trgb
-0.000000 0.699414 0.209824 394 361 398 361 396 364 Trgb
-0.000000 0.025252 0.007576 387 307 400 364 398 361 Trgb
-0.000000 0.023246 0.006974 387 307 398 361 385 304 Trgb
-0.000000 0.000000 0.000000 381 305 394 361 392 364 Trgb
-0.000000 0.000000 0.000000 381 305 392 364 379 307 Trgb
-0.000000 0.014159 0.004248 385 304 398 361 394 361 Trgb
-0.000000 0.007080 0.002124 385 304 394 361 381 305 Trgb
-0.000000 0.670057 0.201017 363 403 365 405 363 405 Trgb
-0.000000 0.670057 0.201017 365 405 366 407 363 405 Trgb
-0.000000 0.670057 0.201017 366 407 364 407 363 405 Trgb
-0.000000 0.670057 0.201017 364 407 361 406 363 405 Trgb
-0.000000 0.670057 0.201017 361 406 361 404 363 405 Trgb
-0.000000 0.670057 0.201017 361 404 363 403 363 405 Trgb
-0.000000 0.126608 0.037982 398 364 365 405 363 403 Trgb
-0.000000 0.070797 0.021239 398 364 363 403 396 362 Trgb
-0.000000 0.172428 0.051728 399 366 366 407 365 405 Trgb
-0.000000 0.177423 0.053227 399 366 365 405 398 364 Trgb
-0.000000 0.009991 0.002997 396 362 363 403 361 404 Trgb
-0.000000 0.004996 0.001499 396 362 361 404 394 362 Trgb
-0.000000 0.000000 0.000000 321 398 321 400 321 399 Trgb
-0.000000 0.000000 0.000000 321 400 320 401 321 399 Trgb
-0.000000 0.000000 0.000000 320 401 320 400 321 399 Trgb
-0.000000 0.000000 0.000000 320 400 320 397 321 399 Trgb
-0.000000 0.000000 0.000000 320 397 321 396 321 399 Trgb
-0.000000 0.000000 0.000000 321 396 321 398 321 399 Trgb
-0.000000 0.039172 0.011752 363 407 321 400 321 398 Trgb
-0.000000 0.034938 0.010481 363 407 321 398 364 405 Trgb
-0.000000 0.022937 0.006881 363 408 320 401 321 400 Trgb
-0.000000 0.033171 0.009951 363 408 321 400 363 407 Trgb
-0.000000 0.020469 0.006141 364 405 321 398 321 396 Trgb
-0.000000 0.010235 0.003070 364 405 321 396 363 403 Trgb
-0.000000 0.000000 0.000000 316 395 314 403 312 397 Trgb
-0.027860 0.282235 0.062019 323 395 322 402 316 395 Trgb
-0.016503 0.167185 0.036738 314 403 316 395 322 402 Trgb
-0.028485 0.288569 0.063411 322 402 320 407 314 403 Trgb
-0.012424 0.125863 0.027657 320 407 319 407 314 403 Trgb
-0.000000 0.000000 0.000000 315 392 316 395 312 397 Trgb
-0.011357 0.115051 0.025282 322 390 323 395 316 395 Trgb
-0.000000 0.000000 0.000000 316 395 315 392 322 390 Trgb
-0.047694 0.483162 0.106171 326 405 328 397 329 400 Trgb
-0.045026 0.456136 0.100232 322 402 323 395 328 397 Trgb
-0.051278 0.519465 0.114148 328 397 326 405 322 402 Trgb
-0.046094 0.466948 0.102608 320 407 322 402 326 405 Trgb
-0.030749 0.311499 0.068450 328 397 327 394 329 400 Trgb
-0.028523 0.288951 0.063495 323 395 322 390 328 397 Trgb
-0.017829 0.180617 0.039689 327 394 328 397 322 390 Trgb
-0.000000 0.699487 0.209846 371 439 368 439 370 437 Trgb
-0.000000 0.699487 0.209846 368 439 368 437 370 437 Trgb
-0.000000 0.699487 0.209846 368 437 370 436 370 437 Trgb
-0.000000 0.699487 0.209846 370 436 372 436 370 437 Trgb
-0.000000 0.699487 0.209846 372 436 372 438 370 437 Trgb
-0.000000 0.699487 0.209846 372 438 371 439 370 437 Trgb
-0.000000 0.000605 0.000182 363 404 370 436 368 437 Trgb
-0.000000 0.000303 0.000091 363 404 368 437 361 405 Trgb
-0.000000 0.016071 0.004821 365 404 372 436 370 436 Trgb
-0.000000 0.008489 0.002547 365 404 370 436 363 404 Trgb
-0.000000 0.023048 0.006914 365 406 372 438 372 436 Trgb
-0.000000 0.023350 0.007005 365 406 372 436 365 404 Trgb
-0.065732 0.277683 0.068683 373 448 364 445 372 445 Trgb
-0.067033 0.283180 0.070043 364 445 370 438 372 445 Trgb
-0.026637 0.112527 0.027833 361 434 368 430 370 438 Trgb
-0.031584 0.133427 0.033002 370 438 364 445 361 434 Trgb
-0.005867 0.024787 0.006131 360 440 361 434 364 445 Trgb
-0.104129 0.439892 0.108804 379 441 373 448 372 445 Trgb
-0.089964 0.380052 0.094003 381 435 379 440 379 441 Trgb
-0.105430 0.445389 0.110164 370 438 379 441 372 445 Trgb
-0.046486 0.196380 0.048573 368 430 376 430 370 438 Trgb
-0.089831 0.379489 0.093864 379 441 370 438 376 430 Trgb
-0.091265 0.385549 0.095363 376 430 381 435 379 441 Trgb
-0.000920 0.003887 0.000961 368 430 361 434 367 427 Trgb
-0.000000 0.000000 0.000000 361 434 367 427 361 434 Trgb
-0.020769 0.087740 0.021702 376 430 368 430 367 427 Trgb
-0.019849 0.083853 0.020740 367 427 376 430 376 430 Trgb
-0.047000 0.198553 0.049111 381 435 376 430 376 430 Trgb
-0.000000 0.699497 0.209849 381 445 379 445 381 444 Trgb
-0.000000 0.699497 0.209849 379 445 380 444 381 444 Trgb
-0.000000 0.699497 0.209849 380 444 382 443 381 444 Trgb
-0.000000 0.699497 0.209849 382 443 383 443 381 444 Trgb
-0.000000 0.699497 0.209849 383 443 383 444 381 444 Trgb
-0.000000 0.699497 0.209849 383 444 381 445 381 444 Trgb
-0.000000 0.000696 0.000209 362 406 380 444 379 445 Trgb
-0.000000 0.000348 0.000104 362 406 379 445 361 406 Trgb
-0.000000 0.016007 0.004802 364 405 382 443 380 444 Trgb
-0.000000 0.008525 0.002558 364 405 380 444 362 406 Trgb
-0.000000 0.022792 0.006838 365 404 383 443 382 443 Trgb
-0.000000 0.023140 0.006942 365 404 382 443 364 405 Trgb
-0.310982 0.003067 0.062810 384 465 374 464 391 465 Trgb
-0.084174 0.000830 0.017001 363 455 361 451 374 464 Trgb
-0.485793 0.004791 0.098117 374 464 393 453 391 465 Trgb
-0.382596 0.003773 0.077274 371 443 388 435 393 453 Trgb
-0.343159 0.003384 0.069309 393 453 374 464 371 443 Trgb
-0.125602 0.001239 0.025368 361 451 371 443 374 464 Trgb
-0.577749 0.005698 0.116689 393 453 403 454 391 465 Trgb
-0.474551 0.004680 0.095846 388 435 400 433 393 453 Trgb
-0.527070 0.005198 0.106454 403 454 393 453 400 433 Trgb
-0.374535 0.003694 0.075646 400 433 401 437 403 454 Trgb
-0.000000 0.000000 0.000000 379 423 360 435 372 424 Trgb
-0.165038 0.001628 0.033333 388 435 371 443 379 423 Trgb
-0.041428 0.000409 0.008367 360 435 379 423 371 443 Trgb
-0.041428 0.000409 0.008367 371 443 361 451 360 435 Trgb
-0.256994 0.002534 0.051906 400 433 388 435 379 423 Trgb
-0.133383 0.001315 0.026940 379 423 389 425 400 433 Trgb
-0.000000 0.699868 0.209960 440 368 438 370 438 367 Trgb
-0.000000 0.699868 0.209960 438 370 436 368 438 367 Trgb
-0.000000 0.699868 0.209960 436 368 436 365 438 367 Trgb
-0.000000 0.699868 0.209960 436 365 438 363 438 367 Trgb
-0.000000 0.699868 0.209960 438 363 440 365 438 367 Trgb
-0.000000 0.699868 0.209960 440 365 440 368 438 367 Trgb
-0.000000 0.005175 0.001553 394 366 436 368 438 370 Trgb
-0.000000 0.008820 0.002646 394 366 438 370 396 367 Trgb
-0.000000 0.000510 0.000153 394 363 436 365 436 368 Trgb
-0.000000 0.001020 0.000306 394 363 436 368 394 366 Trgb
-0.000000 0.000000 0.000000 396 361 438 363 436 365 Trgb
-0.000000 0.000000 0.000000 396 361 436 365 394 363 Trgb
-0.130763 0.477881 0.121729 448 370 441 374 446 367 Trgb
-0.101991 0.372731 0.094944 441 374 448 370 440 377 Trgb
-0.069415 0.253681 0.064619 440 377 434 377 441 374 Trgb
-0.110114 0.402415 0.102506 441 374 438 363 446 367 Trgb
-0.022716 0.083017 0.021147 430 370 431 362 438 363 Trgb
-0.063387 0.231649 0.059007 438 363 441 374 430 370 Trgb
-0.051461 0.188065 0.047905 434 377 430 370 441 374 Trgb
-0.115504 0.422115 0.107524 446 360 448 370 446 367 Trgb
-0.094854 0.346649 0.088301 438 363 446 360 446 367 Trgb
-0.022716 0.083017 0.021147 431 362 435 356 438 363 Trgb
-0.048127 0.175883 0.044802 446 360 438 363 435 356 Trgb
-0.025411 0.092867 0.023656 435 356 442 357 446 360 Trgb
-0.000000 0.000000 0.000000 431 362 430 370 427 363 Trgb
-0.000000 0.000000 0.000000 430 373 427 363 430 370 Trgb
-0.010790 0.039432 0.010044 430 370 434 377 430 373 Trgb
-0.000000 0.000000 0.000000 435 356 431 362 427 363 Trgb
-0.000000 0.697531 0.209259 400 424 402 424 403 424 Trgb
-0.000000 0.697531 0.209259 402 424 405 424 403 424 Trgb
-0.000000 0.697531 0.209259 405 424 406 424 403 424 Trgb
-0.000000 0.697531 0.209259 406 424 404 424 403 424 Trgb
-0.000000 0.697531 0.209259 404 424 401 425 403 424 Trgb
-0.000000 0.697531 0.209259 401 425 400 424 403 424 Trgb
-0.000000 0.010115 0.003035 395 364 402 424 400 424 Trgb
-0.000000 0.005058 0.001517 395 364 400 424 393 364 Trgb
-0.000000 0.042881 0.012864 398 363 405 424 402 424 Trgb
-0.000000 0.029027 0.008708 398 363 402 424 395 364 Trgb
-0.000000 0.046621 0.013986 399 364 406 424 405 424 Trgb
-0.000000 0.051678 0.015503 399 364 405 424 398 363 Trgb
-0.000000 0.692681 0.207804 401 424 402 423 403 424 Trgb
-0.000000 0.692681 0.207804 402 423 404 423 403 424 Trgb
-0.000000 0.692681 0.207804 404 423 405 424 403 424 Trgb
-0.000000 0.692681 0.207804 405 424 405 426 403 424 Trgb
-0.000000 0.692681 0.207804 405 426 403 426 403 424 Trgb
-0.000000 0.692681 0.207804 403 426 401 424 403 424 Trgb
-0.000000 0.033284 0.009985 403 426 395 452 393 450 Trgb
-0.000000 0.016642 0.004993 403 426 393 450 401 424 Trgb
-0.000000 0.083949 0.025185 405 426 397 451 395 452 Trgb
-0.000000 0.066938 0.020081 405 426 395 452 403 426 Trgb
-0.000000 0.067677 0.020303 405 424 397 450 397 451 Trgb
-0.000000 0.084319 0.025296 405 424 397 451 405 426 Trgb
-0.009477 0.046295 0.011154 386 451 390 456 387 455 Trgb
-0.023261 0.113633 0.027379 396 460 387 455 390 456 Trgb
-0.055621 0.271710 0.065466 390 456 398 458 396 460 Trgb
-0.082430 0.402675 0.097021 398 458 403 455 396 460 Trgb
-0.044843 0.219063 0.052781 398 451 390 446 397 444 Trgb
-0.009477 0.046295 0.011154 390 456 386 451 390 446 Trgb
-0.041455 0.202511 0.048793 390 446 398 451 390 456 Trgb
-0.073815 0.360588 0.086881 398 458 390 456 398 451 Trgb
-0.067345 0.328984 0.079266 403 445 398 451 397 444 Trgb
-0.077745 0.379787 0.091506 404 449 403 455 403 445 Trgb
-0.090766 0.443397 0.106833 398 451 403 445 403 455 Trgb
-0.100624 0.491553 0.118435 403 455 398 458 398 451 Trgb
-0.012865 0.062846 0.015142 390 446 395 440 397 444 Trgb
-0.000000 0.000000 0.000000 386 451 387 445 390 446 Trgb
-0.000000 0.000000 0.000000 395 440 390 446 387 445 Trgb
-0.035367 0.172767 0.041627 395 440 403 445 397 444 Trgb
-0.000000 0.637740 0.191322 379 451 379 452 377 451 Trgb
-0.000000 0.637740 0.191322 379 452 378 452 377 451 Trgb
-0.000000 0.637740 0.191322 378 452 376 451 377 451 Trgb
-0.000000 0.637740 0.191322 376 451 376 449 377 451 Trgb
-0.000000 0.637740 0.191322 376 449 377 449 377 451 Trgb
-0.000000 0.637740 0.191322 377 449 379 451 377 451 Trgb
-0.000000 0.252303 0.075691 405 426 379 452 379 451 Trgb
-0.000000 0.246714 0.074014 405 426 379 451 404 424 Trgb
-0.000000 0.000000 0.000000 403 423 377 449 376 449 Trgb
-0.000000 0.000000 0.000000 403 423 376 449 402 423 Trgb
-0.000000 0.160749 0.048225 404 424 379 451 377 449 Trgb
-0.000000 0.080375 0.024112 404 424 377 449 403 423 Trgb
-0.017498 0.271496 0.057799 377 454 377 459 372 456 Trgb
-0.034877 0.541162 0.115208 382 450 384 455 377 454 Trgb
-0.029698 0.460799 0.098099 377 459 377 454 384 455 Trgb
-0.028021 0.434774 0.092559 384 455 382 458 377 459 Trgb
-0.008105 0.125751 0.026771 377 459 370 455 372 456 Trgb
-0.010945 0.169818 0.036153 370 450 377 454 372 456 Trgb
-0.023966 0.371853 0.079164 378 445 382 450 377 454 Trgb
-0.012233 0.189812 0.040409 377 454 370 450 378 445 Trgb
-0.002840 0.044067 0.009382 373 444 378 445 370 450 Trgb
-0.032683 0.507117 0.107960 384 455 382 450 385 447 Trgb
-0.025310 0.392708 0.083604 385 447 384 452 384 455 Trgb
-0.001552 0.024074 0.005125 370 455 370 450 372 456 Trgb
-0.000000 0.000000 0.000000 371 447 373 444 370 450 Trgb
-0.021771 0.337807 0.071916 382 450 378 445 385 447 Trgb
-0.010039 0.155767 0.033161 378 442 385 447 378 445 Trgb
-0.002840 0.044067 0.009382 378 445 373 444 378 442 Trgb
-0.000000 0.699962 0.209989 436 449 434 451 435 449 Trgb
-0.000000 0.699962 0.209989 434 451 433 451 435 449 Trgb
-0.000000 0.699962 0.209989 433 451 434 449 435 449 Trgb
-0.000000 0.699962 0.209989 434 449 435 447 435 449 Trgb
-0.000000 0.699962 0.209989 435 447 436 447 435 449 Trgb
-0.000000 0.699962 0.209989 436 447 436 449 435 449 Trgb
-0.000000 0.002331 0.000699 402 424 434 449 433 451 Trgb
-0.000000 0.001165 0.000350 402 424 433 451 402 426 Trgb
-0.000000 0.006038 0.001812 404 423 435 447 434 449 Trgb
-0.000000 0.004767 0.001430 404 423 434 449 402 424 Trgb
-0.000000 0.004978 0.001494 405 423 436 447 435 447 Trgb
-0.000000 0.006144 0.001843 405 423 435 447 404 423 Trgb
-0.240590 0.297323 0.107583 437 464 437 455 445 458 Trgb
-0.089658 0.110800 0.040092 424 458 427 449 437 455 Trgb
-0.138434 0.171078 0.061902 437 455 437 464 424 458 Trgb
-0.058982 0.072890 0.026374 428 461 424 458 437 464 Trgb
-0.252665 0.312245 0.112982 447 446 447 455 445 458 Trgb
-0.110270 0.136273 0.049309 442 437 445 440 447 446 Trgb
-0.267098 0.330082 0.119436 437 455 447 446 445 458 Trgb
-0.110128 0.136097 0.049245 427 449 434 441 437 455 Trgb
-0.185412 0.229133 0.082909 447 446 437 455 434 441 Trgb
-0.124703 0.154109 0.055763 434 441 442 437 447 446 Trgb
-0.010206 0.012612 0.004564 427 449 424 458 422 443 Trgb
-0.000000 0.000000 0.000000 422 452 422 443 424 458 Trgb
-0.000000 0.000000 0.000000 432 435 422 443 424 441 Trgb
-0.030676 0.037910 0.013717 434 441 427 449 422 443 Trgb
-0.020470 0.025297 0.009154 422 443 432 435 434 441 Trgb
-0.039214 0.048461 0.017535 442 437 434 441 432 435 Trgb
-0.000000 0.675208 0.202562 239 301 244 305 240 305 Trgb
-0.000000 0.675208 0.202562 244 305 244 309 240 305 Trgb
-0.000000 0.675208 0.202562 244 309 241 309 240 305 Trgb
-0.000000 0.675208 0.202562 241 309 236 305 240 305 Trgb
-0.000000 0.675208 0.202562 236 305 236 301 240 305 Trgb
-0.000000 0.675208 0.202562 236 301 239 301 240 305 Trgb
-0.000000 0.139589 0.041877 309 230 244 305 239 301 Trgb
-0.000000 0.098494 0.029548 309 230 239 301 305 226 Trgb
-0.000000 0.142419 0.042726 310 234 244 309 244 305 Trgb
-0.000000 0.161552 0.048465 310 234 244 305 309 230 Trgb
-0.000000 0.038266 0.011480 305 226 239 301 236 301 Trgb
-0.000000 0.019133 0.005740 305 226 236 301 301 226 Trgb
-0.000000 0.697893 0.209368 237 302 239 302 240 305 Trgb
-0.000000 0.697893 0.209368 239 302 242 305 240 305 Trgb
-0.000000 0.697893 0.209368 242 305 243 308 240 305 Trgb
-0.000000 0.697893 0.209368 243 308 241 308 240 305 Trgb
-0.000000 0.697893 0.209368 241 308 238 305 240 305 Trgb
-0.000000 0.697893 0.209368 238 305 237 302 240 305 Trgb
-0.000000 0.017023 0.005107 238 305 176 350 175 346 Trgb
-0.000000 0.008512 0.002553 238 305 175 346 237 302 Trgb
-0.000000 0.044670 0.013401 241 308 179 352 176 350 Trgb
-0.000000 0.035103 0.010531 241 308 176 350 238 305 Trgb
-0.000000 0.037215 0.011165 243 308 181 352 179 352 Trgb
-0.000000 0.045727 0.013718 243 308 179 352 241 308 Trgb
-0.000000 0.699920 0.209976 176 348 178 347 178 349 Trgb
-0.000000 0.699920 0.209976 178 347 180 348 178 349 Trgb
-0.000000 0.699920 0.209976 180 348 180 351 178 349 Trgb
-0.000000 0.699920 0.209976 180 351 178 352 178 349 Trgb
-0.000000 0.699920 0.209976 178 352 176 351 178 349 Trgb
-0.000000 0.699920 0.209976 176 351 176 348 178 349 Trgb
-0.000000 0.001914 0.000574 176 351 145 347 145 344 Trgb
-0.000000 0.000957 0.000287 176 351 145 344 176 348 Trgb
-0.000000 0.007792 0.002337 178 352 147 348 145 347 Trgb
-0.000000 0.005332 0.001599 178 352 145 347 176 351 Trgb
-0.000000 0.000000 0.000000 176 348 145 344 147 343 Trgb
-0.000000 0.000000 0.000000 176 348 147 343 178 347 Trgb
-0.000000 0.699197 0.209759 146 344 148 344 147 345 Trgb
-0.000000 0.699197 0.209759 148 344 149 345 147 345 Trgb
-0.000000 0.699197 0.209759 149 345 148 347 147 345 Trgb
-0.000000 0.699197 0.209759 148 347 146 347 147 345 Trgb
-0.000000 0.699197 0.209759 146 347 145 345 147 345 Trgb
-0.000000 0.699197 0.209759 145 345 146 344 147 345 Trgb
-0.000000 0.000000 0.000000 145 345 151 323 151 321 Trgb
-0.000000 0.000000 0.000000 145 345 151 321 146 344 Trgb
-0.000000 0.025417 0.007625 148 344 153 321 154 322 Trgb
-0.000000 0.029199 0.008760 148 344 154 322 149 345 Trgb
-0.000000 0.007212 0.002163 146 344 151 321 153 321 Trgb
-0.000000 0.014423 0.004327 146 344 153 321 148 344 Trgb
-0.041504 0.027267 0.013754 155 311 144 313 148 310 Trgb
-0.041504 0.027267 0.013754 148 310 162 312 155 311 Trgb
-0.133196 0.087504 0.044140 164 317 155 311 162 312 Trgb
-0.157254 0.103310 0.052113 143 333 145 322 150 331 Trgb
-0.048551 0.031896 0.016089 138 320 144 313 145 322 Trgb
-0.055597 0.036525 0.018424 145 322 143 333 138 320 Trgb
-0.007046 0.004629 0.002335 141 328 138 320 143 333 Trgb
-0.203918 0.133965 0.067577 157 336 143 333 150 331 Trgb
-0.286927 0.188499 0.095085 145 322 159 325 150 331 Trgb
-0.090055 0.059162 0.029843 144 313 155 311 145 322 Trgb
-0.226774 0.148981 0.075151 159 325 145 322 155 311 Trgb
-0.269915 0.177323 0.089448 155 311 164 317 159 325 Trgb
-0.333590 0.219155 0.110549 159 325 157 336 150 331 Trgb
-0.216378 0.142151 0.071706 167 325 161 332 157 336 Trgb
-0.320101 0.210293 0.106079 157 336 159 325 167 325 Trgb
-0.316578 0.207979 0.104911 164 317 167 325 159 325 Trgb
-0.000000 0.698678 0.209603 147 347 147 346 147 345 Trgb
-0.000000 0.698678 0.209603 147 346 147 344 147 345 Trgb
-0.000000 0.698678 0.209603 147 344 147 344 147 345 Trgb
-0.000000 0.698678 0.209603 147 344 147 345 147 345 Trgb
-0.000000 0.698678 0.209603 147 345 147 346 147 345 Trgb
-0.000000 0.698678 0.209603 147 346 147 347 147 345 Trgb
-0.000000 0.018415 0.005524 147 344 109 337 110 336 Trgb
-0.000000 0.009207 0.002762 147 344 110 336 147 344 Trgb
-0.000000 0.037448 0.011234 147 346 109 338 109 337 Trgb
-0.000000 0.032535 0.009761 147 346 109 337 147 344 Trgb
-0.000000 0.023946 0.007184 147 347 109 339 109 338 Trgb
-0.000000 0.033154 0.009946 147 347 109 338 147 346 Trgb
-0.013745 0.002545 0.003258 96 334 94 347 91 334 Trgb
-0.190914 0.035354 0.045254 106 349 105 355 94 347 Trgb
-0.152290 0.028202 0.036098 94 347 96 334 106 349 Trgb
-0.295853 0.054788 0.070128 108 336 106 349 96 334 Trgb
-0.013745 0.002545 0.003258 99 323 96 334 91 334 Trgb
-0.064484 0.011941 0.015285 113 320 111 324 99 323 Trgb
-0.078229 0.014487 0.018543 96 334 99 323 111 324 Trgb
-0.221792 0.041073 0.052573 111 324 108 336 96 334 Trgb
-0.438208 0.081150 0.103872 119 353 121 339 127 341 Trgb
-0.315714 0.058466 0.074836 105 355 106 349 119 353 Trgb
-0.452629 0.083820 0.107290 121 339 119 353 106 349 Trgb
-0.471392 0.087295 0.111737 106 349 108 336 121 339 Trgb
-0.364147 0.067435 0.086316 121 339 125 328 127 341 Trgb
-0.115222 0.021337 0.027312 111 324 113 320 125 328 Trgb
-0.304506 0.056390 0.072179 125 328 121 339 111 324 Trgb
-0.397330 0.073580 0.094182 108 336 111 324 121 339 Trgb
-0.000000 0.691781 0.207534 149 346 148 347 147 345 Trgb
-0.000000 0.691781 0.207534 148 347 147 346 147 345 Trgb
-0.000000 0.691781 0.207534 147 346 145 345 147 345 Trgb
-0.000000 0.691781 0.207534 145 345 146 344 147 345 Trgb
-0.000000 0.691781 0.207534 146 344 147 345 147 345 Trgb
-0.000000 0.691781 0.207534 147 345 149 346 147 345 Trgb
-0.000000 0.000000 0.000000 145 345 131 375 131 374 Trgb
-0.000000 0.000000 0.000000 145 345 131 374 146 344 Trgb
-0.000000 0.058813 0.017644 147 346 132 376 131 375 Trgb
-0.000000 0.029406 0.008822 147 346 131 375 145 345 Trgb
-0.000000 0.093726 0.028118 148 347 134 376 132 376 Trgb
-0.000000 0.090973 0.027292 148 347 132 376 147 346 Trgb
-0.000000 0.000000 0.000000 124 370 125 375 124 380 Trgb
-0.107475 0.388264 0.099148 136 381 141 379 133 384 Trgb
-0.029201 0.105490 0.026938 133 366 141 370 136 368 Trgb
-0.031304 0.113090 0.028879 125 375 130 379 124 380 Trgb
-0.054230 0.195912 0.050028 133 384 124 380 130 379 Trgb
-0.102218 0.369274 0.094298 130 379 136 381 133 384 Trgb
-0.023944 0.086500 0.022089 129 369 133 366 136 368 Trgb
-0.008378 0.030267 0.007729 125 375 124 370 129 369 Trgb
-0.008378 0.030267 0.007729 133 366 129 369 124 370 Trgb
-0.074140 0.267838 0.068396 141 370 138 374 136 368 Trgb
-0.095135 0.343686 0.087764 138 374 141 370 141 379 Trgb
-0.129488 0.467789 0.119455 141 379 136 381 138 374 Trgb
-0.068883 0.248847 0.063546 138 374 129 369 136 368 Trgb
-0.039682 0.143357 0.036608 130 379 125 375 129 369 Trgb
-0.084621 0.305704 0.078065 129 369 138 374 130 379 Trgb
-0.124231 0.448798 0.114606 136 381 130 379 138 374 Trgb
-0.000000 0.000000 0.000000 133 384 131 383 131 381 Trgb
-0.000000 0.000000 0.000000 131 383 130 380 131 381 Trgb
-0.000000 0.000000 0.000000 130 380 129 379 131 381 Trgb
-0.000000 0.000000 0.000000 129 379 131 380 131 381 Trgb
-0.000000 0.000000 0.000000 131 380 132 382 131 381 Trgb
-0.000000 0.000000 0.000000 132 382 133 384 131 381 Trgb
-0.000000 0.087931 0.026379 178 348 131 380 129 379 Trgb
-0.000000 0.043965 0.013190 178 348 129 379 176 347 Trgb
-0.000000 0.299857 0.089957 179 350 132 382 131 380 Trgb
-0.000000 0.215876 0.064763 179 350 131 380 178 348 Trgb
-0.000000 0.295907 0.088772 179 352 133 384 132 382 Trgb
-0.000000 0.339872 0.101962 179 352 132 382 179 350 Trgb
-0.000000 0.691585 0.207476 106 387 105 387 105 385 Trgb
-0.000000 0.691585 0.207476 105 387 103 386 105 385 Trgb
-0.000000 0.691585 0.207476 103 386 104 384 105 385 Trgb
-0.000000 0.691585 0.207476 104 384 105 383 105 385 Trgb
-0.000000 0.691585 0.207476 105 383 107 385 105 385 Trgb
-0.000000 0.691585 0.207476 107 385 106 387 105 385 Trgb
-0.000000 0.038905 0.011671 131 383 105 387 106 387 Trgb
-0.000000 0.068470 0.020541 131 383 106 387 132 383 Trgb
-0.000000 0.059130 0.017739 133 381 107 385 105 383 Trgb
-0.000000 0.029565 0.008870 133 381 105 383 131 379 Trgb
-0.000000 0.094922 0.028477 132 383 106 387 107 385 Trgb
-0.000000 0.091809 0.027543 132 383 107 385 133 381 Trgb
-0.036557 0.227068 0.052725 105 391 97 391 99 386 Trgb
-0.065148 0.404652 0.093960 111 392 105 395 105 391 Trgb
-0.037225 0.231217 0.053688 97 391 105 391 105 395 Trgb
-0.009849 0.061174 0.014205 97 391 97 381 99 386 Trgb
-0.052749 0.327638 0.076077 104 381 105 391 99 386 Trgb
-0.083603 0.519279 0.120576 113 385 111 392 105 391 Trgb
-0.071872 0.446414 0.103657 105 391 104 381 113 385 Trgb
-0.058213 0.361574 0.083957 110 379 113 385 104 381 Trgb
-0.026041 0.161745 0.037557 97 381 104 381 99 386 Trgb
-0.000000 0.000000 0.000000 100 378 105 376 97 381 Trgb
-0.016192 0.100570 0.023352 104 381 97 381 105 376 Trgb
-0.029241 0.181624 0.042173 105 376 110 379 104 381 Trgb
-0.069674 0.432765 0.100488 111 392 113 385 113 389 Trgb
-0.044015 0.273387 0.063480 113 380 113 389 113 385 Trgb
-0.044284 0.275061 0.063869 113 385 110 379 113 380 Trgb
-0.015313 0.095110 0.022085 110 379 105 376 113 380 Trgb
-0.000000 0.698498 0.209550 130 380 132 380 131 381 Trgb
-0.000000 0.698498 0.209550 132 380 133 381 131 381 Trgb
-0.000000 0.698498 0.209550 133 381 132 383 131 381 Trgb
-0.000000 0.698498 0.209550 132 383 130 383 131 381 Trgb
-0.000000 0.698498 0.209550 130 383 129 381 131 381 Trgb
-0.000000 0.698498 0.209550 129 381 130 380 131 381 Trgb
-0.000000 0.000000 0.000000 129 381 111 401 111 400 Trgb
-0.000000 0.000000 0.000000 129 381 111 400 130 380 Trgb
-0.000000 0.023294 0.006988 130 383 112 403 111 401 Trgb
-0.000000 0.011647 0.003494 130 383 111 401 129 381 Trgb
-0.000000 0.040413 0.012124 132 383 113 403 112 403 Trgb
-0.000000 0.037677 0.011303 132 383 112 403 130 383 Trgb
-0.019290 0.043219 0.012502 102 398 104 406 103 408 Trgb
-0.112959 0.253086 0.073209 111 411 119 410 113 412 Trgb
-0.059036 0.132271 0.038261 113 412 103 408 111 411 Trgb
-0.071059 0.159208 0.046053 104 406 111 411 103 408 Trgb
-0.088148 0.197496 0.057129 110 400 111 391 118 396 Trgb
-0.000000 0.000000 0.000000 102 398 106 393 111 391 Trgb
-0.044502 0.099707 0.028842 111 391 110 400 102 398 Trgb
-0.063792 0.142926 0.041344 104 406 102 398 110 400 Trgb
-0.157140 0.352073 0.101843 121 404 110 400 118 396 Trgb
-0.174684 0.391380 0.113213 119 410 111 411 121 404 Trgb
-0.165263 0.370273 0.107107 110 400 121 404 111 411 Trgb
-0.115561 0.258915 0.074895 111 411 104 406 110 400 Trgb
-0.060868 0.136376 0.039449 111 391 121 395 118 396 Trgb
-0.129860 0.290952 0.084162 121 395 121 404 118 396 Trgb
-0.147404 0.330260 0.095533 122 405 119 410 121 404 Trgb
-0.110704 0.248032 0.071747 121 404 121 395 122 405 Trgb
-0.000000 0.699554 0.209866 131 380 131 379 131 381 Trgb
-0.000000 0.699554 0.209866 131 379 132 380 131 381 Trgb
-0.000000 0.699554 0.209866 132 380 132 382 131 381 Trgb
-0.000000 0.699554 0.209866 132 382 131 383 131 381 Trgb
-0.000000 0.699554 0.209866 131 383 130 382 131 381 Trgb
-0.000000 0.699554 0.209866 130 382 131 380 131 381 Trgb
-0.000000 0.019279 0.005784 130 382 92 378 93 376 Trgb
-0.000000 0.013935 0.004181 130 382 93 376 131 380 Trgb
-0.000000 0.018894 0.005668 131 383 93 380 92 378 Trgb
-0.000000 0.021758 0.006527 131 383 92 378 130 382 Trgb
-0.000000 0.005728 0.001718 131 380 93 376 94 376 Trgb
-0.000000 0.002864 0.000859 131 380 94 376 131 379 Trgb
-0.000000 0.000000 0.000000 83 371 82 384 82 377 Trgb
-0.062639 0.107049 0.033938 90 370 88 379 83 371 Trgb
-0.045424 0.077629 0.024611 82 384 83 371 88 379 Trgb
-0.092448 0.157993 0.050088 88 379 89 387 82 384 Trgb
-0.068102 0.116386 0.036898 89 387 93 390 82 384 Trgb
-0.017215 0.029420 0.009327 94 365 90 370 83 371 Trgb
-0.214613 0.366772 0.116277 98 385 99 373 105 379 Trgb
-0.124366 0.212540 0.067381 88 379 90 370 99 373 Trgb
-0.189956 0.324634 0.102918 99 373 98 385 88 379 Trgb
-0.175253 0.299506 0.094952 89 387 88 379 98 385 Trgb
-0.190267 0.325166 0.103087 104 384 98 385 105 379 Trgb
-0.141265 0.241421 0.076537 98 385 104 384 93 390 Trgb
-0.150908 0.257900 0.081762 93 390 89 387 98 385 Trgb
-0.148111 0.253120 0.080246 99 373 104 372 105 379 Trgb
-0.078942 0.134911 0.042771 90 370 94 365 99 373 Trgb
-0.078030 0.133353 0.042277 104 372 99 373 94 365 Trgb
-0.000000 0.651830 0.195549 178 348 180 348 178 349 Trgb
-0.000000 0.651830 0.195549 180 348 180 350 178 349 Trgb
-0.000000 0.651830 0.195549 180 350 178 351 178 349 Trgb
-0.000000 0.651830 0.195549 178 351 175 350 178 349 Trgb
-0.000000 0.651830 0.195549 175 350 175 349 178 349 Trgb
-0.000000 0.651830 0.195549 175 349 178 348 178 349 Trgb
-0.000000 0.136743 0.041023 178 351 181 395 179 394 Trgb
-0.000000 0.068371 0.020511 178 351 179 394 175 350 Trgb
-0.000000 0.224390 0.067317 180 350 184 394 181 395 Trgb
-0.000000 0.214752 0.064426 180 350 181 395 178 351 Trgb
-0.000000 0.097284 0.029185 180 348 184 392 184 394 Trgb
-0.000000 0.165656 0.049697 180 348 184 394 180 350 Trgb
-0.000000 0.000000 0.000000 181 392 182 391 181 393 Trgb
-0.000000 0.000000 0.000000 182 391 183 393 181 393 Trgb
-0.000000 0.000000 0.000000 183 393 182 394 181 393 Trgb
-0.000000 0.000000 0.000000 182 394 181 395 181 393 Trgb
-0.000000 0.000000 0.000000 181 395 180 394 181 393 Trgb
-0.000000 0.000000 0.000000 180 394 181 392 181 393 Trgb
-0.000000 0.098567 0.029570 182 394 210 409 209 410 Trgb
-0.000000 0.058014 0.017404 182 394 209 410 181 395 Trgb
-0.000000 0.127481 0.038244 183 393 211 408 210 409 Trgb
-0.000000 0.133301 0.039990 183 393 210 409 182 394 Trgb
-0.000000 0.040554 0.012166 182 391 211 407 211 408 Trgb
-0.000000 0.081108 0.024332 182 391 211 408 183 393 Trgb
-0.449781 0.027005 0.095357 204 426 214 420 223 422 Trgb
-0.000000 0.000000 0.000000 191 412 197 394 196 401 Trgb
-0.570312 0.034242 0.120911 214 420 222 408 223 422 Trgb
-0.467717 0.028082 0.099160 228 405 223 422 222 408 Trgb
-0.379352 0.022777 0.080426 222 408 222 395 228 405 Trgb
-0.105134 0.006312 0.022289 203 412 191 412 196 401 Trgb
-0.381323 0.022895 0.080844 214 420 204 426 203 412 Trgb
-0.184233 0.011062 0.039059 191 412 203 412 204 426 Trgb
-0.079098 0.004749 0.016769 204 426 198 421 191 412 Trgb
-0.026036 0.001563 0.005520 197 394 209 394 196 401 Trgb
-0.026036 0.001563 0.005520 209 394 197 394 216 391 Trgb
-0.111265 0.006680 0.023589 216 391 222 395 209 394 Trgb
-0.131171 0.007876 0.027809 209 394 203 412 196 401 Trgb
-0.501854 0.030132 0.106397 222 408 214 420 203 412 Trgb
-0.330800 0.019862 0.070132 203 412 209 394 222 408 Trgb
-0.310894 0.018666 0.065912 222 395 222 408 209 394 Trgb
-0.000000 0.699809 0.209943 180 394 180 392 181 393 Trgb
-0.000000 0.699809 0.209943 180 392 182 391 181 393 Trgb
-0.000000 0.699809 0.209943 182 391 183 392 181 393 Trgb
-0.000000 0.699809 0.209943 183 392 183 394 181 393 Trgb
-0.000000 0.699809 0.209943 183 394 181 395 181 393 Trgb
-0.000000 0.699809 0.209943 181 395 180 394 181 393 Trgb
-0.000000 0.006766 0.002030 181 395 168 392 166 391 Trgb
-0.000000 0.003383 0.001015 181 395 166 391 180 394 Trgb
-0.000000 0.000000 0.000000 180 392 167 389 168 388 Trgb
-0.000000 0.000000 0.000000 180 392 168 388 182 391 Trgb
-0.000000 0.000000 0.000000 180 394 166 391 167 389 Trgb
-0.000000 0.000000 0.000000 180 394 167 389 180 392 Trgb
-0.168457 0.380906 0.109873 173 398 164 393 172 391 Trgb
-0.049902 0.112835 0.032547 164 400 159 394 164 393 Trgb
-0.115650 0.261502 0.075430 164 393 173 398 164 400 Trgb
-0.105923 0.239508 0.069086 171 400 164 400 173 398 Trgb
-0.184304 0.416738 0.120208 177 388 173 398 172 391 Trgb
-0.147343 0.333164 0.096101 173 398 177 388 177 395 Trgb
-0.121770 0.275339 0.079422 177 395 171 400 173 398 Trgb
-0.128611 0.290809 0.083884 164 393 169 384 172 391 Trgb
-0.037902 0.085702 0.024721 159 394 159 386 164 393 Trgb
-0.063804 0.144271 0.041615 169 384 164 393 159 386 Trgb
-0.025902 0.058569 0.016894 159 386 165 380 169 384 Trgb
-0.144458 0.326640 0.094220 169 384 177 388 172 391 Trgb
-0.064954 0.146870 0.042365 173 381 177 387 177 388 Trgb
-0.079651 0.180103 0.051951 177 388 169 384 173 381 Trgb
-0.025902 0.058569 0.016894 165 380 173 381 169 384 Trgb
-0.000000 0.694743 0.208423 182 394 181 393 181 393 Trgb
-0.000000 0.694743 0.208423 181 393 180 392 181 393 Trgb
-0.000000 0.694743 0.208423 180 392 181 392 181 393 Trgb
-0.000000 0.694743 0.208423 181 392 182 393 181 393 Trgb
-0.000000 0.694743 0.208423 182 393 183 394 181 393 Trgb
-0.000000 0.694743 0.208423 183 394 182 394 181 393 Trgb
-0.000000 0.065286 0.019586 183 394 157 420 156 420 Trgb
-0.000000 0.074712 0.022413 183 394 156 420 182 394 Trgb
-0.000000 0.018852 0.005655 181 393 154 418 154 417 Trgb
-0.000000 0.009426 0.002828 181 393 154 417 180 392 Trgb
-0.000000 0.065517 0.019655 182 394 156 420 154 418 Trgb
-0.000000 0.046897 0.014069 182 394 154 418 181 393 Trgb
-0.365097 0.114210 0.095861 159 429 167 431 150 434 Trgb
-0.067185 0.021017 0.017640 139 421 150 434 144 430 Trgb
-0.321781 0.100660 0.084488 149 421 159 429 150 434 Trgb
-0.159955 0.050037 0.041999 150 434 139 421 149 421 Trgb
-0.092770 0.029020 0.024358 143 411 149 421 139 421 Trgb
-0.297384 0.093028 0.078082 172 416 166 418 167 407 Trgb
-0.459583 0.143767 0.120670 167 431 159 429 166 418 Trgb
-0.366658 0.114698 0.096271 166 418 172 416 167 431 Trgb
-0.000000 0.000000 0.000000 144 406 143 411 139 421 Trgb
-0.254068 0.079478 0.066709 166 418 155 406 167 407 Trgb
-0.416267 0.130217 0.109297 159 429 149 421 166 418 Trgb
-0.280026 0.087598 0.073525 155 406 166 418 149 421 Trgb
-0.118355 0.037024 0.031076 149 421 143 411 155 406 Trgb
-0.092397 0.028904 0.024260 155 406 161 403 167 407 Trgb
-0.025585 0.008004 0.006718 161 403 155 406 144 406 Trgb
-0.025585 0.008004 0.006718 143 411 144 406 155 406 Trgb
-0.000000 0.699458 0.209837 243 351 238 351 240 348 Trgb
-0.000000 0.699458 0.209837 238 351 236 348 240 348 Trgb
-0.000000 0.699458 0.209837 236 348 238 345 240 348 Trgb
-0.000000 0.699458 0.209837 238 345 243 345 240 348 Trgb
-0.000000 0.699458 0.209837 243 345 245 348 240 348 Trgb
-0.000000 0.699458 0.209837 245 348 243 351 240 348 Trgb
-0.000000 0.000000 0.000000 238 302 238 345 236 348 Trgb
-0.000000 0.000000 0.000000 238 302 236 348 236 305 Trgb
-0.000000 0.010118 0.003035 242 302 243 345 238 345 Trgb
-0.000000 0.005059 0.001518 242 302 238 345 238 302 Trgb
-0.000000 0.023392 0.007018 244 305 245 348 243 345 Trgb
-0.000000 0.019284 0.005785 244 305 243 345 242 302 Trgb
-0.000000 0.699769 0.209931 279 344 276 345 277 342 Trgb
-0.000000 0.699769 0.209931 276 345 274 343 277 342 Trgb
-0.000000 0.699769 0.209931 274 343 274 340 277 342 Trgb
-0.000000 0.699769 0.209931 274 340 277 338 277 342 Trgb
-0.000000 0.699769 0.209931 277 338 279 340 277 342 Trgb
-0.000000 0.699769 0.209931 279 340 279 344 277 342 Trgb
-0.000000 0.006306 0.001892 238 349 274 343 276 345 Trgb
-0.000000 0.011255 0.003376 238 349 276 345 240 351 Trgb
-0.000000 0.000452 0.000136 238 346 274 340 274 343 Trgb
-0.000000 0.000904 0.000271 238 346 274 343 238 349 Trgb
-0.000000 0.000000 0.000000 241 345 277 338 274 340 Trgb
-0.000000 0.000000 0.000000 241 345 274 340 238 346 Trgb
-0.000000 0.582895 0.174869 282 300 282 301 280 301 Trgb
-0.000000 0.582895 0.174869 282 301 280 302 280 301 Trgb
-0.000000 0.582895 0.174869 280 302 278 301 280 301 Trgb
-0.000000 0.582895 0.174869 278 301 278 300 280 301 Trgb
-0.000000 0.582895 0.174869 278 300 279 299 280 301 Trgb
-0.000000 0.582895 0.174869 279 299 282 300 280 301 Trgb
-0.000000 0.335109 0.100533 277 343 280 302 282 301 Trgb
-0.000000 0.336208 0.100862 277 343 282 301 279 342 Trgb
-0.000000 0.111337 0.033401 275 342 278 301 280 302 Trgb
-0.000000 0.222674 0.066802 275 342 280 302 277 343 Trgb
-0.000000 0.000000 0.000000 275 341 278 300 278 301 Trgb
-0.000000 0.000000 0.000000 275 341 278 301 275 342 Trgb
-0.156119 0.052040 0.041632 292 284 290 293 281 282 Trgb
-0.267437 0.089146 0.071317 290 293 292 284 300 303 Trgb
-0.431611 0.143870 0.115096 300 303 293 309 290 293 Trgb
-0.154020 0.051340 0.041072 290 293 269 291 281 282 Trgb
-0.130571 0.043524 0.034819 278 310 264 306 269 291 Trgb
-0.263240 0.087747 0.070197 269 291 290 293 278 310 Trgb
-0.429512 0.143171 0.114537 293 309 278 310 290 293 Trgb
-0.413054 0.137685 0.110148 293 309 300 303 288 319 Trgb
-0.021351 0.007117 0.005694 269 291 271 282 281 282 Trgb
-0.008229 0.002743 0.002194 264 306 259 298 269 291 Trgb
-0.008229 0.002743 0.002194 271 282 269 291 259 298 Trgb
-0.114112 0.038037 0.030430 267 317 288 319 278 319 Trgb
-0.122342 0.040781 0.032624 264 306 278 310 267 317 Trgb
-0.236454 0.078818 0.063054 288 319 267 317 278 310 Trgb
-0.410955 0.136985 0.109588 278 310 293 309 288 319 Trgb
-0.000000 0.000000 0.000000 259 298 264 306 267 317 Trgb
-0.000000 0.699650 0.209895 320 357 320 355 320 355 Trgb
-0.000000 0.699650 0.209895 320 355 321 353 320 355 Trgb
-0.000000 0.699650 0.209895 321 353 321 353 320 355 Trgb
-0.000000 0.699650 0.209895 321 353 321 355 320 355 Trgb
-0.000000 0.699650 0.209895 321 355 320 357 320 355 Trgb
-0.000000 0.699650 0.209895 320 357 320 357 320 355 Trgb
-0.000000 0.019057 0.005717 276 342 320 355 320 357 Trgb
-0.000000 0.016121 0.004836 276 342 320 357 276 344 Trgb
-0.000000 0.013204 0.003961 277 340 321 353 320 355 Trgb
-0.000000 0.017599 0.005280 277 340 320 355 276 342 Trgb
-0.000000 0.002937 0.000881 277 340 321 353 321 353 Trgb
-0.000000 0.005873 0.001762 277 340 321 353 277 340 Trgb
-0.051513 0.547915 0.119886 325 363 327 354 330 358 Trgb
-0.033489 0.356204 0.077939 317 363 318 358 325 363 Trgb
-0.045176 0.480506 0.105136 327 354 325 363 318 358 Trgb
-0.037293 0.396663 0.086791 318 358 320 351 327 354 Trgb
-0.042482 0.451858 0.098868 327 354 329 351 330 358 Trgb
-0.009041 0.096168 0.021042 322 346 324 347 329 351 Trgb
-0.027114 0.288393 0.063101 329 351 327 354 322 346 Trgb
-0.028262 0.300606 0.065774 320 351 322 346 327 354 Trgb
-0.022883 0.243388 0.053254 319 364 317 363 325 363 Trgb
-0.000000 0.000000 0.000000 314 350 312 359 311 352 Trgb
-0.016992 0.180738 0.039546 318 358 317 363 312 359 Trgb
-0.010607 0.112815 0.024684 312 359 314 350 318 358 Trgb
-0.019221 0.204438 0.044732 320 351 318 358 314 350 Trgb
-0.000000 0.000000 0.000000 316 347 314 350 311 352 Trgb
-0.001576 0.016759 0.003667 314 350 316 347 322 346 Trgb
-0.010190 0.108381 0.023714 322 346 320 351 314 350 Trgb
-0.000000 0.698163 0.209449 265 347 268 347 266 349 Trgb
-0.000000 0.698163 0.209449 268 347 268 350 266 349 Trgb
-0.000000 0.698163 0.209449 268 350 267 351 266 349 Trgb
-0.000000 0.698163 0.209449 267 351 265 351 266 349 Trgb
-0.000000 0.698163 0.209449 265 351 264 348 266 349 Trgb
-0.000000 0.698163 0.209449 264 348 265 347 266 349 Trgb
-0.000000 0.014969 0.004491 278 340 268 347 265 347 Trgb
-0.000000 0.007485 0.002245 278 340 265 347 276 339 Trgb
-0.000000 0.041203 0.012361 279 342 268 350 268 347 Trgb
-0.000000 0.031829 0.009549 279 342 268 347 278 340 Trgb
-0.000000 0.035609 0.010683 277 344 267 351 268 350 Trgb
-0.000000 0.043093 0.012928 277 344 268 350 279 342 Trgb
-0.005581 0.351590 0.071434 263 344 271 348 264 350 Trgb
-0.000872 0.054960 0.011166 264 340 270 341 263 344 Trgb
-0.004101 0.258361 0.052492 271 348 263 344 270 341 Trgb
-0.006315 0.397826 0.080828 270 341 274 347 271 348 Trgb
-0.007937 0.500031 0.101594 271 348 267 356 264 350 Trgb
-0.007251 0.456807 0.092812 274 353 269 357 267 356 Trgb
-0.008813 0.555244 0.112812 267 356 271 348 274 353 Trgb
-0.008671 0.546267 0.110988 274 347 274 353 271 348 Trgb
-0.002352 0.148188 0.030108 259 351 263 344 264 350 Trgb
-0.000284 0.017904 0.003638 259 345 264 340 263 344 Trgb
-0.000284 0.017904 0.003638 263 344 259 351 259 345 Trgb
-0.000000 0.000000 0.000000 258 351 259 345 259 351 Trgb
-0.004708 0.296630 0.060268 267 356 259 351 264 350 Trgb
-0.004307 0.271310 0.055123 269 357 262 356 267 356 Trgb
-0.002640 0.166346 0.033797 259 351 267 356 262 356 Trgb
-0.000000 0.000000 0.000000 262 356 258 351 259 351 Trgb
-0.000000 0.699555 0.209867 274 400 274 399 276 398 Trgb
-0.000000 0.699555 0.209867 274 399 276 397 276 398 Trgb
-0.000000 0.699555 0.209867 276 397 279 396 276 398 Trgb
-0.000000 0.699555 0.209867 279 396 279 397 276 398 Trgb
-0.000000 0.699555 0.209867 279 397 276 399 276 398 Trgb
-0.000000 0.699555 0.209867 276 399 274 400 276 398 Trgb
-0.000000 0.001828 0.000548 238 349 274 399 274 400 Trgb
-0.000000 0.000914 0.000274 238 349 274 400 238 350 Trgb
-0.000000 0.016145 0.004843 240 347 276 397 274 399 Trgb
-0.000000 0.009443 0.002833 240 347 274 399 238 349 Trgb
-0.000000 0.021019 0.006306 243 346 279 396 276 397 Trgb
-0.000000 0.021933 0.006580 243 346 276 397 240 347 Trgb
-0.000000 0.000000 0.000000 275 399 275 398 276 398 Trgb
-0.000000 0.000000 0.000000 275 398 277 396 276 398 Trgb
-0.000000 0.000000 0.000000 277 396 278 397 276 398 Trgb
-0.000000 0.000000 0.000000 278 397 278 398 276 398 Trgb
-0.000000 0.000000 0.000000 278 398 276 400 276 398 Trgb
-0.000000 0.000000 0.000000 276 400 275 399 276 398 Trgb
-0.000000 0.040083 0.012025 276 400 304 426 303 425 Trgb
-0.000000 0.020042 0.006012 276 400 303 425 275 399 Trgb
-0.000000 0.090960 0.027288 278 398 305 424 304 426 Trgb
-0.000000 0.075542 0.022663 278 398 304 426 276 400 Trgb
-0.000000 0.066294 0.019888 278 397 306 422 305 424 Trgb
-0.000000 0.086336 0.025901 278 397 305 424 278 398 Trgb
-0.082512 0.183187 0.053140 311 434 303 434 299 434 Trgb
-0.144624 0.321084 0.093142 299 434 307 431 311 434 Trgb
-0.131873 0.292775 0.084930 313 423 314 416 316 424 Trgb
-0.161712 0.359021 0.104147 316 424 311 434 313 423 Trgb
-0.186888 0.414915 0.120361 307 431 313 423 311 434 Trgb
-0.028116 0.062421 0.018107 300 424 292 424 296 417 Trgb
-0.022788 0.050592 0.014676 299 434 295 431 292 424 Trgb
-0.050904 0.113013 0.032783 292 424 300 424 299 434 Trgb
-0.113016 0.250910 0.072785 307 431 299 434 300 424 Trgb
-0.033444 0.074249 0.021539 305 413 300 424 296 417 Trgb
-0.100265 0.222601 0.064573 314 416 313 423 305 413 Trgb
-0.098496 0.218673 0.063434 300 424 305 413 313 423 Trgb
-0.155280 0.344741 0.100004 313 423 307 431 300 424 Trgb
-0.000000 0.000000 0.000000 292 424 297 414 296 417 Trgb
-0.005328 0.011829 0.003431 297 414 305 413 296 417 Trgb
-0.035213 0.078177 0.022678 309 414 314 416 305 413 Trgb
-0.000000 0.000000 0.000000 276 398 274 397 276 398 Trgb
-0.000000 0.000000 0.000000 274 397 275 397 276 398 Trgb
-0.000000 0.000000 0.000000 275 397 277 398 276 398 Trgb
-0.000000 0.000000 0.000000 277 398 278 399 276 398 Trgb
-0.000000 0.000000 0.000000 278 399 278 399 276 398 Trgb
-0.000000 0.000000 0.000000 278 399 276 398 276 398 Trgb
-0.000000 0.456347 0.136904 278 399 262 440 260 440 Trgb
-0.000000 0.340193 0.102058 278 399 260 440 276 398 Trgb
-0.000000 0.423140 0.126942 278 399 263 440 262 440 Trgb
-0.000000 0.497820 0.149346 278 399 262 440 278 399 Trgb
-0.000000 0.149360 0.044808 276 398 260 440 259 439 Trgb
-0.000000 0.074680 0.022404 276 398 259 439 274 397 Trgb
-0.212339 0.022980 0.047064 249 455 269 460 253 460 Trgb
-0.339481 0.036740 0.075244 252 441 268 447 249 455 Trgb
-0.400003 0.043290 0.088659 269 460 249 455 268 447 Trgb
-0.531030 0.057471 0.117700 268 447 280 448 269 460 Trgb
-0.070112 0.007588 0.015540 242 448 249 455 253 460 Trgb
-0.144590 0.015648 0.032048 241 434 252 441 249 455 Trgb
-0.062885 0.006806 0.013938 249 455 242 448 241 434 Trgb
-0.184671 0.019986 0.040931 280 431 260 426 268 419 Trgb
-0.329260 0.035634 0.072979 268 447 252 441 260 426 Trgb
-0.379562 0.041078 0.084128 260 426 280 431 268 447 Trgb
-0.520810 0.056365 0.115435 280 448 268 447 280 431 Trgb
-0.052664 0.005700 0.011673 260 426 253 419 268 419 Trgb
-0.134369 0.014542 0.029782 252 441 241 434 260 426 Trgb
-0.052664 0.005700 0.011673 253 419 260 426 241 434 Trgb
-0.000000 0.000000 0.000000 241 434 242 431 253 419 Trgb
-0.000000 0.699838 0.209951 305 398 304 400 303 399 Trgb
-0.000000 0.699838 0.209951 304 400 303 401 303 399 Trgb
-0.000000 0.699838 0.209951 303 401 301 400 303 399 Trgb
-0.000000 0.699838 0.209951 301 400 301 398 303 399 Trgb
-0.000000 0.699838 0.209951 301 398 303 397 303 399 Trgb
-0.000000 0.699838 0.209951 303 397 305 398 303 399 Trgb
-0.000000 0.004567 0.001370 275 399 301 400 303 401 Trgb
-0.000000 0.008870 0.002661 275 399 303 401 276 400 Trgb
-0.000000 0.000088 0.000026 275 397 301 398 301 400 Trgb
-0.000000 0.000176 0.000053 275 397 301 400 275 399 Trgb
-0.000000 0.000000 0.000000 277 396 303 397 301 398 Trgb
-0.000000 0.000000 0.000000 277 396 301 398 275 397 Trgb
-0.222606 0.358895 0.116300 316 395 312 409 312 399 Trgb
-0.223481 0.360306 0.116757 312 409 301 403 312 399 Trgb
-0.084475 0.136195 0.044134 299 413 292 405 301 403 Trgb
-0.166838 0.268984 0.087164 301 403 312 409 299 413 Trgb
-0.143692 0.231666 0.075072 307 412 299 413 312 409 Trgb
-0.172674 0.278393 0.090214 306 390 316 395 312 399 Trgb
-0.090628 0.146114 0.047348 316 395 306 390 307 386 Trgb
-0.033050 0.053284 0.017267 298 386 307 386 306 390 Trgb
-0.173550 0.279804 0.090671 301 403 306 390 312 399 Trgb
-0.059072 0.095239 0.030862 292 405 292 394 301 403 Trgb
-0.091503 0.147525 0.047806 306 390 301 403 292 394 Trgb
-0.033050 0.053284 0.017267 292 394 298 386 306 390 Trgb
-0.026022 0.041954 0.013595 292 405 299 413 289 403 Trgb
-0.000619 0.000998 0.000323 292 394 292 405 289 403 Trgb
-0.000000 0.000000 0.000000 298 386 292 394 294 389 Trgb
-0.000000 0.683893 0.205168 199 372 201 375 199 375 Trgb
-0.000000 0.683893 0.205168 201 375 201 378 199 375 Trgb
-0.000000 0.683893 0.205168 201 378 199 378 199 375 Trgb
-0.000000 0.683893 0.205168 199 378 197 376 199 375 Trgb
-0.000000 0.683893 0.205168 197 376 197 373 199 375 Trgb
-0.000000 0.683893 0.205168 197 373 199 372 199 375 Trgb
-0.000000 0.091401 0.027420 243 347 201 375 199 372 Trgb
-0.000000 0.049695 0.014909 243 347 199 372 240 345 Trgb
-0.000000 0.127779 0.038334 243 350 201 378 201 375 Trgb
-0.000000 0.130442 0.039133 243 350 201 375 243 347 Trgb
-0.000000 0.005327 0.001598 240 345 199 372 197 373 Trgb
-0.000000 0.002663 0.000799 240 345 197 373 238 346 Trgb
-0.144027 0.150940 0.058993 191 371 200 384 189 382 Trgb
-0.110751 0.116067 0.045364 199 362 207 369 191 371 Trgb
-0.201210 0.210868 0.082416 200 384 191 371 207 369 Trgb
-0.289919 0.303835 0.118751 207 369 211 381 200 384 Trgb
-0.135622 0.142131 0.055551 200 384 192 390 189 382 Trgb
-0.184399 0.193250 0.075530 192 390 200 384 208 388 Trgb
-0.281513 0.295026 0.115308 211 381 208 388 200 384 Trgb
-0.047625 0.049911 0.019507 183 377 191 371 189 382 Trgb
-0.028132 0.029483 0.011523 190 362 199 362 191 371 Trgb
-0.022189 0.023254 0.009088 191 371 183 377 190 362 Trgb
-0.088563 0.092814 0.036275 207 369 199 362 206 361 Trgb
-0.143049 0.149916 0.058593 206 361 215 374 207 369 Trgb
-0.253947 0.266136 0.104017 211 381 207 369 215 374 Trgb
-0.039219 0.041102 0.016064 192 390 183 377 189 382 Trgb
-0.245542 0.257328 0.100574 208 388 211 381 215 374 Trgb
-0.005944 0.006229 0.002434 199 362 190 362 206 361 Trgb
-0.000000 0.663069 0.198921 237 303 239 304 240 305 Trgb
-0.000000 0.663069 0.198921 239 304 243 306 240 305 Trgb
-0.000000 0.663069 0.198921 243 306 243 307 240 305 Trgb
-0.000000 0.663069 0.198921 243 307 241 306 240 305 Trgb
-0.000000 0.663069 0.198921 241 306 237 304 240 305 Trgb
-0.000000 0.663069 0.198921 237 304 237 303 240 305 Trgb
-0.000000 0.004603 0.001381 237 304 193 373 193 372 Trgb
-0.000000 0.002302 0.000690 237 304 193 372 237 303 Trgb
-0.000000 0.134078 0.040224 241 306 197 375 193 373 Trgb
-0.000000 0.070492 0.021148 241 306 193 373 237 304 Trgb
-0.000000 0.193062 0.057919 243 307 199 376 197 375 Trgb
-0.000000 0.195363 0.058609 243 307 197 375 241 306 Trgb
-0.000000 0.000000 0.000000 195 373 198 373 196 374 Trgb
-0.000000 0.000000 0.000000 198 373 199 374 196 374 Trgb
-0.000000 0.000000 0.000000 199 374 197 375 196 374 Trgb
-0.000000 0.000000 0.000000 197 375 194 376 196 374 Trgb
-0.000000 0.000000 0.000000 194 376 193 374 196 374 Trgb
-0.000000 0.000000 0.000000 193 374 195 373 196 374 Trgb
-0.000000 0.116215 0.034865 194 376 202 423 201 422 Trgb
-0.000000 0.058108 0.017432 194 376 201 422 193 374 Trgb
-0.000000 0.468066 0.140420 197 375 204 423 202 423 Trgb
-0.000000 0.321194 0.096358 197 375 202 423 194 376 Trgb
-0.000000 0.498723 0.149617 199 374 206 422 204 423 Trgb
-0.000000 0.556831 0.167049 199 374 204 423 197 375 Trgb
-0.000000 0.011484 0.003445 202 423 231 450 230 451 Trgb
-0.000000 0.005742 0.001723 202 423 230 451 202 423 Trgb
-0.000000 0.027990 0.008397 204 422 232 449 231 450 Trgb
-0.000000 0.022608 0.006782 204 422 231 450 202 423 Trgb
-0.000000 0.021887 0.006566 205 420 233 448 232 449 Trgb
-0.000000 0.027629 0.008289 205 420 232 449 204 422 Trgb
-0.140855 0.120441 0.052259 222 460 224 457 234 462 Trgb
-0.240544 0.205683 0.089245 244 451 244 451 242 459 Trgb
-0.170476 0.145769 0.063249 244 451 244 451 242 439 Trgb
-0.212239 0.181480 0.078744 238 442 242 439 244 451 Trgb
-0.303940 0.259891 0.112766 234 462 244 451 242 459 Trgb
-0.225159 0.192527 0.083537 224 457 231 450 234 462 Trgb
-0.297267 0.254185 0.110290 244 451 234 462 231 450 Trgb
-0.275635 0.235688 0.102265 231 450 238 442 244 451 Trgb
-0.044827 0.038331 0.016632 224 457 222 460 219 448 Trgb
-0.000000 0.000000 0.000000 230 437 229 437 221 439 Trgb
-0.020908 0.017878 0.007757 229 437 230 437 242 439 Trgb
-0.095304 0.081492 0.035359 242 439 238 442 229 437 Trgb
-0.000000 0.000000 0.000000 229 437 219 448 221 439 Trgb
-0.129131 0.110416 0.047909 231 450 224 457 219 448 Trgb
-0.084303 0.072086 0.031278 219 448 229 437 231 450 Trgb
-0.158699 0.135699 0.058880 238 442 231 450 229 437 Trgb
-0.000000 0.697205 0.209161 203 423 202 421 203 422 Trgb
-0.000000 0.697205 0.209161 202 421 202 420 203 422 Trgb
-0.000000 0.697205 0.209161 202 420 203 421 203 422 Trgb
-0.000000 0.697205 0.209161 203 421 205 422 203 422 Trgb
-0.000000 0.697205 0.209161 205 422 205 423 203 422 Trgb
-0.000000 0.697205 0.209161 205 423 203 423 203 422 Trgb
-0.000000 0.053582 0.016075 205 423 177 446 175 445 Trgb
-0.000000 0.054544 0.016363 205 423 175 445 203 423 Trgb
-0.000000 0.001924 0.000577 202 421 174 444 174 443 Trgb
-0.000000 0.000962 0.000289 202 421 174 443 202 420 Trgb
-0.000000 0.037965 0.011390 203 423 175 445 174 444 Trgb
-0.000000 0.020425 0.006128 203 423 174 444 202 421 Trgb
-0.316256 0.106519 0.084555 174 454 183 458 166 458 Trgb
-0.035608 0.011993 0.009520 158 444 166 458 164 454 Trgb
-0.217204 0.073158 0.058072 166 444 174 454 166 458 Trgb
-0.081816 0.027557 0.021875 166 458 158 444 166 444 Trgb
-0.046208 0.015564 0.012354 163 434 166 444 158 444 Trgb
-0.350542 0.118068 0.093722 193 445 183 444 188 434 Trgb
-0.436507 0.147022 0.116706 183 458 174 454 183 444 Trgb
-0.410770 0.138353 0.109825 183 444 193 445 183 458 Trgb
-0.324951 0.109448 0.086880 188 454 183 458 193 445 Trgb
-0.251490 0.084706 0.067239 183 444 175 430 188 434 Trgb
-0.337456 0.113660 0.090223 174 454 166 444 183 444 Trgb
-0.212668 0.071630 0.056859 175 430 183 444 166 444 Trgb
-0.056808 0.019134 0.015188 166 444 163 434 175 430 Trgb
-0.095631 0.032210 0.025568 175 430 185 430 188 434 Trgb
-0.010600 0.003570 0.002834 163 434 168 430 175 430 Trgb
-0.000000 0.699705 0.209912 228 451 227 452 227 452 Trgb
-0.000000 0.699705 0.209912 227 452 226 453 227 452 Trgb
-0.000000 0.699705 0.209912 226 453 225 453 227 452 Trgb
-0.000000 0.699705 0.209912 225 453 226 451 227 452 Trgb
-0.000000 0.699705 0.209912 226 451 228 450 227 452 Trgb
-0.000000 0.699705 0.209912 228 450 228 451 227 452 Trgb
-0.000000 0.012277 0.003683 203 421 226 451 225 453 Trgb
-0.000000 0.006561 0.001968 203 421 225 453 202 423 Trgb
-0.000000 0.017430 0.005229 204 421 228 450 226 451 Trgb
-0.000000 0.017712 0.005313 204 421 226 451 203 421 Trgb
-0.000000 0.005716 0.001715 205 421 228 451 228 450 Trgb
-0.000000 0.011432 0.003430 205 421 228 450 204 421 Trgb
-0.039036 0.368851 0.081578 229 459 226 459 232 458 Trgb
-0.014453 0.136564 0.030203 221 457 220 456 226 459 Trgb
-0.054216 0.512286 0.113300 232 453 235 454 232 458 Trgb
-0.042493 0.401514 0.088801 235 454 232 453 233 446 Trgb
-0.040366 0.381422 0.084358 229 448 233 446 232 453 Trgb
-0.054876 0.518519 0.114679 226 459 232 453 232 458 Trgb
-0.022702 0.214515 0.047443 220 456 223 452 226 459 Trgb
-0.043812 0.413980 0.091559 232 453 226 459 223 452 Trgb
-0.041026 0.387655 0.085736 223 452 229 448 232 453 Trgb
-0.007590 0.071717 0.015861 225 444 228 445 233 446 Trgb
-0.018790 0.177548 0.039268 233 446 229 448 225 444 Trgb
-0.000000 0.000000 0.000000 225 444 219 450 222 445 Trgb
-0.008716 0.082358 0.018215 223 452 220 456 219 450 Trgb
-0.008250 0.077951 0.017240 219 450 225 444 223 452 Trgb
-0.019450 0.183782 0.040646 229 448 223 452 225 444 Trgb
-0.000000 0.675852 0.202756 157 401 155 402 154 399 Trgb
-0.000000 0.675852 0.202756 155 402 153 400 154 399 Trgb
-0.000000 0.675852 0.202756 153 400 152 397 154 399 Trgb
-0.000000 0.675852 0.202756 152 397 154 396 154 399 Trgb
-0.000000 0.675852 0.202756 154 396 156 398 154 399 Trgb
-0.000000 0.675852 0.202756 156 398 157 401 154 399 Trgb
-0.000000 0.082884 0.024865 197 377 155 402 157 401 Trgb
-0.000000 0.128084 0.038425 197 377 157 401 198 376 Trgb
-0.000000 0.090401 0.027120 198 373 156 398 154 396 Trgb
-0.000000 0.045200 0.013560 198 373 154 396 195 371 Trgb
-0.000000 0.160724 0.048217 198 376 157 401 156 398 Trgb
-0.000000 0.148162 0.044449 198 376 156 398 198 373 Trgb
-0.000000 0.624566 0.187370 133 381 132 382 132 381 Trgb
-0.000000 0.624566 0.187370 132 382 130 382 132 381 Trgb
-0.000000 0.624566 0.187370 130 382 130 380 132 381 Trgb
-0.000000 0.624566 0.187370 130 380 132 379 132 381 Trgb
-0.000000 0.624566 0.187370 132 379 134 379 132 381 Trgb
-0.000000 0.624566 0.187370 134 379 133 381 132 381 Trgb
-0.000000 0.236481 0.070944 154 401 132 382 133 381 Trgb
-0.000000 0.274378 0.082313 154 401 133 381 156 400 Trgb
-0.000000 0.066195 0.019858 153 400 130 382 132 382 Trgb
-0.000000 0.132389 0.039717 153 400 132 382 154 401 Trgb
-0.000000 0.246080 0.073824 156 400 133 381 134 379 Trgb
-0.000000 0.179885 0.053966 156 400 134 379 156 398 Trgb
-0.190356 0.052692 0.048610 134 378 117 386 121 372 Trgb
-0.466388 0.129100 0.119098 146 386 134 397 134 378 Trgb
-0.319369 0.088404 0.081555 117 386 134 378 134 397 Trgb
-0.207824 0.057527 0.053070 134 397 122 397 117 386 Trgb
-0.050611 0.014010 0.012924 117 386 115 370 121 372 Trgb
-0.032644 0.009036 0.008336 115 370 117 386 115 388 Trgb
-0.060843 0.016842 0.015537 122 397 115 388 117 386 Trgb
-0.157712 0.043656 0.040274 132 362 134 378 121 372 Trgb
-0.426508 0.118061 0.108914 149 373 146 386 134 378 Trgb
-0.246846 0.068329 0.063035 134 378 132 362 149 373 Trgb
-0.107101 0.029646 0.027349 142 364 149 373 132 362 Trgb
-0.440979 0.122066 0.112609 134 397 146 386 149 391 Trgb
-0.268552 0.074337 0.068578 149 391 132 398 134 397 Trgb
-0.182415 0.050494 0.046582 122 397 134 397 132 398 Trgb
-0.017967 0.004973 0.004588 115 370 132 362 121 372 Trgb
-0.401099 0.111028 0.102425 146 386 149 373 149 391 Trgb
-0.000000 0.696208 0.208862 150 441 149 441 152 441 Trgb
-0.000000 0.696208 0.208862 149 441 151 441 152 441 Trgb
-0.000000 0.696208 0.208862 151 441 153 441 152 441 Trgb
-0.000000 0.696208 0.208862 153 441 154 441 152 441 Trgb
-0.000000 0.696208 0.208862 154 441 152 441 152 441 Trgb
-0.000000 0.696208 0.208862 152 441 150 441 152 441 Trgb
-0.000000 0.021860 0.006558 154 399 151 441 149 441 Trgb
-0.000000 0.010930 0.003279 154 399 149 441 152 399 Trgb
-0.000000 0.059363 0.017809 156 399 153 441 151 441 Trgb
-0.000000 0.046076 0.013823 156 399 151 441 154 399 Trgb
-0.000000 0.050790 0.015237 157 399 154 441 153 441 Trgb
-0.000000 0.061719 0.018516 157 399 153 441 156 399 Trgb
-0.039530 0.023325 0.012571 135 441 138 440 141 452 Trgb
-0.241096 0.142261 0.076671 141 452 158 453 150 458 Trgb
-0.358611 0.211603 0.114043 149 440 162 441 158 453 Trgb
-0.265973 0.156940 0.084583 158 453 141 452 149 440 Trgb
-0.127736 0.075372 0.040622 138 440 149 440 141 452 Trgb
-0.000000 0.000000 0.000000 138 440 135 441 143 428 Trgb
-0.251597 0.148458 0.080011 158 453 160 454 150 458 Trgb
-0.369112 0.217799 0.117382 162 441 168 442 158 453 Trgb
-0.286976 0.169334 0.091262 160 454 158 453 168 442 Trgb
-0.048676 0.028722 0.015480 160 429 143 428 153 424 Trgb
-0.269050 0.158756 0.085561 162 441 149 440 160 429 Trgb
-0.136882 0.080769 0.043530 143 428 160 429 149 440 Trgb
-0.088206 0.052047 0.028051 149 440 138 440 143 428 Trgb
-0.279552 0.164953 0.088901 168 442 162 441 160 429 Trgb
-0.147384 0.086966 0.046870 160 429 162 430 168 442 Trgb
-0.000000 0.698453 0.209536 154 397 154 397 154 399 Trgb
-0.000000 0.698453 0.209536 154 397 155 399 154 399 Trgb
-0.000000 0.698453 0.209536 155 399 155 401 154 399 Trgb
-0.000000 0.698453 0.209536 155 401 155 401 154 399 Trgb
-0.000000 0.698453 0.209536 155 401 154 399 154 399 Trgb
-0.000000 0.698453 0.209536 154 399 154 397 154 399 Trgb
-0.000000 0.024988 0.007496 154 399 112 404 112 402 Trgb
-0.000000 0.012494 0.003748 154 399 112 402 154 397 Trgb
-0.000000 0.040894 0.012268 155 401 112 406 112 404 Trgb
-0.000000 0.039188 0.011756 155 401 112 404 154 399 Trgb
-0.000000 0.017612 0.005284 155 401 113 406 112 406 Trgb
-0.000000 0.030106 0.009032 155 401 112 406 155 401 Trgb
-0.013474 0.018613 0.006417 101 396 102 410 99 405 Trgb
-0.048974 0.067653 0.023325 110 392 110 400 101 396 Trgb
-0.062448 0.086266 0.029743 102 410 101 396 110 400 Trgb
-0.140330 0.193851 0.066836 110 400 111 410 102 410 Trgb
-0.074641 0.103109 0.035550 104 413 102 410 113 417 Trgb
-0.152523 0.210694 0.072643 111 410 113 417 102 410 Trgb
-0.000000 0.000000 0.000000 112 391 110 392 101 396 Trgb
-0.190994 0.263838 0.090966 121 407 120 394 126 402 Trgb
-0.084474 0.116692 0.040233 110 400 110 392 120 394 Trgb
-0.181141 0.250228 0.086274 120 394 121 407 110 400 Trgb
-0.223523 0.308773 0.106459 111 410 110 400 121 407 Trgb
-0.203187 0.280681 0.096774 123 411 121 407 126 402 Trgb
-0.205527 0.283915 0.097888 121 407 123 411 113 417 Trgb
-0.235716 0.325617 0.112267 113 417 111 410 121 407 Trgb
-0.035500 0.049040 0.016908 110 392 112 391 120 394 Trgb
-0.000000 0.000000 0.000000 196 373 198 373 196 374 Trgb
-0.000000 0.000000 0.000000 198 373 199 374 196 374 Trgb
-0.000000 0.000000 0.000000 199 374 196 375 196 374 Trgb
-0.000000 0.000000 0.000000 196 375 194 375 196 374 Trgb
-0.000000 0.000000 0.000000 194 375 194 374 196 374 Trgb
-0.000000 0.000000 0.000000 194 374 196 373 196 374 Trgb
-0.000000 0.058250 0.017475 196 375 211 428 209 428 Trgb
-0.000000 0.029125 0.008737 196 375 209 428 194 375 Trgb
-0.000000 0.089543 0.026863 199 374 214 427 211 428 Trgb
-0.000000 0.088459 0.026538 199 374 211 428 196 375 Trgb
-0.000000 0.032377 0.009713 198 373 213 426 214 427 Trgb
-0.000000 0.061502 0.018451 198 373 214 427 199 374 Trgb
-0.000000 0.030777 0.009233 211 428 250 437 250 438 Trgb
-0.000000 0.024674 0.007402 211 428 250 438 211 429 Trgb
-0.000000 0.024499 0.007350 211 426 250 435 250 437 Trgb
-0.000000 0.030690 0.009207 211 426 250 437 211 428 Trgb
-0.000000 0.006103 0.001831 212 425 250 434 250 435 Trgb
-0.000000 0.012206 0.003662 212 425 250 435 211 426 Trgb
-0.191392 0.316343 0.101547 257 446 258 441 262 439 Trgb
-0.197092 0.325763 0.104571 248 447 249 440 258 441 Trgb
-0.176218 0.291262 0.093496 258 441 257 446 248 447 Trgb
-0.088556 0.146370 0.046985 247 447 248 447 257 446 Trgb
-0.191022 0.315731 0.101350 258 441 260 430 262 439 Trgb
-0.196721 0.325151 0.104374 249 440 251 431 258 441 Trgb
-0.175477 0.290037 0.093103 260 430 258 441 251 431 Trgb
-0.087553 0.144712 0.046453 251 431 253 425 260 430 Trgb
-0.002361 0.003902 0.001253 241 437 240 442 238 433 Trgb
-0.111529 0.184341 0.059174 249 440 248 447 241 437 Trgb
-0.047688 0.078822 0.025302 240 442 241 437 248 447 Trgb
-0.045589 0.075353 0.024188 248 447 247 447 240 442 Trgb
-0.002361 0.003902 0.001253 243 426 241 437 238 433 Trgb
-0.111158 0.183728 0.058977 251 431 249 440 241 437 Trgb
-0.047318 0.078209 0.025105 241 437 243 426 251 431 Trgb
-0.044957 0.074307 0.023853 253 425 251 431 243 426 Trgb
-0.000000 0.696159 0.208848 210 428 209 426 211 427 Trgb
-0.000000 0.696159 0.208848 209 426 211 426 211 427 Trgb
-0.000000 0.696159 0.208848 211 426 212 426 211 427 Trgb
-0.000000 0.696159 0.208848 212 426 213 428 211 427 Trgb
-0.000000 0.696159 0.208848 213 428 212 429 211 427 Trgb
-0.000000 0.696159 0.208848 212 429 210 428 211 427 Trgb
-0.000000 0.053681 0.016104 212 429 198 454 197 453 Trgb
-0.000000 0.036521 0.010956 212 429 197 453 210 428 Trgb
-0.000000 0.057934 0.017380 213 428 200 453 198 454 Trgb
-0.000000 0.064388 0.019316 213 428 198 454 212 429 Trgb
-0.000000 0.012907 0.003872 210 428 197 453 196 451 Trgb
-0.000000 0.006454 0.001936 210 428 196 451 209 426 Trgb
-0.154398 0.084429 0.047765 188 459 198 464 187 464 Trgb
-0.165493 0.090496 0.051198 202 466 187 464 198 464 Trgb
-0.296883 0.162344 0.091845 198 464 209 463 202 466 Trgb
-0.036020 0.019697 0.011143 183 449 188 459 187 464 Trgb
-0.274719 0.150224 0.084989 209 453 194 450 203 442 Trgb
-0.225659 0.123397 0.069811 198 464 188 459 194 450 Trgb
-0.328338 0.179544 0.101576 194 450 209 453 198 464 Trgb
-0.388466 0.212424 0.120178 209 463 198 464 209 453 Trgb
-0.223779 0.122368 0.069229 209 440 209 453 203 442 Trgb
-0.226457 0.123833 0.070058 209 453 209 440 213 455 Trgb
-0.337526 0.184568 0.104419 213 455 209 463 209 453 Trgb
-0.136021 0.074380 0.042080 194 450 194 438 203 442 Trgb
-0.107282 0.058665 0.033189 188 459 183 449 194 450 Trgb
-0.071262 0.038968 0.022046 194 438 194 450 183 449 Trgb
-0.000000 0.000000 0.000000 183 449 187 441 194 438 Trgb
-0.085080 0.046524 0.026321 194 438 209 440 203 442 Trgb
-0.000000 0.695760 0.208728 202 465 202 466 200 465 Trgb
-0.000000 0.695760 0.208728 202 466 201 466 200 465 Trgb
-0.000000 0.695760 0.208728 201 466 199 465 200 465 Trgb
-0.000000 0.695760 0.208728 199 465 198 464 200 465 Trgb
-0.000000 0.695760 0.208728 198 464 200 465 200 465 Trgb
-0.000000 0.695760 0.208728 200 465 202 465 200 465 Trgb
-0.000000 0.053534 0.016060 213 428 202 466 202 465 Trgb
-0.000000 0.065180 0.019554 213 428 202 465 213 427 Trgb
-0.000000 0.023293 0.006988 211 427 200 465 198 464 Trgb
-0.000000 0.011646 0.003494 211 427 198 464 209 427 Trgb
-0.000000 0.062864 0.018859 213 427 202 465 200 465 Trgb
-0.000000 0.048901 0.014670 213 427 200 465 211 427 Trgb
-0.375597 0.014475 0.078015 207 480 205 484 195 485 Trgb
-0.566565 0.021835 0.117680 216 466 220 471 207 480 Trgb
-0.435134 0.016770 0.090381 205 484 207 480 220 471 Trgb
-0.360499 0.013893 0.074879 187 474 207 480 195 485 Trgb
-0.551467 0.021253 0.114544 202 460 216 466 207 480 Trgb
-0.404938 0.015606 0.084109 207 480 187 474 202 460 Trgb
-0.194920 0.007512 0.040486 187 458 202 460 187 474 Trgb
-0.435649 0.016790 0.090488 220 471 216 466 215 452 Trgb
-0.150481 0.005799 0.031256 185 479 187 474 195 485 Trgb
-0.057909 0.002232 0.012028 187 474 185 479 180 460 Trgb
-0.057909 0.002232 0.012028 180 460 187 458 187 474 Trgb
-0.079101 0.003049 0.016430 215 452 195 446 206 446 Trgb
-0.420551 0.016208 0.087352 216 466 202 460 215 452 Trgb
-0.216112 0.008329 0.044888 195 446 215 452 202 460 Trgb
-0.137011 0.005280 0.028458 202 460 187 458 195 446 Trgb
-0.000000 0.000000 0.000000 187 458 180 460 195 446 Trgb
-
-0.2 20 20 592 592 BDR
-
-grestore
-showpage
-%%Trailer
-%%Pages: 1
-end
-clear cleardictstack
-doretreesave restore
-%%EOF
diff --git a/tests/ps/ge.ps b/tests/ps/ge.ps
deleted file mode 100644
index f092962..0000000
--- a/tests/ps/ge.ps
+++ /dev/null
@@ -1,4 +0,0 @@
-4.2 4 ge =
-(abc) (d) ge =
-(aba) (ab) ge =
-(aba) (aba) ge =
diff --git a/tests/ps/gt.ps b/tests/ps/gt.ps
deleted file mode 100644
index 436d7da..0000000
--- a/tests/ps/gt.ps
+++ /dev/null
@@ -1,7 +0,0 @@
-2 1 gt =
-1 2 gt =
-.5 .3 gt =
-.3 .5 gt =
-(a) (b) gt =
-(b) (a) gt =
-2 .5 gt =
diff --git a/tests/ps/idiv.ps b/tests/ps/idiv.ps
deleted file mode 100644
index e4dbff8..0000000
--- a/tests/ps/idiv.ps
+++ /dev/null
@@ -1,3 +0,0 @@
-3 2 idiv =
-4 2 idiv =
--5 2 idiv =
diff --git a/tests/ps/known.ps b/tests/ps/known.ps
deleted file mode 100644
index 50fd76f..0000000
--- a/tests/ps/known.ps
+++ /dev/null
@@ -1,4 +0,0 @@
-/mydict 5 dict def
-mydict /total 0 put
-mydict /total known =
-mydict /badname known =
diff --git a/tests/ps/le.ps b/tests/ps/le.ps
deleted file mode 100644
index f407c55..0000000
--- a/tests/ps/le.ps
+++ /dev/null
@@ -1,4 +0,0 @@
-4.2 4 le =
-(abc) (d) le =
-(aba) (ab) le =
-(aba) (aba) le =
diff --git a/tests/ps/length.ps b/tests/ps/length.ps
deleted file mode 100644
index a14ab73..0000000
--- a/tests/ps/length.ps
+++ /dev/null
@@ -1,11 +0,0 @@
-[1 2 4] length =
-[] length =
-/ar 20 array def
-ar length =
-/mydict 5 dict def
-mydict length =
-mydict /firstkey (firstvalue) put
-mydict length =
-(abc\n) length =
-() length =
-/foo length =
diff --git a/tests/ps/loop.ps b/tests/ps/loop.ps
deleted file mode 100644
index 06a9d76..0000000
--- a/tests/ps/loop.ps
+++ /dev/null
@@ -1 +0,0 @@
-{(**) == exit} loop
diff --git a/tests/ps/matrix.ps b/tests/ps/matrix.ps
deleted file mode 100644
index e8f8356..0000000
--- a/tests/ps/matrix.ps
+++ /dev/null
@@ -1 +0,0 @@
-matrix pstack
diff --git a/tests/ps/mod.ps b/tests/ps/mod.ps
deleted file mode 100644
index 9b022b5..0000000
--- a/tests/ps/mod.ps
+++ /dev/null
@@ -1,4 +0,0 @@
-1 3 mod =
-0 2 mod =
-1 -3 mod =
-2 0 mod =
diff --git a/tests/ps/mul.ps b/tests/ps/mul.ps
deleted file mode 100644
index 0eec1fa..0000000
--- a/tests/ps/mul.ps
+++ /dev/null
@@ -1 +0,0 @@
-100000 100000 mul pstack
diff --git a/tests/ps/ne.ps b/tests/ps/ne.ps
deleted file mode 100644
index 48bd2b2..0000000
--- a/tests/ps/ne.ps
+++ /dev/null
@@ -1,5 +0,0 @@
-4.0 4 ne =
-(abc) (abc) ne =
-(abc) /abc ne =
-[1 2 3] dup ne =
-[1 2 3] [1 2 3] ne =
diff --git a/tests/ps/neg.ps b/tests/ps/neg.ps
deleted file mode 100644
index b4e271d..0000000
--- a/tests/ps/neg.ps
+++ /dev/null
@@ -1,4 +0,0 @@
-1 neg =
--5 neg =
-.2 neg =
--3.3 neg =
diff --git a/tests/ps/not.ps b/tests/ps/not.ps
deleted file mode 100644
index 1fc2f25..0000000
--- a/tests/ps/not.ps
+++ /dev/null
@@ -1,3 +0,0 @@
-true not =
-false not =
-52 not =
diff --git a/tests/ps/or.ps b/tests/ps/or.ps
deleted file mode 100644
index 6b97118..0000000
--- a/tests/ps/or.ps
+++ /dev/null
@@ -1,5 +0,0 @@
-true true or =
-true false or =
-false true or =
-false false or =
-17 5 or =
diff --git a/tests/ps/pathbbox.ps b/tests/ps/pathbbox.ps
deleted file mode 100644
index 096880a..0000000
--- a/tests/ps/pathbbox.ps
+++ /dev/null
@@ -1,2 +0,0 @@
-clippath
-pathbbox pstack
diff --git a/tests/ps/pop.ps b/tests/ps/pop.ps
deleted file mode 100644
index 5fb8477..0000000
--- a/tests/ps/pop.ps
+++ /dev/null
@@ -1 +0,0 @@
-1 2 3 pop pop pstack
diff --git a/tests/ps/repeat.ps b/tests/ps/repeat.ps
deleted file mode 100644
index d99e1da..0000000
--- a/tests/ps/repeat.ps
+++ /dev/null
@@ -1 +0,0 @@
-mark 3 {(***) =} repeat pstack
diff --git a/tests/ps/sin.ps b/tests/ps/sin.ps
deleted file mode 100644
index 40327c8..0000000
--- a/tests/ps/sin.ps
+++ /dev/null
@@ -1,2 +0,0 @@
-0 sin ==
-90 sin ==
diff --git a/tests/ps/snowflak.ps b/tests/ps/snowflak.ps
deleted file mode 100644
index b177559..0000000
--- a/tests/ps/snowflak.ps
+++ /dev/null
@@ -1,93 +0,0 @@
-%!
-%% Elizabeth D. Zwicky
-%% zwicky@erg.sri.com
-%% multiflake
-
-/snowflaksave save def % prevent left over effects
-/newflake
-{/seed usertime def
-seed srand
-/strokecolor [rand 99 mod 100 div
- rand 99 mod 100 div
- 100 rand 22 mod sub 100 div] def
-/fillcolor [rand 99 mod 100 div
- 100 rand 22 mod sub 100 div
- rand 99 mod 100 div] def
-/eofillcolor [rand 99 mod 100 div
- rand 22 mod 100 div
- 100 rand 22 mod sub 100 div] def
-
-/colorfill {fillcolor aload pop setrgbcolor fill } def
-/colorstroke {strokecolor aload pop setrgbcolor stroke } def
-/eocolorfill {eofillcolor aload pop setrgbcolor eofill } def
-/arm {0 0 moveto
- 5 {3 {x y x y x y curveto} repeat} repeat
- seed srand
- 0 0 moveto
- 5 {3 {x neg y x neg y x neg y curveto} repeat} repeat
- seed srand
-} def
-
- newpath
-
-0 0 moveto boxsize 0 rlineto 0 boxsize rlineto boxsize neg 0 rlineto
-0 0 lineto
-
-rand 99 mod 100 div
-100 rand 22 mod sub 100 div
-100 rand 22 mod sub 100 div
- sethsbcolor fill
-seed srand
-boxsize 2 div boxsize 2 div translate
-
-%% If the device you are using can handle complex fills, replace the
-%% next three lines with:
-%%
-%6 {arm 60 rotate} repeat
-%gsave colorfill grestore gsave eocolorfill grestore colorstroke
-%%
-%% This will be not only faster, but prettier. On a LaserWriter or a
-%% Tektronix Phaser II PS it gives a limitcheck.
-
-6 {arm 60 rotate colorfill} repeat
-6 {arm 60 rotate eocolorfill} repeat
-6 {arm 60 rotate} repeat colorstroke
-} def
-
-1 setlinewidth
-clippath pathbbox /ury exch def /urx exch def /lly exch def /llx exch def
-/minsize 250 def
-/pagewidth urx llx sub def
-/pageheight ury lly sub def
-/inwidth pagewidth minsize div def
-/inheight pageheight minsize div def
-
-/boxsize
- inwidth inheight gt
- {pagewidth inwidth truncate div}
- {pageheight inheight truncate div}
- ifelse
-def
-
-/inwidth pagewidth boxsize div cvi def
-/inheight pageheight boxsize div cvi def
-
-/x {rand 70 mod abs} def
-/y {rand 120 mod abs} def
-
-llx lly translate
-
-inheight {
- inwidth {
- gsave
- newflake
- grestore
- boxsize 0 translate
- } repeat
- boxsize inwidth mul neg boxsize translate
-} repeat
-
-
-showpage
-clear cleardictstack
-snowflaksave restore
diff --git a/tests/ps/test-0base.ps b/tests/ps/test-0base.ps
deleted file mode 100644
index 8883633..0000000
--- a/tests/ps/test-0base.ps
+++ /dev/null
@@ -1,13 +0,0 @@
-initunittest
-
-[true] null true initunittestdict {true} unittest
-[false] null true initunittestdict {false} unittest
-[/foo] null true initunittestdict {/foo} unittest
-[0] null true initunittestdict {0} unittest
-[-1] null true initunittestdict {-1} unittest
-[2147483647] null true initunittestdict {2147483647} unittest
-[-2147483648] null true initunittestdict {-2147483648} unittest
-[2147483648.0] null true initunittestdict {2147483648} unittest
-[-2147483649.0] null true initunittestdict {-2147483649} unittest
-
-unittestresult
diff --git a/tests/ps/test-abs.ps b/tests/ps/test-abs.ps
deleted file mode 100644
index 1c12681..0000000
--- a/tests/ps/test-abs.ps
+++ /dev/null
@@ -1,11 +0,0 @@
-initunittest
-
-true /abs [[/integertype /realtype]] typecheck
-false /abs [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {abs} unittest
-[4.5] null true initunittestdict {4.5 abs} unittest
-[3] null true initunittestdict {-3 abs} unittest
-[0] null true initunittestdict {0 abs} unittest
-
-unittestresult
diff --git a/tests/ps/test-add.ps b/tests/ps/test-add.ps
deleted file mode 100644
index d3519aa..0000000
--- a/tests/ps/test-add.ps
+++ /dev/null
@@ -1,17 +0,0 @@
-initunittest
-
-true /add [[/integertype /realtype] dup] typecheck
-false /add [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] dup] typecheck
-
-[] /stackunderflow true initunittestdict {add} unittest
-[1] /stackunderflow true initunittestdict {1 add} unittest
-[7] null true initunittestdict {3 4 add} unittest
-[11.0] null true initunittestdict {9.9 1.1 add} unittest
-[2147483647] null true initunittestdict {2147483646 1 add} unittest
-[-2147483648] null true initunittestdict {-2147483647 -1 add} unittest
-[2147483648.0] null true initunittestdict {2147483647 1 add} unittest
-[-2147483649.0] null true initunittestdict {-2147483648 -1 add} unittest
-%[4.29490176e+09] null true initunittestdict {2147450880 2147450880 add} unittest
-%[] null true initunittestdict {2.25176549e+38 2.25176549e+38 add} unittest
-
-unittestresult
diff --git a/tests/ps/test-aload.ps b/tests/ps/test-aload.ps
deleted file mode 100644
index 9eef9c9..0000000
--- a/tests/ps/test-aload.ps
+++ /dev/null
@@ -1,13 +0,0 @@
-initunittest
-
-true /aload [[/arraytype /proctype]] typecheck
-false /aload [[/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /marktype /operatortype /marktype /filetype /savetype]] typecheck
-
-[] /stackunderflow true initunittestdict {aload} unittest
-[[1 2 3] noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {[1 2 3] noaccess aload} unittest
-[[1 2 3] executeonly] /invalidaccess true initunittestdict /executeonly /readable /writable 3 setunittestmask {[1 2 3] executeonly aload} unittest
-[1 2 3 [1 2 3]] null true initunittestdict {[1 2 3] aload} unittest
-[23 (ab) -6 [23 (ab) -6]] null true initunittestdict {[23 (ab) -6] aload} unittest
-[23 (ab) -6 {23 (ab) -6}] null true initunittestdict {{23 (ab) -6} aload} unittest
-
-unittestresult
diff --git a/tests/ps/test-anchorsearch.ps b/tests/ps/test-anchorsearch.ps
deleted file mode 100644
index 650dc72..0000000
--- a/tests/ps/test-anchorsearch.ps
+++ /dev/null
@@ -1,19 +0,0 @@
-initunittest
-
-true /anchorsearch [[/stringtype] dup] typecheck
-false /anchorsearch [[/booleantype /integertype /realtype /nametype /arraytype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] dup] typecheck
-
-[] /stackunderflow true initunittestdict {anchorsearch} unittest
-[(foo)] /stackunderflow true initunittestdict {(foo) anchorsearch} unittest
-[(abbc) noaccess (ab)] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {(abbc) noaccess (ab) anchorsearch} unittest
-[(abbc) (ab) noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {(abbc) (ab) noaccess anchorsearch} unittest
-[(abbc) noaccess (ab) noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {(abbc) noaccess (ab) noaccess anchorsearch} unittest
-[(abbc) executeonly (ab)] /invalidaccess true initunittestdict /readable /writable /executeonly 3 setunittestmask {(abbc) executeonly (ab) anchorsearch} unittest
-[(abbc) (ab) executeonly ] /invalidaccess true initunittestdict /readable /writable /executeonly 3 setunittestmask {(abbc) (ab) executeonly anchorsearch} unittest
-[(abbc) executeonly (ab) executeonly] /invalidaccess true initunittestdict /readable /writable /executeonly 3 setunittestmask {(abbc) executeonly (ab) executeonly anchorsearch} unittest
-[(bc) (ab) true] null true initunittestdict {(abbc) (ab) anchorsearch} unittest
-[(abbc) false] null true initunittestdict {(abbc) (bb) anchorsearch} unittest
-[(abbc) false] null true initunittestdict {(abbc) (bc) anchorsearch} unittest
-[(abbc) false] null true initunittestdict {(abbc) (B) anchorsearch} unittest
-
-unittestresult
diff --git a/tests/ps/test-and.ps b/tests/ps/test-and.ps
deleted file mode 100644
index 33d16e8..0000000
--- a/tests/ps/test-and.ps
+++ /dev/null
@@ -1,21 +0,0 @@
-initunittest
-
-true /and [[/booleantype] dup] typecheck
-true /and [[/integertype] dup] typecheck
-false /and [[/realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] dup] typecheck
-false /and [[/booleantype] [/integertype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-false /and [[/integertype] [/booleantype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-false /and [[/integertype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] [/booleantype]] typecheck
-false /and [[/booleantype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] [/integertype]] typecheck
-
-[] /stackunderflow true initunittestdict {and} unittest
-[1] /stackunderflow true initunittestdict {1 and} unittest
-clear
-[true] null true initunittestdict {true true and} unittest
-[false] null true initunittestdict {true false and} unittest
-[false] null true initunittestdict {false true and} unittest
-[false] null true initunittestdict {false false and} unittest
-[1] null true initunittestdict {99 1 and} unittest
-[4] null true initunittestdict {52 7 and} unittest
-
-unittestresult
diff --git a/tests/ps/test-array.ps b/tests/ps/test-array.ps
deleted file mode 100644
index 20782af..0000000
--- a/tests/ps/test-array.ps
+++ /dev/null
@@ -1,11 +0,0 @@
-initunittest
-
-true /array [[/integertype]] typecheck
-false /array [[/booleantype /realtype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {array} unittest
-[[null]] null true initunittestdict {1 array} unittest
-[65536] /rangecheck true initunittestdict {65536 array} unittest
-[-1] /rangecheck true initunittestdict {-1 array} unittest
-
-unittestresult
diff --git a/tests/ps/test-astore.ps b/tests/ps/test-astore.ps
deleted file mode 100644
index 279b9d6..0000000
--- a/tests/ps/test-astore.ps
+++ /dev/null
@@ -1,14 +0,0 @@
-initunittest
-
-true /astore [.unittestdict /anytypes get [/arraytype /proctype]] typecheck
-false /astore [.unittestdict /anytypes get [/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype]] typecheck
-
-[] /stackunderflow true initunittestdict {astore} unittest
-[1 2 [null null null]] /stackunderflow true initunittestdict {1 2 3 array astore} unittest
-[1 [null] noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {1 1 array noaccess astore} unittest
-[1 [null] readonly] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {1 1 array readonly astore} unittest
-[1 [null] executeonly] /invalidaccess true initunittestdict /executeonly /readable /writable 3 setunittestmask {1 1 array executeonly astore} unittest
-[1 [2]] null true initunittestdict {1 2 1 array astore} unittest
-[[(a) (bcd) (ef)]] null true initunittestdict {(a) (bcd) (ef) 3 array astore} unittest
-
-unittestresult
diff --git a/tests/ps/test-atan.ps b/tests/ps/test-atan.ps
deleted file mode 100644
index 122d7be..0000000
--- a/tests/ps/test-atan.ps
+++ /dev/null
@@ -1,16 +0,0 @@
-initunittest
-
-true /atan [[/integertype /realtype] dup] typecheck
-false /atan [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] dup] typecheck
-false /atan [[/integertype /realtype] [/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-false /atan [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] [/integertype /realtype]] typecheck
-
-[] /stackunderflow true initunittestdict {atan} unittest
-[1] /stackunderflow true initunittestdict {1 atan} unittest
-[0 0] /undefinedresult true initunittestdict {0 0 atan} unittest
-[0.0] null true initunittestdict {0 1 atan} unittest
-[90.0] null true initunittestdict {1 0 atan} unittest
-[270.0] null true initunittestdict {-100 0 atan} unittest
-[45.0] null true initunittestdict {4 4 atan} unittest
-
-unittestresult
diff --git a/tests/ps/test-begin.ps b/tests/ps/test-begin.ps
deleted file mode 100644
index fd45e1f..0000000
--- a/tests/ps/test-begin.ps
+++ /dev/null
@@ -1,11 +0,0 @@
-initunittest
-
-true /begin [[/dicttype]] typecheck
-false /begin [[/booleantype /integertype /realtype /nametype /arraytype /stringtype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {begin} unittest
-[0 dict] /invalidaccess true initunittestdict {0 dict noaccess begin} unittest
-[-1] null true initunittestdict {5 array dictstack length 1 dict begin 5 array dictstack length sub} unittest
-% FIXME
-
-unittestresult
diff --git a/tests/ps/test-bind.ps b/tests/ps/test-bind.ps
deleted file mode 100644
index 1254013..0000000
--- a/tests/ps/test-bind.ps
+++ /dev/null
@@ -1,9 +0,0 @@
-initunittest
-
-true /bind [[/arraytype /proctype]] typecheck
-false /bind [[/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype]] typecheck
-
-[] /stackunderflow true initunittestdict {bind} unittest
-% FIXME
-
-unittestresult
diff --git a/tests/ps/test-bitshift.ps b/tests/ps/test-bitshift.ps
deleted file mode 100644
index 0c2fdc3..0000000
--- a/tests/ps/test-bitshift.ps
+++ /dev/null
@@ -1,13 +0,0 @@
-initunittest
-
-true /bitshift [[/integertype] dup] typecheck
-false /bitshift [[/booleantype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] dup] typecheck
-false /bitshift [[/integertype] [/booleantype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-false /bitshift [[/booleantype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] [/integertype]] typecheck
-
-[] /stackunderflow true initunittestdict {bitshift} unittest
-[1] /stackunderflow true initunittestdict {1 bitshift} unittest
-[56] null true initunittestdict {7 3 bitshift} unittest
-[17] null true initunittestdict {142 -3 bitshift} unittest
-
-unittestresult
diff --git a/tests/ps/test-ceiling.ps b/tests/ps/test-ceiling.ps
deleted file mode 100644
index ed7893c..0000000
--- a/tests/ps/test-ceiling.ps
+++ /dev/null
@@ -1,11 +0,0 @@
-initunittest
-
-true /ceiling [[/integertype /realtype]] typecheck
-false /ceiling [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {ceiling} unittest
-[4.0] null true initunittestdict {3.2 ceiling} unittest
-[-4.0] null true initunittestdict {-4.8 ceiling} unittest
-[99] null true initunittestdict {99 ceiling} unittest
-
-unittestresult
diff --git a/tests/ps/test-clear.ps b/tests/ps/test-clear.ps
deleted file mode 100644
index bade4c6..0000000
--- a/tests/ps/test-clear.ps
+++ /dev/null
@@ -1,5 +0,0 @@
-initunittest
-
-[] null true initunittestdict {1 2 3 clear} unittest
-
-unittestresult
diff --git a/tests/ps/test-cleartomark.ps b/tests/ps/test-cleartomark.ps
deleted file mode 100644
index c7ab217..0000000
--- a/tests/ps/test-cleartomark.ps
+++ /dev/null
@@ -1,7 +0,0 @@
-initunittest
-
-[] /unmatchedmark true initunittestdict {cleartomark} unittest
-[] null true initunittestdict {mark 1 2 3 cleartomark} unittest
-[1 2 3] null true initunittestdict {1 2 3 mark 1 2 3 cleartomark} unittest
-
-unittestresult
diff --git a/tests/ps/test-closefile.ps b/tests/ps/test-closefile.ps
deleted file mode 100644
index 2247718..0000000
--- a/tests/ps/test-closefile.ps
+++ /dev/null
@@ -1,8 +0,0 @@
-initunittest
-
-true /closefile [[/filetype]] typecheck
-false /closefile [[/booleantype /integertype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /savetype /proctype]] typecheck
-
-[] null true initunittestdict {(.)(r) file closefile} unittest
-
-unittestresult
diff --git a/tests/ps/test-concatmatrix.ps b/tests/ps/test-concatmatrix.ps
deleted file mode 100644
index be6aab5..0000000
--- a/tests/ps/test-concatmatrix.ps
+++ /dev/null
@@ -1,24 +0,0 @@
-initunittest
-
-true /concatmatrix [[/arraytype /proctype] dup dup] typecheck
-false /concatmatrix [[/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype] dup dup] typecheck
-false /concatmatrix [[/arraytype /proctype] [/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype] dup] typecheck
-false /concatmatrix [[/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype] [/arraytype /proctype] dup] typecheck
-false /concatmatrix [[/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype] dup [/arraytype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {concatmatrix} unittest
-[[]] /stackunderflow true initunittestdict {[] concatmatrix} unittest clear
-[[] []] /stackunderflow true initunittestdict {[] [] concatmatrix} unittest
-[[] [] []] /rangecheck true initunittestdict {[] [] [] concatmatrix} unittest
-[[null null null null null null] [] []] /rangecheck true initunittestdict {6 array [] [] concatmatrix} unittest
-[[null null null null null null] [null null null null null null] []] /rangecheck true initunittestdict {6 array 6 array [] concatmatrix} unittest
-[[1 0 0 1 0 0] [1 0 0 1 0 0] [null null null null null null]] /invalidaccess true initunittestdict {[1 0 0 1 0 0] noaccess [1 0 0 1 0 0] 6 array concatmatrix} unittest
-[[1 0 0 1 0 0] [1 0 0 1 0 0] [null null null null null null]] /invalidaccess true initunittestdict {[1 0 0 1 0 0] [1 0 0 1 0 0] noaccess 6 array concatmatrix} unittest
-[[1 0 0 1 0 0] [1 0 0 1 0 0] [null null null null null null]] /invalidaccess true initunittestdict {[1 0 0 1 0 0] [1 0 0 1 0 0] 6 array noaccess concatmatrix} unittest
-[[1 0 0 1 0 0] [1 0 0 1 0 0] [null null null null null null]] /invalidaccess true initunittestdict {[1 0 0 1 0 0] executeonly [1 0 0 1 0 0] 6 array concatmatrix} unittest
-[[1 0 0 1 0 0] [1 0 0 1 0 0] [null null null null null null]] /invalidaccess true initunittestdict {[1 0 0 1 0 0] [1 0 0 1 0 0] executeonly 6 array concatmatrix} unittest
-[[1 0 0 1 0 0] [1 0 0 1 0 0] [null null null null null null]] /invalidaccess true initunittestdict {[1 0 0 1 0 0] [1 0 0 1 0 0] 6 array executeonly concatmatrix} unittest
-[[1 0 0 1 0 0] [1 0 0 1 0 0] [null null null null null null]] /invalidaccess true initunittestdict {[1 0 0 1 0 0] [1 0 0 1 0 0] 6 array readonly concatmatrix} unittest
-[[.5 .0 .0 .5 5.0 5.0]] null true initunittestdict {[1 0 0 1 10 10] [.5 0 0 .5 0 0] 6 array concatmatrix} unittest
-
-unittestresult
diff --git a/tests/ps/test-copy.ps b/tests/ps/test-copy.ps
deleted file mode 100644
index 20616ff..0000000
--- a/tests/ps/test-copy.ps
+++ /dev/null
@@ -1,33 +0,0 @@
-initunittest
-
-true /copy [.unittestdict /anytypes get [/integertype]] typecheck
-true /copy [[/arraytype /proctype] dup] typecheck
-true /copy [[/dicttype] dup] typecheck
-true /copy [[/stringtype] dup] typecheck
-% FIXME: packedarray
-% FIXME: gstate
-false /copy [.unittestdict /anytypes get [/booleantype /realtype /nametype /nulltype /operatortype /marktype /filetype /savetype]] typecheck
-
-[] /stackunderflow true initunittestdict {copy} unittest
-[[]] /stackunderflow true initunittestdict {[] copy} unittest
-[1 dict] /stackunderflow true initunittestdict {1 dict copy} unittest
-[()] /stackunderflow true initunittestdict {() copy} unittest
-[[][]] /invalidaccess true initunittestdict {[] noaccess [] copy} unittest
-[[][]] /invalidaccess true initunittestdict {[] [] noaccess copy} unittest
-[[][]] /invalidaccess true initunittestdict {[] executeonly [] copy} unittest
-[[][]] /invalidaccess true initunittestdict {[] [] executeonly copy} unittest
-[[][]] /invalidaccess true initunittestdict {[] [] readonly copy} unittest
-[1 dict 1 dict] /invalidaccess true initunittestdict {1 dict noaccess 1 dict copy} unittest
-[1 dict 1 dict] /invalidaccess true initunittestdict {1 dict 1 dict noaccess copy} unittest
-[1 dict 1 dict] /invalidaccess true initunittestdict {1 dict 1 dict readonly copy} unittest
-[() ()] /invalidaccess true initunittestdict {() noaccess () copy} unittest
-[() ()] /invalidaccess true initunittestdict {() () noaccess copy} unittest
-[() ()] /invalidaccess true initunittestdict {() executeonly () copy} unittest
-[() ()] /invalidaccess true initunittestdict {() () executeonly copy} unittest
-[() ()] /invalidaccess true initunittestdict {() () readonly copy} unittest
-[1] /rangecheck true initunittestdict {1 copy} unittest
-[[1] []] /rangecheck true initunittestdict {[1] [] copy} unittest
-[2 dict 1 dict] /rangecheck true initunittestdict {2 dict 1 dict copy} unittest
-[(a) ()] /rangecheck true initunittestdict {(a) () copy} unittest
-
-unittestresult
diff --git a/tests/ps/test-cos.ps b/tests/ps/test-cos.ps
deleted file mode 100644
index 933be23..0000000
--- a/tests/ps/test-cos.ps
+++ /dev/null
@@ -1,10 +0,0 @@
-initunittest
-
-true /cos [[/integertype /realtype]] typecheck
-false /cos [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {cos} unittest
-[1.0] null true initunittestdict {0 cos} unittest
-[0.0] null true initunittestdict {90 cos} unittest
-
-unittestresult
diff --git a/tests/ps/test-count.ps b/tests/ps/test-count.ps
deleted file mode 100644
index 6dc3684..0000000
--- a/tests/ps/test-count.ps
+++ /dev/null
@@ -1,6 +0,0 @@
-initunittest
-
-[0] null true initunittestdict {clear count} unittest
-[1 2 3 3] null true initunittestdict {1 2 3 count} unittest
-
-unittestresult
diff --git a/tests/ps/test-countdictstack.ps b/tests/ps/test-countdictstack.ps
deleted file mode 100644
index 7ee0ae1..0000000
--- a/tests/ps/test-countdictstack.ps
+++ /dev/null
@@ -1,11 +0,0 @@
-initunittest
-
-/setglobal where not {
- [2] null true initunittestdict {countdictstack} unittest
- [3] null true initunittestdict {1 dict begin countdictstack end} unittest
-} {
- [3] null true initunittestdict {countdictstack} unittest
- [4] null true initunittestdict {1 dict begin countdictstack end} unittest
-} ifelse
-
-unittestresult
diff --git a/tests/ps/test-counttomark.ps b/tests/ps/test-counttomark.ps
deleted file mode 100644
index caa7412..0000000
--- a/tests/ps/test-counttomark.ps
+++ /dev/null
@@ -1,7 +0,0 @@
-initunittest
-
-[] /unmatchedmark true initunittestdict {counttomark} unittest
-{//mark 0} cvlit null true initunittestdict {mark counttomark} unittest
-{//mark 0 1 2} cvlit null true initunittestdict {mark 0 1 counttomark} unittest
-
-unittestresult
diff --git a/tests/ps/test-currentdict.ps b/tests/ps/test-currentdict.ps
deleted file mode 100644
index ab58f55..0000000
--- a/tests/ps/test-currentdict.ps
+++ /dev/null
@@ -1,7 +0,0 @@
-initunittest
-
-/foo 1 dict def
-
-[foo] null true initunittestdict {foo begin currentdict end} unittest
-
-unittestresult
diff --git a/tests/ps/test-currentfile.ps b/tests/ps/test-currentfile.ps
deleted file mode 100644
index f2dcfa9..0000000
--- a/tests/ps/test-currentfile.ps
+++ /dev/null
@@ -1,7 +0,0 @@
-initunittest
-
-/foo (tests/ps/testtest-currentfile.ps) (r) file def
-
-foo cvx exec
-
-unittestresult
diff --git a/tests/ps/test-cvi.ps b/tests/ps/test-cvi.ps
deleted file mode 100644
index e0b22a7..0000000
--- a/tests/ps/test-cvi.ps
+++ /dev/null
@@ -1,21 +0,0 @@
-initunittest
-
-true /cvi [[/integertype /realtype]] typecheck
-false /cvi [[/booleantype /nametype /arraytype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {cvi} unittest
-[(foo) noaccess] /invalidaccess true initunittestdict {(foo) noaccess cvi} unittest
-[(foo) noaccess] /invalidaccess true initunittestdict {(foo) executeonly cvi} unittest
-[2147483648.0] /rangecheck true initunittestdict {2147483648.0 cvi} unittest
-[-2147483649.0] /rangecheck true initunittestdict {-2147483649.0 cvi} unittest
-% XXX: what causes /undefinedresult?
-[(foo)] /typecheck true initunittestdict {(foo) cvi} unittest
-[()] /syntaxerror true initunittestdict {() cvi} unittest
-[33] null true initunittestdict {(3.3E1) cvi} unittest
-[3] null true initunittestdict {(3 4) cvi} unittest
-[-47] null true initunittestdict {-47.8 cvi} unittest
-[520] null true initunittestdict {520.9 cvi} unittest
-[2147483647] null true initunittestdict {2147483647.0 cvi} unittest
-[-2147483648] null true initunittestdict {-2147483648.0 cvi} unittest
-
-unittestresult
diff --git a/tests/ps/test-cvlit.ps b/tests/ps/test-cvlit.ps
deleted file mode 100644
index 185976c..0000000
--- a/tests/ps/test-cvlit.ps
+++ /dev/null
@@ -1,10 +0,0 @@
-initunittest
-
-true /cvlit [.unittestdict /anytypes get] typecheck
-
-[] /stackunderflow true initunittestdict {cvlit} unittest
-[/moveto] null true initunittestdict /executable 1 setunittestmask {{moveto} 0 get cvlit} unittest
-[1] null true initunittestdict {1 cvlit} unittest
-[/foo] null true initunittestdict /executable 1 setunittestmask {/foo cvlit} unittest
-
-unittestresult
diff --git a/tests/ps/test-cvn.ps b/tests/ps/test-cvn.ps
deleted file mode 100644
index a662b44..0000000
--- a/tests/ps/test-cvn.ps
+++ /dev/null
@@ -1,14 +0,0 @@
-initunittest
-
-true /cvn [[/stringtype]] typecheck
-false /cvn [[/booleantype /integertype /realtype /nametype /arraytype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {cvn} unittest
-[(foo)] /invalidaccess true initunittestdict {(foo) noaccess cvn} unittest
-[(foo)] /invalidaccess true initunittestdict {(foo) executeonly cvn} unittest
-% XXX: how does /limitcheck happen?
-%[(foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo)] /limitcheck true initunittestdict {(foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo) cvn} unittest
-[/abc] null true initunittestdict /executable 1 setunittestmask {(abc) cvn} unittest
-[{abc} 0 get] null true initunittestdict /executable 1 setunittestmask {(abc) cvx cvn} unittest
-
-unittestresult
diff --git a/tests/ps/test-cvr.ps b/tests/ps/test-cvr.ps
deleted file mode 100644
index ba4eb28..0000000
--- a/tests/ps/test-cvr.ps
+++ /dev/null
@@ -1,18 +0,0 @@
-initunittest
-
-true /cvr [[/integertype /realtype]] typecheck
-false /cvr [[/booleantype /nametype /arraytype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {cvr} unittest
-[(foo) noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {(foo) noaccess cvr} unittest
-[(foo) executeonly] /invalidaccess true initunittestdict /executeonly /readable /writable 3 setunittestmask {(foo) executeonly cvr} unittest
-[(foo)] /typecheck true initunittestdict {(foo) cvr} unittest
-[()] /syntaxerror true initunittestdict {() cvr} unittest
-[(1e+400)] /limitcheck true initunittestdict {(1e+400) cvr} unittest
-% XXX: how does /undefinedresult happen?
-[1.0] null true initunittestdict {1 cvr} unittest
-[-1.0] null true initunittestdict {-1 cvr} unittest
-[3.14] null true initunittestdict {3.14 cvr} unittest
-[1e+10] null true initunittestdict {(1e+10) cvr} unittest
-
-unittestresult
diff --git a/tests/ps/test-cvrs.ps b/tests/ps/test-cvrs.ps
deleted file mode 100644
index 71f8ad7..0000000
--- a/tests/ps/test-cvrs.ps
+++ /dev/null
@@ -1,22 +0,0 @@
-initunittest
-
-true /cvrs [[/integertype /realtype] [/integertype] [/stringtype]] typecheck
-false /cvrs [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] [/booleantype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] [/booleantype /integertype /realtype /nametype /arraytype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {cvrs} unittest
-[1] /stackunderflow true initunittestdict {1 cvrs} unittest
-[1 1] /stackunderflow true initunittestdict {1 1 cvrs} unittest
-[1 10 (foo) noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {1 10 (foo) noaccess cvrs} unittest
-[1 10 (foo) executeonly] /invalidaccess true initunittestdict /readable /writable /executeonly 3 setunittestmask {1 10 (foo) executeonly cvrs} unittest
-[1 10 (foo) readonly] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {1 10 (foo) readonly cvrs} unittest
-[100 10 2 string] /rangecheck true initunittestdict {100 10 2 string cvrs} unittest
-[1 1 (foo)] /rangecheck true initunittestdict {1 1 (foo) cvrs} unittest
-[1 37 (foo)] /rangecheck true initunittestdict {1 37 (foo) cvrs} unittest
-[(123)] null true initunittestdict {123 10 12 string cvrs} unittest
-[(-123)] null true initunittestdict {-123 10 12 string cvrs} unittest
-[(123.4)] null true initunittestdict {123.4 10 12 string cvrs} unittest
-[(7B)] null true initunittestdict {123 16 12 string cvrs} unittest
-[(FFFFFF85)] null true initunittestdict {-123 16 12 string cvrs} unittest
-[(7B)] null true initunittestdict {123.4 16 12 string cvrs} unittest
-
-unittestresult
diff --git a/tests/ps/test-cvs.ps b/tests/ps/test-cvs.ps
deleted file mode 100644
index 44a4331..0000000
--- a/tests/ps/test-cvs.ps
+++ /dev/null
@@ -1,15 +0,0 @@
-initunittest
-
-true /cvs [.unittestdict /anytypes get [/stringtype]] typecheck
-false /cvs [.unittestdict /anytypes get [/booleantype /integertype /realtype /nametype /arraytype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {cvs} unittest
-[1] /stackunderflow true initunittestdict {1 cvs} unittest
-[1 (foo) noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {1 (foo) noaccess cvs} unittest
-[1 (foo) executeonly] /invalidaccess true initunittestdict /readable /writable /executeonly 3 setunittestmask {1 (foo) executeonly cvs} unittest
-[1 (foo) readonly] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {1 (foo) readonly cvs} unittest
-[100 2 string] /rangecheck true initunittestdict {100 2 string cvs} unittest
-[(579)] null true initunittestdict {123 456 add 20 string cvs} unittest
-[(--nostringval--)] null true initunittestdict {mark 20 string cvs} unittest
-
-unittestresult
diff --git a/tests/ps/test-cvx.ps b/tests/ps/test-cvx.ps
deleted file mode 100644
index 9f25d4d..0000000
--- a/tests/ps/test-cvx.ps
+++ /dev/null
@@ -1,6 +0,0 @@
-initunittest
-
-[] /stackunderflow true initunittestdict {cvx} unittest
-[{foo} 0 get] null true initunittestdict /executable 1 setunittestmask {/foo cvx} unittest
-
-unittestresult
diff --git a/tests/ps/test-def.ps b/tests/ps/test-def.ps
deleted file mode 100644
index b43793b..0000000
--- a/tests/ps/test-def.ps
+++ /dev/null
@@ -1,23 +0,0 @@
-initunittest
-
-false .setglobal
-
-% XXX: how does /typecheck happen?
-% XXX: how does /limitcheck happen?
-
-[] /stackunderflow true initunittestdict {def} unittest
-[/foo] /stackunderflow true initunittestdict {/foo def} unittest
-1 dict readonly begin
-[/foo 1] /invalidaccess true initunittestdict {/foo 1 def} unittest
-end /setglobal where {
- true setglobal 1 dict begin false setglobal
- [/foo (foo)] /invalidaccess true initunittestdict {/foo (foo) def} unittest
- end
-} {
- 0 dict begin
- [/foo 1] /dictfull true initunittestdict {/foo 1 def} unittest
- end
-} ifelse
-[1] null true initunittestdict {/foo 1 def foo} unittest
-
-unittestresult
diff --git a/tests/ps/test-dict.ps b/tests/ps/test-dict.ps
deleted file mode 100644
index eff7cc5..0000000
--- a/tests/ps/test-dict.ps
+++ /dev/null
@@ -1,11 +0,0 @@
-initunittest
-
-true /dict [[/integertype]] typecheck
-false /dict [[/booleantype /realtype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {dict} unittest
-[-1] /rangecheck true initunittestdict {-1 dict} unittest
-[65536] /limitcheck true initunittestdict {65536 dict} unittest
-/d 1 dict def [d /foo 1] /dictfull true initunittestdict {//d dup /bar 1 put /foo 1 put} unittest
-
-unittestresult
diff --git a/tests/ps/test-dictstack.ps b/tests/ps/test-dictstack.ps
deleted file mode 100644
index 259a7fb..0000000
--- a/tests/ps/test-dictstack.ps
+++ /dev/null
@@ -1,9 +0,0 @@
-initunittest
-
-true /dictstack [[/arraytype /proctype]] typecheck
-false /dictstack [[/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype]] typecheck
-
-[] /stackunderflow true initunittestdict {dictstack} unittest
-% XXX: FIXME
-
-unittestresult
diff --git a/tests/ps/test-div.ps b/tests/ps/test-div.ps
deleted file mode 100644
index 33a2f10..0000000
--- a/tests/ps/test-div.ps
+++ /dev/null
@@ -1,14 +0,0 @@
-initunittest
-
-true /div [[/integertype /realtype] dup] typecheck
-false /div [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] dup] typecheck
-false /div [[/integertype /realtype] [/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-false /div [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype] [/integertype /realtype]] typecheck
-
-[] /stackunderflow true initunittestdict {div} unittest
-[1] /stackunderflow true initunittestdict {1 div} unittest
-[1 0] /undefinedresult true initunittestdict {1 0 div} unittest
-[1.5] null true initunittestdict {3 2 div} unittest
-[2.0] null true initunittestdict {4 2 div} unittest
-
-unittestresult
diff --git a/tests/ps/test-dup.ps b/tests/ps/test-dup.ps
deleted file mode 100644
index 368ee18..0000000
--- a/tests/ps/test-dup.ps
+++ /dev/null
@@ -1,7 +0,0 @@
-initunittest
-
-[] /stackunderflow true initunittestdict {dup} unittest
-[true] null true initunittestdict {/foo dup eq} unittest
-[(baz)] null true initunittestdict {(bar) dup 2 122 put} unittest
-
-unittestresult
diff --git a/tests/ps/test-end.ps b/tests/ps/test-end.ps
deleted file mode 100644
index 18b340a..0000000
--- a/tests/ps/test-end.ps
+++ /dev/null
@@ -1,6 +0,0 @@
-initunittest
-
-[] /dictstackunderflow true initunittestdict {end} unittest
-[true] null true initunittestdict {5 array dictstack length 1 dict begin end 5 array dictstack length eq} unittest
-
-unittestresult
diff --git a/tests/ps/test-eq.ps b/tests/ps/test-eq.ps
deleted file mode 100644
index f0e1379..0000000
--- a/tests/ps/test-eq.ps
+++ /dev/null
@@ -1,40 +0,0 @@
-initunittest
-
-[] /stackunderflow true initunittestdict {eq} unittest
-[1] /stackunderflow true initunittestdict {1 eq} unittest
-[(foo) noaccess (foo)] /invalidaccess true initunittestdict /readable 1 setunittestmask {(foo) noaccess (foo) eq} unittest
-[(foo) (foo) noaccess] /invalidaccess true initunittestdict /readable 1 setunittestmask {(foo) (foo) noaccess eq} unittest
-[(foo) noaccess (foo) noaccess] /invalidaccess true initunittestdict /readable 1 setunittestmask {(foo) noaccess (foo) noaccess eq} unittest
-[true] null true initunittestdict {true true eq} unittest
-[false] null true initunittestdict {false true eq} unittest
-[true] null true initunittestdict {5 5 eq} unittest
-[false] null true initunittestdict {5 5.01 eq} unittest
-[true] null true initunittestdict {5 5.0 eq} unittest
-[false] null true initunittestdict {5.1 5.0 eq} unittest
-[true] null true initunittestdict {/name /name eq} unittest
-[false] null true initunittestdict {/namea /name eq} unittest
-[true] null true initunittestdict {/name (name) eq} unittest
-[true] null true initunittestdict {[1] dup eq} unittest
-[false] null true initunittestdict {[1][1] eq} unittest
-[true] null true initunittestdict {[1] noaccess dup eq} unittest
-[false] null true initunittestdict {[1] noaccess [1] eq} unittest
-[true] null true initunittestdict {1 dict dup eq} unittest
-[false] null true initunittestdict {1 dict 1 dict eq} unittest
-[true] null true initunittestdict {1 dict noaccess dup eq} unittest
-[false] null true initunittestdict {1 dict noaccess 1 dict eq} unittest
-[true] null true initunittestdict {(foo)(foo) eq} unittest
-[false] null true initunittestdict {(foo)(fooo) eq} unittest
-[true] null true initunittestdict {null null eq} unittest
-[false] null true initunittestdict {null () eq} unittest
-[true] null true initunittestdict {{moveto} 0 get {moveto} 0 get eq} unittest
-[false] null true initunittestdict {{moveto} 0 get {rmoveto} 0 get eq} unittest
-[true] null true initunittestdict {mark mark eq} unittest
-[false] null true initunittestdict {mark null eq} unittest
-[true] null true initunittestdict {currentfile currentfile eq} unittest
-[false] null true initunittestdict {currentfile (.)(r) file eq} unittest
-[true] null true initunittestdict {save dup eq} unittest
-[false] null true initunittestdict {save save eq} unittest
-[true] null true initunittestdict {{foo} dup eq} unittest
-[false] null true initunittestdict {{foo} {foo} eq} unittest
-
-unittestresult
diff --git a/tests/ps/test-errordict.ps b/tests/ps/test-errordict.ps
deleted file mode 100644
index ae9bc0c..0000000
--- a/tests/ps/test-errordict.ps
+++ /dev/null
@@ -1,6 +0,0 @@
-initunittest
-
-[true] null true initunittestdict {errordict type /dicttype eq} unittest
-[true] null true initunittestdict {errordict /stackunderflow known} unittest
-
-unittestresult
diff --git a/tests/ps/test-exch.ps b/tests/ps/test-exch.ps
deleted file mode 100644
index 00313bd..0000000
--- a/tests/ps/test-exch.ps
+++ /dev/null
@@ -1,7 +0,0 @@
-initunittest
-
-[] /stackunderflow true initunittestdict {exch} unittest
-[1] /stackunderflow true initunittestdict {1 exch} unittest
-[2 1] null true initunittestdict {1 2 exch} unittest
-
-unittestresult
diff --git a/tests/ps/test-exec.ps b/tests/ps/test-exec.ps
deleted file mode 100644
index 2f6dd85..0000000
--- a/tests/ps/test-exec.ps
+++ /dev/null
@@ -1,8 +0,0 @@
-initunittest
-
-[] /stackunderflow true initunittestdict {exec} unittest
-[5] null true initunittestdict {(3 2 add) cvx exec} unittest
-[3 2 /add] null true initunittestdict {3 2 /add exec} unittest
-[5] null true initunittestdict {3 2 /add cvx exec} unittest
-
-unittestresult
diff --git a/tests/ps/test-execstack.ps b/tests/ps/test-execstack.ps
deleted file mode 100644
index dba0737..0000000
--- a/tests/ps/test-execstack.ps
+++ /dev/null
@@ -1,9 +0,0 @@
-initunittest
-
-true /execstack [[/arraytype /proctype]] typecheck
-false /execstack [[/booleantype /integertype /realtype /nametype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype]] typecheck
-
-[] /stackunderflow true initunittestdict {execstack} unittest
-% XXX: FIXME
-
-unittestresult
diff --git a/tests/ps/test-executeonly.ps b/tests/ps/test-executeonly.ps
deleted file mode 100644
index daac19a..0000000
--- a/tests/ps/test-executeonly.ps
+++ /dev/null
@@ -1,14 +0,0 @@
-initunittest
-
-true /executeonly [[/arraytype /proctype /filetype /stringtype]] typecheck
-false /executeonly [[/booleantype /integertype /realtype /nametype /dicttype /nulltype /operatortype /marktype /savetype]] typecheck
-
-[] /stackunderflow true initunittestdict {executeonly} unittest
-[[] noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {[] noaccess executeonly} unittest
-[{} noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {{} noaccess executeonly} unittest
-/foo (.)(r) file def
-[foo noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {//foo noaccess executeonly} unittest
-[(foo) noaccess] /invalidaccess true initunittestdict /readable /writable 2 setunittestmask {(foo) noaccess executeonly} unittest
-% XXX: FIXME
-
-unittestresult
diff --git a/tests/ps/test-exit.ps b/tests/ps/test-exit.ps
deleted file mode 100644
index 3b7ba11..0000000
--- a/tests/ps/test-exit.ps
+++ /dev/null
@@ -1,22 +0,0 @@
-initunittest
-
-{
- % XXX: cshow
- % XXX: filenameforall
- [1] null true initunittestdict {1 1 10 {exit} for} unittest
- [1] null true initunittestdict {[1 2 3] {exit} forall} unittest
- % XXX: kshow
- [1] null true initunittestdict {{1 exit 2} loop} unittest
- % XXX: pathforall
- [1] null true initunittestdict {10 {1 exit 2} repeat} unittest
- % XXX: resourceforall
- [-1] null true initunittestdict {10 array dictstack length {1 dict begin exit} loop 10 array dictstack length sub} unittest
- [] /invalidexit true initunittestdict {{exit} stopped {stop} if} unittest
- [(tests/ps/testtest-exit.ps)] /invalidexit true initunittestdict {(tests/ps/testtest-exit.ps) run} unittest
-} stopped {
- % to ensure this unittest works
- (unexpected behavior happened during testing /exit.) =
- 1 .quit
-} if
-
-unittestresult
diff --git a/tests/ps/test-exp.ps b/tests/ps/test-exp.ps
deleted file mode 100644
index ac05247..0000000
--- a/tests/ps/test-exp.ps
+++ /dev/null
@@ -1,12 +0,0 @@
-initunittest
-
-true /exp [[/integertype /realtype] dup] typecheck
-false /exp [[/booleantype /nametype /arraytype /stringtype /dicttype /nulltype /operatortype /marktype /filetype /savetype /proctype]] typecheck
-
-[] /stackunderflow true initunittestdict {exp} unittest
-[1] /stackunderflow true initunittestdict {1 exp} unittest
-[0 0] /undefinedresult true initunittestdict {0 0 exp} unittest
-[3.0] null true initunittestdict {9 0.5 exp} unittest
-[-0.1111111111111111] null true initunittestdict {-9 -1 exp} unittest
-
-unittestresult
diff --git a/tests/ps/test-ps.sh b/tests/ps/test-ps.sh
deleted file mode 100755
index 6a4c0c4..0000000
--- a/tests/ps/test-ps.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /bin/sh
-
-set -e
-
-function run_test() {
- echo `basename $1`:
- ./tests/run.sh ./src/hgs -d QUIET -l test $1
-}
-
-rootdir=`dirname $0`/../..
-pushd $rootdir
-export HIEROGLYPH_LIB_PATH=./plugins/test
-
-if [ $# -ne 0 ]; then
- run_test $1
-else
- for i in ./tests/ps/test-*.ps; do
- run_test $i
- done
-fi
-
-popd
diff --git a/tests/ps/testtest-currentfile.ps b/tests/ps/testtest-currentfile.ps
deleted file mode 100644
index 5bb2cae..0000000
--- a/tests/ps/testtest-currentfile.ps
+++ /dev/null
@@ -1 +0,0 @@
-[foo foo] null true initunittestdict {foo currentfile} unittest
diff --git a/tests/ps/testtest-exit.ps b/tests/ps/testtest-exit.ps
deleted file mode 100644
index a3abe50..0000000
--- a/tests/ps/testtest-exit.ps
+++ /dev/null
@@ -1 +0,0 @@
-exit
diff --git a/tests/ps/toh4.ps b/tests/ps/toh4.ps
deleted file mode 100644
index 7ded512..0000000
--- a/tests/ps/toh4.ps
+++ /dev/null
@@ -1,302 +0,0 @@
-%!PS-Adobe-1.0
-%%Creator: NIIBE Yutaka
-%%Title: Towers of Hanoi (PostScript)
-%%CreationDate: Wed Mar 24 15:19:30 JST 2004
-%%Pages: 61
-%%DocumentFonts: Times-Roman
-%%EndComments
-
-% Copyright (C) 2004 NIIBE Yutaka <gniibe@fsij.org>
-%
-% $Id: toh4.ps,v 1.3 2004/03/24 08:17:34 gniibe Exp $
-%
-% This program 'Towers of Hanoi (PostScript)' 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.
-
-
-% Radius
-/R 90 def
-/UnitR 17 def
-/ConnectionWidth 5 def
-
-% Number of Disks
-/NumDisks 4 def
-/MaxDisk NumDisks def
-
-%
-/Direction 3 array def
-Direction 0 0 put
-Direction 1 1 put
-Direction 2 0 put
-
-%
-/Disk NumDisks array def
-0 1 MaxDisk 1 sub { Disk exch dup 1 add put } for
-
-%
-/Tower 3 array def
-Tower 0 0 put
-Tower 1 MaxDisk put
-Tower 2 MaxDisk put
-
-/MovingDisk -1 def
-
-% (>)
-/DrawTower {
- dup
- gsave
- Direction exch get 0 eq {30} {-30} ifelse rotate
- 0 0 R 0 360 arc
- gsave
- .5 setgray fill
- 1.0 setgray
- 0 0 R 30 180 arc fill
- 0 0 R 240 390 arc fill
- grestore
- stroke
-
- Tower exch get
- {
- dup MaxDisk eq { pop exit } if
- dup 1 add UnitR mul 0 exch 0 exch 0 360 arc
- dup MovingDisk eq {fill} {stroke} ifelse
- Disk exch get
- } loop
- grestore
-} def
-
-/ConnectPair false def
-/Hello { /ConnectPair true def } def
-/GoodBye { /MovingDisk -1 def /ConnectPair false def } def
-
-/Turn 0 def
-
-/DrawConnection {
- gsave
- 0.1 setgray
- 5 setlinewidth
- 60 rotate
- newpath
- 0 ConnectionWidth R add 1 add moveto
- 3 sqrt 2 mul R mul ConnectionWidth R add 1 add lineto
- stroke
- newpath
- 0 ConnectionWidth R add 1 add neg moveto
- 3 sqrt 2 mul R mul ConnectionWidth R add 1 add neg lineto
- stroke
- grestore
-} def
-
-/DrawTowers {
- 0 1.5 R mul translate
-
- gsave
- 0.7 setgray
- newpath
- 0 0 moveto
- 6.5 R mul 0 lineto
- 6.5 R mul 6 R mul lineto
- 0 6 R mul lineto closepath fill
- grestore
-
- 1.5 R mul dup translate
-
- 0 DrawTower
- ConnectPair Turn 0 eq and { DrawConnection } if
-
- gsave
- 60 rotate
- 3 sqrt 2 mul R mul 0 translate
- 180 rotate
- 1 DrawTower
- ConnectPair Turn 1 eq and { DrawConnection } if
- grestore
-
- gsave
- 3 sqrt 2 mul R mul 0 translate
- 120 rotate
- 2 DrawTower
- ConnectPair Turn 2 eq and { DrawConnection } if
- grestore
-} def
-
-[ 2 0 1 ] /Rotate201 exch def
-[ 1 2 0 ] /Rotate120 exch def
-
-/MoveDisk {
- Turn
- dup Tower exch get /disk0 exch def
- dup Rotate120 exch get Tower exch get /disk1 exch def
- disk0 disk1 gt
- {
- dup Rotate120 exch get Tower exch Disk disk1 get put
- Tower exch disk1 put
- Disk disk1 disk0 put
- /MovingDisk disk1 def
- }
- {
- dup Tower exch Disk disk0 get put
- Rotate120 exch get Tower exch disk0 put
- Disk disk0 disk1 put
- /MovingDisk disk0 def
- }
- ifelse
-} def
-
-/ChangeDirs {
- Turn
- dup
- Direction exch 1 put
- Rotate120 exch get Direction exch 0 put
- Rotate201 Turn get /Turn exch def
-} def
-%%EndProlog
-
-%%Page: 1 1
-DrawTowers showpage
-
-%%Page: 2 2
-Hello DrawTowers showpage
-%%Page: 3 3
-MoveDisk DrawTowers showpage
-%%Page: 4 4
-GoodBye DrawTowers showpage
-%%Page: 5 5
-ChangeDirs DrawTowers showpage
-
-%%Page: 6 6
-Hello DrawTowers showpage
-%%Page: 7 7
-MoveDisk DrawTowers showpage
-%%Page: 8 8
-GoodBye DrawTowers showpage
-%%Page: 9 9
-ChangeDirs DrawTowers showpage
-
-%%Page: 10 10
-Hello DrawTowers showpage
-%%Page: 11 11
-MoveDisk DrawTowers showpage
-%%Page: 12 12
-GoodBye DrawTowers showpage
-%%Page: 13 13
-ChangeDirs DrawTowers showpage
-
-%%Page: 14 14
-Hello DrawTowers showpage
-%%Page: 15 15
-MoveDisk DrawTowers showpage
-%%Page: 16 16
-GoodBye DrawTowers showpage
-%%Page: 17 17
-ChangeDirs DrawTowers showpage
-
-%%Page: 18 18
-Hello DrawTowers showpage
-%%Page: 19 19
-MoveDisk DrawTowers showpage
-%%Page: 20 20
-GoodBye DrawTowers showpage
-%%Page: 21 21
-ChangeDirs DrawTowers showpage
-
-%%Page: 22 22
-Hello DrawTowers showpage
-%%Page: 23 23
-MoveDisk DrawTowers showpage
-%%Page: 24 24
-GoodBye DrawTowers showpage
-%%Page: 25 25
-ChangeDirs DrawTowers showpage
-
-%%Page: 26 26
-Hello DrawTowers showpage
-%%Page: 27 27
-MoveDisk DrawTowers showpage
-%%Page: 28 28
-GoodBye DrawTowers showpage
-%%Page: 29 29
-ChangeDirs DrawTowers showpage
-
-%%Page: 30 30
-Hello DrawTowers showpage
-%%Page: 31 31
-MoveDisk DrawTowers showpage
-%%Page: 32 32
-GoodBye DrawTowers showpage
-%%Page: 33 33
-ChangeDirs DrawTowers showpage
-
-%%Page: 34 34
-Hello DrawTowers showpage
-%%Page: 35 35
-MoveDisk DrawTowers showpage
-%%Page: 36 36
-GoodBye DrawTowers showpage
-%%Page: 37 37
-ChangeDirs DrawTowers showpage
-
-%%Page: 38 38
-Hello DrawTowers showpage
-%%Page: 39 39
-MoveDisk DrawTowers showpage
-%%Page: 40 40
-GoodBye DrawTowers showpage
-%%Page: 41 41
-ChangeDirs DrawTowers showpage
-
-%%Page: 42 42
-Hello DrawTowers showpage
-%%Page: 43 43
-MoveDisk DrawTowers showpage
-%%Page: 44 44
-GoodBye DrawTowers showpage
-%%Page: 45 45
-ChangeDirs DrawTowers showpage
-
-%%Page: 46 46
-Hello DrawTowers showpage
-%%Page: 47 47
-MoveDisk DrawTowers showpage
-%%Page: 48 48
-GoodBye DrawTowers showpage
-%%Page: 49 49
-ChangeDirs DrawTowers showpage
-
-%%Page: 50 50
-Hello DrawTowers showpage
-%%Page: 51 51
-MoveDisk DrawTowers showpage
-%%Page: 52 52
-GoodBye DrawTowers showpage
-%%Page: 53 53
-ChangeDirs DrawTowers showpage
-
-%%Page: 54 54
-Hello DrawTowers showpage
-%%Page: 55 55
-MoveDisk DrawTowers showpage
-%%Page: 56 56
-GoodBye DrawTowers showpage
-%%Page: 57 57
-ChangeDirs DrawTowers showpage
-
-%%Page: 58 58
-Hello DrawTowers showpage
-%%Page: 59 59
-MoveDisk DrawTowers showpage
-%%Page: 60 60
-GoodBye DrawTowers showpage
-%%Page: 61 61
-ChangeDirs DrawTowers showpage
-
-%%%%%%%
-
-%% Trailer
diff --git a/tests/ps/translate.ps b/tests/ps/translate.ps
deleted file mode 100644
index 3cf4480..0000000
--- a/tests/ps/translate.ps
+++ /dev/null
@@ -1 +0,0 @@
-50 50 translate pstack
diff --git a/tests/ps/truncate.ps b/tests/ps/truncate.ps
deleted file mode 100644
index 899f596..0000000
--- a/tests/ps/truncate.ps
+++ /dev/null
@@ -1,2 +0,0 @@
-1.2 truncate =
-2.9 truncate =
diff --git a/tests/ps/type.ps b/tests/ps/type.ps
deleted file mode 100644
index 5a43df9..0000000
--- a/tests/ps/type.ps
+++ /dev/null
@@ -1,13 +0,0 @@
-true type ==
-0 type ==
-.1 type ==
-/foo type ==
-/bar cvx type ==
-[] type ==
-1 dict type ==
-null type ==
-systemdict /add get type ==
-mark type ==
-(%stdin) (r) file type ==
-save type ==
-
diff --git a/tests/ps/usertime.ps b/tests/ps/usertime.ps
deleted file mode 100644
index 421be69..0000000
--- a/tests/ps/usertime.ps
+++ /dev/null
@@ -1 +0,0 @@
-{usertime =} loop
diff --git a/tests/ps/vasarely.ps b/tests/ps/vasarely.ps
deleted file mode 100644
index 9971e06..0000000
--- a/tests/ps/vasarely.ps
+++ /dev/null
@@ -1,588 +0,0 @@
-%!
-% vasarely
-% Elizabeth D. Zwicky
-% zwicky@sgi.com
-/vasarelysave save def % prevent residual side effects
-%
-% Inspired by Vasarely's experiments with tilting circles and squares
-% (for instance "Tlinko" and "Betelgeuse"
-
-%% circles
-/part { circle } def /nnrand false def
-%% squares
-% /part { ngon } def /nn 4 def /nnrand false def
-%% random polygons
-% /part { ngon } def /nnrand true def
-%% random stars (not my favorite on this program)
-% /part { nstar } def /nnrand true def
-
-%% tilt the base shape a random amount?
-/twist false def
-% /twist true def
-
-
-/rainbow false def
-%% To make rainbows
-% /rainbow true def
-%% Set this to 1 to go through a full range of colors
-/rainrange .25 def
-
-% number of different designs per page
-/inheight 2 def
-/inwidth 2 def
-% number of repeats in a design
-/xtimes 10 def
-/ytimes 16 def
-
-%% This sets the relationship between the two hues: comptwo is maximum contrast
-/colorway {comptwo} def
-%% monochrome comptwo harmtwo harmfour freecolor compthree closeharm
-%% origcolor
-
-%% This sets the brightness and saturation of the colors; vivid makes
-%% them both bright
-/colorfam {vivid} def
-%% vivid jewel intense medium pastel free orig contrast
-%% medjewel medvivid vivpastel medpastel
-
-
-%% Only experts below this point!
-
-usertime srand
-/seed rand def
-
-/starcompensate false def
-/constroke 1 def
-
-
-
-/circle {
- /radius radius 1.33 mul def
- currentpoint /herey exch def /herex exch def
- herex herey radius 0 360 arc
-} def
-
-/ngon{ % polygon of n sides, n determined by nn
- nside 2 div radius rmoveto
- nn cvi {
- nside neg 0 rlineto
- 360 360 nn div sub neg rotate
- } repeat
- closepath
-} def
-
-/nstar{ % star of n points, n determined by nstarslider
- /radius radius 1.33 mul def
- currentpoint /herey exch def /herex exch def
- 0 radius rmoveto
- 90 nstarangle 2 div add neg rotate
- nn cvi {nstarside 0 rlineto
- 180 180 nstarangle 2 mul sub sub neg rotate
- nstarside 0 rlineto
- 180 180 360 nn div sub nstarangle 2 mul sub sub rotate
- } repeat
- 90 nstarangle 2 div add ptsack rotate
- closepath
-} def
-
-/nstarangle {180 360 nn div sub 3 div} def
-/nstarside {
- 2
- radius
- 1
- 180 nn div
- sin
- div
- div
- mul
- nstarangle sin
- mul
- 180
- nstarangle 2 mul
- sub
- sin
- div
-} def
-
-/nside {
- 2
- radius
- 360 nn div 2 div tan
- mul
- mul
-} def
-
-
-/tan { /alpha exch def
- alpha sin
- 1 alpha sin dup mul sub sqrt
- div
-} def
-
-
-/pastel {
- /backbright high def
- /backsat medlow def
- /fillbright high def
- /fillsat medlow def
- /eobright high def
- /eosat medlow def
- constroke 0 eq {
- /strokebright high def
- /strokesat medlow def
- }
- {
- /strokebright low def
- /strokesat high def
- } ifelse
-} def
-
-/jewel {
- /fillbright med def
- /fillsat high def
- /backbright med def
- /backsat high def
- /eobright med def
- /eosat high def
- constroke 0 eq {
- /strokebright medlow def
- /strokesat high def
- }
- {
- /strokebright high def
- /strokesat medlow def
- } ifelse
-} def
-
-/vivid {
- /fillsat 1 def
- /fillbright high def
- /eosat 1 def
- /eobright high def
- /backsat 1 def
- /backbright high def
- constroke 0 eq {
- /strokesat 1 def
- /strokebright high def
- }
- {
- /strokesat high def
- /strokebright medlow def
- } ifelse
-} def
-
-/free {
- /fillsat anyrand def
- /fillbright anyrand def
- /eosat anyrand def
- /eobright anyrand def
- /backsat anyrand def
- /backbright anyrand def
- /strokesat anyrand def
- /strokebright anyrand def
-} def
-
-/contrast {
- /sat medhigh def
- /bright rand 2 mod 0 eq {medhigh} {medlow} ifelse def
- /backsat sat def
- /backbright bright def
- /eosat sat def
- /eobright 1 bright sub def
- /fillsat sat def
- /fillbright bright def
- /strokebright rand 2 mod def
- /strokesat rand 2 mod def
-
-} def
-/medium {
- /backsat med def
- /backbright med def
- /eosat med def
- /eobright med def
- /fillsat med def
- /fillbright med def
- /strokebright med def
- /strokesat med def
-
-} def
-/intense {
- /backsat high def
- /backbright med def
- /eosat high def
- /eobright high def
- /fillsat high def
- /fillbright med def
- /strokebright high def
- /strokesat high def
-
-} def
-/orig {
- /backsat rand 99 mod 55 add 100 div def
- /backbright rand 99 mod 35 add 100 div def
- /eosat rand 77 mod 22 add 100 div def
- /eobright 90 rand 75 mod sub 15 add 100 div def
- /fillsat 100 rand 90 mod sub 100 div def
- /fillbright 100 rand 45 mod sub 20 add 100 div def
- /strokebright 100 rand 55 mod sub 100 div def
- /strokesat 100 rand 85 mod sub 100 div def
-
-} def
-
-/medjewel {
- /alt rand 2 mod def
- /backsat alt 0 eq {high} { med} ifelse def
- /fillsat alt 0 eq {med} {high} ifelse def
- /eosat alt 0 eq {high} {med} ifelse def
- /backbright med def
- /fillbright med def
- /eobright med def
- constroke 0 eq {
- /strokebright medlow def
- /strokesat high def
- }
- {
- /strokebright high def
- /strokesat medlow def
- } ifelse
-} def
-
-/medvivid {
- /alt rand 2 mod def
- /backsat alt 0 eq {1} { med} ifelse def
- /fillsat alt 0 eq {med} {1} ifelse def
- /eosat alt 0 eq {1} {med} ifelse def
- /backbright alt 0 eq {high} {med} ifelse def
- /eobright alt 0 eq {high} {med} ifelse def
- /fillbright alt 0 eq {med} {high} ifelse def
- constroke 0 eq {
- /strokesat 1 def
- /strokebright high def
- }
- {
- /strokesat high def
- /strokebright medlow def
- } ifelse
-} def
-/vivpastel {
- /backlight rand 2 mod def
- /backsat backlight 0 eq {medlow} {1} ifelse def
- /eosat backlight 0 eq {medlow} {1} ifelse def
- /fillsat backlight 0 eq {1} {medlow} ifelse def
- /fillbright high def
- /backbright high def
- /eobright high def
- constroke 0 eq {
- /strokesat 1 def
- /strokebright high def
- }
- {
- /strokesat high def
- /strokebright medlow def
- } ifelse
-} def
-
-/medpastel {
- /alt rand 2 mod def
- /backsat alt 0 eq {medlow} {med} ifelse def
- /eosat alt 0 eq {medlow} {med} ifelse def
- /fillsat alt 0 eq {med} {medlow} ifelse def
- /fillbright alt 0 eq { high } {med} ifelse def
- /backbright alt 0 eq {med} { high } ifelse def
- /eobright alt 0 eq {med} { high } ifelse def
- constroke 0 eq {
- /strokebright high def
- /strokesat medlow def
- }
- {
- /strokebright low def
- /strokesat high def
- } ifelse
-} def
-
-/maxcon {
- rand 2 mod 1 eq {
- /backsat 0 def
- /backbright 0 def
- /eosat 0 def
- /eobright 0 def
- /fillsat 0 def
- /fillbright 1 def
- /strokebright 1 def
- /strokesat 0 def
- }
- {
- /backsat 0 def
- /backbright 1 def
- /eosat 0 def
- /eobright 1 def
- /fillsat 0 def
- /fillbright 0 def
- /strokebright 0 def
- /strokesat 0 def
- }
- ifelse
-} def
-
-/monochrome {
- /fillhue hue closevary def
- /strokehue hue closevary def
- /eohue hue closevary def
- /backhue hue def
-} def
-
-/blackandwhite {
- /fillhue 1 def
- /eohue 0 def
- /backhue 0 def
- /strokehue 1 def
-} def
-
-
-/freecolor {
- /fillhue anyrand def
- /strokehue anyrand def
- /eohue anyrand def
- /backhue anyrand def
-} def
-
-/purple {
- /fillhue rand 15 mod 80 add 100 div def
- /backhue rand 15 mod 80 add 100 div def
- /strokehue rand 15 mod 80 add 100 div def
- /eohue rand 15 mod 80 add 100 div def
- /backhue rand 15 mod 80 add 100 div def
-} def
-
-/comptwo {
- /fillhue hue closevary def
- /strokehue hue .5 add dup 1 gt {1 sub} if def
- /backhue strokehue def
- /eohue strokehue closevary def
-} def
-
-/compthree {
- /backhue hue def
- /strokehue hue 1 3 div add dup 1 gt {1 sub} if closevary def
- /fillhue strokehue closevary def
- /eohue hue 1 3 div sub dup 1 lt { 1 add} if closevary def
-} def
-
-/origcolor {
- /backhue hue def
- /strokehue
- hue 1000 mul cvi 3 mod dup 1 eq
- {hue closevary}
- {2 eq
- {rand 999 mod 1000 div}
- {hue .5 add dup 1 gt {1 sub} if }
- ifelse
- }
- ifelse def
- /fillhue hue 1000 mul cvi 3 mod dup 1 eq
- {hue closevary}
- {2 eq
- {rand 999 mod 1000 div}
- {hue .5 add dup 1 gt {1 sub} if }
- ifelse
- }
- ifelse
- def
- /eohue hue 1000 mul cvi 2 mod 1 eq
- {hue closevary}
- {rand 999 mod 1000 div}
- ifelse def
-} def
-
-/harmtwo {
- /fillhue hue closevary def
- /backhue hue def
- /strokehue hue .2 add dup 1 gt {1 sub} if closevary def
- /eohue strokehue closevary def
-} def
-
-/harmfour {
- /fillhue hue closevary def
- /backhue hue .1 add dup 1 gt {1 sub} if def
- /strokehue hue .2 add dup 1 gt {1 sub} if closevary def
- /eohue hue .1 sub dup 1 lt {1 add} if closevary def
-} def
-
-/closeharm {
- /fillhue hue def
- /backhue hue .05 add dup 1 gt {1 sub} if closevary def
- /strokehue hue .1 add dup 1 gt {1 sub} if closevary def
- /eohue hue .05 sub dup 0 lt {1 add} if closevary def
-} def
-
-
-/high {100 rand 25 mod sub 100 div } def
-/med { rand 33 mod 33 add 100 div } def
-/medhigh {100 rand 50 mod sub 100 div } def
-/medlow {rand 50 mod 100 div } def
-/low { rand 25 mod 100 div} def
-/anyrand { rand 100 mod 100 div } def
-/closevary {rand 70 mod rand 100 mod sub 1000 div add} def
-
-%rainbow
-% {/colorfill {fillhue 1 1 sethsbcolor fill} def}
- /colorfill {fillhue fillsat fillbright sethsbcolor fill } def
-%ifelse
-/colorstroke {strokehue strokesat strokebright sethsbcolor stroke } def
-/eocolorfill {eohue eosat eobright sethsbcolor eofill } def
-/backfill{ backhue backsat backbright sethsbcolor fill } def
-
-/xstep { xrange xtimes 1 sub div x 1 sub mul } def
-/ystep { yrange ytimes 1 sub div y 1 sub mul} def
-
-/functionarray [
- {sin abs}
- {sin }
- {cos }
- {cos abs}
- {sin dup mul }
- {cos dup mul }
- {sin abs sqrt }
- {cos abs sqrt }
-] def
-
-/range { /top exch def /bottom exch def /number exch def
-% number is between -1 and 1
- /rangesize top bottom sub def
- number 1 add 2 div
- % number is now between 0 and 1
- rangesize mul
- bottom add
- } def
-
-/drawone {
- /radius
- width height lt {width 3 div} {height 3 div} ifelse
- def
- seed srand
- 0 0 moveto
- /origmatrix [ 0 0 0 0 0 0 ] currentmatrix def
- [ % xstep function ystep function2 add .4 1.3 range
- 1
- ystep function xstep function add -.25 .25 range
- ystep function3 xstep function2 add -.5 .5 range
-% xstep function4 ystep function mul .4 1.3 range
- 1
- 0
- 0
- ]
- concat
- twist {twistdeg rotate} if
- part colorfill
- origmatrix setmatrix
- rainbow
- {/fillhue fillhue rainrange xtimes ytimes mul div add dup 1 gt {1 sub} if def}
- if
-
-} def
-
-/notdrawone {
- seed srand
- twist {/twistdeg rand 360 mod def} if
- nnrand {/nn rand 6 mod 3 add def} if
- /x1 rand width 3 div cvi mod width 8 div add def
- /y1 rand height 3 div cvi mod height 8 div add def
- rand 3 mod dup 1 eq
- {pop /x2 rand width 2 div cvi mod def
- /y2 rand height 2 div cvi mod def}
- { 2 eq
- {/x2 y1 def /y2 x1 def}
- {/x2 y1 width mul height div def /y2 x1 height mul width div def}
- ifelse
- }
- ifelse
- /radius width height gt {width} {height} ifelse 2.5 div def
- /stripe rand width 10 div cvi mod 2 add def
- starcompensate { /stripe stripe 2 mul def /radius radius 10 nn div mul def } if
- /i 1 def
- /repeats radius stripe div cvi 1 add def
- /nnincr 1 def
- repeats {
- colorvary {colorfam colorway} if
- /i i 1 add def
- /radius radius stripe sub def
-
- } repeat
-} def
-
-
-/page {
- clippath pathbbox /ury exch def /urx exch def /lly exch def /llx exch
-def
-/pagewidth urx llx sub def
-/pageheight ury lly sub def
-0 0 moveto
- llx lly translate
- /outerwidth
- pagewidth inwidth div
- def
- /outerheight
- pageheight inheight div
- def
- /width
- outerwidth xtimes div
- def
- /height
- outerheight ytimes div
- def
-
-
-
- /size
- width height gt {width} {height} ifelse
- def
- inwidth {
- inheight {
-
- /seed rand def
- /hue rand 999 mod 1000 div def
- colorway colorfam
- /x 1 def /y 1 def
- nnrand {/nn rand 6 mod 3 add def} if
- /twistdeg rand 360 mod def
-
- /function functionarray rand functionarray length mod get def
- /function2 functionarray rand functionarray length mod get def
- /function3 functionarray rand functionarray length mod get def
- /function4 functionarray rand functionarray length mod get def
-
-/xrange [ 90 180 270 360 180 360 ] rand 6 mod get def
-/yrange [ 90 180 270 360 180 360 ] rand 6 mod get def
- initclip
- newpath
- 0 0 moveto
- outerwidth 0 rlineto
- 0 outerheight rlineto
- outerwidth neg 0 rlineto
- backfill
-
- xtimes {
- ytimes{
- /y y 1 add def
- width 2 div height 2 div translate
- drawone
- width 2 div neg height 2 div neg translate
- 0 height translate
- } repeat
-
- /y 1 def
- /x x 1 add def
- width height ytimes mul neg translate
-
- } repeat
-
- width xtimes mul neg outerheight translate
- } repeat
- outerwidth outerheight inheight mul neg translate
- } repeat
-
- } def
-
-page showpage
-clear cleardictstack
-vasarelysave restore
diff --git a/tests/ps/where.ps b/tests/ps/where.ps
deleted file mode 100644
index 293a8c1..0000000
--- a/tests/ps/where.ps
+++ /dev/null
@@ -1,2 +0,0 @@
-/add where pstack clear
-/foo where pstack
diff --git a/tests/run.sh b/tests/run.sh
deleted file mode 100755
index c31d179..0000000
--- a/tests/run.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#! /bin/sh
-
-export HIEROGLYPH_DEVICE_PATH=
-for i in `dirname $0`/../devices/*; do
- if test -d $i && test -d $i/.libs; then
- export HIEROGLYPH_DEVICE_PATH=$HIEROGLYPH_DEVICE_PATH:$i/.libs
- fi
-done
-export HIEROGLYPH_PLUGIN_PATH=
-for i in `dirname $0`/../plugins/*; do
- if test -d $i && test -d $i/.libs; then
- export HIEROGLYPH_PLUGIN_PATH=$HIEROGLYPH_PLUGIN_PATH:$i/.libs
- fi
-done
-if [ "x$HIEROGLYPH_LIB_PATH" != "x" ]; then
- export HIEROGLYPH_LIB_PATH=$HIEROGLYPH_LIB_PATH:`dirname $0`/../lib:.
-else
- export HIEROGLYPH_LIB_PATH=`dirname $0`/../lib:.
-fi
-export LD_LIBRARY_PATH="`dirname $0`/../hieroglyph/.libs:`dirname $0`/../libretto/.libs:$LD_LIBRARY_PATH"
-$@
diff --git a/update-version b/update-version
deleted file mode 100755
index 352f94f..0000000
--- a/update-version
+++ /dev/null
@@ -1,7 +0,0 @@
-#! /bin/sh
-TOPDIR=`dirname $0`
-VERSIONIN=$TOPDIR/hieroglyph/version.h.in.in
-VERSION_H=${VERSIONIN//.in.in}.in
-UUID=`uuidgen`
-
-sed -e "s/%%HIEROGLYPH%%/$UUID/" $VERSIONIN > $VERSION_H