From ea6fca6ed7ff30072bd757c6a34dd9668b1c103b Mon Sep 17 00:00:00 2001 From: ctucx Date: Fri, 7 Feb 2020 14:09:42 +0100 Subject: [PATCH] first public release --- .gitignore | 3 + LICENSE | 619 +++++++++++++++++ README.md | 17 + client/css/product_selector.css | 84 +++ client/css/style.css | 631 ++++++++++++++++++ client/img/apple-touch-icon.png | Bin 0 -> 10749 bytes client/img/back.svg | 1 + client/img/baseline-beenhere-24px.svg | 1 + client/img/baseline-departure_board-24px.svg | 1 + client/img/baseline-directions-24px.svg | 1 + client/img/baseline-directions-24px_white.svg | 1 + client/img/baseline-directions_walk-24px.svg | 1 + client/img/baseline-expand_more-24px.svg | 1 + client/img/baseline-import_export-24px.svg | 1 + client/img/baseline-navigation-24px.svg | 1 + client/img/baseline-place-24px.svg | 1 + client/img/baseline-refresh-24px.svg | 1 + client/img/baseline-settings-20px.svg | 1 + client/img/baseline-swap_vert-24px.svg | 1 + client/img/bg.webp | Bin 0 -> 121796 bytes client/img/favicon-16x16.png | Bin 0 -> 2049 bytes client/img/favicon-32x32.png | Bin 0 -> 3591 bytes client/img/favicon-512x512.png | Bin 0 -> 36948 bytes client/img/favicon-64x64.png | Bin 0 -> 6561 bytes client/img/product_bus_color.svg | 9 + client/img/product_bus_grey.svg | 9 + client/img/product_call_color.svg | 9 + client/img/product_call_grey.svg | 9 + client/img/product_ferry_color.svg | 9 + client/img/product_ferry_grey.svg | 9 + client/img/product_highspeed_color.svg | 13 + client/img/product_highspeed_grey.svg | 13 + client/img/product_suburban_color.svg | 8 + client/img/product_suburban_grey.svg | 8 + client/img/product_subway_color.svg | 10 + client/img/product_subway_grey.svg | 10 + client/img/product_train_color.svg | 6 + client/img/product_train_grey.svg | 6 + client/img/product_tram_color.svg | 8 + client/img/product_tram_grey.svg | 8 + client/index.html | 90 +++ client/js/api.js | 41 ++ client/js/app.js | 37 + client/js/app_functions.js | 228 +++++++ client/js/canvas.js | 321 +++++++++ client/js/ds100.js | 1 + client/js/helpers.js | 73 ++ client/js/journeyView.js | 168 +++++ client/js/journeysView.js | 124 ++++ client/js/languages.js | 96 +++ client/js/lit-html.js | 1 + client/js/overlays.js | 43 ++ client/js/router.js | 25 + client/js/searchView.js | 409 ++++++++++++ client/js/sprintf.min.js | 205 ++++++ client/manifest.json | 21 + client/service-worker.js | 91 +++ client/todo.txt | 8 + ds100.js | 21 + nim.cfg | 1 + oeffisearch.nimble | 14 + shell.nix | 33 + src/backend/hafas.nim | 7 + src/backend/hafas/api/journeys.nim | 79 +++ src/backend/hafas/api/refresh_journey.nim | 34 + src/backend/hafas/api/suggestions.nim | 29 + src/backend/hafas/parse/accessibility.nim | 6 + src/backend/hafas/parse/date.nim | 31 + src/backend/hafas/parse/journey.nim | 14 + src/backend/hafas/parse/journeys_response.nim | 21 + src/backend/hafas/parse/leg.nim | 60 ++ src/backend/hafas/parse/line.nim | 41 ++ src/backend/hafas/parse/msg.nim | 12 + src/backend/hafas/parse/operator.nim | 9 + src/backend/hafas/parse/point.nim | 78 +++ src/backend/hafas/parse/products.nim | 37 + src/backend/hafas/parse/remark.nim | 32 + src/backend/hafas/parse/stopover.nim | 33 + src/backend/hafas/todo | 10 + src/backend/hafas/types.nim | 43 ++ src/backend/hafas/util.nim | 50 ++ src/cache.nim | 82 +++ src/cache_types.nim | 17 + src/endpoints/journeys.nim | 60 ++ src/endpoints/moreJourneys.nim | 42 ++ src/endpoints/refreshJourney.nim | 37 + src/endpoints/suggestions.nim | 5 + src/fileserver.nim | 38 ++ src/oeffisearch.nim | 65 ++ src/types.nim | 180 +++++ src/utils.nim | 31 + 91 files changed, 4745 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 client/css/product_selector.css create mode 100644 client/css/style.css create mode 100644 client/img/apple-touch-icon.png create mode 100644 client/img/back.svg create mode 100644 client/img/baseline-beenhere-24px.svg create mode 100644 client/img/baseline-departure_board-24px.svg create mode 100644 client/img/baseline-directions-24px.svg create mode 100644 client/img/baseline-directions-24px_white.svg create mode 100644 client/img/baseline-directions_walk-24px.svg create mode 100644 client/img/baseline-expand_more-24px.svg create mode 100644 client/img/baseline-import_export-24px.svg create mode 100644 client/img/baseline-navigation-24px.svg create mode 100644 client/img/baseline-place-24px.svg create mode 100644 client/img/baseline-refresh-24px.svg create mode 100644 client/img/baseline-settings-20px.svg create mode 100644 client/img/baseline-swap_vert-24px.svg create mode 100644 client/img/bg.webp create mode 100644 client/img/favicon-16x16.png create mode 100644 client/img/favicon-32x32.png create mode 100644 client/img/favicon-512x512.png create mode 100644 client/img/favicon-64x64.png create mode 100644 client/img/product_bus_color.svg create mode 100644 client/img/product_bus_grey.svg create mode 100644 client/img/product_call_color.svg create mode 100644 client/img/product_call_grey.svg create mode 100644 client/img/product_ferry_color.svg create mode 100644 client/img/product_ferry_grey.svg create mode 100644 client/img/product_highspeed_color.svg create mode 100644 client/img/product_highspeed_grey.svg create mode 100644 client/img/product_suburban_color.svg create mode 100644 client/img/product_suburban_grey.svg create mode 100644 client/img/product_subway_color.svg create mode 100644 client/img/product_subway_grey.svg create mode 100644 client/img/product_train_color.svg create mode 100644 client/img/product_train_grey.svg create mode 100644 client/img/product_tram_color.svg create mode 100644 client/img/product_tram_grey.svg create mode 100644 client/index.html create mode 100644 client/js/api.js create mode 100644 client/js/app.js create mode 100644 client/js/app_functions.js create mode 100644 client/js/canvas.js create mode 100644 client/js/ds100.js create mode 100644 client/js/helpers.js create mode 100644 client/js/journeyView.js create mode 100644 client/js/journeysView.js create mode 100644 client/js/languages.js create mode 100644 client/js/lit-html.js create mode 100644 client/js/overlays.js create mode 100644 client/js/router.js create mode 100644 client/js/searchView.js create mode 100644 client/js/sprintf.min.js create mode 100644 client/manifest.json create mode 100644 client/service-worker.js create mode 100644 client/todo.txt create mode 100644 ds100.js create mode 100644 nim.cfg create mode 100644 oeffisearch.nimble create mode 100644 shell.nix create mode 100644 src/backend/hafas.nim create mode 100644 src/backend/hafas/api/journeys.nim create mode 100644 src/backend/hafas/api/refresh_journey.nim create mode 100644 src/backend/hafas/api/suggestions.nim create mode 100644 src/backend/hafas/parse/accessibility.nim create mode 100644 src/backend/hafas/parse/date.nim create mode 100644 src/backend/hafas/parse/journey.nim create mode 100644 src/backend/hafas/parse/journeys_response.nim create mode 100644 src/backend/hafas/parse/leg.nim create mode 100644 src/backend/hafas/parse/line.nim create mode 100644 src/backend/hafas/parse/msg.nim create mode 100644 src/backend/hafas/parse/operator.nim create mode 100644 src/backend/hafas/parse/point.nim create mode 100644 src/backend/hafas/parse/products.nim create mode 100644 src/backend/hafas/parse/remark.nim create mode 100644 src/backend/hafas/parse/stopover.nim create mode 100644 src/backend/hafas/todo create mode 100644 src/backend/hafas/types.nim create mode 100644 src/backend/hafas/util.nim create mode 100644 src/cache.nim create mode 100644 src/cache_types.nim create mode 100644 src/endpoints/journeys.nim create mode 100644 src/endpoints/moreJourneys.nim create mode 100644 src/endpoints/refreshJourney.nim create mode 100644 src/endpoints/suggestions.nim create mode 100644 src/fileserver.nim create mode 100644 src/oeffisearch.nim create mode 100644 src/types.nim create mode 100644 src/utils.nim diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..76a825a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +oeffisearch +cache +data diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4ec8c3f --- /dev/null +++ b/LICENSE @@ -0,0 +1,619 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c193e4 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ + +## Öffisearch + +Öffisearch is a progressive web app for querying public transport information for the DB (and in the future BVG and nah.sh) networks. A hosted version of Öffisearch is available at [oeffisear.ch](https://oeffisear.ch). + +This repository consists of multiple modules, which are more or less independent. The HAFAS backend `src/backend/hafas` can be used to query the HAFAS mgate.exe endpoint directly. The cache and webserver modules allow serving an HTTP API. A unique id is generated for each request, so that the data can be requested again at a later time. + +### Development + +- Install the nim compiler >=1.0.4 and nimble language package manager from your distribution's package repositories. +- Run `nimble run oeffisearch` + +Or `nix-shell`, to set up the Öffisearch development server using the Nix package manager. + +### Attribution + +Thanks a lot to [Jannis Redmann](https://github.com/derhuerst/) for his work on [hafas-client](https://github.com/public-transport/hafas-client/). While Öffisearch does not use any code from hafas-client, it borrows a lot of the concepts and knowledge about the HAFAS APIs. diff --git a/client/css/product_selector.css b/client/css/product_selector.css new file mode 100644 index 0000000..9154b6b --- /dev/null +++ b/client/css/product_selector.css @@ -0,0 +1,84 @@ +.product_selector > label { + width: 32px; + height: 32px; + + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + + -o-user-select: none; + user-select: none; +} + +.product_selector > input { + display: none; +} + +input[id=national] + label[for=national] { + content: url("../img/product_highspeed_grey.svg"); +} + +input[id=national]:checked + label[for=national] { + content: url("../img/product_highspeed_color.svg"); +} + + +input[id=regional] + label[for=regional] { + content: url("../img/product_train_grey.svg"); +} + +input[id=regional]:checked + label[for=regional] { + content: url("../img/product_train_color.svg"); +} + + +input[id=suburban] + label[for=suburban] { + content: url("../img/product_suburban_grey.svg"); +} + +input[id=suburban]:checked + label[for=suburban] { + content: url("../img/product_suburban_color.svg"); +} + + +input[id=subway] + label[for=subway] { + content: url("../img/product_subway_grey.svg"); +} + +input[id=subway]:checked + label[for=subway] { + content: url("../img/product_subway_color.svg"); +} + +input[id=tram] + label[for=tram] { + content: url("../img/product_tram_grey.svg"); +} + +input[id=tram]:checked + label[for=tram] { + content: url("../img/product_tram_color.svg"); +} + + +input[id=bus] + label[for=bus] { + content: url("../img/product_bus_grey.svg"); +} + +input[id=bus]:checked + label[for=bus] { + content: url("../img/product_bus_color.svg"); +} + + +input[id=ferry] + label[for=ferry] { + content: url("../img/product_ferry_grey.svg"); +} + +input[id=ferry]:checked + label[for=ferry] { + content: url("../img/product_ferry_color.svg"); +} + +input[id=taxi] + label[for=taxi] { + content: url("../img/product_call_grey.svg"); +} + +input[id=taxi]:checked + label[for=taxi] { + content: url("../img/product_call_color.svg"); +} diff --git a/client/css/style.css b/client/css/style.css new file mode 100644 index 0000000..d0836a5 --- /dev/null +++ b/client/css/style.css @@ -0,0 +1,631 @@ +html, body { + margin: 0; + font-family: Roboto, Arial, sans-serif; +} + +.hidden { + display: none !important; +} + +* { + box-sizing: border-box; + border-collapse: collapse; +} + +canvas { + flex-grow: 1; +} + +table { + border-bottom: 1px solid rgba(0, 0, 0, 0.3); + width: 100%; +} + +table, tr { + background-color: #fff; + margin: 0 0 15px 0; +} + +#journeysView table { + margin: 15px auto; +} + +td, th { + text-align: center; + padding: 5px 3px; + overflow: hidden; +} + +tr:nth-child(odd) { + background-color: #f2f2f2; +} + +tbody tr { + cursor: pointer; +} + +tbody tr:hover { + background-color: #ddd; +} + +tbody tr:hover td { + background-color: transparent; +} + + +input[type="date"], +input[type="time"], +input[type="text"], +#deparr { + box-sizing: border-box; + width: 100%; + padding: .3em .5em; + border-radius: 3px; + font-size: 1.5em; + padding: 7px; + border: none; + outline: none; + box-shadow: 0 .1em .2em rgba(0, 0, 0, .5); + background-color: white; + color: black; + margin-top: 8px; +} + +#datetime { + display: flex; + flex-direction: row; +} + +#deparr { + padding: 0 !important; + overflow: hidden; + width: 84px; + flex-shrink: 0; + display: inline-block; +} + +.switch { + position: relative; + display: inline-block; + width: 84px; + height: 100%; +} + +/* Hide default HTML checkbox */ +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #bbb; + height: 100%; +} + +.slider:before { + position: absolute; + font-size: 13px; + padding-top: calc(25% - 7px); + line-height: 100%; + text-align: center; + content: "DEP"; + height: 100%; + width: 42px; + background-color: white; + transition: .2s; + box-shadow: 0 .1em .2em rgba(0, 0, 0, .5); +} + +input:checked + .slider:before { + content: "ARR"; + transform: translateX(42px); +} + +input:active, +input:focus{ + box-shadow: 0 .1em .5em rgba(0, 0, 0, .6); +} + +#header { + position: relative; + box-shadow: 0 0 15px rgba(0, 0, 0, .6); + background-color: #43a047; + color: white; + padding: 0 0 0 9vw; +} + +#departuresView, +#settingsView, +#searchView, +#journeyView, +#journeysView { + display: flex; + flex-direction: column; +} + +#journeyView tbody td:nth-child(3) { + text-align: left; +} + +#journeyView tbody:not(:last-child) { + border-bottom: 1px solid rgba(0, 0, 0, .2); +} + +#journeyView p { + color: white; + width: 100%; +} + +#journeyView p::before { + -webkit-filter: drop-shadow( 0 0 5px rgba(0, 0, 0, .6) ); + filter: drop-shadow( 0 0 5px rgba(0, 0, 0, .6) ); + margin-right: 4px; + vertical-align: sub; +} + +#journeyView p.change, +#journeyView p.walk, +#journeyView p.transfer { + text-shadow: 0 0 15px rgba(0, 0, 0, .6); + text-align: center; +} + +#journeyView p.change::before { + content: url("../img/baseline-import_export-24px.svg"); +} + +#journeyView p.walk::before { + content: url("../img/baseline-directions_walk-24px.svg"); +} + +#journeyView p.transfer::before { + content: url("../img/baseline-directions-24px_white.svg"); +} + +#searchView { + background-color: rgba(67, 160, 71, 0.6); + color: white; +} + +#searchView table { + width: 100%; + color: black; +} + +#searchView .button, +#searchView label:not(.switch) { + cursor: pointer; + border-radius: 3px; + background-color: white; + width: 40px; + padding: 3px; + height: 40px; + display: inline-block; + margin-top: 8px; + margin-bottom: 8px; + box-shadow: 0 .1em .2em rgba(0, 0, 0, .5); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +#searchView #date { + flex-grow: 1; + margin-left: 8px; +} + +#searchView .product_selector { + margin-right: auto; +} + +#searchView .row { + display: flex; + flex-direction: row; +} + + +#searchView .swap { + margin-left: 5px; + content: url("../img/baseline-swap_vert-24px.svg"); +} + +#searchView .settings { + margin-left: 5px; + content: url("../img/baseline-settings-20px.svg"); +} + +#searchView .search { + margin-left: 5px; + content: url("../img/baseline-navigation-24px.svg"); + color: blue; +} + +#searchView .departures { + content: url("../img/baseline-departure_board-24px.svg"); +} + +#searchView .directions { + content: url("../img/baseline-directions-24px.svg"); +} + +#departuresView tbody td { + text-align: right; +} + +#departuresView tbody td:first-child { + text-align: left; +} + +.suggestionsbox { + border-radius: 3px; + width: 100%; + box-shadow: 0 .4em .8em rgba(0, 0, 0, .5); +} +.suggestions { + position: relative; + display: none; + overflow: visible; + z-index: 999; + height: 0; +} + +.suggestions.typing, +.suggestions.mouseover { + display: block; +} + +.loadMore { + cursor: pointer; + content: url("../img/baseline-expand_more-24px.svg"); + border-radius: 100%; + height: 48px; + width: 48px; + background-color: #eee; + margin: 0 auto; + transition: box-shadow 150ms; + border: 1px solid rgba(0, 0, 0, .1); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.flipped { + transform: rotate(180deg); +} + +.loadMore:hover { + box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .3); +} +.loadMore.flipped { + margin-top: 15px; +} + +#settings { + background-color: rgba(67, 160, 71, 0.6); + background-color: white; +} + +.suggestionsbox p { + font-size: 1.2em; + background-color: white; + color: black; + margin: 0; + border-top: 1px solid rgba(0, 0, 0, .2); + padding: .3em .6em; + cursor: pointer; +} + +.back { + cursor: pointer; + position: absolute; + left: 17px; + top: 17px; + width: 32px; + height: 32px; + content: url("../img/back.svg"); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.reload { + cursor: pointer; + position: absolute; + right: 17px; + top: 17px; + width: 32px; + height: 32px; + content: url("../img/baseline-refresh-24px.svg"); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.reload.spinning { + animation: spin 2s linear infinite; +} + +.btn { + position: relative; + + margin: 30px auto; + padding: 0; + + overflow: hidden; + + border-width: 0; + outline: none; + border-radius: 2px; + + background-color: #2ecc71; + color: #ecf0f1; +} + +.btn:hover, .btn:focus { + background-color: #27ae60; +} + +.btn > * { + position: relative; +} + +.btn span { + display: block; + padding: 12px 24px; +} + +.btn.orange { + background-color: #e67e22; +} + +.btn.orange:hover, .btn.orange:focus { + background-color: #d35400; +} + +.btn.red { + background-color: #e74c3c; +} + +.btn.red:hover, .btn.red:focus { + background-color: #c0392b; +} + +#spinner { + margin: calc(50vh - 60px) auto; + border: 2px solid rgba(255, 255, 255, .7); /* Light grey */ + border-top: 4px solid #3498db; /* Blue */ + border-radius: 50%; + width: 120px; + height: 120px; + animation: spin 2s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +#journeysView { + min-height: 100vh; +} + +#journeysCanvas { + flex-grow: 1; + flex-direction: column; + display: flex; +} + +#modal { + display: flex; +} + +#modal-box { + margin: auto; + border-radius: 4px; + background-color: white; + width: fit-content; + width: -moz-fit-content; + padding: 15px; + box-shadow: 0 1px 4px rgba(0, 0, 0, .6); +} + +#dismiss { + content: 'OK'; + border-radius: 4px; + background-color: rgba(20, 30, 255, .7); + box-shadow: 0 1px 4px rgba(0, 0, 0, .6); + color: white; + width: fit-content; + width: -moz-fit-content; + padding: 8px 20px; + margin-left: auto; + margin-top: 10px; + transition: background-color 300ms; +} + +#dismiss:hover { + background-color: rgba(70, 100, 255, .8); + cursor: pointer; +} + +@media (max-width: 799px) { + #searchView { + padding: 10px; + } + div#settings { + padding: 15px 5vw; + } + #header { + padding: 0 0 0 50px; + } + .back { + left: 10px; + } + #datetime { + flex-wrap: wrap; + } + #searchView #date { + width: initial; + } + #searchView #time { + width: 100%; + flex-shrink: 0; + } + #searchView table { + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4); + border-radius: 5px; + overflow: hidden; + border: none; + } +} + +@media (min-width: 800px) { + #searchView { + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .4); + padding: 50px; + margin: auto; + width: 80vw; + max-width: 800px; + color: white; + } + #searchView #date { + margin-right: 8px; + } + #searchView #time { + width: 40%; + } + div#settings { + padding: 30px 30px; + margin: 0 8vw; + } + #header { + padding: 0 10vw; + } + td p { + display: inline; + margin-right: 5px; + } + td, th { + padding: 10px 5px; + } + table { + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4); + border-radius: 5px; + overflow: hidden; + border: none; + margin: 50px auto; + width: 80vw; + } +} + + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} + +.modal-header { + background-color: #eee; + border-radius: 6px 6px 0px 0px; + min-height: 16.4; + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-header .modal-close { + width:53px; + float:right; + margin:-15px; + margin-left:0px; + height:53px; + border-left: 1px solid #e5e5e5; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goLFTUY0uFzJAAAAOpJREFUeNrtmjEWgzAMQ3Ev7TPk1HRlJMQSTvv/xoIlvZDYwHEAAAAAAAAATJOZZ2aeu9aNVRHX6zFGuMxX1Y0qEa4Qqut+XAK73jtUgqpXgqpWdBXmqtFeoDrg6LxEHaur7XPq2l/Kj6wK4c7NVXJmrxhwmpcF8NSI27w0gFlDb5iXB3DX2FvmLQGstLCO4coSwJMQXJOlLYCZEFzm7QHcCcFpXjIO7waPAJsgxyCNEK0wwxDjMC9E2ph3h8BL0a7mXSHwYaS7eXWt2MG8smb5OKzs2tr1Ab/wg0SJmJ1/kQEAAAAAAIB/5AvwavdGuXFGpAAAAABJRU5ErkJggg==') center no-repeat; + background-size:30px; + cursor:pointer; +} + +.modal-header .modal-close:hover { + background-color: #e5e5e5; + border-radius: 0px 6px 0px 0px; +} + +.modal-title { + margin: 0; + line-height: 1.4; +} + +.modal-open { + overflow: hidden; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} + +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} + +.modal-body { + position: relative; + padding: 15px; +} + +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } +} + +.cancelled { + text-decoration-line: line-through; +} \ No newline at end of file diff --git a/client/img/apple-touch-icon.png b/client/img/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..587b601bb2b92ac6a6bea5f238c2db941cef8ef8 GIT binary patch literal 10749 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3*taxA$Gg#YstJ_1Q_Jr36h-@wQB2eP`gzVX;$ zX-2JAUCjkZBr;ht>tFxe<{x}TFUf?MOR6bZzCsPvH-0Jhe%)7R!})o>dU)P*U$2|@ z8=gzTtK5I4_1xdM9zQ;ipZi_^dfnvlj8mS0+NIqBU@3AxQU%v(K z{oA+L+4fwQuc0tDJvXFpF?z1M`0cv9r}1A_JG`L28ywm8VxB%7V@VO({dxwi{$y5_c9=XJQj5`$l! zaC`5EmvgNU{_4j`O3-h&eU>WIkRvaHtO=L>doAwFThDyM6=t4}JH2Bt$0vS#o8K<} zFW>Kh_EzXRXUjWQtjjB=S%zj#e{vTIar=pBJn=o><`Zu0r^E^wj3>;64K~~F5IwpN zY{|*9a9^~+*jpMd&u0Ka#N3g^I3WWzIf*Vgo4wD@5ywJ)8Y}k_d?y1gMn9d|mVZbeEcv80kqDYdlft3Y9~rkYJHwbs^{v@vw!(~Ub?>%L15J@(XdFTM6Q zfX@gcjx_QpqmDNHlu7x|G_#py*4dU@Kxu^)S6X?MRae_!ZOaZj?zHnRyYBYR+LP6< zS##eq_t#l-Pu4VJ;oO%$vc~0{Uqd*hlc+f(V?H=Co;3pi+H1~iaUpokoaW3{Pf|7n-uwUUT0*m+m%Jl+a6Jv5_kgh*D_PDFRQ=3~qn12Lc1o*j`unJPF6kncT&+^`aMG6W z>E4Rd4-wG46kyAe8hXR%UE{t}=X#VKYcsOP=xbXBBE5EkFysI^v^qr1IqGX)lYvt$ zbJ@yRcNXETJI7w8$B=i`MLA#yY+_on3oz_q^%MqBP|Q{tve{kSxt+~Y9IeIJYM(9i zWwwi;k?m6`5d;FfJrkphy4MCM%F7IEnW5B{J9^}Vz83ol0M2OMUrBl8-}Zwn#t{4Y zL;hf;wKi6U5vr`>+f0BtM>A5Zxzse%qS|WNKG?Br%&ny&^zAN_1{re>FyYFMK>HnJ zO-);+S}5tsK-34>PJDKUxoP>0C~9^g?=p6-C+NjWoQ#x*^e%-G$(fGIPD^Cwy{d_` zft=-;V5B}ab-xv?7LJH*mn5Me4~2!$H2_X0(siaXa_VV2J3{8(ZgvRPQ}Di5PhZJ? z7ZBU})r;GG|WWZfTJ}B#JOWzaYqk#l86MK73gjOzut1)gbE}Pj#&erZQHI+ zIT;_R2!VlWqCTC977zJ4I7)ncdA<)n*yqHIwRGV*A z47x2xdPN(TC{vQ3wD>n(&H05nT}Y+7)m;mtRPvBp-Qpduv$sHNv_&R#SjQY5qI7^m zVkS>ePby}@`6am;7Q0PKe+5z;R6~L0sup)!R21l2VJ2-7c>=P^4s4%u8Fl?I91i zt5Q5OtdSrwbTZX$$05L2DPSmG`&yc-*1eTCZQ7?9zyg_Tq^XqcJbdBvf*)35KCm!1 zEKliXh^vFm8H({WOX7x=VcJerJ>zQkBvg+*1-9lG3uOy-yo zcd?YS5xi(Dt$M01!cn#L9QhbjeFll>Kf9o&+(4IN91*+4mHt;!wra>@rm}ysgBRj_YCIC z6n6sG{xrJ0#&&B03pp#q5AkvHeTi_^jOk{=4NU|9S@1MXU-9y3SlD;a$ik+krpZ1i zS5ejx9UJI>wI{}-nAga+ND7P3m1052T675ET{N*mskjYy^TyRj)l%PkN16mo4e^td zgDSGo7`^AGnXiUBMaLeFz0?{8^)VuRRBxN=-6F1tAX}?!zN4`br|-+EJU`w*wvo#| z`n1{2u>s^^xlWtlpR^)n1$3{r(@sKA&044}?H65)`Sq{&aqZUydR3UIj5fQTmr?4+* ztAkW}+Fp=cB(^}l1Nj?lcD=MMAH_&Zp@lJwL!l!WYz(u&GAG=uAG7mj{eyrb4h;>E zUP_DPQy-Vl)tRIq+bkh<<&frhIwb9ZDAUf#J4n~0pB0_F)5uVz#G5_mbka|DNDpKm z7Xh7g$wi;=bdfh0!m~JUQu|5vMfKF3soseQC&_0jG@R<&a;RRXQnE*lQz9tN4WLnA zGqf9rs=jQLJr1srKy2{E*o@X>WSl&e>I3c)rxemKZWO3gd&u_waCD`IA6$=0Z2Rz< zoFvb#Xb7x-ccG}a+!e1)%MQ4r^%j-_u|kOm`FKrTrShkgNL| zi;UZk5q>PbYsr)zH_#=B`IE-8!@Y;>qC=*xx6tzXXD*PQlKmz{P$T z?!o%JSP%K{VBK84!#31cDf)E$XG1r=?N3flWiWdYrK*|9@IWbjTs9xq5yX3El=Ms1 z#80xuA?uygK~9JzlYsVw>!E>YAD-KY#vm+}r+tlSPh`V&jr6Oo2ZS1a(S*^9S@f^> zn!mVtCR?f=8e+xZOT5?RPIliU74LJR`)LQuy&9(uPhAP=YxXIHdP@QI@n!jcwffI1 ziho+ZdueiEnSC(*>Csz1sF;TE^9{;ss#&W z%EO+~`Nu*GTQ4u&{HN0msk77J;`a_Gl$#zm;QRNF&c`qa#8yJ%@mr$i&9N?hq(;BYR}eK;Lb+ z@(4y&XSyEn$JQZLYNJ%7U{U_ZKvOz{#lrsd5CYgb!qBOH*Mf5zIy!WntxRgIVP@3V zjOEk;!u_$L04!xi=T2QuTZ69b;GYKjrqi#I(WrLVpZWB%Y5avv>y={TgG=MXrBslq z&*{cDFzpX8#lG!MIKt%}z{YwGa+5{^I8M(#V?a0o&fB+ZiIdpEt z3m%``QIh0EaF7bB#Ckoi6n-(xuCTYKYh_P)M?N0a;L{^*O?)!xaT^9|c*f~f&w4Q} z_!@AXv%~q+i8&VBB++kB>d?nQn(Qek7R4|uy6~;X(bcY}50GEO-C@MT1bIlIK+>vV zI;_G1@jyv)mf5-hOLRyQ4F9F3Pp1Vc)e^LdPo8Qy9R_Cw<6CSEDA4x&s+|O*E$AN= z(xefwbljj|N@D2H7FDVTVztK7T?TX*VL;%UX;JvtB#$fT>5QU@@@xe(Hs-}7R3AE$ zg23amAW4R=4&Cfy5z(hGg~o@_YKXQ6=!1AOus$S!C4gP`5C+n&#G?P!6AYnmP78)X zUDHO|4=))yX=OmX5e8olh}>Z$==d6xGQIC8c^DFcyq;*1T$YHkAApQ1t0p~X;cxbj z=LzyB?mK8jyOr#rt1dgP9`y*);~*Le0Pc-sEm)7J)uS&VAbLW{Y*>tGQyEB=^F&p9 ziRxfIsKm!KkkJU3hYB%Ts32?f^dYMD29T*usnOSt%fZrHJ^2Q?!eXZKm<;rVSE)sg zF`YFo?2y7>Q)^p`EjxzyH3EJl7U6Oc0nV-_YEijJSycJ)05j0Hx;}1PIXG|^VJ)g( zOU%J#6?jj&BGE?BG7Y78ovtl9XT^6oL+exOFG@7UQ91FB9({GZE zY_-Oo^jS_N|$X z#g0@FG$1x9Xj}4zAQ!I>WvIzS;u02NLK|{?GzPsvs=6}Kl|ecq(4`bTo%^Uch^j(O zWGzt?uyKOT@si+sQG^5^_@xr{p*tuhhBgJ+6KtZWVVViE!Oe22Vh$6nmMuLY7d@ha ze<5vfLp%sRKU$<)SW?^L7`f0`vHDY{&;;H2O%C_P7JrAbXt14Tm7jxvMuC4=h`qU`XDPmV7x97<71nOT40tcy`37xxl{N9J zW#FZ%FcJ8Ho9H-7V&_5b(T*$wI8O+&DrrlhugqW#-QB4LW9FctQMu-|jsPUcv-({A zu87Y^)no$pm#@qlY^QAIfSk7hHgnQz$qAc}qyVR&5))xG^cb>vcufy4s;6P;;Q|#s zc1KszlMr^~sKsUUc|^82g)D3zno*^XdhDuq*2-8Dsi((fdPSjWyQzC6iEKQ+j!A~` z;XCZ>Jvmc@67`Wz{rph%^(qT{i)*Uh7d9mQ{Iw4|LB+KU=cCR^q3TDzpeY#NE=-uB zoQ{O6cf_Tuc85oHMPH0_ylCXq72~XhY@~o_{s^4u3j_@JJ9N=mKczB)3WJ{XtY)Hy z2;KZdKA{mqGvb_@=^A^CX=b! zu(Cr@pij}&S#OxDAL*ZHshbLd3IYMH9jOn9P|uU~(eDboCyQ+=KOx8n3Ytt0$j~blQ(y;1 zM9^X0u&Nw9!bB#vfqt(df~p?UX<7)FQ>x4j_a) zcvLdIvHZzD=J`13a{&vk`1Ck>-ZSx{IO>BI2!c?Ah&#$VxcOrA4rCFe&RHrL9BHIQ35%^faJckEXIp|H`I!cC@r~JFdKJ zplJs4aUU?D1~BIpakW%n`ZYla5`}~X_tT>J=g$`4C)#r{khyO|MHw|lTk{#uiYi6< zIgA23rtiDE{7E-~YOI>lbB3PEI<7)c{x!)}2d0qDzyZ!x!s);p4gYf%vMeMLX!yoex!+&`-f4%{J z*|VB|1Cn^?wULlsQvd(}24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf z00007bV*G`2jU6`3oi*Ls$UrZ02RGSL_t(|+U;HGa}>wjetKqhXHTsT143FPafblG z*u*jBHDE`iQkA5f*fEe){(@BUF@H}gspLbzm=G#d5j%wgBpgLd6fTET2mwOJYNcK6 zIWzr!7*;G;$L>teOwVjTRZ|1h($mxZ^wUrOrVsL)-#n&h0<@`LyPGD9bQVv82JoHy z@Gi8eG!!q1>}0w&a>P$gJSH=x03q-d6a)n98V2E>=mItf?WBV8q|Pt$LId?)tzie7 zAat$EVO>eQRr-tfd8w}>Z{LTqBeat*#4=6c zot^8g0^y-s#WS<^&U`jfK6+6%-$z=gbvo5Td9)fY-j^(L`BT;Glnsvx-RS!$wbtl# zE8=xv5k&9I<2c6+|J+cNgXcmIqIaeu+|AZQw_XJa202-8Zr8u!M^#{(-{3_zSdA@s z;YBm~Q2aqUCzV4)Hx}~F)+Z8qYrZAXxmt^A@Ej4aqsq?ocJA3g#fet#57iH5biSEv(R9^qf*~3%OCx?7es9DMV)N zy}qu{UNv~hZsAetxA`A*k*m491a;1{on=y#gF;cza!4n-5`Xm-LUfB3aggw2X!{nTR2fgA&5i> zqEYjT#U#YzGLlINiG+k$j35$`peW?|B|%Zl|0m0}%Ore_$S*EZ*PEHouaVU-09`jp ztm_n-Mp3Prck|B%ibaaKIRp8;fw?*JDiq9rFO?|DW%K`d9o;bB&D%I8w+ihB#4GOit<;AJ>q{ zXqcTfkk6ZhuQeR!qZ`EYFN_KgM009zBg;S}LeSMEW93Q(y}co zu(`tl?iAV%nPnM>MkTCRAtRj*A)OAPyE}wbN=70f2kNWday?Ov?CEqE+qRh`&*yby zvpUAcs(AFMg3-|`#>aIO3dVCk-$Dw_t1`1v>swK*S)(GAk`WFQ!Q3WU^9TVF34$FvBG|Pnj_&RdLLot77QQ?Zk+73AS!kv1d;l>9i{BgoET(Rf5f%qgb~tg1dK1 z_{Tr;xO1mk7aHWxJI@pP)fgmi%1j85PKWUR`*CdE9EGY1MRp6J5W$u$QS|kN@#U8V zoH;XxsVRK{MfN_r!G%IEyOX2>?AjH@d+#OD)upsdl!7zz=?q!fUSyGV>56S-V!n!GrDCxl?^^F{mS? z3|y2$RSCZLy#)5`Nr*uoXa0KS$`F41;|>_cG=_%CuPC**c4J8BwEE5BVPv>mU!P*>I6 zt%#2(0m0g}DrDJxb*@jxQ-zjgps!C127`i*4%u^Yk{V&ZQ?v1EE0+a=0aZ2kFY!v9 z8zQumr(&rpK{za;8$p4&--);N>FJunNQ8(LC;=N7#^Wu#gMTC<6go&SH}@f)*$u$O za|##p&{hW#g@U=q8!wO~GZx#dJ);!JWV9vr!k`}1i)1;J>h)Y4Pp7ukcJ8!-n>UL% zeLB~43ucYlGZG02zx?HEP0vTERt@~&4;jqP8m{Gep?9c>8X>^u&0!om)X9j@)YUri z<*{x6P^nN%P3e}qCf41Zrcul3WU~gQr*#fa)G}9buUVsWU;m4}U*HX_e~!xF!Uex_ zxBXVGzoX)Q#ZktE=B+XZt8vutx8cwCQ@m3Fq0Ah{DHzrf^`t&rJnNgfM(kEqX1m_m z4+_2P=0rl7#dskI-nov@&YX*}{8`%Um7tZC*}iA4-{;xC4OVepIf*N(-Rhp%+WQlS z6xus5Q|RRt**S%7b!E02)nKy&zq94oXgUrkG-;p^`6nJP`yIQ{d$Qhv-%C-jtkBIX zvWRBz8r7&*XusPI1`17@C`9L!nx!)Ph1l$(8iZ?MXeOvv*8QZ=Z02h4aW=OH3Qd+N9Dge_PtgYV zp2OeiRje9r-HH`zvBe9|?50Aqj%ozOJ1?Nn#6}_cP!qX|W)O!Pq5r-J+B&?RQhv_J zXf0)Ss~r8M%nXi3CV?a`|H|CBLbHu(1b6EQrPT&9w>oJaRo1&r+D2o5TcoBk@JwexrMy%M$gxGFNfVajWw$B&vy*k&Y zrPRk(d5cyE2sG{gMG*)DMV;q8v`}LKKMw?jLJI`8aR@>SxTe5vH~~Ru0j6+kH{Qh> zha###z-gkfR_3MB6ACR5C`i1uW`Wl6)J~))2{H==sg4yvV1Xbt5aFQ(0wrKd&|XL& zm}G7=O-T@0AV>{FapGZu)B;`!q~z9v1O&M9&_am?{NTl#QfNX%Aq#M>(9Nt^5sECp zvpO$mIRt41{7U9|LJJZL1cA&=duRax-XRDr5Eyk9gcb-CnHL-s1_g!z=sJaA0D!rJ zy(9s$Oj;)VNa>3*sGYAONtiE(ppiL{gf5i~jEz+>GE%{lCsoYO8qhR~NQ9uhT}E$j z82$ZWbag3~HdpimG>syY(J(Sn!J|hNWHLHRB??&vl1Ule-3t2q!|3S=BN~+g)xZNo zXkDim9xmhT**V<4T}Gj>aI+_*fMim_8*fDL&N~ULTp0>Xg;EM+G8!&k%;VCfBC=Wi zc@OnlaO+kD zAAZ<|jT<9eb-`AN@$g|8pL~+V!-v&niBc+2+_+K3-MbYWIFP`;eMv;4lCR0^>Y$L) zuV1XleExh6$B)l0OXgSeGd8B-kAKYK_U+Q5O6C_b4-c2|yWeFnJX~$6Y|CYeQ>SwH z?6X-Ei-xbs?E5H(VF1^z6>$1=9-3yYFlS~AeDcW*o<6Pkwj8FWG#opY#l(bexg5`& znZxDFbI^6_TQWOJXeZQop^E(c^E^r=YO63OCUl%RlS8HAzfY!`X7*6S!&O`9RI3z! z|9c)!pH|^#NIbW;<(@kdFj$~1tw`_GCD3@$~&sk zzSykMDSx~aibVrML&asE)o6YU1NhH>iqJIws5GU(&6@>gJ&P$4W#n?YFUi~#p=+6W z_3jn2Sq-D38q+kdUoWFv_Rr|BR5Eb&YME)8nT(E!3IEy-$w~|3fz+AI;xSgMJw>TR zoATpcL)R&$r|qlhtLNrCe$1B8ZuQ!}j&jV+>CC$|O#{Zq{iRM$5XH{}!>_GaaZ_~- z!@MNPenqm#H>K3q@n|b$xX{_~FXM(BKAM>cDC8Z7X% z_DUscnb5JAjP2W1W-3hxuybeBS5rzQ3D~kF(r}&|IR$vzHWh7cvc(?PKrZL)AjDHb zSF03bW18j4eB+HcUVBYul9z4U!q~7O0>2@hR`J$bQ6_1%wMp2$J7IY$X)dRuSfs5> zXu|+TMknzb!eM)=no3DHaG(v5i2tIPp%B4)?VQ?^xSgg6q=<1U2)1RiW zeS6GOESwh*0&LzK#m|4OPa zy#2OjIb2lpk~?<9ux_1-k&y}>JSbyqOhYbbE|OJMf>cUIZ*K_e)~V>}3Hj19FQ?SK zyDTKoW{rzF|^@UNb z()q0n2ruwq370%6>;nDRz|wx<2uft=cix<8WAFjix=~@mw$0V=!IgNc0x9k0v9h9 zas7Hh?1t(CPzv0=Tf&($b6m|(lo}=OLZoF)ymFc1woZ|icdeyVrohg z?BNVEGdfP3$l}J0GMCm+swc0TtG1Wx5pLb8;ONn5jE`4^r{+ePbsRsQ#g!}k?li^q z@{F4|D=3ww@xccv^!KZQk00|q0DSVKf)giZxK(D`Q4Y6o|9%y}|NS&BUCO(<_nLr- zN`>O;)j9n3w;5c&Ugo~H^u+?YsVN=Dj?Lo!{R;N&OQ5GGEY#WsRURL&;_TTxE?p`t zx;?QVv<;=Wbg76tcglGC?HG3LileJb5r=^~fNWO7mtPie{(J%B zEndnr0XjR)^>jOS#ISN@2&yVRbz6mD0OhiQ$w>{@t`%_QN)gYV>AoC{b4%z(3o{ZS z=sc0y96LfzX5NCJ~}j+C1DHVityI(v3j$Mm#@ z(a{R--mPGCRBLLFZDBbW61j#_iQ?Y9D(>B@LYC(cixI?P65??Q(I`PrPY8p9ZS(th z*u{efW&HD>jqOLxg7k@mguQzcwkK^>s}yI>=w=kg$ys?zlUZg;<|j`oIC5kfBO_Hu$=t|q{`=oDjvSdrCZpLR zb$53NhYtsn)RL1Gj)4JoHsk2gEbiUogUt2z|-n=>7x`bxE zQiat3@ZdpqHsk42bNcGtyX-ekVKIi#b&7xgyM&V`v$oDd3F1IevZBB|g?v~K04F9i zeER7$Zr^r>%&eg66qhd-@t413Q79O;NWFS>2!{>@!&6HO?S#+U0YOU*01qE#N9M^% z4abg6RR^Kym$gf0J5ruF#!r1*=xcIDEK+nP;AwGL_kh z`MypHf?)s`E|l=szs}gUAFEe~@w1=#Td5_0Iy9hjVxkb8zrX%^gc+G9CrvV6yT*>p zZm#~(b&7xetBBL5XOYhvwn_b?AGNh!lw%>1Eq!PEoN$;hA#*09;lzn76Eb^g(W+I7 zbLR^9+uvqvErcKhNF?M|CiJU{yx83ef$J~!-FR)m=g^S-HF92&xxN>uRw=&tqJYmn zoAKqj-le z7n_*y?`nJUt6x2$%@eK}!qNskHf^c`Rh2ZoAM~q(sa(zo6q)NG%Rn+ISt7Kifx8W4 zY$&un-c-Y&3?C%>p99=09h%~l99GxgByN$s}^ z;f2hC$hH-lEfM@wA-v^TklD6E)0QQ*P~<>cj-?CS%h+p>NhHY3kkB=vwo1YC_6~x~ z4teOs>;kWm2+>0bENVHHBC{ZlAh9nMTBx8Pb4v{h1&IZT1);@&Pe2el7^D$o7KHXa vVFZZ diff --git a/client/img/baseline-beenhere-24px.svg b/client/img/baseline-beenhere-24px.svg new file mode 100644 index 0000000..afe02c7 --- /dev/null +++ b/client/img/baseline-beenhere-24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-departure_board-24px.svg b/client/img/baseline-departure_board-24px.svg new file mode 100644 index 0000000..a35fc3f --- /dev/null +++ b/client/img/baseline-departure_board-24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-directions-24px.svg b/client/img/baseline-directions-24px.svg new file mode 100644 index 0000000..bea8287 --- /dev/null +++ b/client/img/baseline-directions-24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-directions-24px_white.svg b/client/img/baseline-directions-24px_white.svg new file mode 100644 index 0000000..01a17b2 --- /dev/null +++ b/client/img/baseline-directions-24px_white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-directions_walk-24px.svg b/client/img/baseline-directions_walk-24px.svg new file mode 100644 index 0000000..453908e --- /dev/null +++ b/client/img/baseline-directions_walk-24px.svg @@ -0,0 +1 @@ + diff --git a/client/img/baseline-expand_more-24px.svg b/client/img/baseline-expand_more-24px.svg new file mode 100644 index 0000000..690a0a1 --- /dev/null +++ b/client/img/baseline-expand_more-24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-import_export-24px.svg b/client/img/baseline-import_export-24px.svg new file mode 100644 index 0000000..4547ce1 --- /dev/null +++ b/client/img/baseline-import_export-24px.svg @@ -0,0 +1 @@ + diff --git a/client/img/baseline-navigation-24px.svg b/client/img/baseline-navigation-24px.svg new file mode 100644 index 0000000..2a6d867 --- /dev/null +++ b/client/img/baseline-navigation-24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-place-24px.svg b/client/img/baseline-place-24px.svg new file mode 100644 index 0000000..87530f8 --- /dev/null +++ b/client/img/baseline-place-24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-refresh-24px.svg b/client/img/baseline-refresh-24px.svg new file mode 100644 index 0000000..f68e554 --- /dev/null +++ b/client/img/baseline-refresh-24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-settings-20px.svg b/client/img/baseline-settings-20px.svg new file mode 100644 index 0000000..0737ecb --- /dev/null +++ b/client/img/baseline-settings-20px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/baseline-swap_vert-24px.svg b/client/img/baseline-swap_vert-24px.svg new file mode 100644 index 0000000..aa707b8 --- /dev/null +++ b/client/img/baseline-swap_vert-24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/img/bg.webp b/client/img/bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..745a9a3514369347bce685482e2a8bcaca86d122 GIT binary patch literal 121796 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 literal 0 HcmV?d00001 diff --git a/client/img/favicon-32x32.png b/client/img/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..b00c4255e2be5034cbe68efe395e2936e1dcb34a GIT binary patch literal 3591 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 TXW$Q!00000NkvXXu0mjf&y%f5 literal 0 HcmV?d00001 diff --git a/client/img/product_bus_color.svg b/client/img/product_bus_color.svg new file mode 100644 index 0000000..93c4e98 --- /dev/null +++ b/client/img/product_bus_color.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_bus_grey.svg b/client/img/product_bus_grey.svg new file mode 100644 index 0000000..5cb2471 --- /dev/null +++ b/client/img/product_bus_grey.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_call_color.svg b/client/img/product_call_color.svg new file mode 100644 index 0000000..c1d3a33 --- /dev/null +++ b/client/img/product_call_color.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_call_grey.svg b/client/img/product_call_grey.svg new file mode 100644 index 0000000..e736bcc --- /dev/null +++ b/client/img/product_call_grey.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_ferry_color.svg b/client/img/product_ferry_color.svg new file mode 100644 index 0000000..41f2e49 --- /dev/null +++ b/client/img/product_ferry_color.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_ferry_grey.svg b/client/img/product_ferry_grey.svg new file mode 100644 index 0000000..3754de5 --- /dev/null +++ b/client/img/product_ferry_grey.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_highspeed_color.svg b/client/img/product_highspeed_color.svg new file mode 100644 index 0000000..0f0cd4b --- /dev/null +++ b/client/img/product_highspeed_color.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_highspeed_grey.svg b/client/img/product_highspeed_grey.svg new file mode 100644 index 0000000..4ec1024 --- /dev/null +++ b/client/img/product_highspeed_grey.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_suburban_color.svg b/client/img/product_suburban_color.svg new file mode 100644 index 0000000..e5e7254 --- /dev/null +++ b/client/img/product_suburban_color.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/client/img/product_suburban_grey.svg b/client/img/product_suburban_grey.svg new file mode 100644 index 0000000..38345ea --- /dev/null +++ b/client/img/product_suburban_grey.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/client/img/product_subway_color.svg b/client/img/product_subway_color.svg new file mode 100644 index 0000000..0e56faf --- /dev/null +++ b/client/img/product_subway_color.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_subway_grey.svg b/client/img/product_subway_grey.svg new file mode 100644 index 0000000..6257f46 --- /dev/null +++ b/client/img/product_subway_grey.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/client/img/product_train_color.svg b/client/img/product_train_color.svg new file mode 100644 index 0000000..306d2f6 --- /dev/null +++ b/client/img/product_train_color.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/client/img/product_train_grey.svg b/client/img/product_train_grey.svg new file mode 100644 index 0000000..4e027d6 --- /dev/null +++ b/client/img/product_train_grey.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/client/img/product_tram_color.svg b/client/img/product_tram_color.svg new file mode 100644 index 0000000..3f958eb --- /dev/null +++ b/client/img/product_tram_color.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/client/img/product_tram_grey.svg b/client/img/product_tram_grey.svg new file mode 100644 index 0000000..93f5316 --- /dev/null +++ b/client/img/product_tram_grey.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/client/index.html b/client/index.html new file mode 100644 index 0000000..b1657a1 --- /dev/null +++ b/client/index.html @@ -0,0 +1,90 @@ + + + + oeffisear.ch BETA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ + + diff --git a/client/js/api.js b/client/js/api.js new file mode 100644 index 0000000..511a82e --- /dev/null +++ b/client/js/api.js @@ -0,0 +1,41 @@ +'use strict'; + +import { showDiv, hideDiv } from './helpers.js'; +import { ConsoleLog } from './app_functions.js'; +import { showAlertModal, showLoader, hideLoader } from './overlays.js'; + +const api_base = ''; + +const errorMessages = { + '': 'Unbekannter Fehler', + 'REQUEST_NOT_FOUND': 'Ungültige Reise', + 'JOURNEY_NOT_FOUND': 'Verbindung nicht verfügbar', + 'TRY_AGAIN_LATER': 'Versuche es zu einem späteren Zeitpunkt erneut', + 'MISSING_VALUES': 'Benötigte Felder nicht ausgefüllt', + 'INVALID_DATE': 'Ungültiges Datum', + 'UNKNOWN_FROM': 'Unbekannter Abfahrtspunkt', + 'UNKNOWN_TO': 'Unbekannter Ankunftspunkt', + 'TOO_CLOSE': 'Abfahrts- und Ankunftspunkt zu nah', + 'NO_TRIPS': 'Keine Verbindungen gefunden', +}; + +export const get = async (endpoint, params, noLoader) => { + if (!noLoader) showLoader(); + let data; + try { + data = await fetch(api_base+endpoint+"?"+JSON.stringify(params)) + .then(resp => resp.json()); + } catch(e) { + data = { + msg: "Failed to fetch. Please check your network connection.", + }; + } + if (!noLoader) hideLoader(); + + if (data.status !== 'success') { + showAlertModal(errorMessages[data.msg] || data.msg); + throw new Error(data.msg); + } else { + return data.data; + } +} diff --git a/client/js/app.js b/client/js/app.js new file mode 100644 index 0000000..fd7d13a --- /dev/null +++ b/client/js/app.js @@ -0,0 +1,37 @@ +'use strict'; + +import { route, go, start } from './router.js'; +import { searchView } from './searchView.js'; +import { journeysView } from './journeysView.js'; +import { journeyView } from './journeyView.js'; +import { restoreDataStorage, ConsoleLog, loadDS100 } from './app_functions.js'; +import { showDiv, hideDiv, ElementById } from './helpers.js'; + +export const devMode = true; +export const dataStorage = restoreDataStorage(); + +const main = async () => { + window.addEventListener('load', () => hideDiv('overlay')); + + if (dataStorage.settings.showRIL100Names) await loadDS100(); + + route(/^\/$/, searchView); + route(/^\/([a-zA-Z0-9]+)$/, journeysView); + route(/^\/([a-zA-Z0-9]+)\/([-0-9]+)$/, journeyView); + + if (!window.location.hash.length) go('/'); + start(); +} + +main(); + +//const sw = navigator.serviceWorker; +//export let registration; +//if (sw) { +// sw.register('service-worker.js', { +// scope: './' +// }).then(function(reg) { +// ConsoleLog('Registration succeeded.'); +// registration = reg; +// }); +//} diff --git a/client/js/app_functions.js b/client/js/app_functions.js new file mode 100644 index 0000000..cd1de77 --- /dev/null +++ b/client/js/app_functions.js @@ -0,0 +1,228 @@ +'use strict'; + +import { devMode, dataStorage } from './app.js'; +import { showModal } from './overlays.js'; +import { languages } from './languages.js'; +import { vsprintf } from './sprintf.min.js'; + +let ds100 = {}; + +export const addCache = (mode, data) => { + if (data === undefined) { + return false; + } + + switch (mode) { + case 'journeys': + if (dataStorage.journeys[data.reqId] !== undefined) { + ConsoleLog(data); + dataStorage.journeys[data.reqId].lastUpdated = data.lastUpdated; + dataStorage.journeys[data.reqId].journeys = {...dataStorage.journeys[data.reqId].journeys, ...data.journeys}; + } else { + dataStorage.journeys[data.reqId] = data; + + const lastHistoryEntry = dataStorage.journeysHistory.slice(-1); + + if (lastHistoryEntry[0] !== undefined) { + if (JSON.stringify(lastHistoryEntry[0].fromPoint) !== JSON.stringify(data.params.fromPoint) || + JSON.stringify(lastHistoryEntry[0].toPoint) !== JSON.stringify(data.params.toPoint)) { + dataStorage.journeysHistory.push({ + fromPoint: data.params.fromPoint, + toPoint: data.params.toPoint, + reqId: data.reqId, + journeyId: '' + }); + } else { + dataStorage.journeysHistory[dataStorage.journeysHistory.length-1].reqId = data.reqId; + dataStorage.journeysHistory[dataStorage.journeysHistory.length-1].journeyId = ''; + } + } else { + dataStorage.journeysHistory.push({ + fromPoint: data.params.fromPoint, + toPoint: data.params.toPoint, + reqId: data.reqId, + journeyId: '' + }); + } + } + break; + + case 'journeysHistory': + if (data !== undefined) { + dataStorage.journeysHistory = data; + } else { + return false; + } + + break; + + default: + return false; + break; + } + + return saveDataStorage(); +}; + +export const getCache = (mode, reqId) => { + switch (mode) { + case 'journeys': + if (reqId !== undefined) { + if (dataStorage.journeys[reqId] !== undefined) { + return dataStorage.journeys[reqId]; + } else { + return null; + } + } else { + return dataStorage.journeys; + } + break; + + case 'journeysHistory': + return dataStorage.journeysHistory; + break; + + default: + return null; + break; + } +}; + +export const t = (key, params) => { + var language = 'en'; + + if (dataStorage.settings.language !== undefined) { + language = dataStorage.settings.language; + } + + if (languages['de'][key] !== undefined) { + return vsprintf(languages[language][key], params); + } else { + return key; + } +} + +export const parseName = (point) => { + let nameHTML = ''; + + if (point.stop) { + nameHTML += point.stop.name+ds100Names(point.stop.id); + } else if (point.location) { + if (point.location.name) { + nameHTML += point.location.name; + } else if (point.location.address) { + nameHTML += point.location.address; + } + } else { + return ""; + } + + return nameHTML; +}; + +export const ds100Names = (id) => { + if (dataStorage.settings.showRIL100Names !== false) { + if (ds100[Number(id)] !== undefined) { + return '('+ds100[Number(id)]+')'; + } else { + return ''; + } + } else { + return ''; + } +} + +export const ConsoleLog = (data) => { + if (dataStorage.settings.writeDebugLog !== false) { + console.log(data); + } +}; + +export const clearDataStorage = () => { + localStorage.removeItem('dataStorage'); + localStorage.removeItem('dataStorage_dev'); + location.reload(); +}; + +export const saveDataStorage = () => { + if (devMode !== true) { + localStorage.setItem('dataStorage', JSON.stringify(dataStorage)); + } else { + localStorage.setItem('dataStorage_dev', JSON.stringify(dataStorage)); + } +}; + +export const restoreDataStorage = () => { + let data; + + if (devMode !== true) { + data = localStorage.getItem('dataStorage'); + } else { + data = localStorage.getItem('dataStorage_dev'); + } + + if (data !== null) { + let dataStorage = JSON.parse(data); + + if (dataStorage.dbVer < 0.5) { + showModal('Lokale Datenbank veraltet - Datenbank wird neu erstellt.'); + if (devMode !== true) { + localStorage.removeItem('dataStorage'); + } else { + localStorage.removeItem('dataStorage_dev'); + } + + dataStorage = restoreDataStorage(); + } + + return dataStorage; + } else { + let userLang = navigator.language || navigator.userLanguage; + let language = 'en'; + + if (['en', 'de'].includes(userLang)) { + language = userLang; + } + + const data = { + dbVer: 0.5, + journeysHistory: [], + journeys: {}, + ignored: [], + favorites: [], + settings: { + provider: 'DB', + products: { + "nationalExp": true, + "national": true, + "regionalExp": true, + "regional": true, + "suburban": true, + "bus": true, + "ferry": true, + "subway": true, + "tram": true, + "taxi": true + }, + accessibility: 'none', + showRIL100Names: false, + writeDebugLog: false, + enableCanvas: false, + language: language + } + } + + if (devMode !== true) { + localStorage.setItem('dataStorage', JSON.stringify(data)); + } else { + localStorage.setItem('dataStorage_dev', JSON.stringify(data)); + } + + return data; + } +}; + +export const loadDS100 = async () => { + const module = await import('./ds100.js'); + ds100 = module.ds100; +}; diff --git a/client/js/canvas.js b/client/js/canvas.js new file mode 100644 index 0000000..db6875f --- /dev/null +++ b/client/js/canvas.js @@ -0,0 +1,321 @@ +'use strict'; + +import { moreJourneys } from './journeysView.js'; +import { dataStorage } from './app.js'; + +const padZeroes = (str) => ('00' + str).slice(-2); + +const formatTime = (date) => { + date = new Date(date * 1000); + return `${padZeroes(date.getHours())}:${padZeroes(date.getMinutes())}` +}; + +const textFor = (leg) => leg.line && leg.line.name || ""; +const colorFor = (leg, type) => { + let product = leg.line && leg.line.product || "walk"; + return colors[type][product] || colors[type].default; +}; + +const flatten = (arr) => [].concat(...arr); + +const colors = { + fill: { + 'tram': '#cc5555', + 'subway': '#5555cc', + 'suburban': '#55aa55', + 'nationalExp': '#fff', + 'national': '#fff', + 'regionalExp': '#888', + 'regional': '#888', + 'bus': '#aa55aa', + default: '#888' + }, + text: { + 'nationalExp': '#ee3333', + 'national': '#ee3333', + default: '#fff' + }, + icon: { + 'walk': 'directions_walk', + 'transfer': 'directions_transfer', + 'subway': 'directions_subway', + 'bus': 'directions_bus', + 'tram': 'tram', + default: 'train' + } +}; + +let rectWidth, padding, rectWidthWithPadding, canvas, ctx, dpr; + +const canvasState = { + journeys: [], + offsetX: 0, + firstJourney: 1, +}; + +const textCache = {}; +let textCacheWidth; +let textCacheDpr; + +export const setupCanvas = (data) => { + canvasState.offsetX = (window.innerWidth / dpr) > 600 ? 120 : 60, + canvas = document.getElementById('canvas'); + ctx = canvas.getContext('2d'); + canvasState.journeys = Object.keys(data.journeys).sort((a, b) => Number(a) - Number(b)).map(k => data.journeys[k]); + canvasState.reqId = data.reqId; + canvasState.firstJourney = Number(Object.keys(data.journeys).sort((a, b) => Number(a) - Number(b))[0]); + + canvas.addEventListener('mousedown', mouseDownHandler, {passive: true}); + canvas.addEventListener('touchstart', mouseDownHandler, {passive: true}); + updateTextCache(); + resizeHandler(); +}; + +const addTextToCache = (text, color, fixedHeight) => { + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + ctx.shadowBlur = dataStorage.settings.fancyCanvas ? 5 : 0; + ctx.shadowColor = '#00000080'; + + let height, width + if (fixedHeight) { + height = 15; + ctx.font = `${height}px sans-serif`; + width = ctx.measureText(text).width; + } else { + const measureAccuracy = 50; + ctx.font = `${measureAccuracy}px sans-serif`; + width = rectWidth - 10; + height = Math.abs(measureAccuracy * (width / (1 - ctx.measureText(text).width))); + } + + canvas.width = width * dpr; + canvas.height = (Math.ceil(height) + 1) * dpr; + ctx.scale(dpr, dpr); + + ctx.font = `${height}px sans-serif`; + ctx.fillStyle = color; + if (height > 10) { + ctx.fillText(text, 0, height); + textCache[text] = canvas; + } +}; + +const updateTextCache = () => { + textCache.length = 0; + textCacheWidth = rectWidth; + textCacheDpr = dpr; + for (let journey of canvasState.journeys) { + for (let leg of journey.legs) { + addTextToCache(textFor(leg), colorFor(leg, "text")); + + let times = []; + if (journey.legs.indexOf(leg) == 0) times.push(leg.departure); + if (journey.legs.indexOf(leg) == journey.legs.length - 1) times.push(leg.arrival); + for (let time of times) { + addTextToCache(formatTime(time.prognosedTime || time.plannedTime), "#fff", 15); + } + } + } +}; + +const renderJourneys = () => { + ctx.clearRect(0, 0, canvas.width / dpr, canvas.height / dpr); + ctx.fillStyle = '#00000080'; + ctx.fillRect(0, 0, canvas.width / dpr, canvas.height / dpr); + let x = canvasState.offsetX, y; + + let firstVisibleJourney = Math.max(0, Math.floor((-canvasState.offsetX + padding) / rectWidthWithPadding)); + let numVisibleJourneys = Math.ceil(canvas.width / dpr / rectWidthWithPadding); + let visibleJourneys = canvasState.journeys.slice(firstVisibleJourney, firstVisibleJourney + numVisibleJourneys); + + if (!visibleJourneys.length) return; + + let firstDeparture = visibleJourneys[0].legs[0].departure.plannedTime; + let lastArrival = Math.max.apply(Math, + visibleJourneys.map(journey => journey.legs[journey.legs.length-1].arrival.plannedTime) + .concat(visibleJourneys.map(journey => journey.legs[journey.legs.length-1].arrival.prognosedTime)) + ); + let scaleFactor = 1/(lastArrival - firstDeparture) * (canvas.height - 64 * dpr) / dpr; + + let time = canvasState.journeys[0].legs[0].departure.plannedTime; + + ctx.font = `${(window.innerWidth / dpr) > 600 ? 20 : 15}px sans-serif`; + ctx.fillStyle = '#aaa'; + while (time < lastArrival) { + let y = (time - firstDeparture) * scaleFactor + 32; + ctx.fillText(formatTime(time), (window.innerWidth / dpr) > 600 ? 30 : 10, y); + ctx.fillRect(0, y, canvas.width / dpr, 1); + time += Math.floor(120/scaleFactor); + } + ctx.fillStyle = '#fa5'; + y = (Number(new Date()) / 1000 - firstDeparture) * scaleFactor + 32; + ctx.fillRect(0, y-2, canvas.width / dpr, 5); + + const p = new Path2D('M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z'); + ctx.fillStyle = '#fff'; + ctx.shadowBlur = dataStorage.settings.fancyCanvas ? 5 : 0; + ctx.shadowColor = '#00000080'; + ctx.save(); + ctx.scale(3, 3); + ctx.translate(x / 3 - 15, canvas.height / dpr / 6 - 24); + ctx.rotate(-Math.PI*1.5); + ctx.fill(p); + ctx.restore(); + ctx.beginPath(); + ctx.arc(x - 80,canvas.height / dpr / 2 - 35,50,0,2*Math.PI); + ctx.fillStyle = '#ffffff40'; + ctx.fill(); + ctx.strokeStyle = '#00000020'; + ctx.stroke(); + + for (let journey of canvasState.journeys) { + journey.legs.reverse(); + for (let leg of journey.legs) { + let depDelayed = leg.departure.prognosedTime && leg.departure.prognosedTime != leg.departure.plannedTime + let arrDelayed = leg.arrival.prognosedTime && leg.arrival.prognosedTime != leg.arrival.plannedTime + if (depDelayed || arrDelayed) { + const start = leg.departure.plannedTime; + const stop = leg.arrival.plannedTime; + const duration = (stop - start) * scaleFactor; + + y = (start - firstDeparture) * scaleFactor + 32; + + ctx.shadowBlur = 0; + ctx.fillStyle = '#44444480'; + ctx.strokeStyle = '#ffffff80'; + ctx.fillRect(x-padding, y, rectWidth, duration); + ctx.strokeRect(x-padding, y, rectWidth, duration); + } + } + x += rectWidthWithPadding; + } + + x = canvasState.offsetX; + + for (let journey of canvasState.journeys) { + for (let leg of journey.legs) { + const start = leg.departure.prognosedTime || leg.departure.plannedTime; + const stop = leg.arrival.prognosedTime || leg.arrival.plannedTime; + const duration = (stop - start) * scaleFactor; + + y = (start - firstDeparture) * scaleFactor + 32; + + ctx.shadowBlur = dataStorage.settings.fancyCanvas ? 10 : 0; + ctx.shadowColor = '#00000060'; + + if (leg.isWalking || leg.isTransfer) { + ctx.fillStyle = '#777'; + ctx.fillRect(x + rectWidth / 2 - rectWidth / 10, y, rectWidth / 5, duration); + } else { + ctx.fillStyle = colorFor(leg, "fill"); + ctx.fillRect(x, y, rectWidth, duration); + } + + ctx.shadowBlur = 0; + + let preRenderedText = textCache[textFor(leg)]; + if ((preRenderedText.height / dpr) < duration - 5) { + ctx.scale(1 / dpr, 1 / dpr); + ctx.drawImage(preRenderedText, dpr * (x + 5), Math.floor(dpr * (y + duration / 2) - preRenderedText.height / 1.5)); + ctx.scale(dpr, dpr); + } + + /* draw journey start and end time */ + let time; + // note: leg order is reversed at this point in time + let times = []; + if (journey.legs.indexOf(leg) == journey.legs.length - 1) times.push([leg.departure, y - 9.5]); + if (journey.legs.indexOf(leg) == 0) times.push([leg.arrival, y + duration + 7.5]); + for (let [time, y] of times) { + preRenderedText = textCache[formatTime(time.prognosedTime || time.plannedTime)]; + ctx.scale(1 / dpr, 1 / dpr); + ctx.drawImage(preRenderedText, Math.ceil(dpr * (x + ((rectWidth - preRenderedText.width/dpr)) / 2)), dpr * (y - 7.5)); //Math.floor(dpr * (x + rectWidth / 2) - preRenderedText.width), dpr * (y - 1)); + ctx.scale(dpr, dpr); + } + } + + journey.legs.reverse(); + x += rectWidthWithPadding; + } + ctx.fillStyle = '#fff'; + ctx.shadowBlur = dataStorage.settings.fancyCanvas ? 5 : 0; + ctx.shadowColor = '#00000080'; + ctx.save(); + ctx.scale(3, 3); + ctx.translate(x / 3 + 5, canvas.height / dpr / 6); + ctx.rotate(Math.PI*1.5); + ctx.fill(p); + ctx.restore(); + ctx.beginPath(); + ctx.arc(x + 50,canvas.height / dpr / 2 - 35,50,0,2*Math.PI); + ctx.fillStyle = '#ffffff40'; + ctx.fill(); + ctx.strokeStyle = '#00000020'; + ctx.stroke(); +}; + +const resizeHandler = () => { + dpr = window.devicePixelRatio || 1; + if (!document.getElementById('canvas')) return; + + rectWidth = (window.innerWidth / dpr) > 600 ? 100 : 80; + padding = (window.innerWidth / dpr) > 600 ? 20 : 5; + rectWidthWithPadding = rectWidth + 2 * padding; + + if (rectWidth !== textCacheWidth || dpr !== textCacheDpr) updateTextCache(); + + const rect = document.getElementById('header').getBoundingClientRect(); + canvas.width = window.innerWidth * dpr; + canvas.height = (window.innerHeight - rect.height) * dpr; + canvas.style.width = `${window.innerWidth}px`; + canvas.style.height = `${window.innerHeight - rect.height}px`; + + ctx.restore(); + ctx.save(); + ctx.scale(dpr, dpr); + + renderJourneys(); +}; + +const mouseUpHandler = (evt) => { + let x = evt.x || evt.changedTouches[0].pageX; + if (canvasState.dragging && Math.abs(canvasState.dragStartMouse - x) < 20) { + let num = Math.floor((x - canvasState.offsetX + 2 * padding) / rectWidthWithPadding); + if (num >= 0) { + if (num < canvasState.journeys.length) { + window.location.hash += '/' + (num+canvasState.firstJourney); + } else { + moreJourneys(canvasState.reqId, "later"); + } + } else { + moreJourneys(canvasState.reqId, "earlier"); + } + } + + canvasState.dragging = false; +}; + +const mouseDownHandler = (evt) => { + let x = evt.x || evt.changedTouches[0].pageX; + canvasState.dragStartMouse = x; + canvasState.dragStartOffset = canvasState.offsetX; + canvasState.dragging = true; +}; + +const mouseMoveHandler = (evt) => { + if (canvasState.dragging) { + evt.preventDefault(); + let x = evt.x || evt.changedTouches[0].pageX; + canvasState.offsetX = canvasState.dragStartOffset - (canvasState.dragStartMouse - x); + renderJourneys(); + return true; + } +}; + +window.addEventListener('mouseup', mouseUpHandler); +window.addEventListener('touchend', mouseUpHandler); +window.addEventListener('mousemove', mouseMoveHandler); +window.addEventListener('touchmove', mouseMoveHandler); +window.addEventListener('resize', resizeHandler); +window.addEventListener('zoom', resizeHandler); diff --git a/client/js/ds100.js b/client/js/ds100.js new file mode 100644 index 0000000..bf2deed --- /dev/null +++ b/client/js/ds100.js @@ -0,0 +1 @@ +export const ds100 = {"8000001":"KA","8000002":"TA","8000004":"HA","8000007":"FALZ","8000009":"NAN","8000010":"NAH","8000011":"AAG","8000012":"KAU","8000013":"MA","8000014":"TAU","8000015":"FBA","8000016":"TB","8000017":"TBF","8000019":"HBHA","8000020":"FBHF","8000021":"SBKN","8000022":"HNDF","8000023":"AO","8000025":"NBA","8000027":"NSCH","8000028":"NBY","8000029":"FB","8000030":"KBE","8000031":"FBH","8000032":"NS","8000033":"KSWE","8000034":"EBZ","8000036":"EBIL, EBILP","8000037":"ESRT","8000038":"TBM","8000039":"FBGK","8000040":"EBCH","8000041":"EBO","8000042":"RSE","8000043":"HSSN","8000044":"KB","8000045":"KBOP","8000046":"ESIE","8000047":"EBTH, EBTHP","8000048":"EBWE","8000049":"HBS","8000050":"HB","8000051":"HBH","8000053":"RBT","8000054":"EBRW","8000055":"RBR","8000056":"ABLZ","8000057":"MBU","8000058":"ABCH","8000059":"HBDE","8000060":"KSIH","8000061":"FBNG","8000062":"EBFT","8000063":"TCW","8000064":"HC","8000065":"FCOE","8000066":"ECMF","8000067":"TC","8000068":"FD","8000069":"TSIG","8000070":"HD","8000071":"HDBG","8000073":"RSI","8000074":"FDIL","8000075":"SDL","8000076":"ESOT","8000077":"RDO","8000078":"MDT","8000080":"EDO","8000081":"EDDP, EDDPH, EDDPT","8000082":"KDF, KDFF, KDFFH","8000083":"EDUL, EDULH","8000084":"KDN, KDN P","8000085":"KD","8000086":"EDG","8000087":"KSO","8000088":"HSO","8000089":"AST","8000090":"HEBG","8000091":"NSTN","8000092":"AEL","8000093":"HELZ","8000094":"KENR","8000095":"NST","8000098":"EE","8000099":"EEST","8000100":"KEU","8000101":"TET","8000102":"EFP","8000103":"AF","8000105":"FF, FFT","8000106":"FHOE","8000107":"RF","8000108":"MFL","8000110":"TFS","8000111":"FFG","8000112":"TF","8000113":"EFOE","8000114":"NF","8000115":"FFU","8000116":"MTS","8000117":"FGEL","8000118":"EG","8000119":"MGE","8000120":"NGM","8000121":"FGHO","8000122":"MTL","8000123":"SGR","8000124":"FG","8000125":"EGBW","8000126":"FGE","8000127":"TGO","8000128":"HG","8000129":"FTS","8000130":"HGS","8000131":"RGN","8000133":"KGRB","8000134":"STR","8000135":"KT","8000136":"FGER","8000137":"RGR","8000138":"KGUA, KGUI","8000139":"MGZB","8000140":"FGTH","8000141":"TT","8000142":"EHG","8000143":"RWGA","8000144":"MTHB","8000145":"EHLT","8000146":"RWPF","8000147":"AHAR, AHRS","8000148":"HHM","8000149":"EHM","8000150":"FH, FH N, FH S","8000152":"HH","8000154":"STM","8000155":"AHI","8000156":"RH","8000157":"TH","8000158":"FHWD, FHWR","8000159":"HHLM","8000160":"THT","8000161":"FHRB","8000162":"EHFD","8000163":"TTU","8000164":"EHER","8000165":"EHDT","8000166":"HHB","8000167":"HHES","8000168":"HU","8000169":"HHI","8000170":"TU","8000171":"EUN","8000172":"FHT","8000173":"NHOB","8000174":"KV","8000175":"SVL","8000176":"SHO","8000177":"THB","8000178":"KHR","8000180":"TWN","8000181":"AHM","8000182":"RIM","8000183":"MIH","8000185":"HGI","8000186":"EIL","8000189":"SKL","8000190":"KKAK","8000191":"RK","8000192":"EWAN","8000193":"FK","8000194":"MKFB","8000195":"MKFG","8000196":"HWAR","8000197":"MKP","8000198":"EKG","8000199":"AK","8000201":"NKL","8000203":"TKG","8000204":"NWDO","8000205":"KKLV","8000206":"KKO","8000207":"KK","8000208":"KKER, KKERP","8000209":"KKM","8000211":"KKR","8000212":"KKRO","8000213":"HK","8000214":"EKT","8000215":"ELAG","8000216":"RLA","8000217":"MLA","8000218":"FWG","8000220":"MWH","8000221":"TL","8000222":"FLAU","8000225":"HLEE","8000226":"HLER, HLERA","8000227":"ELE","8000228":"NLF","8000229":"FL","8000230":"MLI","8000233":"HL","8000234":"FLOL","8000235":"TLU","8000236":"RL, RL T","8000237":"AL","8000238":"ALBG, ALBGW","8000239":"ELUE","8000240":"FMZ","8000241":"FMB, FMB P","8000242":"EWES","8000243":"FMFH","8000244":"RM","8000245":"FWBG","8000247":"NMR","8000248":"KMYO","8000249":"MM","8000250":"FW","8000251":"EWIT","8000252":"HM","8000253":"KM","8000254":"RWRT","8000255":"HWOH, HWOL","8000256":"MRBI","8000257":"FWOR","8000259":"EMLR","8000260":"NWH","8000261":"MH, MH N, MH S, MHT","8000262":"MOP","8000263":"EMST, EMSTP","8000264":"RNZ","8000265":"RNM","8000266":"KW","8000267":"NNE","8000268":"HWUN","8000269":"NNS","8000271":"AN","8000272":"SNK","8000273":"DMBH","8000274":"KN, KN O, KN W","8000275":"RN","8000276":"KNE","8000277":"FND","8000278":"KNL","8000279":"HNBG","8000280":"MNL","8000282":"HNOS","8000283":"HN","8000284":"NN","8000285":"FORD","8000286":"EOB","8000287":"NOKP","8000288":"FWB","8000290":"RO","8000291":"HOLD","8000294":"HO, HO O, HO U","8000295":"TO","8000297":"EPD","8000298":"NPA","8000299":"TPH","8000301":"NPL","8000302":"TP","8000304":"HQ","8000306":"RRA","8000307":"ERE","8000309":"NRH","8000310":"KRE","8000311":"KRL","8000312":"AR","8000313":"TRX","8000314":"TRE","8000315":"ERDW","8000316":"HR","8000317":"KRH","8000318":"KRY, KRY P","8000319":"SRO","8000320":"MRO","8000321":"AROG","8000322":"TR","8000323":"SSH","8000324":"KBPS","8000325":"HSRI","8000326":"RSD","8000328":"NSAW","8000329":"TSG","8000330":"TSHT","8000331":"KAND","8000332":"RFT","8000333":"RHA","8000334":"AJ","8000335":"HLST","8000336":"TLK","8000337":"FMBG","8000338":"MMH","8000339":"TM","8000342":"HWEZ","8000343":"DSCF","8000344":"HWTT","8000346":"EBK","8000347":"FSTM","8000348":"KST, KST P","8000349":"FO","8000350":"FAFD","8000351":"KAK","8000352":"HBGM","8000353":"TBG","8000354":"HBAS","8000355":"KBEE","8000356":"RVLE","8000357":"SBI","8000358":"EBLA, EBP","8000359":"FBOD","8000360":"FBUE","8000362":"FDI","8000363":"KDI","8000364":"HVBG","8000365":"NDB","8000366":"RVL","8000367":"EDME","8000368":"FWAB","8000369":"REA","8000370":"SEG","8000371":"SEI","8000372":"SENK","8000374":"RFHM","8000375":"FGAL","8000376":"RGE","8000377":"RWE","8000378":"SWR, SWRR","8000379":"SWIH","8000380":"TGL","8000382":"EGRN","8000383":"FWR","8000384":"FWH","8000385":"NGUN","8000386":"FHG","8000387":"MHGZ","8000388":"KHI","8000389":"THF","8000390":"KHOK","8000391":"HHZM","8000392":"EHZW","8000393":"RVLH","8000400":"FHUG","8000402":"SKU","8000404":"KAW, KAW P","8000406":"KARE, KAREP","8000409":"KKEM","8000410":"MABG","8000412":"RAH","8000413":"HACH","8000414":"HAMR","8000416":"AACW","8000418":"HADB","8000419":"MAD","8000420":"NADM","8000423":"RADN","8000424":"TAD","8000427":"EKIR","8000431":"TAF","8000433":"MAGD","8000434":"AABG","8000435":"FKIH","8000436":"RA","8000437":"EAHS","8000440":"HSCG","8000441":"EAHL, EAHLH","8000442":"HAHO","8000443":"HALT","8000445":"HSDK","8000446":"AAHR","8000448":"KAH","8000449":"KAHM","8000452":"MAI","8000453":"RFMU","8000454":"TAI","8000456":"TTUN","8000459":"MAIN","8000462":"EABT","8000463":"RAL","8000464":"AAL","8000466":"RAR","8000468":"FAG","8000471":"FALS","8000473":"TAE","8000474":"TALO","8000475":"TALT","8000477":"KALK","8000479":"NKN","8000480":"AAHG","8000481":"TALD","8000482":"MALH","8000483":"HALF","8000488":"HALG","8000489":"HALI","8000491":"SALG","8000492":"FADD","8000495":"KALI","8000496":"RAB","8000498":"NALB","8000499":"TALL","8000500":"KALP","8000501":"RALP","8000503":"FBL","8000504":"NADW","8000505":"SAZ","8000506":"FAHM","8000508":"TACH","8000509":"NAD","8000511":"NAVE","8000512":"AAW","8000513":"EALN","8000514":"KALT","8000515":"MALT","8000517":"SAB","8000518":"EABG","8000520":"FABL","8000522":"HHUD","8000524":"MANE","8000525":"FATF","8000526":"AAT","8000532":"EA","8000534":"NMS","8000537":"EASE","8000538":"FAST","8000539":"MASI","8000540":"NALW","8000544":"RAT","8000545":"MAHB","8000546":"FAT","8000547":"SLKG","8000553":"FAMO","8000556":"MAMT","8000558":"FAZS","8000559":"TAT","8000561":"MATS","8000562":"TATN","8000563":"SLCH","8000566":"NAM","8000569":"EAML","8000571":"ELPP","8000576":"MAPF","8000577":"TAM, TAM S","8000578":"HAMI","8000579":"KANM","8000580":"FANG","8000582":"RAN","8000584":"KANR","8000585":"SLN","8000586":"HLGW","8000588":"NAWN","8000589":"FAZ","8000595":"EAPH","8000596":"RAP, RAPP","8000597":"EARE","8000599":"FAF","8000601":"KARL","8000602":"FARM","8000603":"MANB","8000605":"EARB","8000606":"NARG","8000611":"KARS","8000613":"NAZ","8000615":"FMK","8000618":"NAHF","8000619":"NASU","8000621":"MASC","8000623":"EASB","8000624":"HASD","8000625":"RASH","8000627":"AASN","8000630":"TAX","8000631":"RMF","8000632":"FAS","8000633":"FAL","8000634":"MAG","8000635":"FAH","8000638":"EAT","8000644":"KMO","8000647":"EAWN","8000649":"RACH","8000651":"SAM","8000653":"MAFE","8000655":"TAUF","8000657":"RAUG","8000658":"MAHA","8000659":"MAGM","8000660":"MAMS","8000661":"MAHZ, MAHZF, MAHZH","8000662":"MAOB","8000663":"FMSH","8000664":"HAUG","8000667":"FMT, FMTN","8000668":"FAUM","8000669":"AAH, AAMS","8000671":"FAM","8000672":"NAUR","8000674":"SAUW","8000675":"MAY","8000677":"KBA","8000678":"MBAE","8000681":"RBST","8000683":"FBCH","8000685":"MBCN","8000686":"RBH","8000687":"EMRY","8000688":"MNFR","8000689":"NBAB","8000690":"MBAI","8000691":"RBZB","8000694":"KBRE","8000696":"MBAK","8000697":"HBDG","8000698":"RBDH","8000701":"FEMS","8000702":"FEMW","8000704":"TBK","8000706":"TBWT","8000707":"RBGR","8000708":"RBDT","8000711":"KHGB","8000712":"FHO","8000713":"KHBD","8000714":"NBKI","8000715":"FKI","8000716":"MBKG","8000717":"MBKK","8000718":"RBKR","8000721":"TBLI","8000725":"HMDD","8000726":"SBMS","8000727":"KMUE","8000728":"FBNA","8000729":"KNEB","8000730":"NBNE","8000731":"TBN","8000732":"HOY","8000733":"HBOE","8000734":"RBPL","8000735":"HPRT","8000736":"RBRA","8000737":"MBRL","8000738":"MBRK","8000739":"HSCH","8000740":"HBSA","8000741":"FBSH","8000742":"KSAL","8000743":"FSF","8000744":"EBSU","8000745":"EBSA","8000746":"TBSC","8000749":"ASCH","8000750":"TBSB","8000751":"ASB","8000752":"FBSO","8000753":"FBSD","8000754":"APSD","8000755":"APO","8000756":"NBST","8000757":"TBT","8000758":"MBT","8000759":"HBSK","8000760":"FVL","8000761":"FVLS","8000763":"TBWA","8000765":"RBWF","8000766":"RBWH","8000767":"NBWI","8000768":"MBWH","8000770":"HZWI","8000771":"RHEB","8000772":"HBAD","8000773":"HBDV","8000774":"RBB","8000775":"RBBL","8000777":"RBPK","8000778":"MBHM","8000779":"AALH","8000780":"ABAF","8000781":"MBAB","8000783":"NBD","8000784":"NBAF","8000785":"MBDH","8000786":"FBAD","8000787":"TBLH","8000788":"TBGS","8000792":"SBAL","8000793":"EBAV","8000794":"RBAM","8000796":"HBAN","8000797":"HBTF","8000800":"HNN","8000801":"ABAD, ABAW","8000802":"RBRT","8000804":"ABAE","8000805":"ABAP","8000807":"HBNF","8000808":"HBNT","8000810":"HBAR","8000812":"HBGH","8000815":"AHEM","8000818":"NOF","8000821":"RBZE","8000822":"NBH","8000826":"NBAU","8000827":"ABF","8000830":"NBEI","8000831":"MBGM","8000832":"KBAY","8000834":"MBZ","8000840":"SBE","8000842":"KBH","8000846":"EBEE","8000850":"NBEH","8000851":"FBEI","8000853":"KOPL, KOPLM","8000858":"TBS","8000859":"FBEF","8000860":"ABE","8000861":"RBLN","8000862":"MBNB","8000863":"RBLH","8000864":"RBEL","8000865":"TBEM","8000869":"MBEN","8000870":"SBG","8000871":"HBML","8000872":"HBEN","8000873":"TBEN","8000875":"SOTW","8000876":"SPSN","8000877":"FBAU","8000879":"HBTH","8000880":"RRZ","8000882":"NBE","8000885":"MBG","8000887":"ERES","8000888":"MBE","8000889":"TBER","8000890":"RBRG","8000891":"FSUE","8000892":"EBGA","8000894":"RBGP","8000899":"KBGG","8000902":"NBHM","8000904":"EBRH","8000905":"ABGS","8000907":"EBLB","8000908":"ABTSB, ABTSL","8000909":"RBAH","8000911":"MBN","8000913":"HBER","8000918":"MBER","8000919":"HBBR","8000921":"FBEZ","8000923":"SBS","8000925":"TBE","8000926":"SBES","8000927":"EBWG","8000928":"NBMS","8000932":"RBEU","8000933":"TBEU","8000934":"TBTB","8000935":"ABVS","8000941":"SBX","8000942":"RBI","8000943":"TBI","8000944":"TBIB","8000945":"MBIC","8000948":"FBI","8000951":"FBBM","8000953":"EBIO","8000955":"ABIL","8000956":"EBIS","8000957":"HROE","8000959":"TBIE","8000961":"EDH","8000962":"MBIH, MBIHH","8000963":"RBIE","8000965":"RBGN","8000966":"EBIG","8000967":"SBDS","8000969":"MBIN","8000970":"EBB","8000971":"ABWM","8000973":"RBIN","8000974":"NBI","8000975":"FBGG","8000976":"FBGN","8000977":"EHGV","8000978":"EBIN","8000983":"EBKB","8000984":"RBRK","8000989":"SBRB","8000996":"FBMR","8000997":"MBI","8000999":"TBIS","8001000":"HBSS","8001002":"TBIT","8001003":"NBLA","8001004":"MBLH","8001005":"TBIF","8001006":"KBLB","8001007":"AB","8001008":"KBLH","8001009":"RBAN","8001013":"TBL","8001015":"TBLS","8001017":"RBLB","8001018":"FBLH","8001027":"SBKL","8001028":"MBLM","8001030":"EBKP","8001032":"RBOB","8001033":"MBOB","8001034":"FBST","8001035":"EBGZ","8001038":"EBDA","8001039":"EBOE","8001043":"RBOK","8001045":"EBCK","8001046":"MBOD","8001047":"TBOD","8001048":"HBBU","8001049":"KBOD","8001050":"HBOF","8001051":"NBMA","8001052":"HBOD","8001054":"NBOE","8001055":"TBO","8001057":"RBOE","8001058":"NBHF","8001059":"RBER","8001061":"EBEO","8001063":"HBSM","8001065":"EBSL","8001066":"EBSP","8001069":"NBO","8001071":"HBOM","8001072":"KBOI","8001080":"TBD","8001081":"KBHH","8001082":"KBBG","8001083":"KBB","8001084":"KBD","8001085":"KBM","8001086":"KBO","8001088":"KBEC","8001089":"HBHB","8001090":"TBP","8001091":"KBUN","8001092":"ABRD","8001093":"EBOR","8001095":"EBHS","8001096":"EBGO","8001097":"EBOK","8001098":"FBOK","8001104":"FBO","8001106":"FBOS","8001107":"EBTB","8001108":"EBTV","8001110":"SBO","8001111":"TBOX","8001112":"EBRB","8001113":"KBRC","8001118":"EBRA, EBRAH","8001120":"HBKE","8001121":"HBKH, HBKL","8001122":"HBRM","8001123":"HBRA","8001129":"MBB","8001130":"KBRB","8001131":"RBTI","8001132":"FBFS","8001134":"HGLI","8001135":"SBA","8001136":"ABRB","8001137":"EBDL","8001138":"RBTN","8001139":"ABST","8001143":"RBRS","8001147":"MBRN","8001149":"NBG","8001153":"KBRS","8001155":"HBN","8001156":"HBB","8001157":"HBHM","8001159":"HBL","8001160":"HBM","8001161":"HBON","8001162":"HBOS","8001163":"HBSC","8001164":"HBHS, HBSB","8001165":"HBMG","8001166":"HBV","8001167":"HBWA","8001168":"HBHL","8001170":"HBWU","8001174":"RBN","8001176":"HBRT","8001177":"SBRH","8001178":"TBZ","8001179":"MKRS","8001180":"KBRY","8001182":"EBRS","8001183":"EBRO","8001185":"HBRO","8001186":"KBRO","8001188":"HBST","8001190":"ABRS","8001191":"RBRM","8001196":"FBB","8001198":"RBRH","8001199":"FBK","8001200":"SBUM","8001201":"HBUE","8001203":"MBR","8001205":"TBRU","8001207":"MBRM","8001209":"KBRU","8001212":"RBRP","8001213":"EBRU","8001214":"RBMT","8001215":"KBR, KBR P","8001221":"SBB","8001223":"NBTH","8001225":"NBM","8001229":"MBAU","8001231":"MBHA","8001234":"RBU","8001235":"KBZ","8001236":"FBUS, FBUSS","8001237":"FBUD","8001238":"SBN","8001242":"NBUE","8001244":"FBDH","8001245":"HBKB","8001248":"FBHM","8001249":"FBDW","8001250":"FBDG","8001252":"RBUE","8001256":"FBRG","8001258":"ABUS","8001259":"ABSM","8001261":"KBUT","8001262":"RBGG","8001264":"KBUH","8001266":"EBUD","8001267":"SBY","8001268":"EBUR","8001271":"FBUN","8001273":"ABR","8001276":"MBGU","8001277":"NBUM","8001278":"NBUW","8001279":"HBGD","8001283":"FBUH","8001285":"MBGH","8001287":"FBGH","8001289":"NBK","8001290":"NBUR","8001293":"NBN","8001296":"TBU","8001297":"NBUT","8001298":"NBWH, NROS","8001301":"HBUR","8001302":"SSHI","8001308":"KDEM","8001310":"NBT","8001312":"FBZ","8001315":"ABX","8001316":"ACD","8001317":"NCA","8001318":"HCAL","8001322":"FCA","8001323":"ECP","8001327":"ECA","8001328":"ECAS, ECASP","8001329":"ECME","8001330":"NCH","8001331":"NCHA","8001334":"NCN","8001335":"ECOH","8001337":"HCLP","8001338":"NC","8001339":"NCNS","8001340":"SCOC","8001341":"SCN","8001342":"HCOP","8001343":"ECFS","8001347":"NCR","8001348":"NCRE","8001352":"ACV","8001354":"MDA","8001355":"MDAS","8001357":"EDHL","8001358":"EDAB","8001359":"KDAM","8001360":"ADL","8001362":"EDAK","8001365":"KDAL","8001366":"RDL","8001372":"ADB","8001373":"MDAR","8001375":"FDN","8001376":"FDO","8001377":"FDS","8001378":"FDA","8001379":"FDE","8001380":"FDK","8001382":"MDAG","8001384":"KDAT","8001386":"FDAL","8001387":"ADH","8001388":"SDF","8001389":"FDSU","8001390":"EDVB","8001392":"HDEH","8001393":"HDED","8001394":"EDED","8001397":"NDG","8001399":"RDM","8001400":"NDE","8001404":"MDS","8001405":"TDLM","8001406":"SDE","8001407":"SDEO","8001414":"SDBO","8001415":"RDZ","8001416":"KDEK","8001417":"KDEA","8001418":"KDEB","8001420":"EDTM","8001421":"NDEB","8001427":"FDET","8001428":"TDT","8001429":"HDEM","8001430":"NDN","8001432":"EDEU","8001435":"NDIE","8001438":"ADT","8001439":"MDID","8001443":"HDIP","8001447":"MDIN","8001450":"NDT","8001454":"MDRD","8001455":"FDZM","8001456":"FDZ","8001457":"FDIZ","8001458":"FDIO","8001459":"FDZS","8001460":"FDBT","8001463":"MDIL","8001465":"EDGD","8001466":"MDIF","8001468":"MDKS","8001469":"EDIN","8001470":"SDIR","8001471":"HDBR","8001476":"TDI","8001479":"RDOA","8001480":"RDGN","8001482":"RDOF","8001483":"RDOG","8001484":"NDOE","8001485":"RDOM","8001486":"HDOP, HDPH","8001489":"HDVD","8001491":"RDRN","8001492":"HDOG","8001493":"ADR","8001495":"MDO","8001499":"MDFN","8001502":"HDMK","8001504":"FDH","8001505":"EDOH","8001506":"KDO","8001507":"KDBW, KDBWN","8001511":"FDOH","8001512":"TDS","8001514":"FDW","8001515":"EDSH","8001516":"EDLS","8001517":"EDKK","8001518":"EDMB","8001519":"EDOO","8001520":"EDST","8001521":"EDTP","8001522":"EDWH","8001523":"EDAP","8001524":"EDAU","8001525":"EDOF","8001526":"EDAM","8001527":"EDBA","8001528":"EDBH","8001529":"EDBK","8001530":"EDD","8001531":"EDOL","8001532":"EDHU","8001533":"EDKD","8001534":"EDKH","8001535":"EDKO","8001536":"EDKR","8001537":"EDKU","8001538":"EDLH","8001539":"EDLN","8001540":"EDGM","8001541":"EDMR","8001542":"EDMS","8001543":"EDMG","8001544":"EDRA","8001545":"EDSO","8001546":"EDWI","8001547":"ADO","8001548":"NDM","8001549":"EDSM","8001554":"FDCH","8001558":"EDRS","8001561":"HDRY","8001566":"KDUK","8001567":"FDU","8001570":"SDUW","8001571":"KDUL","8001578":"MDHR","8001579":"KDFS","8001581":"KDV","8001582":"KDW","8001583":"KDZ","8001584":"KDBE","8001585":"KDBH, KDBI","8001586":"KDD, KDDH","8001587":"KDE","8001588":"KDES","8001589":"KDGA","8001590":"KDGE","8001591":"KDOB","8001592":"KDR","8001593":"KDRM","8001594":"KDRE, KDRH","8001595":"KDU","8001596":"EDSL","8001597":"KDHA","8001598":"KDFL","8001599":"EDBI","8001600":"EDBU","8001602":"EDGR","8001603":"KDVS","8001605":"EDHD, EDHP","8001607":"EDMO","8001608":"EDOM","8001609":"EDRM","8001611":"EDRU","8001612":"EDWD, EDWDP","8001614":"MDUH","8001616":"RDRM","8001617":"TDU","8001618":"FDTH","8001619":"NEE","8001620":"NEBH","8001621":"MEBS","8001622":"MEBH","8001623":"NED","8001627":"NEBM","8001628":"MEBM","8001629":"NEB, NEBN","8001632":"TEC","8001634":"MEG","8001636":"NEC","8001638":"RET","8001640":"NEG","8001643":"REBR","8001645":"HEBS","8001646":"AECH","8001647":"MEC","8001648":"FEZL","8001650":"TETD","8001651":"TEI","8001654":"AEC","8001655":"NEMN","8001659":"FED","8001663":"REK, REKH","8001665":"REH","8001666":"SEE","8001668":"FEDI","8001670":"FEF","8001671":"REF","8001672":"FEGB","8001674":"NEGE","8001675":"HEGT","8001679":"MEGM","8001680":"NEO","8001682":"MEGL","8001683":"MELG","8001684":"TEH","8001686":"EELB","8001687":"HELH","8001688":"SEGO","8001689":"TEHN","8001690":"KEHR","8001692":"EERI","8001693":"FEHH","8001694":"FEHR","8001700":"EEHS","8001701":"FECH","8001702":"MEIC","8001704":"FEIZ","8001706":"EEHG","8001707":"REM","8001708":"MEB","8001709":"MEST","8001712":"KEIL","8001713":"HEIV","8001715":"REI","8001718":"AEF","8001720":"SEF","8001727":"SEMA","8001728":"REIS, REISO, REISW","8001729":"EEFD","8001731":"TEF","8001732":"REIW","8001734":"MEI","8001736":"KEIT","8001739":"AEGS","8001741":"HELV","8001742":"NELF","8001745":"KML","8001746":"TBME","8001747":"TELL","8001749":"NEL","8001751":"TEL","8001752":"MELZ","8001760":"HELS","8001762":"NEF","8001763":"FELT","8001764":"FELZ","8001765":"FELS","8001766":"RELZ","8001768":"HE","8001770":"KEMM","8001771":"REMM","8001773":"EEM","8001775":"HEMK","8001777":"HEMT","8001780":"EEMP","8001781":"HEMP","8001782":"EEDT","8001783":"NEK","8001785":"TEN","8001787":"MBEF","8001789":"KENL","8001790":"RENG","8001794":"TENG","8001795":"EENP","8001799":"SEN","8001801":"FENS","8001803":"TEZ","8001806":"MENW","8001808":"EEPE","8001811":"FERN","8001812":"SEP","8001813":"FEPP","8001814":"FER","8001815":"FEP","8001816":"FEPB","8001817":"FERO","8001818":"FERB","8001819":"FERW","8001820":"TER","8001825":"MER","8001826":"FEKW","8001827":"TERD","8001828":"SED","8001829":"MEWG","8001833":"TEG","8001835":"MERB","8001836":"EERG","8001838":"TEK","8001839":"KERZ","8001840":"NERK","8001841":"KER","8001844":"NER","8001845":"NERB, NERH","8001846":"NERS","8001851":"EEK","8001853":"MERG, MERN","8001858":"KERP","8001860":"RERO","8001864":"FEZ, FEZS","8001865":"RERZ","8001867":"HESH","8001870":"FES","8001871":"FESS","8001872":"HESD","8001874":"TESU","8001875":"NESU","8001877":"NESB","8001880":"MECH","8001883":"FEN","8001886":"KE","8001890":"HESO","8001894":"HEKP","8001896":"EESA","8001897":"EESD","8001898":"EENW","8001899":"HESN","8001900":"EEAL","8001901":"EEBE","8001902":"EEBB","8001903":"EEDL","8001904":"EEDO","8001905":"EEIB","8001906":"EEFO","8001907":"EEGE","8001908":"EEHU","8001909":"EEKB","8001910":"EEKN","8001911":"EEKS","8001912":"EEKU","8001913":"EESO","8001914":"EEUE","8001915":"EEWD","8001919":"NEN","8001920":"TE","8001921":"TEME","8001922":"MESH","8001924":"HETL","8001925":"NET","8001926":"RETL","8001928":"EEZB","8001929":"NEW","8001932":"NEZ","8001933":"TEU","8001935":"NEU","8001941":"AEU","8001942":"TEB","8001943":"EGVA","8001946":"TEY","8001949":"HETR","8001950":"FFAN","8001953":"AFK","8001954":"RFN","8001957":"HF","8001958":"HFAL","8001961":"MFCH","8001963":"MFP","8001965":"TFAU","8001967":"TFV","8001969":"NFZ","8001970":"MFA","8001971":"RFB","8001972":"EFEL","8001973":"MFK","8001974":"TFE","8001976":"EFER","8001977":"AFEB","8001978":"NFT","8001982":"TFI","8001983":"FFI","8001984":"TFIL","8001985":"MFNS","8001988":"NFTO","8001989":"NFI, NFIH","8001990":"SFC","8001991":"SFWB","8001992":"MFBU","8001995":"MFN","8001996":"MESG","8001998":"MFIN","8002004":"KFLH","8002010":"FFD","8002011":"AFT","8002012":"MFLI","8002013":"FFH","8002014":"RFLO","8002018":"SFOE","8002019":"NFOE","8002020":"NFDF","8002023":"RFM","8002024":"NFO","8002025":"RFTS","8002026":"TFB","8002027":"KFOS","8002029":"NFH","8002030":"TFOS","8002034":"FMUL","8002036":"RFST","8002038":"FLBF","8002039":"FFO","8002040":"FSP","8002041":"FFS","8002042":"FFW, FFW S","8002043":"FFBK","8002044":"FFBS","8002045":"FFES","8002046":"FGM","8002047":"FLS, FLSS","8002048":"FFMK","8002049":"FFND","8002050":"FNI, FNI S","8002051":"FFAW","8002052":"FRH","8002053":"FSIN, FSINO","8002054":"FSO","8002055":"FFZH","8002057":"NFU","8002058":"FOST","8002059":"FSTL","8002063":"HFRE","8002065":"TFG","8002066":"RFW","8002067":"RFHE","8002068":"RFLT","8002069":"RFSG","8002070":"RFWI","8002071":"RFZ","8002073":"EFRE","8002074":"MFHD","8002075":"NFR","8002076":"NFRE","8002077":"RFK","8002078":"MFR","8002080":"HFST","8002083":"SFF","8002085":"MFLH","8002086":"AFN","8002092":"EFBU","8002095":"FFRN","8002096":"TFD","8002099":"MFDB","8002100":"FFN","8002102":"HFRI","8002103":"FFL","8002104":"KFWH","8002105":"FGS","8002106":"AFBG","8002108":"FFRI","8002109":"EFFD","8002110":"TFH","8002111":"TFF","8002113":"AFRD","8002114":"KFGN","8002115":"AFD","8002116":"RFTL","8002117":"SFI","8002120":"TFFL","8002122":"TFLA","8002123":"RFH","8002127":"KFRI","8002130":"EFRM","8002132":"SFIM","8002133":"TFR","8002134":"FFRL","8002137":"FFUR","8002141":"MFB","8002149":"NFWS","8002150":"RFUE","8002152":"NFBB","8002153":"NFDB","8002154":"NFUB","8002155":"NFUF","8002156":"MFSN","8002159":"NFW","8002161":"MFU","8002162":"MGAL","8002165":"TGT","8002166":"TGFD","8002168":"TGAW","8002171":"MGH","8002173":"MGAI","8002175":"SGSZ","8002179":"HGKE","8002180":"EGAR","8002182":"FGA","8002185":"AGD","8002187":"MGP","8002191":"FGBM","8002195":"TGRN","8002198":"MGT","8002203":"HGEE","8002205":"NGET","8002206":"KGEK","8002207":"KGEH","8002209":"MGLG","8002210":"MGIB","8002212":"FGSM","8002214":"RGSN","8002217":"TGW","8002218":"TG","8002220":"MGEU","8002222":"KGE","8002223":"EGZO","8002224":"EGBN, EGBU","8002225":"EGBS","8002226":"EGHS","8002227":"EGRO","8002233":"MGKG","8002235":"RGB","8002236":"FGEF","8002237":"NGE","8002238":"SGN","8002239":"RGEH, RGEM","8002240":"TGES","8002241":"RGES","8002242":"TGEH","8002243":"TGLH","8002244":"MGLH","8002247":"MGLD","8002249":"FGHM","8002251":"TGN","8002254":"FGFD","8002256":"MGHF","8002259":"FGTB","8002262":"EGK","8002263":"MGHN","8002265":"FGGB","8002266":"AGF","8002267":"EGVH","8002268":"KGVW","8002269":"FGOG","8002272":"TGB","8002274":"HGIS","8002275":"MGCH","8002278":"TGI","8002280":"FGIR","8002281":"HGT","8002283":"EGBO","8002284":"EZK","8002286":"SGM","8002288":"FGBG","8002290":"KGL","8002293":"AGST","8002296":"KGO","8002299":"HGOH","8002300":"RGOR","8002301":"FGOE","8002304":"AGH","8002315":"FGOZ","8002319":"AGK","8002320":"HGOL","8002321":"FGDH","8002329":"NGG","8002333":"NGOD","8002334":"RGH","8002335":"NGZ","8002337":"RG","8002339":"MGFL","8002340":"NGFG","8002341":"NG","8002342":"FGRK","8002343":"MGRA","8002344":"NGFU","8002345":"RGNN","8002346":"MGRL","8002347":"MGB","8002348":"MGRS","8002349":"NGFA","8002351":"MGF","8002358":"FGSN","8002365":"RGRZ","8002369":"EGRV","8002370":"EGVB","8002373":"RGSS","8002374":"FGRF","8002377":"MGRZ","8002378":"MGNB","8002380":"RGM","8002382":"FGRN","8002383":"MGDF","8002386":"FDG","8002388":"FGKA","8002389":"KFKO","8002391":"FGRO","8002393":"FGRU","8002399":"NGRS","8002400":"FGAU","8002402":"KGBU","8002403":"HGBW","8002405":"HGDN","8002409":"FGRB","8002410":"FGL","8002411":"AGRO","8002412":"HGRK","8002413":"FGLR","8002416":"NGRG","8002420":"MGHD","8002422":"MGOI","8002424":"MGK","8002425":"FGK","8002430":"RGCH","8002432":"NGRW","8002434":"NGUF","8002435":"MGRB","8002436":"NGRU","8002439":"FGRG","8002441":"EGNO","8002442":"EGNH","8002444":"RGRN","8002445":"TGRW","8002447":"TGRS","8002448":"TGC","8002452":"SGD","8002454":"SGS","8002457":"MGKF","8002458":"MGNZ","8002461":"EGLO","8002462":"KGU","8002465":"RGDN","8002466":"MGUF","8002467":"NGD","8002468":"NGU","8002470":"RGUN","8002473":"FGUH","8002474":"FGUB","8002477":"KGUS","8002478":"RGTA","8002480":"RGTF","8002484":"FGX","8002489":"RHAG","8002490":"KHAN","8002491":"MHR","8002494":"KHAC","8002495":"FHAD","8002496":"AHNU","8002498":"FHAE","8002499":"HHAE","8002501":"FHHF","8002504":"AHAF","8002506":"NHA","8002507":"HHAG, HHGH","8002509":"KGVK","8002512":"EHGI","8002514":"EHGO","8002515":"RHGB","8002517":"NHBH, NHBU","8002520":"NFTM","8002523":"NHAG","8002524":"FHGO","8002526":"FHME","8002528":"FHHN","8002531":"FHDT","8002532":"FHAI","8002533":"RHAM","8002534":"MHMO","8002536":"EHAD","8002537":"HHAL","8002539":"EHAL","8002542":"NHAL","8002545":"AHKS","8002546":"RHL","8002547":"AAI","8002548":"ADF, ADST","8002549":"AH, AHS","8002550":"AHST","8002551":"AELB","8002554":"ABG, ABG S","8002555":"AEST","8002556":"AFIB","8002557":"ANR, ANRS","8002558":"ARAL","8002559":"ASTS","8002560":"AWN","8002561":"AWFS","8002565":"AHAM","8002567":"NHG","8002568":"NHGO","8002570":"MHAU","8002571":"EHK","8002572":"FHN","8002573":"FHW","8002574":"FHWB","8002575":"AHAN","8002578":"NHAP","8002580":"HHBI","8002581":"HHBO","8002584":"HKL","8002585":"HLEI","8002586":"HLI R","8002588":"SHN","8002589":"HLGF","8002592":"AHA","8002593":"MHRG, MHRH","8002594":"HHRD","8002596":"NHHF","8002598":"HHAR","8002605":"NH","8002607":"HHRS","8002609":"NHAR","8002610":"MHHS","8002612":"NHS","8002615":"HHSB","8002621":"RHS","8002623":"MHMR","8002625":"SHSS","8002628":"AHSB, AHSF","8002630":"NHT","8002632":"RHLO","8002633":"RHAS","8002634":"HHAS","8002635":"FHAT","8002637":"FHAS","8002638":"KHAT","8002639":"EHAT","8002640":"EHTM","8002641":"HHTF","8002643":"SHZ","8002648":"SHAM","8002649":"SHAU","8002651":"MHPH","8002655":"SHPT","8002656":"THAT","8002664":"MHNS","8002666":"RHSN","8002667":"MHHM","8002670":"EHBK","8002673":"THCH","8002674":"AHEN","8002677":"FHED","8002678":"NHED","8002680":"EHE, EHE P","8002681":"RHBF","8002682":"EHEG","8002683":"RHGN","8002684":"RHBO","8002685":"RHKA","8002686":"RHKM","8002687":"RHBP, RHBW","8002689":"THD","8002690":"THDM","8002691":"THDS","8002692":"FHEI","8002694":"HHEI","8002695":"HHDM","8002696":"NHEI","8002699":"THST","8002700":"TTPS","8002704":"RHN","8002705":"NHE","8002707":"SHB","8002710":"MHMK","8002711":"KHEH","8002715":"MHEM","8002716":"FHEB","8002724":"SHZH","8002727":"RHE","8002733":"NHB","8002737":"EHEP","8002745":"EHMD","8002746":"SHEM","8002748":"RHCH","8002751":"NHD","8002753":"KHEN","8002754":"EHNE","8002757":"FHP","8002760":"THTO","8002761":"MHEH","8002763":"RHZ","8002764":"THZ","8002766":"THC","8002768":"KHEC","8002769":"EHCK","8002770":"EHF","8002773":"FHER","8002775":"KHES","8002776":"THMA","8002779":"EHBO","8002782":"NHER","8002783":"NHEN","8002784":"KHER","8002785":"THE, THE Z","8002789":"THL","8002792":"MHI","8002793":"NHL","8002794":"NHR","8002797":"RHRT","8002798":"RHXB","8002800":"HHBS","8002801":"EHEZ","8002806":"KHEZ","8002810":"EHLN","8002812":"HHSO","8002813":"FHET","8002814":"FHH","8002815":"FHZ","8002817":"SHR","8002820":"MHEU","8002821":"MHFM","8002822":"FHEU","8002824":"HHIS","8002826":"EHIB","8002827":"NHGN","8002828":"KHIS","8002830":"HHIO","8002835":"EHIL","8002838":"NHP","8002841":"EHIT","8002843":"AHPF","8002844":"RHIM","8002845":"NHIS","8002847":"SHWP","8002848":"RHIZ","8002850":"MHRS","8002852":"THI","8002853":"NHI","8002856":"MHFN","8002857":"RHO","8002858":"SHIH","8002861":"KHIR","8002864":"AHIF","8002865":"AHZ","8002868":"KHO","8002869":"KHOM","8002872":"FHM","8002873":"AHPS","8002875":"SHY","8002877":"FHD","8002878":"NHM","8002879":"SHST","8002880":"SHS","8002881":"MHWG","8002883":"RHK","8002884":"HHOD","8002886":"FHTN","8002888":"MHDT","8002892":"THFG","8002894":"MHSB","8002895":"SHMB","8002898":"NHTL","8002899":"MHRK","8002903":"FHNB","8002912":"MHLK","8002915":"HHTL","8002916":"EHOM","8002918":"NHOE","8002919":"EHOS","8002920":"EHOV","8002921":"EHVR","8002923":"HHXR","8002924":"NHO","8002927":"NHON","8002929":"SHFD","8002930":"THOF","8002931":"RHFF","8002932":"KHOF","8002933":"FHFG","8002934":"FHOR","8002935":"FHF","8002939":"KHOG","8002940":"MHOB","8002941":"KHB","8002943":"SKLH","8002944":"HHEG, HHEP","8002946":"AHCH","8002953":"EHOG","8002954":"MHPG","8002955":"MHSL","8002956":"NHOH","8002958":"FHSU","8002959":"AHWT","8002962":"HHDF","8002967":"AHES","8002969":"HHOL","8002972":"EHW","8002976":"EHOZ","8002978":"HHZH","8002979":"KHOZ","8002980":"MHO","8002988":"KHOR","8002992":"EHOP","8002994":"MHOP","8002995":"SHPS","8002998":"THBH, THHF","8003000":"EHBM","8003001":"RHBG","8003002":"AHOG","8003003":"AHOT","8003008":"HHOY","8003010":"RHAR","8003014":"RHFM","8003015":"FHMM","8003016":"FHUE","8003018":"EHTG","8003020":"ESW","8003021":"SHT","8003022":"THUB","8003024":"MHUG","8003025":"RHU","8003030":"HHUL","8003032":"AY","8003033":"RHTT","8003035":"RIB","8003036":"HI","8003038":"MIHN","8003039":"MIC","8003040":"SIDO","8003041":"FIST","8003042":"SIG, SIGW","8003044":"NIDF","8003052":"RIR","8003053":"FIH","8003057":"MILT","8003058":"NILL","8003059":"SILG","8003060":"TIL","8003061":"RIMM","8003062":"FIM","8003063":"NIM","8003064":"HIMS","8003065":"MIMS","8003066":"RIMZ","8003070":"SIM","8003072":"MIDR","8003073":"KING","8003075":"FIL","8003076":"MIN","8003078":"AAU","8003079":"MINI","8003080":"RIN","8003081":"NI","8003083":"NIP","8003086":"NIR","8003088":"AIS","8003090":"EILH","8003091":"HIHG","8003092":"MIS","8003096":"EIAV","8003098":"RIT","8003100":"NIL","8003101":"RITL","8003102":"AIZ","8003103":"TIT","8003104":"KIV","8003108":"SJF","8003111":"TJZ","8003115":"AJHH","8003123":"MJET","8003124":"HJ","8003125":"RJO","8003129":"NJS","8003130":"KJUC","8003131":"FJUE","8003135":"KJU","8003137":"AJUS","8003143":"FKLM","8003144":"FKAI","8003146":"MKAI","8003148":"SKAI","8003150":"SKLP","8003151":"SKLW","8003154":"NKAL","8003158":"KKAL","8003160":"KKAS","8003165":"HKAW","8003166":"EKAL","8003168":"EKAM","8003169":"EKME","8003170":"FKMP","8003172":"RKD","8003173":"SKAZ","8003174":"KKAW","8003175":"RKPD","8003179":"STK","8003181":"RKF","8003182":"HKRF","8003183":"RKW","8003184":"RKDU","8003185":"RKHA","8003186":"RKIN","8003187":"RKMG","8003189":"NKA","8003196":"FKH","8003197":"FKJK","8003198":"FKKD","8003199":"FKOZ","8003200":"FKW","8003207":"AKAD","8003208":"AKTO","8003209":"HKAT","8003211":"SKTS","8003212":"EKV","8003213":"FKFT","8003214":"NKG","8003215":"SKW","8003216":"FKAU","8003218":"RKL","8003220":"TKEH","8003222":"AKI","8003227":"MKMZ","8003228":"FKCH","8003229":"NKNN","8003230":"MKPO","8003232":"SKEN","8003233":"RKN","8003235":"FKB","8003238":"NKCH","8003241":"FKES","8003245":"EKGS","8003247":"KKEV","8003248":"TKBI","8003249":"MKI","8003252":"KKIE","8003253":"AKRU","8003255":"FKIL","8003256":"MKIG","8003257":"SKIB","8003262":"FKGS","8003266":"TKIM","8003267":"HKDF","8003268":"NKIR","8003270":"NKO","8003272":"TKI","8003276":"HKHW","8003278":"TKM","8003280":"TKT","8003282":"TKTO","8003283":"TKTS","8003284":"TKU","8003285":"RKH","8003286":"HKHN","8003287":"EKHU","8003288":"HKLG","8003290":"MKO, MKO H","8003292":"HKI","8003293":"RKZ","8003294":"SKI","8003295":"SKR","8003298":"SKRS","8003299":"MKIS","8003302":"MKLA","8003303":"AKX","8003309":"AKC","8003310":"KKSH","8003311":"FKAH","8003312":"AFB","8003313":"FKGE","8003314":"FKO","8003315":"FKLU","8003316":"FKWO","8003317":"MKHN","8003318":"SKB","8003320":"KKTR","8003321":"KKLE","8003323":"HKSI","8003325":"RKES","8003326":"MKKZ","8003329":"NKGM","8003330":"KFKB","8003332":"TKNK","8003336":"RKLN","8003338":"NKNB","8003339":"RMBK","8003340":"KKLM","8003341":"KKSM","8003342":"MKLF","8003344":"SKT","8003345":"TKLU","8003348":"HKNE","8003349":"RKG","8003350":"SKG","8003351":"KKOE","8003352":"KKOL","8003354":"SKOW","8003355":"MKCH","8003356":"NKI","8003357":"NKOE","8003358":"KKFS","8003360":"KKP","8003361":"KKS","8003362":"KKV","8003363":"KKW","8003364":"KKBH","8003365":"KKC","8003366":"KKCN","8003367":"KKDB","8003368":"KKDT, KKDZ, KKDZB","8003369":"KKH","8003370":"KBP","8003371":"KKL","8003372":"KKN, KKN P","8003373":"KKWO","8003374":"RKOE","8003375":"KKMT","8003378":"TKS","8003379":"KSTP","8003381":"TKF","8003382":"HKOL","8003383":"KKWW","8003385":"EKSO","8003386":"KKOW","8003388":"FKRL, FKRLS","8003392":"KKHR","8003393":"NKZ","8003394":"SKV","8003395":"KKOS","8003397":"MKMR","8003398":"RKLR","8003399":"RKNA","8003400":"RKO","8003401":"RKOP","8003402":"SKZ","8003403":"SKU W, SKZM","8003404":"RKOF","8003407":"SKDL","8003408":"RKOR","8003409":"TKO","8003410":"AKWS","8003411":"TKH","8003412":"KKOI","8003413":"NKMG","8003414":"KKOF","8003415":"KKOH","8003416":"RKOW","8003420":"EKRG","8003424":"EKRD","8003426":"KKRL, KKRLF","8003427":"KKRU, KKRX","8003429":"SKRB","8003430":"AKM","8003431":"AKHD","8003432":"TKN","8003434":"SKK","8003436":"KKRZ","8003438":"MKZ","8003440":"KKRW","8003442":"FKRI","8003446":"NK","8003447":"FKRO","8003452":"SKRO","8003455":"KKRF","8003457":"MKRB","8003460":"AKRS","8003461":"TKUC","8003462":"KKUH","8003469":"EKUE","8003470":"EKNT","8003472":"NKUE","8003474":"AKH","8003476":"NKU","8003477":"AKE","8003478":"AKUP","8003479":"AKRH","8003481":"SKUS","8003483":"MKUN","8003484":"SKY","8003485":"NLB","8003487":"HHML","8003488":"MLBW","8003489":"RLD","8003490":"MLLF","8003491":"HLGG","8003494":"RLSW","8003497":"RLBP","8003498":"RLSH","8003503":"FLP","8003504":"SLAO","8003506":"MLDI","8003507":"RLAD","8003508":"RLW","8003512":"MLL","8003515":"SLD","8003516":"SLWR","8003518":"ALAS","8003519":"ALAN","8003520":"FLGS","8003521":"NLG","8003522":"HLNG","8003523":"FLG","8003524":"TLR","8003525":"TLL","8003526":"FLGF","8003528":"MLB","8003529":"ELBG","8003533":"RBS","8003539":"KLAB","8003540":"KLA","8003541":"ALST","8003542":"HLGH","8003543":"FLAH","8003544":"ALG","8003545":"HLGM","8003548":"NLP","8003550":"FSLB","8003551":"MLNW","8003552":"NLZ","8003553":"KLAW","8003554":"NLGU","8003558":"FLF","8003559":"FLAS","8003560":"MLAW","8003562":"RLAC","8003563":"HLAT","8003567":"NLDF","8003568":"SLAU","8003569":"TLH","8003571":"RLCH","8003576":"ALUB","8003577":"ALAU","8003578":"HLFO","8003580":"NLL","8003581":"NLR","8003582":"NLA","8003585":"RLFG","8003586":"RLBO","8003587":"NLLW","8003588":"TLN","8003589":"MLIG","8003591":"TLM","8003592":"TLW","8003593":"FLBG","8003594":"RLBA","8003605":"FLW","8003608":"ELGD","8003609":"RLT","8003611":"SLE","8003612":"FLEH","8003616":"KLEL","8003617":"HLFG","8003622":"TLF","8003627":"MLEH","8003628":"ALE","8003630":"ELBK","8003632":"HLMF","8003635":"HLEM","8003638":"ELSN","8003639":"MLWG","8003640":"ELEN","8003641":"FLE","8003643":"MLG","8003644":"HLGL","8003649":"ALS","8003652":"TLE","8003655":"ELEO","8003656":"HLED","8003657":"ELED","8003658":"ELET","8003659":"HLT","8003660":"KLEU","8003663":"MLSH","8003664":"NLWI","8003665":"KLET","8003668":"KLK, KLKH","8003669":"KLS","8003671":"KEST","8003672":"KLRD, KLRH","8003673":"FLI","8003674":"FLST","8003676":"NLH","8003680":"FLIS","8003681":"FLIE","8003684":"SLB","8003687":"RLI","8003690":"RLID","8003692":"MLIA","8003696":"FLHH, FLHN","8003697":"KLD","8003698":"FLIN","8003699":"HLH","8003700":"HLWL","8003701":"HLIG","8003702":"RLF","8003705":"HLBU","8003708":"KLI","8003711":"FLIH","8003713":"KLIS","8003715":"ELIS","8003716":"ELTF","8003720":"MLCH","8003721":"RLOE","8003722":"HLOD","8003723":"SLF","8003724":"RLGN","8003726":"FLOE","8003729":"RLR","8003730":"RLST","8003731":"RLFB","8003732":"KLO, KLOV","8003733":"TLOE","8003734":"NLOR","8003735":"MLH","8003736":"RLRD","8003737":"RLRS","8003738":"HLON","8003739":"SLOH","8003740":"NLO","8003743":"RLRW","8003748":"TLON","8003749":"MLOH","8003751":"FLOR","8003752":"TLO","8003753":"FLON","8003754":"FLB","8003755":"FLO","8003758":"RLOS","8003759":"RLSM","8003760":"HLOX","8003762":"NLHM","8003763":"NLS","8003764":"RLU","8003765":"RLUM","8003766":"RLO","8003767":"RLUR","8003768":"NLUD","8003770":"NLUS","8003771":"NLT","8003772":"HLBB","8003773":"HLBR","8003774":"ALSJ","8003776":"ALKN, ALKR","8003777":"ALTH","8003778":"ALTS","8003780":"HLN","8003781":"ALB","8003782":"ELS","8003783":"ELDH","8003784":"HLUE","8003785":"ALHS","8003786":"ALD, ALD A","8003788":"ELRN","8003790":"FLUE","8003791":"ELUZ","8003792":"RLUE","8003794":"NLU","8003795":"NLW","8003796":"SLU","8003798":"ALU","8003799":"HLUN","8003800":"HLTT","8003804":"ELUT","8003807":"TMAG","8003808":"TMAI","8003809":"RMKI","8003810":"FMAS","8003813":"NML","8003814":"NMRH","8003815":"FMN","8003816":"FMS","8003817":"FMGO","8003818":"FMG","8003819":"FML","8003820":"FMMB","8003821":"FMM","8003824":"MMA","8003828":"MMAG","8003829":"AMAG","8003830":"MMD","8003831":"TMAL","8003832":"RMS","8003833":"RMSU","8003834":"TMIN","8003839":"NMDF","8003841":"RMR A, RMSM","8003842":"RMFS","8003843":"RMKL","8003844":"RMN","8003845":"RMA","8003847":"RMSE","8003848":"RMW","8003850":"TMAN","8003853":"TMB","8003854":"RMBW","8003855":"EMHD","8003856":"FMBS","8003857":"RMBO","8003859":"MMRN","8003860":"EMV","8003866":"HMAR","8003871":"RMAD","8003872":"RMAR","8003876":"NMB","8003877":"MMOS","8003878":"NMER","8003879":"MSB","8003881":"NMT","8003884":"NMH","8003885":"MMO","8003887":"NMSG","8003888":"EMAM","8003890":"EMHM","8003891":"EMSI","8003896":"EMAR","8003897":"TMAR","8003898":"NMLZ","8003899":"SMSO, SMSW","8003901":"MMSZ","8003903":"NMX","8003905":"MMZG","8003906":"AMA","8003909":"EMAN","8003911":"RMAI","8003913":"TMAU","8003915":"RMAU","8003916":"EDWK","8003920":"RMLG","8003921":"NMSM","8003922":"NMXH","8003924":"KMYW","8003925":"EUNW","8003926":"KMAY","8003927":"KMCH","8003929":"AMD, AMDH","8003930":"TMK","8003931":"KMCK","8003932":"RMK","8003936":"EDWW","8003937":"KMCP","8003938":"NMEE","8003939":"EMEG","8003943":"EMHO","8003946":"EDW","8003947":"HMEI","8003949":"HMRS","8003950":"EMZH","8003952":"MMEI","8003953":"FMLB","8003954":"AMF","8003956":"HMEL","8003957":"HMDF","8003959":"NME","8003960":"AME","8003961":"FMLS","8003965":"EMEU","8003966":"KMD","8003967":"EMED","8003969":"TMG","8003971":"FMBB","8003978":"HMEP","8003979":"MMEG","8003980":"SMER","8003982":"MMR","8003986":"EMES","8003987":"KMES","8003988":"RME","8003989":"MMTG","8003990":"KMEZ","8003991":"SMZM","8003992":"SMZG","8003993":"EMSD","8003996":"FMES","8003998":"EMSN","8004000":"HMSU","8004001":"EMTE","8004003":"FMET","8004004":"SMT","8004008":"MSAF","8004009":"TME","8004011":"NMI","8004013":"NMIK","8004017":"FMI","8004019":"MMIB","8004020":"KMIE","8004023":"KMIL","8004024":"EMIL","8004026":"NMLT","8004028":"NMIM","8004029":"RSLM","8004030":"MMAH","8004032":"RBSK","8004037":"FMGD","8004040":"NMSN","8004043":"MMW","8004048":"AML","8004049":"TMO","8004050":"TML","8004053":"TMOE","8004057":"AMLN","8004060":"FMHF","8004061":"KMGE","8004063":"KMR","8004064":"NMOE","8004065":"FMF","8004066":"RMOE","8004067":"TMHR","8004068":"TMHB","8004070":"TMS","8004071":"MMTN","8004077":"TMON","8004078":"SML","8004080":"SMON","8004084":"MMB","8004090":"NMOU","8004093":"AMM","8004094":"RMO","8004095":"RMOW","8004096":"SMK","8004099":"EMUD","8004100":"FMCK","8004101":"SMD","8004103":"TMRO","8004104":"TMUE","8004105":"HMLN","8004107":"RMH","8004111":"TMUL","8004112":"FMH","8004115":"NMST","8004122":"EMRW","8004124":"RML","8004125":"FMGR","8004126":"NMBG","8004127":"HMHZ","8004128":"MMDN","8004129":"MHAB","8004130":"MHAR","8004131":"MIT","8004132":"MKA","8004133":"MLEF","8004134":"MLEU","8004135":"MMP","8004136":"MRP","8004137":"MSW","8004138":"MMAR","8004139":"MAUG","8004140":"MMAL","8004141":"MMAU","8004142":"MBAL","8004143":"MDFG","8004144":"MEGS","8004145":"MFAS","8004146":"MFG","8004147":"MFE","8004148":"MGI","8004149":"MJK","8004150":"MKF, MKFS","8004151":"ML","8004152":"MLW","8004153":"MLO","8004154":"MMT","8004155":"MMCH","8004156":"MNA","8004157":"MOZ","8004158":"MP, MP S","8004159":"MPER","8004160":"MRI, MRI P","8004161":"MSN","8004162":"MTR","8004163":"MWKR","8004165":"MMST","8004166":"SMR","8004167":"MFHB","8004168":"MFHM, MFHT","8004169":"NMUE","8004171":"FMTR","8004172":"SMSA","8004173":"ENHF","8004174":"SMLB","8004177":"AMUE","8004178":"RMU","8004179":"MMHG","8004181":"MFH, MFHH","8004182":"TMU","8004183":"HMS","8004184":"RMRG","8004185":"MMU","8004186":"MUO","8004188":"TMT","8004189":"RMCH","8004190":"EMSR","8004191":"NNAB","8004192":"RMU B","8004193":"FNAC","8004195":"TNAS","8004196":"TNA","8004198":"NNIL","8004199":"SNAB","8004200":"KNAM, KNAMN","8004201":"TNA M","8004202":"TNAI","8004204":"MMAM","8004206":"FNAS","8004207":"MNBN","8004208":"HNAH","8004210":"FNU","8004215":"RNB","8004216":"RNA","8004217":"RNMA","8004218":"RNH","8004219":"RNT","8004220":"TN","8004222":"RNEZ","8004223":"SNF","8004227":"ANEZ","8004228":"ENHH","8004229":"TNEH","8004230":"EDDS","8004232":"TN M","8004233":"TNL","8004235":"TNED","8004236":"SNE","8004238":"TNSN","8004239":"MNSG","8004240":"MNEW","8004241":"ANTB","8004242":"KNEH","8004246":"FNIS, FNIU","8004247":"ANWF","8004249":"MNGH","8004250":"NNAE","8004251":"ENBM, ENBMP","8004252":"MNB","8004253":"SNBR","8004254":"MNBD","8004256":"MNBK","8004257":"RNBU","8004258":"TND","8004260":"HNPL","8004266":"AHAB","8004267":"AHRF","8004268":"NNDU","8004269":"EDK","8004271":"HNKO","8004273":"ENRA","8004276":"TNN","8004279":"MNF","8004280":"TRNF","8004284":"NNP","8004288":"EDOP","8004295":"FNF","8004297":"FNK","8004302":"ANL","8004304":"RNL","8004305":"NNT","8004306":"RND","8004310":"NNKS","8004312":"SNKW","8004313":"ENK","8004316":"KNRC","8004317":"KNSD","8004318":"MNES","8004319":"NNEU","8004320":"KNAK","8004321":"NNSG","8004322":"HNRU","8004323":"NNA","8004325":"NNU","8004326":"MND","8004327":"ANT","8004328":"FNSM","8004331":"RNSS","8004332":"NNW","8004333":"TNHO","8004335":"KNAL","8004336":"NNAM","8004338":"TNW","8004340":"ENV","8004343":"ANB","8004344":"SNID","8004345":"FNFD","8004348":"FNO","8004349":"FNOL","8004350":"FNR","8004351":"FNRO","8004352":"FSLH","8004353":"FNRW","8004357":"TSNU","8004363":"TNB","8004364":"FNCH","8004366":"KND","8004367":"FNIE","8004369":"ENID","8004373":"FNIB","8004376":"FNHD","8004379":"FNDH","8004380":"FNH","8004381":"ENDV","8004382":"FNJ","8004391":"MNLH","8004392":"SNDL","8004393":"KNME","8004395":"FNMI","8004396":"SNDM","8004400":"FNSD","8004401":"MNRU","8004402":"FROD","8004404":"MNRO","8004405":"FNDS","8004406":"ENDN","8004407":"ENDO","8004409":"FNS","8004413":"TNS","8004415":"FNV","8004417":"FNL","8004418":"FNWF","8004419":"EDUV","8004420":"FNDW","8004423":"RNID","8004424":"FNIZ","8004425":"TNF","8004426":"ENBE","8004429":"FKON","8004430":"ENIR","8004432":"FNIR","8004433":"KNIK","8004434":"KNIV","8004435":"FNIV","8004438":"SNI","8004440":"EHWB","8004441":"HNTH","8004442":"NDHF","8004444":"SNON","8004446":"MNHN","8004448":"ENOB","8004449":"HND","8004451":"MNOD","8004452":"HNO","8004453":"NOBW","8004456":"ANH","8004458":"TNO","8004460":"ANZ","8004461":"ENOW","8004462":"KNO","8004463":"SNOR","8004464":"RNO","8004466":"ANF","8004469":"NNRO","8004470":"NNOS","8004471":"NNO","8004473":"NNRS","8004474":"EBW","8004476":"NDTH, NND","8004477":"NNEI, NNES","8004478":"NNER","8004480":"NNLH","8004481":"NNMO","8004483":"NNRE, NNRF","8004484":"NNSR","8004485":"NNSW","8004486":"NNST","8004487":"NNSE, NNSN","8004488":"TNU","8004489":"RNBO","8004490":"TNUF","8004491":"NNRH","8004493":"NSTD","8004496":"TOAI","8004497":"FORA","8004499":"FOW","8004503":"MOA","8004504":"NOA","8004506":"MOU","8004507":"MOD","8004513":"SOH","8004514":"SOG","8004515":"FOBA","8004517":"TOBB","8004518":"FOB","8004521":"NON","8004523":"FOBD","8004525":"TOLC","8004527":"KOE","8004528":"TOES","8004529":"NOB","8004531":"MOGS","8004532":"MOGB","8004533":"NOH","8004538":"FOHS","8004540":"EOHT","8004541":"EOS, EOS P","8004542":"EOSD","8004545":"ROB","8004546":"ROBK","8004549":"TON","8004550":"KOL","8004552":"RLAU","8004553":"TOL","8004554":"MOLH","8004555":"SOW","8004557":"SOBM","8004563":"TOB","8004567":"FOBH","8004571":"MOMN","8004577":"ROSC","8004580":"MOSM","8004583":"NOBS","8004584":"MOSF","8004585":"MOF","8004589":"FOBS","8004592":"NOT","8004593":"FOTS","8004595":"RUDM","8004596":"FOU","8004597":"FOV","8004601":"FOBW","8004603":"ROD","8004604":"KOWI","8004605":"TOBZ","8004609":"NOK","8004610":"HOCH","8004613":"EOP","8004614":"FOCK","8004616":"KODE","8004620":"TCP","8004623":"TOE","8004624":"TOEW","8004626":"EOEL","8004629":"NOER","8004630":"EOER","8004632":"TOED","8004633":"NRTL","8004635":"FOE","8004636":"ROH","8004637":"TOET","8004639":"ROKS","8004640":"FOWH","8004642":"EOVP","8004643":"ROU","8004645":"FOO","8004647":"FOBI","8004652":"HOFN","8004653":"FOFF","8004654":"MOFF","8004658":"ROFH","8004661":"AOP, AOPS","8004662":"MOH","8004664":"FOK","8004665":"HOK","8004667":"MOL","8004668":"HOLB","8004669":"AOL","8004670":"HOLW","8004674":"EOLP","8004676":"EOLS","8004677":"SOU","8004679":"ROP","8004680":"FOPP","8004681":"TOP","8004683":"RORW","8004689":"HOHT","8004694":"KMBO","8004700":"NOS","8004701":"MOSH","8004702":"HOSS","8004703":"MOM","8004704":"HOTM","8004705":"HOTL","8004706":"KOSS","8004707":"AODT","8004709":"HOTW","8004712":"FOM","8004713":"FOS","8004714":"FOHF","8004719":"AOH","8004720":"HOTT","8004723":"MONH","8004724":"NOBE","8004725":"NOTS","8004726":"MOTF","8004727":"AOF","8004728":"AOBG","8004731":"MOTW","8004733":"MOBR","8004735":"HOTZ","8004739":"KOV","8004740":"TOW","8004741":"AOS","8004742":"MOYM","8004744":"EPDK","8004745":"EPDN","8004746":"KPFF","8004747":"MPD","8004748":"SPZ","8004749":"NPK","8004750":"APF","8004751":"HPAP","8004753":"MPP","8004755":"NPB","8004756":"NPAR","8004758":"NPE","8004759":"NPZ","8004760":"HP","8004761":"MPEI","8004762":"MPBG","8004763":"MPBN","8004764":"MPTN","8004765":"MPTO","8004767":"MPZ","8004770":"MPRM","8004771":"SPE","8004774":"NPET","8004775":"MPE","8004777":"HLAD","8004780":"MPFH","8004781":"MPF","8004784":"SPF","8004788":"FPD","8004796":"TPF","8004797":"NPEN","8004801":"TPW","8004803":"NPD","8004806":"MPFD","8004807":"MPFS","8004809":"MPFW","8004813":"RPB","8004814":"SPI","8004815":"MPI","8004816":"FPU","8004819":"AP, APS","8004820":"NPI","8004822":"SPS","8004826":"KPL","8004827":"MPL","8004835":"NPLF","8004838":"EPLT","8004841":"APLN","8004842":"TPL","8004847":"NPG","8004848":"APN","8004849":"NPOE","8004851":"HPOG","8004853":"NPOI","8004854":"MPO","8004858":"NPMH, NPOM","8004859":"SPOM","8004862":"APB","8004865":"NPOP","8004868":"HPTA, HPTH","8004869":"KPR, KPRH","8004873":"KPW","8004874":"MPH","8004875":"NPOH","8004878":"EPRA","8004879":"APZ","8004880":"NPS","8004881":"NPR","8004882":"NPRE","8004883":"EPRN","8004885":"MPR","8004888":"APD","8004893":"MPM","8004898":"KPUL","8004899":"MPUL","8004900":"MPU","8004901":"NPU","8004903":"APU","8004905":"EQLK","8004907":"KQ","8004908":"EQL, EQL O, EQL W","8004909":"SQS","8004910":"SQI","8004913":"ARH","8004914":"MRDD","8004917":"NRA","8004919":"HRAH","8004920":"KDHL","8004922":"MRN","8004923":"NRAF","8004924":"ARS","8004925":"MRAG","8004926":"NRAH","8004927":"MRAM","8004929":"SRCH","8004930":"TRM","8004931":"RRBI","8004932":"RRBH","8004933":"NRAB","8004935":"RRN","8004936":"NRSL","8004938":"SRAS","8004942":"FRAN","8004945":"HRST","8004948":"KRAO","8004952":"ARF","8004955":"MRA","8004960":"ERMA","8004962":"FRA","8004965":"TRB","8004966":"MRH","8004967":"KREC","8004970":"HRFD","8004971":"NRDF","8004972":"ERFE","8004975":"SRWH","8004978":"NRCH","8004979":"NRZ","8004981":"NREG","8004983":"NRPF, NRPH","8004987":"NRGF","8004988":"NRU","8004993":"SRW","8004994":"NREK","8004995":"FRHM","8004997":"RRU","8004999":"TRF","8005001":"TRXS","8005002":"TRCB","8005003":"FRSA","8005005":"NREI","8005007":"MRCH","8005008":"MRS","8005013":"RRIN","8005014":"SREI","8005015":"RRHM","8005016":"ARBK","8005019":"ARD","8005020":"FREI","8005023":"ARE","8005026":"RRSH","8005027":"FRSK","8005030":"EREK","8005031":"EEBS","8005033":"KR","8005034":"KRG","8005035":"KRLU","8005037":"RR","8005039":"FREH","8005044":"SRE","8005045":"NREN","8005047":"HRTN","8005049":"NREZ","8005050":"NRT","8005052":"TREW","8005053":"TREB","8005054":"TRES","8005055":"ERHA","8005057":"KRBL","8005058":"KRBA","8005059":"KRBE","8005062":"KRBR","8005064":"RRH","8005065":"KRHO","8005067":"RRHH","8005068":"RRW","8005069":"RRZA","8005070":"KRHE","8005071":"RRZM","8005072":"RRZU","8005073":"KRYO","8005074":"KRHD","8005077":"RRIH","8005080":"ARL","8005083":"FRID","8005086":"MRDU","8005087":"TRI","8005089":"FRIE","8005090":"RRL","8005092":"NRCK","8005094":"SRI","8005095":"ARY","8005096":"HRIE","8005097":"TRH","8005098":"RRIM","8005101":"RRI","8005102":"ERIK","8005103":"RRIT","8005104":"HRIN","8005106":"ARI","8005107":"HRTH","8005111":"SRC","8005112":"NRC","8005113":"SROA","8005116":"FRB","8005119":"HRDK","8005120":"FRO","8005121":"NROD","8005122":"NRTM","8005125":"FRFH, FRFHW","8005127":"MRM, MRMS","8005131":"FROH","8005133":"NROE","8005134":"KROE","8005136":"RROE","8005137":"HROT","8005138":"MRTA","8005139":"NRTH","8005140":"NRP","8005141":"NRPG","8005142":"NRPE","8005143":"KRST","8005146":"RRST","8005149":"MRFD","8005151":"TRO","8005152":"KROI","8005153":"KROL","8005154":"NRON","8005156":"FROL","8005157":"TROM","8005159":"KROM","8005160":"HRBG","8005161":"FRON","8005163":"FROS","8005164":"KROS","8005166":"NRNU","8005168":"TRBG","8005172":"SROB","8005177":"NRL","8005178":"NRW","8005181":"RRM","8005182":"FROF","8005184":"FRTN","8005185":"NRO","8005189":"NRBG","8005190":"NROT","8005191":"AROP","8005195":"TRR","8005197":"TRT","8005198":"NRTD","8005199":"NRHN","8005200":"TRG","8005201":"TGOL","8005202":"TRSA","8005205":"ERUD","8005207":"ARP","8005208":"FRS","8005209":"NRUE","8005213":"FRDH","8005214":"RRZD","8005217":"RRZH","8005218":"KRUN","8005219":"NRLB","8005220":"FRUE","8005221":"FRUO","8005225":"KRUM","8005227":"EROL","8005229":"FRUK","8005231":"NRST","8005236":"TRUT","8005238":"NSL","8005241":"SSO","8005243":"SSB","8005245":"SSAB","8005246":"SSLB","8005247":"SSLS","8005249":"FSAA","8005250":"NSA","8005253":"TSA","8005255":"RSAE","8005256":"ASAG","8005257":"RANS","8005258":"TSAL","8005259":"MSAL","8005260":"SSMT","8005261":"FBSS","8005262":"HSAL","8005264":"HEB","8005265":"HSB","8005269":"HSI","8005270":"HSL","8005272":"EDEF","8005274":"HST","8005275":"HSW","8005276":"ESZK","8005279":"NSND","8005282":"HSAN","8005283":"ESDB","8005285":"HSAB","8005287":"HSAK","8005288":"ASDW","8005289":"ESCI","8005292":"HSRD","8005293":"ESAS","8005298":"KSA","8005299":"MSR","8005301":"TSL","8005302":"MSGB","8005304":"NGLH","8005306":"SSU","8005311":"MSFL","8005316":"ESMU","8005317":"RSAL","8005320":"HSDL","8005321":"ASAZ","8005322":"ESMD","8005324":"HBLB","8005329":"TSEP","8005330":"ASL","8005332":"SSD","8005333":"TSK","8005334":"TSX","8005335":"RSZL","8005336":"HSCD","8005338":"ESCF","8005339":"KSEV","8005340":"HSCI","8005342":"SUZD","8005343":"HSCB","8005345":"RSDS","8005346":"SSWL","8005347":"RSCM","8005350":"RSCL","8005352":"NSG","8005355":"HSCL","8005356":"KSLA","8005362":"ASW","8005364":"RSG","8005365":"FSBA","8005366":"RSR","8005367":"MSCS","8005369":"ESHO","8005370":"ESNS","8005371":"RSLU","8005374":"FSMU","8005378":"KSMI","8005379":"TSHM","8005381":"MSCN","8005383":"NSMA","8005388":"NSNE","8005389":"MLLS","8005390":"ASDN","8005391":"NSY","8005392":"SSOF","8005393":"FSCH","8005400":"NSGN","8005405":"HSWO","8005406":"MSNG","8005412":"NSOE","8005413":"HSPP","8005415":"ESHM","8005417":"MSDF","8005418":"MSGU","8005419":"MHP, MHPW","8005420":"RSCH","8005421":"TSPF","8005423":"SSCP","8005424":"TSF","8005425":"RSCW","8005426":"RSCS","8005431":"TSCH","8005432":"MSHN","8005435":"ASC","8005436":"HSTT","8005439":"NSC","8005440":"NSCL","8005442":"MSHH","8005444":"MSMN","8005445":"TSWA","8005449":"TSHL","8005451":"NSAI","8005454":"TSWK","8005455":"FSTS","8005456":"FSLN","8005457":"HSWS","8005465":"NSW","8005466":"NSBS","8005468":"ASWA","8005469":"NSDO","8005476":"SSWE","8005479":"NSMT","8005481":"NSST","8005485":"NSWF","8005488":"KSWW","8005489":"MSWN","8005490":"RSCV","8005494":"RSZ","8005495":"MSDG","8005497":"RSST","8005498":"FSN","8005499":"KSEC","8005502":"RSEE","8005504":"MSH","8005505":"MSEG","8005506":"MSEB","8005507":"HS","8005508":"MSE","8005510":"SSE","8005511":"HSEN","8005516":"NSN","8005517":"NSS","8005518":"NSP","8005520":"NSLZ","8005522":"FSEL","8005523":"NSLI","8005525":"ESEM","8005526":"ESEB","8005532":"MSED","8005534":"ESEL","8005535":"ESES","8005536":"TSE","8005539":"SSER","8005540":"TSER","8005543":"NSF","8005544":"FSG","8005545":"NSE","8005547":"NSYB","8005551":"RSIB","8005555":"ESIH","8005556":"KSIB","8005557":"NSDF","8005560":"RSIS","8005561":"ASID","8005562":"SSBG","8005566":"TSY","8005568":"TSIH","8005569":"ESIL","8005572":"NSHU","8005574":"TSI","8005575":"KSID, KSIU","8005576":"FSL","8005577":"FSI","8005578":"RSM","8005580":"KSIZ","8005581":"NSIH, NSIN","8005582":"RSIN","8005583":"SSOB","8005586":"ASOE","8005587":"RSZM","8005588":"RSZN","8005590":"KSS","8005592":"FSOL","8005593":"MSO","8005594":"ASON","8005597":"KSGR","8005598":"KSM","8005600":"ESON","8005602":"RSOH","8005607":"MSHM","8005608":"TSON","8005609":"MSF","8005610":"FSON","8005613":"AS","8005616":"TSP","8005617":"TSPM","8005622":"KSPA","8005623":"FSPE","8005624":"SSPE","8005625":"NSKN","8005626":"RSPN","8005628":"RSP","8005629":"KSPI","8005630":"NSPU","8005635":"ESPR","8005636":"FSPO","8005637":"FSPR, FSPRN, FSPRS","8005638":"HSPR","8005639":"MSAB","8005640":"ASP","8005644":"RSGO","8005645":"FSGO","8005646":"FSGH","8005648":"RSIG","8005649":"SSI","8005652":"MKL","8005653":"MMG","8005655":"ASD","8005656":"MOTN","8005658":"SSTO","8005659":"SSWD","8005661":"FSTA","8005662":"HSHG","8005663":"ASHS","8005665":"HSDF","8005668":"FST","8005670":"NSFN","8005672":"MSTA","8005673":"SSTB","8005674":"NSM","8005675":"MSNO","8005676":"MST","8005678":"SSTH","8005682":"HSTF","8005686":"NSWH","8005688":"RSNA","8005689":"SSTA","8005690":"FSA","8005692":"NSD","8005699":"MSA","8005700":"FSFZ","8005701":"RSTN","8005702":"ESBS","8005703":"HSFD","8005704":"ESTG","8005706":"FSHM","8005708":"HSTM","8005712":"EGRK","8005713":"RSTE","8005714":"RSS","8005715":"SSTW","8005717":"ASTE","8005720":"FSTZ","8005723":"TSTD","8005725":"MSTS","8005726":"TSTE","8005731":"ESKA","8005734":"NSOK","8005735":"MSD","8005736":"FSTH","8005737":"NSTH","8005739":"FSTK","8005740":"FSTR","8005746":"KSOM","8005747":"TSGZ","8005748":"KSTZ","8005749":"MSMS","8005750":"TSTR","8005752":"NSK","8005760":"NSU","8005761":"ESTU","8005763":"HSUB","8005766":"TSEB","8005767":"TSN","8005768":"TFL","8005769":"TSC","8005770":"TSFE, TSZ F","8005771":"TSM","8005772":"TSOM","8005773":"TSRO","8005774":"TSSM","8005775":"TSU, TSU P, TSUH","8005776":"TSV","8005777":"TSZA, TSZAH","8005778":"TSZ","8005779":"TSOS","8005780":"HSUD","8005781":"ASU","8005782":"ASUE","8005783":"ASDD","8005785":"ASDF","8005786":"TSUE","8005787":"NSUE","8005788":"ASUP","8005790":"TSD","8005791":"TSUL","8005792":"TSUS","8005795":"TSBM","8005796":"SSZ","8005797":"SSZA","8005798":"FSZ","8005799":"FSZN","8005800":"NSR","8005801":"NSRH","8005802":"MSUG","8005809":"HSYK","8005810":"ESYL","8005811":"ESYH","8005812":"STB","8005820":"TTM","8005823":"TTA","8005824":"MTPF","8005825":"ATP","8005826":"ATAT","8005828":"MTA","8005831":"MTU","8005833":"MTO","8005834":"ETEL","8005835":"STS","8005836":"RTMU","8005843":"STWF","8005845":"TTL","8005852":"MTMA","8005855":"NTAS","8005857":"STN","8005858":"ATHS","8005864":"NTHM","8005865":"KTH","8005867":"ATB","8005870":"ATK","8005871":"RTI","8005874":"ATIM","8005876":"RTIT","8005885":"ATG","8005887":"ATM","8005888":"ATST","8005889":"STT","8005890":"NTB","8005891":"FTH","8005895":"NTG","8005896":"FTRE","8005901":"HTRI","8005902":"RTR","8005903":"NTRI","8005905":"STRS","8005907":"NTF","8005908":"TTO","8005910":"KTR","8005911":"TTR","8005917":"TTD","8005918":"TTLU","8005920":"MTFD","8005925":"TTUS","8005927":"MTZ","8005929":"HT","8005930":"EUBD","8005931":"RUW","8005935":"KUBP","8005937":"RUEB","8005940":"MUS","8005942":"RUEM","8005943":"RUEN","8005945":"SUG","8005946":"TTUG","8005947":"NU","8005948":"MUF","8005949":"TUH","8005950":"FUR","8005952":"TUO","8005954":"TUDT","8005955":"TU F","8005962":"MURO","8005963":"RUN","8005966":"NUDF","8005967":"NUND","8005970":"KUN","8005971":"EUK","8005972":"FUKO","8005975":"MUAG","8005976":"NUA","8005979":"TBB","8005983":"TUE","8005986":"MUFG","8005989":"TUG","8005991":"MUH","8005993":"MUHN","8005995":"NUT","8005997":"TUK","8005998":"TUL","8006001":"HUNL","8006006":"MUG","8006008":"TURB","8006017":"NUS","8006019":"SUSZ","8006030":"TUA","8006031":"FUCH","8006032":"KURF","8006035":"KUR","8006036":"KURR","8006037":"MURS","8006039":"TURS","8006041":"HUS","8006048":"MUTG","8006052":"NVA","8006053":"TV","8006054":"KVA","8006056":"HVA","8006058":"AVF","8006059":"MVS","8006060":"HVEC","8006061":"HVCH","8006062":"AVLS","8006064":"EVLR","8006065":"NVE","8006067":"NVN","8006068":"FVOE","8006076":"HV","8006078":"HVWH","8006083":"FVR","8006085":"NVK","8006086":"NVI","8006089":"HVIN","8006090":"HVIS","8006091":"HVLO","8006094":"MVRN","8006095":"HVOE","8006098":"EVD","8006100":"SVO","8006101":"MVG","8006104":"HVOL","8006109":"EVOK","8006112":"HVOP","8006116":"HVHP","8006117":"EVRD","8006118":"EVRO","8006120":"NV","8006125":"RWCH","8006131":"MWAE","8006132":"FWAE","8006134":"NWAF","8006135":"TWHF","8006136":"FWFK","8006137":"RWG","8006139":"EWAL","8006144":"HWAZ","8006147":"NWA","8006148":"AWK","8006154":"TWG","8006155":"NWDH","8006156":"SWAB","8006157":"TWY","8006159":"RWA","8006163":"NWLM","8006167":"RWU, RWU S","8006170":"SWL","8006171":"TWH","8006172":"HWKD","8006175":"FWF","8006181":"NWLD","8006183":"FWAH","8006184":"MWHN","8006189":"MHSN","8006190":"MWKN","8006191":"KWAP","8006193":"HWSR","8006194":"EEHT","8006197":"AOW","8006198":"AWCH","8006200":"TWW","8006203":"TWAN","8006206":"EWAF","8006207":"EWEM","8006210":"MWGU","8006212":"TWV, TWVH","8006213":"AWA","8006215":"RWR","8006217":"TWA","8006218":"MWBG","8006219":"MWSG","8006222":"SWAS","8006224":"MWAS","8006226":"EWAT","8006227":"EWHP","8006229":"FWST","8006232":"FWCK","8006233":"HWED","8006236":"AWL","8006237":"HWEE","8006240":"KWEE","8006243":"KWEG","8006252":"SWE","8006256":"MWEI","8006257":"NWGR","8006258":"MWDB","8006261":"RWD","8006264":"NWDG","8006266":"NWHR","8006267":"NWHF","8006268":"TSWF","8006270":"HWUE","8006271":"TW","8006272":"RW","8006273":"RWEI","8006277":"TWEL","8006279":"MWLB","8006280":"KWES","8006281":"TWLH","8006289":"TWR","8006290":"TWRW","8006292":"RWSS","8006293":"FWEK","8006294":"TELI","8006296":"TWSN","8006298":"NWG","8006300":"NWEO","8006303":"KWEH","8006304":"FWN","8006306":"FWI","8006309":"MWZH","8006312":"FWZ","8006313":"FWES","8006315":"SWN","8006319":"AWBS","8006320":"EWSE","8006321":"RWEL","8006323":"EWVE","8006330":"AWE","8006331":"TWD","8006336":"HWSN","8006339":"EWHL","8006340":"FWDF","8006342":"EWER","8006346":"TWER","8006347":"NWRB","8006348":"EWRN","8006349":"NWFD, NWFH","8006353":"MWHA","8006356":"EWFK","8006357":"AWBU","8006358":"HWES","8006359":"MWS","8006360":"EWBH","8006361":"EWBV","8006363":"MWDF","8006366":"MWM","8006367":"HWTH","8006369":"AWLA","8006373":"TWSH","8006376":"TWX","8006378":"MWHS","8006379":"EWSM","8006380":"NWL","8006383":"EWN","8006386":"EWET","8006389":"EWIC","8006390":"NWK","8006391":"KWIC","8006392":"SWK","8006401":"FWRA","8006402":"HWRN","8006403":"NWU","8006404":"FWO","8006407":"FWE","8006408":"FWIG","8006409":"FWS","8006414":"NWDC","8006416":"TWID","8006417":"RWI","8006418":"NWIE","8006421":"RWS","8006426":"NWI","8006432":"TWIB","8006436":"HWIH","8006440":"TWL","8006441":"RWSW","8006445":"HW","8006448":"NWHD","8006449":"HWBD","8006454":"FWLM","8006455":"NWIG","8006456":"TWLB","8006459":"FWTH","8006460":"AWIR","8006461":"SWIG","8006463":"SWIN","8006465":"FWIN","8006466":"EWIL","8006468":"RWND","8006472":"NWB","8006473":"NWIN","8006475":"AWG","8006476":"NWKH","8006479":"TWI","8006481":"SWI","8006482":"HWIN","8006483":"SWNW","8006484":"AWI","8006485":"TWIN","8006486":"EWTB","8006488":"NWN","8006489":"AWIM","8006498":"KWIR","8006499":"FWIR","8006501":"EWIN","8006503":"HWIS","8006505":"EWIK","8006508":"RMHH","8006509":"RMLB","8006510":"EWIA","8006511":"RMNS","8006513":"TSUN","8006514":"EEHH","8006516":"KWIS","8006517":"TWIT","8006520":"HWTM","8006524":"FWZN","8006527":"AWRT","8006528":"FWX","8006529":"FWOE","8006531":"RWRZ","8006533":"MWNS","8006534":"FWRR","8006535":"FWOD","8006536":"RWRD","8006537":"MWTI","8006541":"AWLF","8006544":"RWO","8006545":"TWO","8006546":"FWON","8006548":"FWFG","8006550":"MWO","8006552":"HWOB","8006554":"NWM","8006555":"SWFS","8006559":"AWOL","8006561":"HWWI","8006570":"AWRE","8006572":"AWST","8006575":"EWAP","8006577":"EWGD","8006578":"EWGT","8006581":"SWB","8006582":"NWS","8006586":"NWZ","8006588":"NWBZ","8006590":"EWUF","8006592":"HWUL","8006596":"KWBA","8006607":"KWL, KWLP","8006616":"KWRO","8006618":"KWSO","8006619":"KWS","8006620":"KWU","8006623":"KWZ","8006624":"NWLZ","8006625":"TWUM","8006626":"TWUN","8006627":"SWU","8006629":"RWY","8006630":"KX","8006634":"NZA","8006635":"NZ","8006641":"RZ","8006642":"TEZL","8006643":"FZK","8006644":"FZR","8006646":"FZH","8006648":"FZEP","8006659":"KZI","8006660":"NZF","8006661":"RZIM","8006662":"TZI","8006663":"FZM","8006664":"NZI","8006666":"NZIK","8006667":"RVLZ","8006670":"MZHP","8006671":"MZO","8006672":"RZT","8006673":"KZU","8006676":"TZU","8006678":"RZHN","8006679":"RZUN","8006680":"SZW","8006684":"NZWL","8006685":"NZWU","8006686":"RZW","8006687":"FZW","8006688":"MUSM","8006690":"FFGA","8006691":"FFTA","8006692":"FHAU","8006696":"MNPS","8006698":"TSS","8006699":"TSFS","8006700":"TSMI","8006704":"ALTK","8006705":"ARES","8006706":"AKS","8006707":"FHMD","8006709":"EDRN","8006710":"EBOH","8006711":"EBOW","8006712":"EHGW","8006713":"KLMH, KLMI","8006714":"KSV","8006717":"MVAD","8006718":"KWV","8006719":"KWO","8006730":"MNM","8006743":"TSNS","8006745":"NSTT","8006749":"AHFS","8006750":"ANWS","8007273":"AWAH","8007357":"SURM","8007441":"RNST","8007442":"RWB","8007443":"RESN","8007444":"RHM","8007445":"RAG","8007482":"SRAM","8007768":"HNDM","8007790":"ANSW","8007856":"NWDM","8007857":"RSAI","8007858":"RSFL","8007859":"RKPW","8007860":"RSHF","8007868":"SLCJ","8010001":"DAD","8010003":"LA","8010004":"WA","8010006":"DAF","8010007":"UA","8010008":"LACF","8010009":"LAL","8010011":"DAUO","8010012":"DAUU","8010013":"LBB","8010014":"UBL","8010016":"WDO","8010017":"WFW","8010018":"WK","8010019":"UKO","8010020":"ULS","8010021":"USZ","8010022":"DSA","8010026":"DBZ","8010029":"BBES","8010031":"BBIG","8010032":"UBK","8010033":"WBG","8010035":"BKH, BKLH","8010036":"BLI, BLO","8010040":"DKUR","8010041":"BSW, BSWP","8010043":"LBG","8010044":"DBF","8010046":"LBEU","8010047":"LBZ","8010048":"UBKN","8010049":"DBW","8010050":"LBT","8010051":"WBL","8010053":"BBF, BBFD","8010054":"UBM","8010055":"UBD","8010056":"LBLG","8010059":"LBOR","8010060":"LB","8010061":"UBR","8010064":"WBR","8010066":"WB","8010067":"UBF","8010069":"BC","8010070":"LCBO","8010071":"LCBW","8010072":"DCW","8010073":"BCS","8010074":"DCR","8010076":"LDL","8010077":"LD","8010078":"LDB","8010079":"BDKO, BDKU","8010080":"DDE","8010081":"UDST","8010084":"LGND","8010085":"DH","8010086":"LMR, LMRH","8010088":"DKT","8010089":"DN, DN A","8010091":"DRR","8010092":"DEB","8010093":"WE","8010094":"DEIB","8010095":"LEG","8010096":"LEI","8010097":"UEI","8010099":"BEW","8010100":"BEB","8010101":"UE, UE P","8010102":"UEN","8010103":"LF, LF O, LF U","8010105":"UEIP","8010106":"DFA","8010108":"DFL","8010109":"BFHS, BFLH","8010110":"UF","8010111":"BFO","8010113":"BFP","8010115":"DFR","8010116":"DFH, DHG","8010117":"WTV","8010118":"UFT","8010119":"LFE","8010120":"BFUW","8010121":"LGG","8010122":"LGH","8010123":"LGN","8010124":"URD","8010125":"UG","8010126":"UGS","8010129":"DGL","8010130":"DGLS","8010131":"DG","8010133":"UGW","8010134":"DGZ","8010136":"UGO","8010137":"UGD","8010139":"WGW","8010140":"UGR","8010141":"WGV","8010142":"UGM","8010144":"DGR","8010145":"UGH","8010146":"LGC","8010150":"BGRU","8010151":"LGSN","8010152":"LGT","8010153":"WG","8010154":"LGK","8010155":"LHME","8010156":"WHL","8010157":"LHB","8010158":"LHL","8010159":"LH, LHG","8010160":"LHN","8010161":"LEGO, LEGOB","8010162":"LHAD, LHADB","8010163":"DHD","8010166":"DHN","8010168":"LHE","8010169":"LHR","8010170":"UHR","8010171":"BHC","8010172":"LHWU","8010173":"WHO","8010174":"BHOR, BHR","8010175":"WNRR","8010176":"WHOR","8010177":"BHW","8010178":"UI","8010179":"WJK","8010182":"BJUE","8010183":"BSEO","8010184":"DC","8010185":"DCD, DCS","8010186":"LKRS","8010189":"BKI","8010191":"LKM","8010193":"BKW","8010194":"LKO","8010195":"LK","8010196":"UKS","8010198":"UKU","8010199":"WLD","8010201":"WLG","8010202":"DLH","8010203":"UL","8010204":"LKMR","8010205":"LL, LL T","8010206":"LLC","8010207":"LLEL","8010208":"LLPD, LLPDH","8010209":"LLP","8010210":"WLI","8010212":"DL","8010213":"WLK","8010214":"WLO","8010215":"BLF","8010216":"WL","8010217":"BLB","8010220":"BLN","8010222":"LW","8010224":"LM","8010226":"LMN","8010227":"WMA","8010228":"LMAG","8010229":"DMEH","8010230":"UM","8010231":"LMEI","8010232":"LMG","8010233":"BMIP","8010234":"DMHD","8010235":"UMH","8010236":"BMB","8010238":"LNA","8010239":"BNAU","8010240":"UNM","8010241":"WN","8010242":"UND","8010243":"LNK","8010244":"DNM","8010246":"WNRW","8010248":"WNS","8010249":"DNE","8010250":"WNT","8010253":"DNR","8010254":"LNHG","8010255":"BHF, BOSB","8010256":"UN","8010259":"DOZ","8010261":"LOE","8010264":"UO","8010266":"LO","8010267":"WPM","8010268":"WP","8010269":"LPG","8010272":"DPI","8010273":"WPZ","8010274":"UPL","8010275":"DP","8010279":"BPDP","8010280":"BPDC","8010281":"LPT","8010282":"WPL","8010284":"WPI","8010285":"DPR","8010287":"WPR","8010288":"UPR","8010290":"LQB","8010291":"LQ","8010292":"DRB, DRB B","8010293":"DRBK, DRBW","8010296":"LRW","8010297":"DR","8010299":"LRN","8010300":"WRV","8010301":"DRON","8010302":"LR","8010304":"WR","8010305":"URTB","8010306":"UR","8010307":"URS","8010308":"BRU","8010309":"US","8010310":"LSW","8010311":"LSL","8010312":"USG","8010315":"USM","8010317":"DSB","8010318":"LSB","8010321":"LSH","8010322":"WSN","8010324":"WS","8010325":"WSGN, WSGR","8010327":"BSN","8010328":"USD","8010329":"USH","8010330":"BSP","8010331":"DEG","8010332":"LSF","8010333":"DSPH","8010334":"LS","8010335":"LSS","8010336":"DSRB","8010337":"DSTO","8010338":"WSR","8010339":"WSB","8010341":"BST, BSTV","8010342":"USF","8010343":"LSTF","8010345":"USL","8010347":"WT","8010348":"WTE","8010349":"UTEU","8010350":"UTH","8010351":"LTG","8010352":"UTR","8010353":"BUK","8010354":"UUTL","8010355":"WV","8010357":"BGU","8010359":"DWA","8010361":"WWR","8010364":"LWEG","8010365":"UWE","8010366":"UWM","8010367":"DWS","8010368":"UW","8010370":"BWW","8010371":"BWR, BWRO, BWRU","8010372":"DWR","8010373":"BWE","8010374":"LWD","8010375":"UWH","8010376":"BWG","8010377":"BWP","8010378":"BWHO","8010380":"DWT","8010381":"WWI","8010382":"WW","8010383":"DWIO","8010384":"WWK","8010385":"UWK","8010386":"BWRZ","8010387":"UWF","8010388":"DWD","8010389":"BWUS","8010390":"LZ","8010391":"UZL","8010393":"DZ","8010395":"BZO","8010396":"WZS","8010397":"DZW","8010398":"DZA","8010399":"WF","8010400":"DNKW","8010403":"BCHB, BCHS","8010404":"BSPA, BSPD","8010405":"BWS, BWSS","8010406":"BZOO, BZOS","8011003":"BAF, BAHR","8011004":"BAFR","8011005":"BAFN","8011011":"WAHU","8011014":"BARO","8011016":"BAD","8011017":"WAF","8011018":"LALT","8011019":"DAG","8011025":"WATR","8011027":"WALW","8011028":"UACH","8011029":"UAMM","8011031":"WAH","8011033":"DAMD","8011034":"BART","8011038":"LAMS","8011039":"DAMH","8011042":"LANG","8011043":"LAG","8011044":"WAK","8011046":"BKAR, BKRW","8011048":"LAB","8011051":"UAP","8011053":"LAF","8011054":"UAR","8011055":"UASD","8011057":"UAE","8011058":"UJS","8011059":"DAUH","8011064":"BAHH","8011065":"UB","8011066":"UBB","8011067":"UBBZ","8011068":"DBM","8011071":"LDBG","8011072":"DBEL","8011074":"UBKZ","8011077":"LBLS","8011078":"BBLW","8011079":"BBSP","8011085":"UBS","8011088":"WWIL","8011091":"DBJ","8011093":"BBKL","8011095":"DBAG","8011097":"BBG","8011098":"BBO","8011100":"BBAI","8011102":"BGB, BGS","8011103":"UBGS","8011106":"UBAS","8011111":"LBAR","8011112":"LBAS","8011113":"BPAF, BSKR, BSKV","8011115":"DBAM","8011116":"BBA","8011119":"LBBZ","8011125":"WBES, WBESD","8011131":"LBEI","8011132":"LBGH","8011133":"LBLL","8011138":"UBEN","8011139":"UBH","8011140":"WBE","8011144":"UBGE","8011149":"WBER","8011150":"LBWZ","8011154":"BBKR","8011155":"BALE, BALX","8011160":"BHBF, BL, BLS","8011162":"BOK, BOKN, BOKO, BOKR, BOKS","8011168":"LBGF","8011169":"LBGS","8011170":"LBGW, LBWD","8011172":"UBE","8011173":"BBST","8011177":"LBEN","8011178":"UBEU","8011179":"BBE","8011181":"LBYD","8011183":"UBA","8011184":"LBF","8011185":"DBIE","8011187":"LBSR","8011188":"WBT","8011190":"LBIF","8011191":"WBI","8011199":"DBH","8011205":"WBLS","8011206":"UBN","8011208":"UBHA","8011210":"LBD","8011211":"BBLU","8011213":"WBLK","8011215":"WBO","8011219":"UBOD","8011222":"LBWE","8011226":"LBOK","8011228":"LBOE","8011230":"WBZ","8011238":"BBK","8011242":"LBL","8011248":"WBRH","8011250":"BBRA","8011252":"LBA","8011255":"LBS","8011256":"LBSO","8011257":"DBDL","8011258":"WBDN","8011260":"LBN","8011264":"DBTD","8011265":"UBRT","8011267":"UBZ","8011269":"BBSN","8011270":"WBTF","8011271":"BBRK","8011277":"LBRP","8011281":"WBUH","8011282":"BBUZ","8011284":"BBUW","8011290":"LBZG","8011293":"WBSG","8011294":"LBU","8011296":"LBGK","8011297":"DBU","8011298":"DBWD","8011302":"LBOW","8011304":"UBU","8011306":"BFRI, BFST, BFSTT","8011307":"WCA","8011308":"BCAP","8011311":"WCW","8011312":"UKSO","8011314":"WCOK","8011315":"DCL","8011318":"BCSO, BSDO","8011319":"BCO","8011320":"DCB","8011322":"LCW","8011323":"LCBS","8011325":"DCU","8011326":"WCZ","8011334":"BDAB","8011335":"UDA","8011336":"UDW","8011339":"LDA","8011340":"BDT","8011344":"WDWE","8011346":"LDAR","8011354":"DDT","8011355":"LDK","8011356":"WDM","8011361":"LDS","8011363":"LDAL","8011364":"LDMO","8011371":"LDTZ","8011376":"LDI","8011378":"UDN","8011383":"LDT","8011385":"DDIF","8011387":"LDOB","8011388":"LDF","8011390":"LDO","8011397":"UDOE","8011398":"DDO","8011399":"DKTF","8011402":"LDN","8011403":"WDS","8011406":"UDG","8011408":"WDOW","8011409":"BDF","8011414":"BDR","8011415":"LDD","8011416":"DBPL","8011417":"DGRS","8011418":"DIG","8011419":"DCT","8011420":"DD","8011421":"DKE","8011422":"DNSH","8011423":"DPS, DPSA","8011424":"DRK","8011425":"DSTT","8011426":"DSTH","8011427":"DTR","8011428":"DZSW","8011430":"BDW","8011431":"DHFR","8011433":"LDM","8011438":"WDU","8011442":"WDT","8011446":"DEBR","8011449":"UEK","8011450":"UEC","8011451":"DKR","8011453":"UEFT","8011455":"LEGD","8011456":"WEGS","8011460":"LEST","8011462":"LEF","8011468":"UEIW","8011471":"BEHS","8011472":"UED","8011476":"UELG","8011477":"DLD","8011480":"UER","8011481":"WELM","8011482":"BEZ","8011484":"LEK","8011486":"LELT","8011487":"UELB","8011488":"UELK","8011489":"UEX","8011491":"LE, LE H","8011495":"LEW","8011496":"LER","8011500":"UEO","8011502":"UEBI","8011503":"UEGI","8011507":"DER","8011512":"UERN","8011519":"UEH","8011520":"UET","8011523":"WEV","8011529":"DFUS","8011531":"WFBG","8011533":"BFS","8011536":"WFDF","8011537":"LFMW","8011540":"BFIH","8011541":"BFIN","8011542":"BFW","8011544":"LFG","8011545":"LFL","8011549":"LFD","8011550":"LFDE","8011553":"DFK","8011554":"DFKS","8011556":"DFRS","8011557":"BFPN","8011559":"BFRS","8011560":"LFA","8011563":"BFR","8011564":"LFK","8011567":"UFO","8011569":"DFD","8011570":"DHGW","8011571":"LFZ","8011572":"WFD","8011573":"UFB, UFB B","8011574":"BFDF","8011578":"UFR","8011582":"WFRR","8011585":"WFRK","8011586":"LFI","8011587":"LFIO","8011588":"LFB","8011591":"BFUS","8011592":"WGA","8011594":"UGSM","8011596":"LGA","8011598":"LGW","8011599":"LGAL","8011602":"UGBH","8011603":"UGB","8011609":"DGEI","8011611":"WGE","8011619":"UGLB","8011623":"UGZ","8011624":"UGBG","8011626":"LGE","8011628":"DGD","8011629":"UGT","8011630":"LGWS","8011632":"LGI","8011636":"DGHU","8011637":"DGLA","8011641":"WGF","8011643":"UGL","8011646":"WGNV","8011654":"LGOR","8011656":"DGWH","8011657":"UGSB","8011662":"LGOE","8011665":"LGM","8011667":"BGM","8011668":"BGO","8011671":"WGOL","8011672":"BGZ","8011673":"LGO","8011674":"BGOR","8011676":"DKH","8011678":"UGOS","8011681":"WGRB","8011683":"LG","8011685":"LGRK","8011687":"UGTA","8011689":"WGR","8011691":"WGRA","8011694":"WGWS","8011695":"BGBS, BGRI","8011697":"UGRD","8011699":"LGPN","8011700":"UGN","8011702":"WGBN","8011703":"LGB","8011705":"LGRI","8011707":"WGI","8011709":"DGO","8011711":"LGOH, LGOS","8011712":"DGT","8011714":"LGRL","8011718":"WGB","8011723":"WGKW","8011725":"LGZ","8011726":"WGLS","8011729":"WGLI","8011730":"WGP","8011735":"WGS","8011740":"BGSB, BGSBS","8011745":"LGD","8011746":"UGG","8011749":"DGC","8011750":"UGFA","8011751":"DGRT","8011752":"LGKL","8011753":"LGL","8011754":"UGNH","8011755":"LGP","8011756":"BGR","8011758":"DGRF","8011759":"UGRU","8011761":"DGAU","8011762":"UGC","8011763":"LGS","8011766":"LGWU","8011770":"DGN","8011771":"LGRA","8011773":"DGBA","8011776":"WGRG","8011778":"WSRB","8011788":"BGSW","8011790":"DGF","8011791":"UGU","8011792":"UHSN","8011794":"LHD","8011795":"BHAH","8011796":"LHMT","8011797":"WHK","8011799":"DHW","8011801":"DHND","8011802":"DHA","8011805":"BHB","8011808":"LHBO","8011809":"LHBS","8011813":"LHNI","8011814":"LHT, LHTS","8011815":"WHAM","8011818":"BHGB","8011820":"UH","8011821":"UHNO","8011822":"UHRS","8011825":"DHMU","8011834":"UHAU","8011838":"LHEW","8011843":"DHDS","8011844":"DHDG","8011848":"WHEG","8011849":"UHT","8011852":"UHD","8011853":"BHEL","8011855":"DHLF","8011860":"UHRH","8011861":"DHS","8011862":"UHK","8011863":"BHE","8011864":"WHB","8011867":"LHZW","8011869":"UHET","8011871":"UHN","8011878":"DHE","8011891":"UHOO","8011894":"BHL","8011895":"UHOL","8011900":"LHRA","8011901":"BHH, BHSH","8011904":"DHO","8011905":"LHM","8011908":"WHOL","8011909":"LHZ","8011910":"UHF","8011912":"DHU","8011913":"LHSN","8011914":"LHGT","8011915":"UHP","8011922":"BHWN","8011923":"BHUB","8011924":"WHU","8011925":"UHUE","8011928":"DHUN","8011929":"LIB","8011932":"UIR","8011933":"LIG","8011934":"UIM","8011935":"UIP","8011937":"DIR","8011940":"BJF","8011944":"BJW","8011945":"BJWO","8011946":"LJV","8011951":"WJAS","8011952":"LJEB","8011953":"WJER","8011956":"UJP","8011957":"UJW","8011958":"UJZ","8011959":"LJES","8011960":"LJN","8011961":"LJZ","8011962":"WJT","8011963":"DJA","8011966":"DJZ","8011968":"BJA, BJAB","8011970":"DCKI","8011971":"DCM","8011974":"DCBH","8011979":"DCC","8011980":"DCSI","8011981":"BKAB","8011983":"LKF","8011985":"UKA","8011988":"DKA","8011993":"UKF, UKF B","8011994":"WKT","8011995":"WKAR","8012000":"UKL","8012002":"WKV","8012006":"BKE","8012007":"UKIE","8012009":"WKJ","8012011":"LKIM","8012012":"UKI","8012014":"LKD, LKD H","8012016":"BKDF","8012021":"WKB","8012033":"UKFA","8012034":"UKJ","8012036":"DKRD","8012037":"DKMA","8012040":"LKK","8012043":"BKG","8012044":"DKC","8012045":"DKN","8012046":"LKLM","8012047":"BKL","8012053":"DKLB","8012061":"BKOD","8012064":"UKOE","8012066":"LKB","8012067":"DKB","8012072":"DKO, DKOH","8012075":"UKZ","8012079":"DKTW","8012080":"LKTU","8012083":"BKOW","8012084":"BKOS","8012088":"UKR","8012089":"BFIK","8012092":"UKD","8012093":"WKG","8012096":"BKRM, BKRMM","8012097":"LKNZ","8012105":"DKRP","8012107":"UKPR","8012108":"WKR","8012109":"WKRP","8012113":"DKRU","8012114":"LKRP","8012115":"DKU","8012117":"LKUH","8012127":"WKUM","8012129":"BKUM","8012138":"DRAT","8012141":"LKYA","8012143":"WLA","8012145":"BLW","8012146":"WLAK","8012147":"LLBG","8012148":"LLAS","8012150":"DLAB","8012155":"ULF","8012156":"LLGS","8012159":"ULAO","8012160":"ULAW","8012161":"LLAG","8012162":"LLWD","8012163":"DLW","8012164":"DLWM","8012167":"ULCH","8012169":"BLH","8012170":"DLST","8012171":"ULA","8012174":"DLZ","8012175":"BLA","8012178":"LLSB","8012180":"ULE","8012181":"LSEL","8012183":"LFLU","8012184":"LLB","8012186":"LLMK","8012187":"LMDR","8012188":"LLG","8012190":"LLH","8012192":"LLK","8012193":"LLMH","8012194":"LLST","8012195":"LLT","8012196":"LLN","8012197":"LLW","8012198":"DLS","8012199":"ULL","8012200":"LLES","8012202":"LLWP","8012203":"DLFD","8012204":"LSVS","8012205":"BLTS","8012207":"ULBN","8012211":"LLWN","8012212":"LLWS","8012213":"ULEU","8012215":"BLE","8012220":"DLIG","8012221":"WLH","8012223":"DLTS","8012224":"DLI","8012225":"ULIT","8012226":"WLBT","8012228":"LLWZ","8012231":"DLIM","8012232":"DLM","8012233":"LLI","8012236":"LLIN","8012237":"BLNG","8012241":"LLO","8012249":"DLO","8012250":"BLOH","8012252":"ULHO","8012253":"BSTH","8012257":"BLU","8012259":"LLUC","8012260":"BLD","8012262":"WLOW","8012263":"LLBS","8012264":"WLST","8012268":"WLF","8012269":"WLW","8012271":"WLKL","8012274":"WLTW","8012279":"LEL","8012280":"LWET","8012282":"LWP","8012284":"LMAC","8012285":"LLA","8012287":"LMSO","8012289":"LMGE","8012291":"LMSA","8012292":"LMS","8012295":"LMW","8012300":"LMAS","8012302":"LMBN","8012304":"LMAN","8012305":"LMAR","8012308":"LMA","8012309":"LMAM","8012311":"LMKS","8012312":"UML","8012314":"UMAH","8012315":"BMQU","8012316":"WMTF","8012317":"UMT","8012318":"DMEA","8012320":"UME","8012321":"WMK","8012322":"BMZ","8012323":"DMA","8012326":"DME","8012327":"DMT","8012328":"LME","8012329":"WMCH","8012332":"UMEN","8012333":"UMGH","8012334":"UMHO","8012339":"LMGB","8012341":"BMZD, BMZDN","8012342":"LMF","8012343":"LLVD","8012344":"LMIA","8012351":"LMST","8012352":"LMT","8012354":"LMI","8012355":"LMIZ","8012358":"WMI","8012362":"WMIS","8012367":"UMSK","8012369":"DMW","8012370":"BMX","8012371":"LMRN","8012373":"LMGI","8012375":"LMLK","8012376":"WMOE","8012377":"WMN","8012378":"LMGN","8012381":"LMOS","8012384":"WMOI","8012388":"DML","8012390":"LMCH","8012391":"BMC","8012392":"LMCZ","8012393":"LMUA","8012394":"DMHL","8012400":"BMR","8012401":"UMU","8012407":"DMUL","8012408":"DMH","8012409":"LMD","8012410":"LNHM","8012412":"DNA","8012413":"WNAS","8012414":"LNAU","8012415":"UNMO","8012416":"LNH","8012417":"UNE","8012418":"WNL","8012421":"WNA","8012423":"LNI","8012424":"LNDG","8012425":"LNS","8012428":"WNED","8012429":"UNRO","8012430":"DNZU","8012436":"WNWO","8012438":"WNB","8012440":"UAT","8012443":"UNS","8012445":"BT","8012452":"UNHI","8012454":"DNF","8012456":"BNH","8012458":"BNE","8012460":"DNKO","8012463":"LNWY","8012465":"UNME","8012467":"LN","8012468":"UNH","8012469":"BNP","8012470":"DNP","8012471":"DNZ","8012472":"UNU","8012474":"WNG","8012475":"BNTB","8012478":"LNW, LNW H","8012479":"BNZ","8012482":"DNDR","8012483":"DNBO","8012485":"WNW","8012487":"LNF","8012489":"BNDL","8012490":"LNR","8012491":"DNOW","8012492":"UNDO","8012493":"UNP","8012494":"UNIW","8012497":"DNDS","8012498":"UNSK","8012500":"UNI","8012502":"UNTA","8012503":"DNI","8012504":"UNWL","8012505":"DNWZ","8012506":"LNM","8012507":"LNB","8012509":"DNB","8012511":"UNOH","8012512":"UNA","8012516":"UNSA","8012523":"DNUN","8012524":"UOGR","8012526":"LOH","8012527":"UOLA","8012528":"DOBL","8012530":"DOZO","8012532":"UOR","8012533":"UORO","8012534":"DOH","8012535":"DOSC","8012537":"BOB","8012540":"DOG","8012541":"UOB","8012546":"LOL","8012549":"BOD","8012550":"DOR","8012551":"BOEG","8012552":"LOEH","8012553":"DOE","8012554":"DOV","8012555":"WOE","8012563":"UOG","8012565":"BORT","8012567":"UOM","8012568":"LOB","8012570":"LOST","8012572":"LON","8012576":"DOU","8012582":"WGMS","8012583":"WGM","8012584":"WGMW","8012593":"DOF","8012594":"DOK","8012595":"DON","8012596":"DOS","8012597":"LOTW","8012599":"LOV","8012603":"WPF","8012604":"UPM","8012605":"BPA","8012609":"WPA","8012610":"WPO","8012611":"WPS","8012614":"WPAU","8012615":"UPA","8012619":"LPE","8012621":"BPO","8012622":"WPB","8012623":"LPB","8012627":"WPE","8012628":"BPE","8012629":"LPRO","8012636":"BPIL","8012637":"WPIN","8012639":"DPK","8012640":"DPIC","8012641":"DPIN","8012643":"WPLM","8012646":"DPW","8012650":"BP","8012651":"WPSW","8012654":"WPOE","8012656":"LPOE","8012657":"UPS","8012658":"UPSU","8012660":"DPOM","8012661":"DPO","8012662":"DPSC","8012663":"UPF","8012666":"BPD, BPDH","8012668":"LPZ, LPZH","8012669":"LPZS","8012673":"LPRZ","8012675":"UPZ","8012676":"LPI","8012677":"WPRZ","8012678":"LPRL","8012679":"DPRO","8012680":"DPRW","8012681":"BPW","8012682":"LPR","8012683":"WPRA","8012684":"WPRO","8012685":"DPUL","8012688":"DPT","8012697":"LRK","8012698":"BRAD","8012699":"DRAG","8012700":"DRBT","8012701":"DRBZ","8012703":"WRDN","8012704":"LRA","8012705":"LRI","8012707":"LRH","8012710":"WRAK","8012711":"WRMB","8012713":"BRSF","8012716":"WRW","8012719":"DRD","8012723":"URAU","8012724":"DRU","8012727":"DRBG","8012729":"WRDL","8012731":"LRB","8012733":"BRC","8012734":"LRF","8012735":"BRE","8012737":"WRA","8012738":"DRCH","8012739":"DRC","8012742":"URN","8012743":"URDN","8012750":"URH","8012751":"URM","8012756":"URR","8012757":"LRE","8012758":"WRST","8012759":"DRTH","8012762":"WRIO","8012763":"WRI","8012766":"URIE","8012767":"BRI","8012769":"URGS","8012770":"URI","8012775":"DROW","8012777":"LROD","8012781":"DRDF","8012785":"WRGT","8012787":"UROH","8012788":"LROI","8012796":"UROS","8012801":"WRHP","8012803":"WRB","8012805":"WRHO","8012806":"WRK","8012807":"WRMA","8012811":"UROT","8012816":"BRO","8012817":"LRMF","8012819":"WRZ","8012823":"DRUG","8012824":"WRU","8012826":"USAE","8012830":"LSAD","8012831":"BSAH","8012832":"WSAG","8012835":"WSAM","8012839":"WSAF","8012840":"WSAN","8012841":"WSTZ","8012843":"WSZ","8012852":"USCK","8012854":"USKM","8012855":"BSH","8012856":"WST","8012862":"LSIS","8012863":"LSDW","8012864":"DSWK","8012865":"LSD","8012867":"LSP","8012869":"DGRA","8012870":"BSFE","8012881":"USMS","8012888":"DSMI","8012889":"DSM","8012890":"DSML","8012895":"BSB","8012897":"BSNZ","8012898":"DSN","8012899":"USU","8012902":"WSBG","8012903":"BSBD","8012907":"LSBE","8012908":"DSCK","8012914":"BSOE","8012918":"WSCN","8012919":"USCS","8012923":"BSCH","8012927":"USP","8012929":"USWL","8012933":"WSAH","8012934":"BSHE","8012940":"WSMI","8012941":"BSRO","8012942":"BSKL","8012943":"WSC","8012944":"WSCT","8012946":"DSKH","8012947":"DSU","8012951":"WSS","8012953":"WSL","8012954":"WSWZ","8012957":"BSIS","8012959":"DSEB","8012960":"WSMH","8012961":"USE","8012965":"USB","8012966":"BSEE","8012967":"LSNA","8012968":"WSEE","8012973":"BSLO","8012975":"DSRH","8012981":"DSEN","8012984":"USEL","8012993":"USI","8012998":"USGN","8013002":"DSOL","8013003":"DSOH","8013004":"USOL","8013005":"LSK","8013008":"USO","8013009":"USON","8013010":"USOO","8013011":"USOW","8013017":"WSP","8013018":"WSPO","8013021":"BSTA, BSTAB","8013022":"DWH","8013023":"USTM","8013025":"USR","8013029":"DSTU","8013033":"DSTI","8013034":"USTN","8013036":"USTA","8013037":"USTH","8013039":"LSFD","8013040":"WSNB","8013046":"LSV","8013047":"DSTN","8013051":"WSE","8013057":"DSTL","8013058":"BSTW","8013061":"USHM","8013062":"WSRR","8013064":"BSTN","8013069":"WSTK","8013070":"LSTG","8013072":"WSBN","8013073":"WSLT","8013074":"USUE","8013077":"USLH","8013079":"WSU","8013080":"DSY","8013083":"LTH","8013084":"LTM","8013085":"LTMW","8013087":"DTA","8013089":"UTA","8013090":"WTA","8013092":"DTB","8013093":"LTC","8013095":"LTNH","8013097":"LTE","8013100":"BTL","8013104":"WTHN","8013105":"WTOW","8013106":"WTI","8013109":"BTPI","8013110":"LTT","8013111":"LTTO","8013112":"LTL","8013114":"DTH","8013115":"LT","8013123":"BTHR","8013124":"DTFN","8013125":"LTLM","8013129":"UTP","8013131":"WTO","8013137":"BTN","8013138":"LTRL","8013141":"BTZ","8013144":"DTRE","8013145":"BTZN","8013146":"BTZS","8013150":"UTB","8013156":"WUMH","8013158":"LUS","8013159":"UUD","8013160":"LUEB","8013162":"WUM","8013164":"UUS","8013165":"BUD","8013166":"BUS","8013168":"DUD","8013171":"UUZ","8013172":"UUM","8013174":"UUW","8013177":"WUTZ","8013179":"UVA","8013180":"LVA","8013182":"LVT","8013183":"BVLZ","8013184":"UVF","8013185":"BVLT","8013186":"WVE","8013188":"BV","8013191":"UVU","8013192":"UVI","8013194":"LVG","8013198":"WVOG","8013201":"DVO","8013202":"UVO","8013205":"LWH","8013210":"BWA","8013215":"UWD","8013217":"UWAL","8013220":"LWWZ","8013221":"UWL","8013222":"WWL","8013223":"UWN","8013224":"UWNS","8013226":"UWA","8013230":"LWAN","8013236":"WWM","8013237":"WWMW","8013238":"WWAN","8013244":"UWTL","8013245":"UWS","8013247":"DWSN","8013248":"LWF","8013250":"LWST","8013251":"UWEM","8013253":"DWEI","8013254":"UWEA","8013256":"UWMB","8013258":"WWSN","8013259":"LWG","8013261":"UWWE","8013266":"UWMT","8013267":"DWE, DWEW","8013268":"DWX","8013269":"DWXB","8013271":"LWL","8013272":"BWZ","8013275":"LWND","8013279":"WWLS","8013280":"DWND","8013285":"BWER","8013286":"LWDE","8013291":"UWTH","8013295":"DWES","8013297":"LWZE","8013305":"BWSU","8013313":"WWLD","8013315":"UWIR","8013318":"UWIP","8013319":"LWIP","8013322":"WWT","8013324":"DWIM","8013329":"UWLH","8013333":"UWOF","8013334":"UWOL","8013335":"LWO","8013336":"LWOR","8013344":"LWLS","8013345":"BWOL","8013348":"DWU","8013349":"UWFN","8013350":"BWUE","8013352":"WWSF","8013354":"WWST","8013357":"LWU","8013360":"UWCH","8013361":"LWZ","8013362":"LWZW","8013365":"LWUZ","8013366":"UWU","8013368":"DZT","8013370":"WZN","8013371":"LZA","8013373":"WZAR","8013376":"BZS","8013377":"WZE","8013378":"WZEN","8013381":"DZNH","8013383":"UZLW","8013384":"LZD","8013389":"LZE","8013392":"BZF","8013393":"WZIN","8013396":"UZU","8013398":"UZE","8013402":"LZI","8013406":"BZIL","8013413":"DZL","8013414":"LZBR","8013418":"LZGL","8013424":"DZSC","8013425":"LZBN","8013428":"LZS","8013432":"LSBU","8013433":"DZWP","8013436":"DZWZ","8013437":"DZWO","8013439":"LBK","8013444":"DM","8013445":"DPA","8013447":"LGDG","8013448":"LHSS","8013450":"DCH, DCHP","8013452":"ULB","8013455":"LMHR","8013456":"LMB","8013461":"DOT","8013465":"LSBF","8013467":"BBEL","8013468":"BBZS","8013470":"BBER, BBRN","8013471":"LBO","8013472":"BBRI","8013474":"UCB","8013475":"DF","8013476":"DPL","8013477":"BE, BERK","8013479":"BFKS","8013480":"BFLZ","8013481":"BGOL","8013483":"BHD, BHND","8013485":"LMTW","8013487":"BOR, BORB","8013489":"BPOT","8013490":"DRBN","8013492":"BSE, BSE M","8013493":"BNY","8013547":"UHL","8013548":"UHER","8017041":"MGRI","8017042":"MUGR","8017442":"DPM","8070002":"BBIS","8070003":"FFLF","8070004":"FFLU","8070005":"THDV","8070086":"HKWA","8070088":"FMHD","8070090":"FOMP","8070091":"FOLM","8070092":"FOKL","8070096":"RAM","8070097":"RSMM","8070170":"RDUN","8070483":"KMAH","8070704":"KASZ","8070734":"HNMU","8073410":"LZIO","8077434":"RNHF","8077771":"RRZB","8077773":"RST","8079056":"TTUZ","8079069":"EOLT","8079083":"SNO","8079089":"TAEW","8079095":"HHN","8079097":"HLEA, HLEG","8079140":"KKBL","8079146":"RNFL, RNFS","8079147":"SHW","8079151":"FWED","8079152":"LVTT","8079604":"WTIW","8079605":"AHZH","8079616":"RSII","8079629":"WRTF","8079632":"FFME","8080040":"BAS","8080070":"BBAB","8080100":"BBFE","8080170":"BBGS, BBSH","8080190":"BBI, BBIW","8080200":"BBOR","8080260":"BDL","8080280":"LDLO","8080340":"BEIW","8080370":"BETN, BWUR","8080440":"BFD, BFRD","8080450":"BTLS","8080560":"LDBR","8080570":"LRO","8080580":"LSBR","8080590":"LSUE","8080600":"LWN","8080610":"LZO","8080620":"LHNZ","8080630":"EHWS","8080660":"LMGH","8080680":"BHGM","8080710":"BHOW","8080720":"BHN","8080750":"BHPG, BHPN","8080840":"LCZ","8080930":"LSEH","8080970":"BMAH","8080980":"BMM","8081020":"BNG","8081150":"BPEN","8081210":"BRGT","8081220":"BSAM","8081260":"LSBS","8081270":"LSBO","8081290":"BSFL, BSNF","8081420":"BSTR","8081540":"BWI","8081560":"BZEP","8081580":"BZN, BZTH","8081586":"BSFD","8081688":"BWDF","8081722":"BLEN","8084070":"UGRI","8087020":"HVCS","8087039":"EHOH","8087061":"UHOS","8087062":"SMUE","8087063":"FKRS","8087064":"FOUS","8087065":"HWEH","8087067":"TWEB","8087080":"TMW","8089000":"BSZF","8089002":"BAHU","8089003":"BATS","8089004":"BBMW, BBW","8089005":"BBEV","8089006":"BRB","8089007":"BSCF","8089008":"BBOS","8089009":"BBGT","8089010":"BBCH","8089011":"BGFB, BGSS","8089012":"BFB","8089013":"BFA, BFAL","8089014":"BGSE","8089016":"BGBA","8089017":"BHKM","8089018":"BHUM","8089019":"BJB","8089020":"BLST","8089022":"BMEA","8089023":"BMEX","8089024":"BNB","8089025":"BHLS","8089026":"BNPL","8089027":"BORS","8089030":"BPWA","8089031":"BPOE","8089032":"BPOF, BPOP","8089033":"BPLA","8089034":"BPRS","8089035":"BRW","8089036":"BRST","8089037":"BSAP","8089038":"BSC","8089039":"BSAL","8089040":"BSPH","8089041":"BSTO","8089042":"BSDG","8089043":"BTP","8089044":"BTOR","8089045":"BWRS","8089047":"BWKR, BWKRR, BWKS","8089048":"BWOK","8089050":"BYOR","8089051":"BGGS","8089052":"BADL","8089053":"BSRW","8089054":"BAGL","8089055":"BBDF","8089056":"BBKB, BBLB","8089057":"BBU","8089058":"BFRU","8089059":"BFFO","8089060":"BFRH","8089061":"BFOH","8089062":"BGD, BGWD","8089063":"BGA, BGAS, BQGAS","8089064":"BHED","8089065":"BHI","8089068":"BKAD, BKD","8089069":"BKP, BKPK","8089070":"BLRD","8089071":"BLWE","8089072":"BMDF, BMHL","8089074":"BMF","8089075":"BMAR, BMAZ","8089077":"BNK, BNKN","8089078":"BNIS, BNIW","8089079":"BOSP","8089080":"BPKR, BPKW","8089081":"BPHD","8089082":"BRD","8089084":"BRGB, BRGBT, BRH","8089085":"BSLS","8089087":"BSNH, BSNL","8089088":"BSPF","8089089":"BTG","8089090":"BTF, BTHF","8089091":"BTGN","8089092":"BWAI","8089093":"BWAB","8089094":"BWIG","8089095":"BWM","8089096":"BWIN","8089097":"BWHH","8089098":"BZD, BZFS","8089099":"BBRF","8089100":"BJUF, BJUN","8089101":"BEBD","8089102":"BKBO","8089103":"BARF","8089104":"BKHD","8089105":"BHER","8089106":"BIP","8089107":"BBUP","8089108":"BHO","8089109":"BHAL, BHLRS","8089110":"BMN","8089111":"BWES","8089112":"BHEI","8089113":"BLIH, BLIO","8089114":"BLAK","8089115":"BSDE","8089116":"BWH","8089118":"BBEU","8089119":"RNBG","8089131":"BWED","8089327":"BSO","8089328":"BMS","8089329":"BHST","8089330":"BOLS","8089331":"BPIC","8089472":"BLIS","8089473":"BOSS","8089537":"BJLB","8098096":"TS, TS B, TS T, TST","8098553":"AA, AAS"} \ No newline at end of file diff --git a/client/js/helpers.js b/client/js/helpers.js new file mode 100644 index 0000000..f706337 --- /dev/null +++ b/client/js/helpers.js @@ -0,0 +1,73 @@ +'use strict'; + +export const ElementById = (id) => { + return document.getElementById(id); +}; + +export const showDiv = (id) => { + const element = document.getElementById(id); + if (element) element.classList.remove('hidden'); +}; + +export const hideDiv = (id) => { + const element = document.getElementById(id); + if (element) element.classList.add('hidden'); +}; + +export const padZeros = (str) => { + return ('00' + str).slice(-2); +}; + +export const isValidDate = (date) => { + const matches = /^(\d{4})[-\/](\d{2})[-\/](\d{2})$/.exec(date); + if (matches == null) { + return false; + } + + const d = matches[3]; + const m = matches[2]-1; + const y = matches[1]; + const composedDate = new Date(y, m, d); + return composedDate.getDate() == d && + composedDate.getMonth() == m && + composedDate.getFullYear() == y; +}; + +export const parseDateTime = (timestamp, format) => { + const date = new Date(timestamp * 1000); + + if (format != null) { + switch (format) { + case 'full': + return padZeros(date.getHours()) + ':' + padZeros(date.getMinutes()) + ', ' + date.getDate() + '.' + (date.getMonth() + 1) + '.' + date.getFullYear(); + break; + + case 'date': + return date.getDate() + '.' + (date.getMonth() + 1) + '.' + date.getFullYear(); + break; + + default: + return false; + break; + } + + } + + if (date.toLocaleDateString() !== new Date().toLocaleDateString()) { + return padZeros(date.getHours()) + ':' + padZeros(date.getMinutes()) + ', ' + date.getDate() + '.' + (date.getMonth() + 1) + '.'; + } else { + return padZeros(date.getHours()) + ':' + padZeros(date.getMinutes()); + } +}; + +export const convertMinsToHrsMins = (mins) => { + const h = Math.floor(mins / 60); + const m = mins % 60; + + if (h > 0) { + return h+'h '+m+'min'; + } + + return m+'min'; +}; + diff --git a/client/js/journeyView.js b/client/js/journeyView.js new file mode 100644 index 0000000..d171714 --- /dev/null +++ b/client/js/journeyView.js @@ -0,0 +1,168 @@ +'use strict'; + +import { showDiv, hideDiv, ElementById, parseDateTime, convertMinsToHrsMins } from './helpers.js'; +import { getCache, addCache, ConsoleLog, parseName, ds100Names, t } from './app_functions.js'; +import { get } from './api.js'; +import { go } from './router.js'; +import { html, render } from './lit-html.js'; + +const journeyTemplate = (data, requestId, journeyId) => { + let departure = data.legs[0].departure; + let arrival = data.legs[data.legs.length - 1].arrival; + var changes = 0; + + let departureTime = departure.prognosedTime ? departure.prognosedTime : departure.plannedTime; + let arrivalTime = arrival.prognosedTime ? arrival.prognosedTime : arrival.plannedTime; + let duration = (arrivalTime - departureTime)/60; + + for (let legKey in data.legs) { + let leg = data.legs[legKey]; + + if (leg.isWalking !== false) continue; + + changes = changes+1; + } + + return html` +
+ + +
+ ${data.legs.map(element => html` + ${element.isWalking ? html` +

${t('walkinfo', [parseName(element.arrival.point), element.distance])}

+ ` : html` + ${element.isTransfer ? html` +

${t('transferinfo', [parseName(element.arrival.point), element.distance])}

+ ` : html` + + + + + + + + + + + + + + ${element.stopovers.map(stop => html` + {location.href = "https://marudor.de/"+stop.stop.id+"?searchType=hafas"}}> + + + + + + `)} + ${(element.remarks || []).map(element => html` + + `)} + +
${element.line.name} ${element.line.additionalName ? '('+element.line.additionalName+')' : ''} → ${element.direction} ${element.cancelled ? html`${t('cancelled-ride')}` : ''}
${t('arrival')}${t('departure')}${t('station')}${t('platform')}
${timeTemplate(stop.arrival)}${timeTemplate(stop.departure)}${stop.stop.name} ${ds100Names(stop.stop.id)}${stopPlatformTemplate(stop)}
${element.text}
+ `} + `} + `)} +
+
+`}; + +const timeTemplate = (data, mode) => { + var delay = 0; + + if (data.prognosedTime !== null) { + delay = (data.prognosedTime - data.plannedTime)/60; + } + + if (!data.plannedTime && !data.prognosedTime) return '-'; + + return html` + ${delay > 0 ? html` + ${parseDateTime(data.prognosedTime)} (+${delay}) + ` : html` + ${parseDateTime(data.plannedTime)} + `}`; +} + +const platformTemplate = (data) => html` + ${data.prognosedPlatform ? html` + ${data.prognosedPlatform} + ` : (data.plannedPlatform ? data.plannedPlatform : '-')} +`; + +const stopPlatformTemplate = (data) => { + if (data.departure.plannedPlatform | data.departure.prognosedPlatform) { + if (!data.departure.prognosedPlatform) { + return data.departure.plannedPlatform; + } else { + return html`${data.departure.prognosedPlatform}`; + } + } else if (data.arrival.plannedPlatform | data.arrival.prognosedPlatform) { + if (!data.arrival.prognosedPlatform) { + return data.arrival.plannedPlatform; + } else { + return html`${data.arrival.prognosedPlatform}`; + } + } else { + return '-' + } +}; + +export const journeyView = async (match) => { + const reqId = match[0]; + const journeyId = match[1]; + + let data; + let { journeys } = getCache('journeys', reqId) + if (journeyId in journeys[journeyId]) { + data = journeys[journeyId]; + } else { + const request = await get("/journeys", {"reqId": reqId}); + addCache('journeys', request); + data = request.journeys[journeyId]; + } + + ConsoleLog(data); + render(journeyTemplate(data, reqId, journeyId), ElementById('content')); + + const journeysHistory = getCache('journeysHistory'); + const history_id = journeysHistory.findIndex(obj => obj.reqId === reqId); + + if (journeysHistory[history_id] !== undefined) { + journeysHistory[history_id].journeyId = journeyId; + addCache('journeysHistory', journeysHistory); + } +}; + +const reloadJourney = async (reqId, journeyId) => { + document.querySelector('.reload').classList.add('spinning'); + try { + let request = await get("/refreshJourney", {"reqId": reqId, "journeyId": journeyId}); + addCache('journeys', request); + journeyView([reqId, journeyId]); + } catch(err) { + ConsoleLog(err); + } + document.querySelector('.reload').classList.remove('spinning'); +}; diff --git a/client/js/journeysView.js b/client/js/journeysView.js new file mode 100644 index 0000000..1810b84 --- /dev/null +++ b/client/js/journeysView.js @@ -0,0 +1,124 @@ +'use strict'; + +import { showDiv, hideDiv, ElementById, parseDateTime, convertMinsToHrsMins } from './helpers.js'; +import { getCache, addCache, parseName, ConsoleLog, t } from './app_functions.js'; +import { dataStorage } from './app.js'; +import { setupCanvas } from './canvas.js'; +import { get } from './api.js'; +import { go } from './router.js'; +import { html, render } from './lit-html.js'; +import { showAlertModal } from './overlays.js'; + +let data; + +const journeysTemplate = (data) => html` +
+ + + ${dataStorage.settings.enableCanvas ? html` +
+ +
+ ` : html` +
+
moreJourneys(data.reqId, 'earlier')}>
+ + + + + + + ${Object.keys(data.journeys).sort((a, b) => a - b).map(key => journeyOverviewTemplate(data, key))} + +
${t('departure')}${t('arrival')}${t('duration')}${t('changes')}${t('products')}
+ +
moreJourneys(data.reqId, "later")}>
+
+ `} +
+`; + +const journeyOverviewTemplate = (data, key) => { + let departure = data.journeys[key].legs[0].departure; + let arrival = data.journeys[key].legs[data.journeys[key].legs.length - 1].arrival; + var changes = 0; + var products = []; + var changesDuration = 0; + var cancelled = false; + + let departureTime = departure.prognosedTime ? departure.prognosedTime : departure.plannedTime; + let arrivalTime = arrival.prognosedTime ? arrival.prognosedTime : arrival.plannedTime; + let duration = (arrivalTime - departureTime)/60; + + for (let legKey in data.journeys[key].legs) { + let leg = data.journeys[key].legs[legKey]; + if (leg.cancelled !== false) cancelled = true; + if (leg.isWalking || leg.isTransfer) continue; + + changes = changes+1; + products.push(leg.line.productName); + } + + products = [...new Set(products)]; + + return html` + go('/'+data.reqId + '/' + key)}"> + ${timeTemplate(departure, 'departure')} + ${timeTemplate(arrival, 'arrival')} + ${convertMinsToHrsMins(duration)} + ${changes-1} + ${products.join(', ')} + `; +} + +export const journeysView = async (match) => { + const reqId = match[0]; + + data = getCache('journeys', reqId); + + if (!data) { + data = await get("/journeys", {"reqId": reqId}); + addCache('journeys', data); + } + + render(journeysTemplate(data), ElementById('content')) + + if (dataStorage.settings.enableCanvas) { + setupCanvas(data); + } +}; + +const timeTemplate = (data, mode) => { + var delay = 0; + + if (data.prognosedTime !== null) { + delay = (data.prognosedTime - data.plannedTime)/60; + } + + return html` + ${delay > 0 ? html` + ${parseDateTime(data.prognosedTime)} (+${delay}) + ` : html` + ${parseDateTime(data.plannedTime)} + `}`; +} + +export const moreJourneys = async (reqId, mode) => { + var data = getCache('journeys', reqId); + const newData = await get('/moreJourneys', {"reqId": reqId, "mode": mode}); + + data.lastUpdated = newData.lastUpdated; + data.journeys = {...data.journeys, ...newData.journeys}; + + addCache('journeys', data); + journeysView([reqId]); +}; + +export const reloadJourneys = async (requestId) => { + showAlertModal("not implemented yet"); +}; diff --git a/client/js/languages.js b/client/js/languages.js new file mode 100644 index 0000000..a1d0d7d --- /dev/null +++ b/client/js/languages.js @@ -0,0 +1,96 @@ +export const languages = { + 'de': { + 'arrival': 'Ankunft', + 'departure': 'Abfahrt', + 'duration': 'Dauer', + 'changes': 'Umstiege', + 'products': 'Produkte', + 'from': 'Von', + 'to': 'Nach', + 'date': 'Datum', + 'time': 'Uhrzeit', + 'station': 'Station', + 'platform': 'Gleis', + 'walkinfo': 'Laufe nach %s. (ca. %s Meter)', + 'transferinfo': 'Reise nach %s. (ca. %s Meter)', + 'swap': 'Von/Nach tauschen', + 'settings': 'Einstellungen', + 'search': 'Suchen', + 'options': 'Optionen', + 'setfromto': 'Als Von/Nach setzen', + 'journeyoverview': 'Verbindungsübersicht aufrufen', + 'lastjourney': 'Letzte gewälte Verbindung aufrufen', + 'longdistancetrain': 'Fernverkehr', + 'regionaltrain': 'Regionalverkehr', + 'suburbantrain': 'S-Bahn', + 'subway': 'U-Bahn', + 'tram': 'Tram', + 'bus': 'Bus', + 'ferry': 'Fähre', + 'taxi': 'Taxi', + 'save': 'Speichern', + 'clearstorage': 'lokale Daten löschen', + 'datasource': 'Datenquelle', + 'accessibility': 'Barrierefreiheit', + 'access_none': 'keine Einschränkungen', + 'access_partial': 'Bedingt barrierefrei', + 'access_full': 'Barrierefrei', + 'etc': 'Sonstiges', + 'showds100': 'Zeige RIL100 Kürzel (wenn verfügbar)', + 'showdebug': 'Schreibe Debug Nachrichten ins Log', + 'graphical': 'Graphische Darstellung in der Verbindungsübersicht', + 'fancy': 'Schöne Grafik', + 'update': 'Anwendung updaten', + 'language': 'Sprache', + 'de': 'Deutsch', + 'en': 'Englisch', + 'cancelled-ride': 'Fahrt entfällt!' + }, + 'en': { + 'arrival': 'Arrival', + 'departure': 'Departure', + 'duration': 'Duration', + 'changes': 'Changes', + 'products': 'Products', + 'from': 'From', + 'to': 'To', + 'date': 'Date', + 'time': 'Time', + 'station': 'Station', + 'platform': 'Platform', + 'walkinfo': 'Walk to %s. (apprx. %s meters)', + 'transferinfo': 'Transfer to %s. (apprx. %s meters)', + 'swap': 'Swap from/to', + 'settings': 'Settings', + 'search': 'Search', + 'options': 'Options', + 'setfromto': 'Set as from/to', + 'journeyoverview': 'Go to journeysoverview', + 'lastjourney': 'Go to last selected journey', + 'longdistancetrain': 'Log distance trains', + 'regionaltrain': 'Regional trains', + 'suburbantrain': 'Suburban Trains', + 'subway': 'Subway', + 'tram': 'Tram', + 'bus': 'Bus', + 'ferry': 'Ferry', + 'taxi': 'Taxi', + 'save': 'Save', + 'clearstorage': 'remove local data', + 'datasource': 'Data source', + 'accessibility': 'Accessibillity', + 'access_none': 'none', + 'access_partial': 'partial', + 'access_full': 'full', + 'etc': 'Others', + 'showds100': 'Show DS100 (if avaliable)', + 'showdebug': 'Write debug messages to log', + 'graphical': 'Graphical overview for journeys', + 'fancy': 'Use fancy graphics', + 'update': 'Update application', + 'language': 'Language', + 'de': 'German', + 'en': 'Englisch', + 'cancelled-ride': 'Cancelled!' + } +} \ No newline at end of file diff --git a/client/js/lit-html.js b/client/js/lit-html.js new file mode 100644 index 0000000..0a8b2f8 --- /dev/null +++ b/client/js/lit-html.js @@ -0,0 +1 @@ +const t=new WeakMap,e=e=>(...s)=>{const n=e(...s);return t.set(n,!0),n},s=e=>"function"==typeof e&&t.has(e),n=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,i=(t,e,s=null,n=null)=>{let i=e;for(;i!==s;){const e=i.nextSibling;t.insertBefore(i,n),i=e}},o=(t,e,s=null)=>{let n=e;for(;n!==s;){const e=n.nextSibling;t.removeChild(n),n=e}},r={},l=`{{lit-${String(Math.random()).slice(2)}}}`,a=`\x3c!--${l}--\x3e`,h=new RegExp(`${l}|${a}`),c=(()=>{const t=document.createElement("div");return t.setAttribute("style","{{bad value}}"),"{{bad value}}"!==t.getAttribute("style")})();class d{constructor(t,e){this.parts=[],this.element=e;let s=-1,n=0;const i=[],o=e=>{const r=e.content,a=document.createTreeWalker(r,133,null,!1);let d,u;for(;a.nextNode();){s++,d=u;const e=u=a.currentNode;if(1===e.nodeType){if(e.hasAttributes()){const i=e.attributes;let o=0;for(let t=0;t=0&&o++;for(;o-- >0;){const i=t.strings[n],o=m.exec(i)[2],r=c&&"style"===o?"style$":/^[a-zA-Z-]*$/.test(o)?o:o.toLowerCase(),l=e.getAttribute(r).split(h);this.parts.push({type:"attribute",index:s,name:o,strings:l}),e.removeAttribute(r),n+=l.length-1}}"TEMPLATE"===e.tagName&&o(e)}else if(3===e.nodeType){const t=e.nodeValue;if(t.indexOf(l)<0)continue;const o=e.parentNode,r=t.split(h),a=r.length-1;n+=a;for(let t=0;t-1!==t.index,p=()=>document.createComment(""),m=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F \x09\x0a\x0c\x0d"'>=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;class g{constructor(t,e,s){this._parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this._parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this._parts)void 0!==t&&t.commit()}_clone(){const t=n?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=this.template.parts;let s=0,i=0;const o=t=>{const n=document.createTreeWalker(t,133,null,!1);let r=n.nextNode();for(;s");!(s=(i>-1||s)&&-1===t.indexOf("<",i+1))&&c&&(e=e.replace(m,(t,e,s,n)=>"style"===s?`${e}style$${n}`:t)),e+=s?a:l}return e+=this.strings[t]}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t}}class f extends v{getHTML(){return`${super.getHTML()}`}getTemplateElement(){const t=super.getTemplateElement(),e=t.content,s=e.firstChild;return e.removeChild(s),i(e,s.firstChild),t}}const x=t=>null===t||!("object"==typeof t||"function"==typeof t);class _{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t{this.value===t&&(this.setValue(e),this.commit())})}clear(t=this.startNode){o(this.startNode.parentNode,t.nextSibling,this.endNode)}}class V{constructor(t,e,s){if(this.value=void 0,this._pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this._pendingValue=t}commit(){for(;s(this._pendingValue);){const t=this._pendingValue;this._pendingValue=r,t(this)}if(this._pendingValue===r)return;const t=!!this._pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name)),this.value=t,this._pendingValue=r}}class T extends _{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new b(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class b extends y{}let E=!1;try{const t={get capture(){return E=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class w{constructor(t,e,s){this.value=void 0,this._pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this._boundHandleEvent=(t=>this.handleEvent(t))}setValue(t){this._pendingValue=t}commit(){for(;s(this._pendingValue);){const t=this._pendingValue;this._pendingValue=r,t(this)}if(this._pendingValue===r)return;const t=this._pendingValue,e=this.value,n=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),i=null!=t&&(null==e||n);n&&this.element.removeEventListener(this.eventName,this._boundHandleEvent,this._options),this._options=A(t),i&&this.element.addEventListener(this.eventName,this._boundHandleEvent,this._options),this.value=t,this._pendingValue=r}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const A=t=>t&&(E?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);class S{handleAttributeExpressions(t,e,s,n){const i=e[0];if("."===i){return new T(t,e.slice(1),s).parts}return"@"===i?[new w(t,e.slice(1),n.eventContext)]:"?"===i?[new V(t,e.slice(1),s)]:new _(t,e,s).parts}handleTextExpression(t){return new N(t)}}const C=new S;function M(t){let e=L.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},L.set(t.type,e));let s=e.stringsArray.get(t.strings);if(void 0!==s)return s;const n=t.strings.join(l);return void 0===(s=e.keyString.get(n))&&(s=new d(t,t.getTemplateElement()),e.keyString.set(n,s)),e.stringsArray.set(t.strings,s),s}const L=new Map,P=new WeakMap,$=(t,e,s)=>{let n=P.get(e);void 0===n&&(o(e,e.firstChild),P.set(e,n=new N(Object.assign({templateFactory:M},s))),n.appendInto(e)),n.setValue(t),n.commit()},k=(t,...e)=>new v(t,e,"html",C),H=(t,...e)=>new f(t,e,"svg",C);export{k as html,H as svg,S as DefaultTemplateProcessor,C as defaultTemplateProcessor,e as directive,s as isDirective,o as removeNodes,i as reparentNodes,r as noChange,_ as AttributeCommitter,y as AttributePart,V as BooleanAttributePart,w as EventPart,x as isPrimitive,N as NodePart,T as PropertyCommitter,b as PropertyPart,P as parts,$ as render,L as templateCaches,M as templateFactory,g as TemplateInstance,f as SVGTemplateResult,v as TemplateResult,p as createMarker,u as isTemplatePartActive,d as Template}; diff --git a/client/js/overlays.js b/client/js/overlays.js new file mode 100644 index 0000000..90c036f --- /dev/null +++ b/client/js/overlays.js @@ -0,0 +1,43 @@ +'use strict'; + +import { showDiv, hideDiv, ElementById } from './helpers.js'; +import { html, render } from './lit-html.js'; + +export const showAlertModal = (text) => { + showDiv('overlay'); + render(html` + + `, ElementById('overlay')); +}; + +export const showModal = (title, content) => { + showDiv('overlay'); + render(html` + `, ElementById('overlay')); +}; + +export const showLoader = () => { + showDiv('overlay'); + render(html` +
+
+
+ `, document.getElementById('overlay')); +}; + +export const hideLoader = () => hideDiv('overlay'); diff --git a/client/js/router.js b/client/js/router.js new file mode 100644 index 0000000..5411073 --- /dev/null +++ b/client/js/router.js @@ -0,0 +1,25 @@ +'use strict'; + +const routes = []; + +export const route = (pattern, handler) => { + routes.push({ + pattern: pattern, + handler: handler + }); +}; + +export const go = (dest) => { + window.location.hash = '#' + dest; +}; + +export const start = () => { + const dest = window.location.hash.slice(1); + for (let route of routes) { + const match = route.pattern.exec(dest); + if (!match) continue; + return route.handler(match.slice(1)); + } +}; + +window.addEventListener('hashchange', start); diff --git a/client/js/searchView.js b/client/js/searchView.js new file mode 100644 index 0000000..c02d22c --- /dev/null +++ b/client/js/searchView.js @@ -0,0 +1,409 @@ +'use strict'; + +import { showDiv, hideDiv, ElementById, padZeros, isValidDate } from './helpers.js'; +import { getCache, addCache, parseName, saveDataStorage, clearDataStorage, ConsoleLog, t, loadDS100 } from './app_functions.js'; +import { dataStorage } from './app.js'; +import { get } from './api.js'; +import { go } from './router.js'; +import { html, render } from './lit-html.js'; +import { showAlertModal, showModal, showLoader, hideLoader} from './overlays.js'; + + +let currDate = new Date(); +let fromValue = ''; +let toValue = ''; +let isArrValue = false; +let dateValue = currDate.getFullYear()+'-'+padZeros(currDate.getMonth()+1)+'-'+padZeros(currDate.getDate());; +let timeValue = padZeros(currDate.getHours())+':'+padZeros(currDate.getMinutes()); +let suggestionsCache = { + from: {}, + to: {}, +}; + +const searchTemplate = (journeysHistory) => html` +
+
+ +
+ +
+
+
+ +
+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ + ${journeysHistory.length ? html` + ${journeysHistoryTemplate(journeysHistory)} + ` : ''} +
+`; + +const journeysHistoryTemplate = (journeysHistory) => html` +
+ + + + + + ${journeysHistory.map(element => html` + setFromHistory(journeysHistory.length - 1 - journeysHistory.indexOf(element))}" title="${t('setfromto')}"> + + + + + `)} + +
${t('from')}${t('to')}${t('options')}
${parseName(element.fromPoint)}${parseName(element.toPoint)} + + ${element.journeyId === '' ? '' : html` + + `} +
+
+`; + +export const searchView = () => { + const journeysHistory = getCache('journeysHistory').slice().reverse(); + render(searchTemplate(journeysHistory), ElementById('content')); + + ElementById('from').focus(); + + for (let product in dataStorage.settings.products) { + if (ElementById(product) !== null) { + ElementById(product).checked = dataStorage.settings.products[product]; + } + }; +}; + +export const search = async (requestId) => { + const provider = dataStorage.settings.provider; + let products = readProductSelection(); + const accessibility = dataStorage.settings.accessibility; + let isDep = !ElementById('isarr').checked; + let date = ElementById('date').value; + let time = ElementById('time').value; + let timestamp = ''; + let from = ''; + let to = ''; + + currDate = new Date(); + fromValue = ElementById('from').value; + toValue = ElementById('to').value; + dateValue = ElementById('date').value; + timeValue = ElementById('time').value; + isArrValue = ElementById('isarr').checked; + + if (date !== '') { + if (!isValidDate(date)) { + showAlertModal('Ungültiges Datum!'); + return; + } + } else { + date = currDate.getFullYear()+'-'+padZeros(currDate.getMonth()+1)+'-'+padZeros(currDate.getDate()); + } + + if (time !== '') { + if (!new RegExp('([0-1][0-9]|2[0-3]):([0-5][0-9])').test(time)) { + showAlertModal('Ungültige Zeitangabe!'); + return; + } + } else { + time = padZeros(currDate.getHours())+':'+padZeros(currDate.getMinutes()); + } + + if (ElementById('from').value == "" | ElementById('to').value == "") { + showAlertModal("Abfahrts - und Ankunftsbahnhof müssen ausgefüllt werden."); + return; + } + + if (Object.entries(suggestionsCache.from).length !== 0) { + from = suggestionsCache.from; + } else { + let suggestions = await get("/suggestions", {"query": ElementById('from').value, "results": 1}, true); + + if (!suggestions[0]) { + showAlertModal("Abfahrtsbahnof ungültig"); + return; + } + + from = suggestions[0] + } + + if (Object.entries(suggestionsCache.to).length !== 0) { + to = suggestionsCache.to; + } else { + let suggestions = await get("/suggestions", {"query": ElementById('to').value, "results": 1}, true); + + if (!suggestions[0]) { + showAlertModal("Ankunftsbahnhof ungültig"); + return; + } + + to = suggestions[0] + } + + dataStorage.settings.products = products; + saveDataStorage(); + + + const split_date = date.split('-'); + const split_time = time.split(':'); + + timestamp = Math.round(new Date(split_date[0], split_date[1]-1, split_date[2], split_time[0], split_time[1]).getTime()/1000); + + ConsoleLog(timestamp+'///'+date+' '+time+':00'); + + let params = { + "fromPoint": from, + "toPoint": to, + "accessibility": accessibility, + "products": products + } + + if (!isDep) { + params.arrival = timestamp + } else { + params.departure = timestamp + } + + const data = await get("/journeys", {"params":params}); + addCache('journeys', data); + go('/' + data.reqId); +}; + +const suggestionsTemplate = (suggestions, inputId) => html` +
+ ${suggestions.map(element => html` +

setSuggestion(encodeURI(JSON.stringify(element)), inputId)}>${parseName(element)}

+ `)} +
+`; + +const loadSuggestions = async (e, input) => { + const val = e.target.value; + suggestionsCache[e.target.id] = {}; + const suggestions = val ? await get("/suggestions", {"query": val}, true) : []; + const suggestionsEl = ElementById(e.target.id+'suggestions'); + render(suggestionsTemplate(suggestions, e.target.id), suggestionsEl); +}; + +export const setSuggestion = (data, inputId) => { + if (typeof data === 'string') { + data = JSON.parse(decodeURI(data)); + } + + suggestionsCache[inputId] = data; + ElementById(inputId).value = parseName(data); + + if (inputId === 'from') { + ElementById('fromsuggestions').classList.remove('mouseover'); + ElementById('to').focus(); + } else if (inputId === 'to') { + ElementById('tosuggestions').classList.remove('mouseover'); + ElementById('to').blur(); + } +}; + +export const swapFromTo = () => { + suggestionsCache.from = [suggestionsCache.to, suggestionsCache.to = suggestionsCache.from][0]; + + let from = ElementById('from'); + let to = ElementById('to'); + + from.value = [to.value, to.value = from.value][0]; +}; + +export const setFromHistory = (id) => { + const cache = getCache('journeysHistory'); + + if (cache[id] !== undefined){ + setSuggestion(cache[id].fromPoint, 'from'); + setSuggestion(cache[id].toPoint, 'to'); + } +}; + +export const readProductSelection = () => { + var products = { + "nationalExp": false, + "national": false, + "regionalExp": false, + "regional": false, + "suburban": false, + "bus": false, + "ferry": false, + "subway": false, + "tram": false, + "taxi": false + } + + if (ElementById('national').checked !== false) { + products.nationalExp = true; + products.national = true; + } + + if (ElementById('regional').checked !== false) { + products.regionalExp = true; + products.regional = true; + } + + if (ElementById('suburban').checked !== false) { + products.suburban = true; + } + + if (ElementById('subway').checked !== false) { + products.subway = true; + } + + if (ElementById('tram').checked !== false) { + products.tram = true; + } + + if (ElementById('bus').checked !== false) { + products.bus = true; + } + + if (ElementById('ferry').checked !== false) { + products.ferry = true; + } + + if (ElementById('taxi').checked !== false) { + products.taxi = true; + } + + return products; +}; + +const startTyping = (e) => { + ElementById(e.target.id+'suggestions').classList.add('typing'); + if (e.target.id == 'from') ElementById('tosuggestions').classList.remove('mouseover'); + if (e.target.id == 'to') ElementById('fromsuggestions').classList.remove('mouseover'); +}; + +const stopTyping = (e) => { + ElementById(e.target.id+'suggestions').classList.remove('typing'); +}; + +const mouseOverSuggestions = (e) => { + let el = e.target; + let i = 0; + while (i++ < 10 && el.id !== 'fromsuggestions' && el.id !== 'tosuggestions') el = el.parentElement; + el.classList.add('mouseover'); +}; + +const stopMouseOverSuggestions = (e) => { + let el = e.target; + let i = 0; + while (i++ < 10 && el.id !== 'fromsuggestions' && el.id !== 'tosuggestions') el = el.parentElement; + el.classList.remove('mouseover'); +}; + +const onKeypress = (e) => { + if (e.which == 13 || e.keyCode == 13) { // enter + document.querySelector(`#${e.target.id}suggestions>.suggestionsbox>:first-child`).click(); + if (e.target.id === 'to') ElementById('search').click(); + return false; + } + return true; +}; + +const showSettings = () => { + showModal(t('settings'), settingsTemplate()) +}; + +const settingsTemplate = () => html` + ${t('datasource')}:
+
+
+
+
+ ${t('accessibility')}:
+
+
+
+
+ ${t('etc')}:
+
+
+
+