Full Code of TalonBraveInfo/OpenHoW for AI

master e61ec258dc0d cached
245 files
4.9 MB
1.3M tokens
2312 symbols
1 requests
Download .txt
Showing preview only (5,186K chars total). Download the full file or copy to clipboard to get everything.
Repository: TalonBraveInfo/OpenHoW
Branch: master
Commit: e61ec258dc0d
Files: 245
Total size: 4.9 MB

Directory structure:
gitextract_hocwqf5u/

├── .clang-format
├── .github/
│   └── FUNDING.yml
├── .gitignore
├── .gitmodules
├── CMakeLists.txt
├── CONTRIBUTORS
├── LICENSE
├── README.md
├── bin/
│   ├── CREDITS
│   ├── gamecontrollerdb.txt
│   ├── icon.ai
│   └── mods/
│       ├── README.md
│       ├── base/
│       │   ├── actors/
│       │   │   └── misc.actor
│       │   ├── chars/
│       │   │   └── primitives/
│       │   │       ├── cube.mtl
│       │   │       ├── cube.obj
│       │   │       ├── icosphere.mtl
│       │   │       ├── icosphere.obj
│       │   │       ├── sphere.mtl
│       │   │       ├── sphere.obj
│       │   │       ├── torus.mtl
│       │   │       └── torus.obj
│       │   ├── effects/
│       │   │   └── test.effect
│       │   ├── fonts/
│       │   │   └── LICENSE.txt
│       │   ├── languages/
│       │   │   ├── eng.language
│       │   │   ├── fre.language
│       │   │   ├── ger.language
│       │   │   ├── ita.language
│       │   │   ├── rus.language
│       │   │   └── spa.language
│       │   ├── languages.manifest
│       │   ├── maps/
│       │   │   └── test/
│       │   │       ├── test.pmg
│       │   │       └── test.pog
│       │   ├── scripts/
│       │   │   ├── classes.json
│       │   │   ├── postprocess.json
│       │   │   └── teams.json
│       │   └── shaders/
│       │       ├── alpha_test.program
│       │       ├── debug_normals.program
│       │       ├── debug_test.program
│       │       ├── generic_textured.program
│       │       ├── generic_textured_lit.program
│       │       ├── generic_textured_lit_basic.program
│       │       ├── generic_untextured.program
│       │       ├── gl3/
│       │       │   ├── alpha_test_texture.frag
│       │       │   ├── debug.frag
│       │       │   ├── debug_normals.frag
│       │       │   ├── generic.vert
│       │       │   ├── global.glsl
│       │       │   ├── gouraud.vert
│       │       │   ├── lit_texture.frag
│       │       │   ├── shadow.frag
│       │       │   ├── texture.frag
│       │       │   ├── vertex_colour.frag
│       │       │   └── water.frag
│       │       ├── shadow.program
│       │       └── water.program
│       ├── base.mod
│       ├── feralwarfare/
│       │   ├── README.md
│       │   └── music/
│       │       └── track02.ogg
│       ├── feralwarfare.mod
│       ├── how/
│       │   ├── actors/
│       │   │   ├── pigs.actor
│       │   │   ├── vehicles.actor
│       │   │   └── weapons.actor
│       │   └── maps/
│       │       ├── cold.template
│       │       ├── desert.template
│       │       ├── night.template
│       │       ├── ominous.template
│       │       ├── space.template
│       │       ├── sunny.template
│       │       ├── sunrise.template
│       │       └── sunset.template
│       └── how.mod
├── doc/
│   ├── Maps.md
│   ├── README.md
│   ├── Scenario.md
│   ├── Speech.md
│   ├── coding_style.md
│   ├── file-formats/
│   │   ├── FAC.md
│   │   ├── HIR.md
│   │   ├── MAD_MTD.md
│   │   ├── MCAP.md
│   │   ├── MIN.md
│   │   ├── NO2.md
│   │   ├── OFS.md
│   │   ├── PMG.md
│   │   ├── POG.md
│   │   ├── PTG.md
│   │   ├── README.md
│   │   ├── TAB.md
│   │   └── VTX.md
│   └── game/
│       └── pig_faces.md
├── setup_cmake.bat
├── setup_libraries.bat
└── src/
    ├── engine/
    │   ├── App.cpp
    │   ├── App.h
    │   ├── CMakeLists.txt
    │   ├── Console.cpp
    │   ├── Console.h
    │   ├── InputManager.cpp
    │   ├── InputManager.h
    │   ├── Language.cpp
    │   ├── Language.h
    │   ├── Map.cpp
    │   ├── Map.h
    │   ├── MathUtilities.h
    │   ├── Menu.cpp
    │   ├── Menu.h
    │   ├── ModManager.cpp
    │   ├── ModManager.h
    │   ├── ModelResource.cpp
    │   ├── ModelResource.h
    │   ├── Physics.h
    │   ├── Property.cpp
    │   ├── Property.h
    │   ├── Resource.cpp
    │   ├── Resource.h
    │   ├── ResourceManager.cpp
    │   ├── ResourceManager.h
    │   ├── Terrain.cpp
    │   ├── Terrain.h
    │   ├── TextureResource.cpp
    │   ├── TextureResource.h
    │   ├── Timer.h
    │   ├── Utilities.cpp
    │   ├── Utilities.h
    │   ├── audio/
    │   │   ├── AudioManager.cpp
    │   │   ├── AudioManager.h
    │   │   └── stb_vorbis.c
    │   ├── config.cpp
    │   ├── config.h
    │   ├── editor/
    │   │   ├── ActorTreeWindow.cpp
    │   │   ├── ActorTreeWindow.h
    │   │   ├── BaseWindow.cpp
    │   │   ├── BaseWindow.h
    │   │   ├── ConsoleWindow.cpp
    │   │   ├── ConsoleWindow.h
    │   │   ├── MapConfigEditor.cpp
    │   │   ├── MapConfigEditor.h
    │   │   ├── ModelViewer.cpp
    │   │   ├── ModelViewer.h
    │   │   ├── NewGameWindow.cpp
    │   │   ├── NewGameWindow.h
    │   │   ├── NewMapWindow.cpp
    │   │   ├── NewMapWindow.h
    │   │   ├── ParticleEditor.cpp
    │   │   ├── ParticleEditor.h
    │   │   ├── TerrainImportWindow.cpp
    │   │   ├── TerrainImportWindow.h
    │   │   ├── TexturePicker.cpp
    │   │   ├── TexturePicker.h
    │   │   └── TextureViewer.h
    │   ├── game/
    │   │   ├── AAirship.cpp
    │   │   ├── AAirship.h
    │   │   ├── AAnimatedModel.cpp
    │   │   ├── AAnimatedModel.h
    │   │   ├── AHealthPickup.cpp
    │   │   ├── AItemPickup.cpp
    │   │   ├── AModel.cpp
    │   │   ├── AModel.h
    │   │   ├── AParachuteWeapon.cpp
    │   │   ├── AParachuteWeapon.h
    │   │   ├── AParticle.cpp
    │   │   ├── APig.cpp
    │   │   ├── APig.h
    │   │   ├── ASprite.cpp
    │   │   ├── AStaticModel.cpp
    │   │   ├── AStaticModel.h
    │   │   ├── ATrotterWeapon.cpp
    │   │   ├── ATrotterWeapon.h
    │   │   ├── AVehicle.cpp
    │   │   ├── AVehicle.h
    │   │   ├── AWeapon.cpp
    │   │   ├── AWeapon.h
    │   │   ├── Actor.cpp
    │   │   ├── Actor.h
    │   │   ├── ActorManager.cpp
    │   │   ├── ActorManager.h
    │   │   ├── GameManager.cpp
    │   │   ├── GameManager.h
    │   │   ├── GameMode.cpp
    │   │   ├── GameMode.h
    │   │   ├── GameModeInterface.h
    │   │   ├── Inventory.cpp
    │   │   ├── Inventory.h
    │   │   ├── Player.cpp
    │   │   └── Player.h
    │   ├── graphics/
    │   │   ├── BitmapFont.cpp
    │   │   ├── BitmapFont.h
    │   │   ├── Camera.cpp
    │   │   ├── Camera.h
    │   │   ├── Display.cpp
    │   │   ├── Display.h
    │   │   ├── ParticleEffect.cpp
    │   │   ├── ParticleEffect.h
    │   │   ├── ParticleEmitter.cpp
    │   │   ├── ParticleEmitter.h
    │   │   ├── PostProcess.h
    │   │   ├── ShaderManager.cpp
    │   │   ├── ShaderManager.h
    │   │   ├── Sprite.cpp
    │   │   ├── Sprite.h
    │   │   ├── TextureAtlas.cpp
    │   │   ├── TextureAtlas.h
    │   │   ├── mesh.cpp
    │   │   ├── mesh.h
    │   │   ├── particles.cpp
    │   │   ├── particles.h
    │   │   ├── video.cpp
    │   │   └── video.h
    │   ├── imgui_layer.cpp
    │   ├── imgui_layer.h
    │   ├── loaders/
    │   │   ├── FacLoader.cpp
    │   │   ├── FacLoader.h
    │   │   ├── HirLoader.cpp
    │   │   ├── Loaders.h
    │   │   ├── MinLoader.cpp
    │   │   ├── No2Loader.cpp
    │   │   ├── No2Loader.h
    │   │   ├── VtxLoader.cpp
    │   │   ├── VtxLoader.h
    │   │   └── WaveFrontReader.h
    │   ├── model.cpp
    │   ├── model.h
    │   ├── physics/
    │   │   ├── PhysicsInterface.cpp
    │   │   └── PhysicsInterface.h
    │   └── script/
    │       ├── JsonReader.cpp
    │       ├── JsonReader.h
    │       └── duktape-2.2.0/
    │           ├── duk_config.h
    │           ├── duk_module_duktape.c
    │           ├── duk_module_duktape.h
    │           ├── duktape.c
    │           └── duktape.h
    ├── extractor/
    │   ├── CMakeLists.txt
    │   ├── extractor.c
    │   ├── extractor.h
    │   ├── fac.c
    │   ├── fac.h
    │   ├── pc_copy_paths.h
    │   ├── pc_music_paths.h
    │   ├── pc_package_paths.h
    │   └── version.c
    └── tools/
        ├── CMakeLists.txt
        ├── img2pmg/
        │   ├── CMakeLists.txt
        │   └── main.c
        └── ptgtool/
            ├── CMakeLists.txt
            └── ptgtool.c

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
BasedOnStyle: LLVM
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveMacros: AcrossComments
AlignOperands: true
AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Always
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterReturnType: None
AlwaysBreakTemplateDeclarations: Yes
BreakBeforeBraces: Attach
BreakBeforeBinaryOperators: None
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
ColumnLimit: 0
CompactNamespaces: false
ContinuationIndentWidth: 8
IndentCaseLabels: true
IndentPPDirectives: AfterHash
IndentWidth: 4
KeepEmptyLinesAtTheStartOfBlocks: true
MaxEmptyLinesToKeep: 2
NamespaceIndentation: All
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PointerAlignment: Right
ReflowComments: false
SpaceAfterCStyleCast: true
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 0
SpacesInAngles: true
SpacesInCStyleCastParentheses: true
SpacesInContainerLiterals: false
SpacesInParentheses: true
SpacesInSquareBrackets: true
TabWidth: 4
UseTab: ForIndentation
SortIncludes: false


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

#github: hogsy


================================================
FILE: .gitignore
================================================
# Object files
*.o
*.ko
#*.obj
*.elf

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex

# Debug files
*.dSYM/
*.su

# IDE specific
.vscode/
.vs/
build/

# OpenHoW
src/3rdparty/SDL2/
bin/imgui.ini
bin/debug/
bin/release/

# Ignore extracted assets 
bin/mods/how/audio/
bin/mods/how/chars/
bin/mods/how/frontend/
bin/mods/how/music/
bin/mods/how/skys/
bin/mods/how/speech/
bin/mods/how/streams/
bin/mods/how/textures/
bin/mods/base/debug/
/.idea/
/cmake-build-debug/
/bin/extractor
/bin/OpenHoW
/bin/ptgtool


================================================
FILE: .gitmodules
================================================
[submodule "platform"]
	path = src/3rdparty/platform
	url = https://github.com/TalonBraveInfo/platform
[submodule "imgui"]
	path = src/3rdparty/imgui
	url = https://github.com/ocornut/imgui.git
[submodule "src/3rdparty/openal-soft"]
	path = src/3rdparty/openal-soft
	url = https://github.com/kcat/openal-soft.git


================================================
FILE: CMakeLists.txt
================================================
#[[
This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.

In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.

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

For more information, please refer to <http://unlicense.org>
]]

cmake_minimum_required(VERSION 3.5.1)

project(OpenHoW)

#set(CMAKE_VERBOSE_MAKEFILE ON)
option(OHW_BUILD_TOOLS "Build tools and utilities" ON)

# Set all of our output directories.
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/")

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_C_STANDARD 11)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") #GCC
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wsign-compare -Wno-unused-function -Wno-unused-variable -Wno-format-truncation -Wold-style-declaration")
endif ()

add_definitions("-D_DEBUG")

function(build_openal)
    set(LIBTYPE "STATIC")
    add_definitions("-DAL_LIBTYPE_STATIC")
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/src/3rdparty/openal-soft/lib/")
    set(ALSOFT_UTILS OFF CACHE BOOL "Build and install utility programs")
    set(ALSOFT_EXAMPLES OFF CACHE BOOL "Build and install example programs")
    set(ALSOFT_TESTS OFF CACHE BOOL "Build and install test programs")
    add_subdirectory(src/3rdparty/openal-soft)
endfunction()

if (WIN32 OR APPLE)
    build_openal()
endif ()

# Get the current working branch
execute_process(
        COMMAND git rev-parse --abbrev-ref HEAD
        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
        OUTPUT_VARIABLE GIT_BRANCH
        OUTPUT_STRIP_TRAILING_WHITESPACE
)

# Get the latest abbreviated commit hash of the working branch
execute_process(
        COMMAND git log -1 --format=%h
        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
        OUTPUT_VARIABLE GIT_COMMIT_HASH
        OUTPUT_STRIP_TRAILING_WHITESPACE
)

# Get the number of commits on the working branch
execute_process(
        COMMAND git rev-list HEAD --count
        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
        OUTPUT_VARIABLE GIT_COMMIT_COUNT
        OUTPUT_STRIP_TRAILING_WHITESPACE
)

add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
add_definitions(-DGIT_COMMIT_COUNT="${GIT_COMMIT_COUNT}")
add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")

# 3rd-party libraries
add_subdirectory(src/3rdparty/platform/plcore/)
add_subdirectory(src/3rdparty/platform/plgraphics/)
add_subdirectory(src/3rdparty/platform/plmodel/)
add_subdirectory(src/3rdparty/platform/plugins/driver_opengl/)

# core openhow components
add_subdirectory(src/extractor)
add_subdirectory(src/engine)


================================================
FILE: CONTRIBUTORS
================================================
https://github.com/hogsy
https://github.com/DummkopfOfHachtenduden
https://github.com/solemnwarning
https://github.com/Bonerlord
https://github.com/sabas
https://github.com/metalvoidzz


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is 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.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
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.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  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 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. Use with the GNU Affero General Public License.

  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 Affero 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 special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU 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 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 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 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

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

================================================
FILE: README.md
================================================
Hello! :wave: 

This project has been archived, for now. For those not aware, there is an [official Hogs of War remaster](https://www.hogsofwar.org/reheated) currently in the works which seems likely to fulfil many of the goals this project set out to accomplish. Rather than compete with that, I've decided to move on to do my own thing.

This repository will remain, just on the chance that there's a reason to return to it or someone finds something here useful. Thanks to all that contributed and helped out too! :heart:

Regardless of whether or not I ever return to this, this was a really enlightening project to work on. I met a lot of great folks and learnt a lot about engine design and reverse engineering. That said, I've also learnt a lot _since_ and if I _do_ return to this particular project, much of what's here will probably be thrown out a window.

If you're interested to see what I'm working on next, feel free to check out my blog [here](https://www.hogsy.me/), otherwise thanks for checking the project out! :smile:

----

# OpenHoW

[![Project Stats](https://www.openhub.net/p/openhow/widgets/project_thin_badge.gif)](https://www.openhub.net/p/openhow) 

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FTalonBraveInfo%2FOpenHoW.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FTalonBraveInfo%2FOpenHoW?ref=badge_shield)
[![CodeFactor](https://www.codefactor.io/repository/github/talonbraveinfo/openhow/badge)](https://www.codefactor.io/repository/github/talonbraveinfo/openhow)
[![Build Status](https://badge.buildkite.com/91e09e49d899659cf45b4898c8aaeb9d5927f2a7b23eaafb28.svg)](https://buildkite.com/solemnwarning/openhow)
[![version](https://img.shields.io/github/release-pre/TalonBraveInfo/OpenHoW)](https://github.com/TalonBraveInfo/OpenHoW/releases/latest)

## What's this? :pig:
OpenHoW aims to be an open-source reimplementation of [Hogs of War](https://en.wikipedia.org/wiki/Hogs_of_War),
a turn-based strategy game produced by [Gremlin Interactive](https://en.wikipedia.org/wiki/Gremlin_Interactive).

The entire project is being built from the ground up, supporting 
content from the PC release of the game, and 
the end goal will be to produce a completely open and free 
version of the game, featuring completely new assets to 
replace those of the original (think 
[FreeDOOM](https://freedoom.github.io/)).

## Features :page_with_curl:
Consider this more of a wish-list at this  point in time ;)
* Support for Windows and Linux, with possibly more to follow!
* An editor to allow for easy modification of game data
* Enhanced graphics over the original game

## Status :mag:
![Screenshot](./preview/preview00.png?raw=true)

As of October 1st, 2019, the project is still in a very early phase of development.
As we shift onto our next milestone (0.5.0) a lot of work will begin on actually getting
the game into a basic playable form.

The current goal is to get the game into a rough playable state.

## Contributing :hammer:
Interested in contributing to the project? Know C/C++ and looking to get deep down
into some code? Then what are you waiting for!?

The best place right now to get in touch is through our [Discord](https://discord.gg/EdmwgVk),
and makes things a hell of a lot easier to coordinate and collaborate as well. If you're
interested then jump on in!

Otherwise if you're just simply interested in the progression of the project, you too
are more than welcome to join us. :smirk:

### Getting Started

Here's a rough guide to getting up and running.

There are several requirements in order to compile the project successfully, each of which
have been listed below.

* [CMake](https://cmake.org/) (needed for project generation)
* [SDL2](https://www.libsdl.org/) (needed for input, window creation and audio)
* [OpenAL Soft](https://github.com/kcat/openal-soft) (needed for audio)

At this time with these dependencies the project should compile for Linux (_Ubuntu 19.10_: ```apt install cmake libglew-dev libopenal-dev libsdl2-dev```)
but Windows needs some further care before it will be up and running correctly (see Windows section below).

Once compiled, you need to use the [extraction](https://github.com/TalonBraveInfo/OpenHoW/tree/master/src/tools/extractor) utility: point it to your Hogs of War installation directory. The tool will then copy across and update any of the original Hogs of War's assets as necessary. If you want the files to be copied over somewhere else, add `-<output-dir>` after specifying your Hogs of War directory, but the default ```bin``` directory is required to get OpenHoW up and running.


#### Linux

```
git clone https://github.com/TalonBraveInfo/OpenHoW.git
cd OpenHoW
git submodule update --init
mkdir build
cd build
cmake ../
```

#### Windows

On Windows, the project has been successfully compiled against [MinGW 64-bit](https://mingw-w64.org/doku.php/download/mingw-builds). One additional step
you may need to perform is to download a copy of the [SDL2 development libraries](https://www.libsdl.org/release/SDL2-devel-2.0.9-mingw.tar.gz)
for MinGW 64-bit.

After you've downloaded these files, place the 'include' and 'lib' directories under 'SDL2-2.0.9/x86_64-w64-mingw32'
in a new 'SDL2' directory under 'src/3rdparty'.

This will be changing at a later point to make things a little easier.

#### C/C++ Style Guide

A style guide is available [here](https://github.com/TalonBraveInfo/OpenHoW/tree/master/doc/coding_style.md).

At the moment the project is a mess of different styles, which is very much an unfortunate side effect of
experimenting with different styles during earlier stages of development.



================================================
FILE: bin/CREDITS
================================================
OpenHoW Icon
	Created by NAMELESS
	https://www.fiverr.com/s2/088679c4e8


================================================
FILE: bin/gamecontrollerdb.txt
================================================
# Game Controller DB for SDL in 2.0.6 format
# Source: https://github.com/gabomdq/SDL_GameControllerDB

# Windows
03000000fa2d00000100000000000000,3DRUDDER,leftx:a0,lefty:a1,rightx:a5,righty:a2,platform:Windows,
03000000022000000090000000000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
03000000203800000900000000000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
03000000102800000900000000000000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows,
03000000a00500003232000000000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,
030000008f0e00001200000000000000,Acme,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows,
03000000341a00003608000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000c01100001352000000000000,Battalife Joystick,a:b6,b:b7,back:b2,leftshoulder:b0,leftx:a0,lefty:a1,rightshoulder:b1,start:b3,x:b4,y:b5,platform:Windows,
030000006b1400000055000000000000,bigben ps3padstreetnew,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
0300000066f700000500000000000000,BrutalLegendTest,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows,
03000000d81d00000b00000000000000,BUFFALO BSGP1601 Series ,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Windows,
03000000e82000006058000000000000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
030000005e0400008e02000000000000,Controller (XBOX 360 For Windows),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
03000000260900008888000000000000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a4,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Windows,
03000000a306000022f6000000000000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,
030000004f04000023b3000000000000,Dual Trigger 3-in-1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000341a00000108000000000000,EXEQ RF USB Gamepad 8206,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
030000000d0f00008500000000000000,Fighting Commander 2016 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00008400000000000000,Fighting Commander 5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00008800000000000000,Fighting Stick mini 4,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows,
030000000d0f00008700000000000000,Fighting Stick mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00002700000000000000,FIGHTING STICK V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
78696e70757403000000000000000000,Fightstick TES,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Windows,
03000000790000000600000000000000,G-Shark GS-GP702,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows,
03000000260900002625000000000000,Gamecube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,lefttrigger:a4,leftx:a0,lefty:a1,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Windows,
030000008f0e00000d31000000000000,GAMEPAD 3 TURBO,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000280400000140000000000000,GamePad Pro USB,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
03000000ffff00000000000000000000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
03000000451300000010000000000000,Generic USB Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
03000000341a00000302000000000000,Hama Scorpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00004900000000000000,Hatsune Miku Sho Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000d81400000862000000000000,HitBox Edition Cthulhu+,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00005f00000000000000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00005e00000000000000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00004000000000000000,Hori Fighting Stick Mini 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00006e00000000000000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00006600000000000000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f0000ee00000000000000,HORIPAD mini4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00004d00000000000000,HORIPAD3 A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000250900000017000000000000,HRAP2 on PS/SS/N64 Joypad to USB BOX,a:b2,b:b1,back:b9,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b8,x:b3,y:b0,platform:Windows,
030000008f0e00001330000000000000,HuiJia SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b9,x:b3,y:b0,platform:Windows,
03000000d81d00000f00000000000000,iBUFFALO BSGP1204 Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
03000000d81d00001000000000000000,iBUFFALO BSGP1204P Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
03000000830500006020000000000000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Windows,
03000000b50700001403000000000000,IMPACT BLACK,a:b2,b:b3,back:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,
030000006f0e00002401000000000000,INJUSTICE FightStick for PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
03000000491900000204000000000000,Ipega PG-9023,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
030000006d04000011c2000000000000,Logitech Cordless Wingman,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b5,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b2,righttrigger:b7,rightx:a3,righty:a4,x:b4,platform:Windows,
030000006d04000016c2000000000000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000006d04000018c2000000000000,Logitech F510 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000006d04000019c2000000000000,Logitech F710 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000380700005032000000000000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000380700005082000000000000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000380700008433000000000000,Mad Catz FightStick TE S+ PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
03000000380700008483000000000000,Mad Catz FightStick TE S+ PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b6,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000380700008134000000000000,Mad Catz FightStick TE2+ PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000380700008184000000000000,Mad Catz FightStick TE2+ PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,leftstick:b10,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000380700008034000000000000,Mad Catz TE2 PS3 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000380700008084000000000000,Mad Catz TE2 PS4 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000380700008532000000000000,Madcatz Arcade Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000380700003888000000000000,Madcatz Arcade Fightstick TE S+ PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000380700001888000000000000,MadCatz SFIV FightStick PS3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
03000000380700008081000000000000,MADCATZ SFV Arcade FightStick Alpha PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000008305000031b0000000000000,MaxfireBlaze3,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
03000000250900000128000000000000,Mayflash Arcade Stick,a:b1,b:b2,back:b8,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b5,y:b6,platform:Windows,
03000000790000004418000000000000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows,
03000000790000004318000000000000,Mayflash GameCube Controller Adapter,a:b1,b:b2,back:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b0,leftshoulder:b4,leftstick:b0,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b0,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows,
030000008f0e00001030000000000000,Mayflash USB Adapter for original Sega Saturn controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,rightshoulder:b2,righttrigger:b7,start:b9,x:b3,y:b4,platform:Windows,
0300000025090000e803000000000000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,
03000000790000000018000000000000,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000001008000001e5000000000000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Windows,
03000000bd12000015d0000000000000,Nintendo Retrolink USB Super SNES Classic Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows,
030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
030000004b120000014d000000000000,NYKO AIRFLO,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a3,leftstick:a0,lefttrigger:b6,leftx:h0.6,lefty:h0.12,rightshoulder:b5,rightstick:a2,righttrigger:b7,rightx:h0.9,righty:h0.4,start:b9,x:b2,y:b3,platform:Windows,
03000000362800000100000000000000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b13,rightx:a3,righty:a4,x:b1,y:b2,platform:Windows,
03000000120c0000f60e000000000000,P4 Wired Gamepad,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b7,rightshoulder:b4,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows,
030000008f0e00000300000000000000,Piranha xtreme,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,
03000000d62000006dca000000000000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000008f0e00007530000000000000,PS (R) Gamepad,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b1,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000e30500009605000000000000,PS to USB convert cable,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,
03000000100800000100000000000000,PS1 USB,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,
03000000100800000300000000000000,PS2 USB,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows,
03000000888800000803000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b9,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows,
030000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Windows,
03000000250900000500000000000000,PS3 DualShock,a:b2,b:b1,back:b9,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b0,y:b3,platform:Windows,
03000000100000008200000000000000,PS360+ v1.66,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:h0.4,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
030000004c050000a00b000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000004c050000cc09000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000300f00000011000000000000,QanBa Arcade JoyStick 1008,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b10,x:b0,y:b3,platform:Windows,
03000000300f00001611000000000000,QanBa Arcade JoyStick 4018,a:b1,b:b2,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows,
03000000222c00000020000000000000,QANBA DRONE ARCADE JOYSTICK,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,x:b0,y:b3,platform:Windows,
03000000300f00001210000000000000,QanBa Joystick Plus,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows,
03000000341a00000104000000000000,QanBa Joystick Q4RAF,a:b5,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b1,y:b2,platform:Windows,
03000000222c00000223000000000000,Qanba Obsidian Arcade Joystick PS3 Mode,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000222c00000023000000000000,Qanba Obsidian Arcade Joystick PS4 Mode,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000321500000003000000000000,Razer Hydra,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
030000000d0f00001100000000000000,REAL ARCADE PRO.3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00008b00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00008a00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00006b00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00006a00000000000000,Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00007000000000000000,REAL ARCADE PRO.4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00002200000000000000,REAL ARCADE Pro.V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00005c00000000000000,Real Arcade Pro.V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000000d0f00005b00000000000000,Real Arcade Pro.V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000790000001100000000000000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows,
0300000000f000000300000000000000,RetroUSB.com RetroPad,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows,
0300000000f00000f100000000000000,RetroUSB.com Super RetroPort,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows,
030000006b140000010d000000000000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
030000006f0e00001e01000000000000,Rock Candy Gamepad for PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000004f04000003d0000000000000,run'n'drive,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:a3,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:a4,rightstick:b11,righttrigger:b5,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000a30600001af5000000000000,Saitek Cyborg,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,
03000000a306000023f6000000000000,Saitek Cyborg V.1 Game pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows,
03000000300f00001201000000000000,Saitek Dual Analog Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,
03000000a30600000cff000000000000,Saitek P2500 Force Rumble Pad,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,x:b0,y:b1,platform:Windows,
03000000a30600000c04000000000000,Saitek P2900,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows,
03000000300f00001001000000000000,Saitek P480 Rumble Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,
03000000a30600000b04000000000000,Saitek P990,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows,
03000000a30600000b04000000010000,Saitek P990 Dual Analog Pad,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Windows,
03000000300f00001101000000000000,saitek rumble pad,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,
0300000000050000289b000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows,
030000009b2800000500000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows,
03000000341a00000208000000000000,SL-6555-SBK,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a3,righty:a2,start:b7,x:b2,y:b3,platform:Windows,
030000008f0e00000800000000000000,SpeedLink Strike FX Wireless,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
03000000ff1100003133000000000000,SVEN X-PAD,a:b2,b:b3,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a4,start:b5,x:b0,y:b1,platform:Windows,
03000000fa1900000706000000000000,Team 5,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
03000000b50700001203000000000000,Techmobility X6-38V,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows,
030000004f04000015b3000000000000,Thrustmaster Dual Analog 2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,
030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Windows,
030000004f04000004b3000000000000,Thrustmaster Firestorm Dual Power 3,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows,
03000000666600000488000000000000,TigerGame PS/PS2 Game Controller Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows,
03000000d90400000200000000000000,TwinShock PS2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,
03000000380700006652000000000000,UnKnown,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows,
03000000632500002305000000000000,USB Vibration Joystick (BM),a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
03000000790000001b18000000000000,Venom Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
03000000450c00002043000000000000,XEOX Gamepad SL-6556-BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
03000000172700004431000000000000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a7,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows,
xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
03000000786901006e70000000000000,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,

# Mac OS X
03000000203800000900000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,
03000000022000000090000001000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,
03000000102800000900000000000000,8Bitdo SFC30 GamePad Joystick,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,
03000000a00500003232000008010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,
030000008305000031b0000000000000,Cideko AK08b,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
03000000260900008888000088020000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Mac OS X,
03000000a306000022f6000001030000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X,
03000000790000000600000000000000,G-Shark GP-702,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Mac OS X,
03000000ad1b000001f9000000000000,Gamestop BB-070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,
030000000d0f00005f00000000010000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000000d0f00005e00000000010000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000000d0f00005f00000000000000,HORI Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000000d0f00005e00000000000000,HORI Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000000d0f00004d00000000000000,HORI Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000000d0f00006e00000000010000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000000d0f00006600000000010000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000000d0f00006600000000000000,HORIPAD FPS PLUS 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000008f0e00001330000011010000,HuiJia SNES Controller,a:b4,b:b2,back:b16,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b12,rightshoulder:b14,start:b18,x:b6,y:b0,platform:Mac OS X,
03000000830500006020000000010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X,
03000000830500006020000000000000,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X,
030000006d04000016c2000000020000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000006d04000016c2000000030000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000006d04000016c2000014040000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000006d04000016c2000000000000,Logitech F310 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000006d04000018c2000000000000,Logitech F510 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
030000006d0400001fc2000000000000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
030000006d04000019c2000000000000,Logitech Wireless Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
03000000380700005032000000010000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
03000000380700005082000000010000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
03000000790000004418000000010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Mac OS X,
0300000025090000e803000000000000,Mayflash Wii Classic Controller,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Mac OS X,
03000000790000000018000000000000,Mayflash WiiU Pro Game Controller Adapter (DInput),a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X,
03000000d8140000cecf000000000000,MC Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,
030000001008000001e5000006010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Mac OS X,
030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,
030000008f0e00000300000000000000,Piranha xtreme,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Mac OS X,
030000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X,
030000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X,
030000004c050000a00b000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000008916000000fd000000000000,Razer Onza TE,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
03000000321500000010000000010000,Razer RAIJU,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
0300000032150000030a000000000000,Razer Wildcat,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
03000000790000001100000000000000,Retrolink Classic Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a3,lefty:a4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,
03000000790000001100000006010000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,
030000006b140000010d000000010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
03000000811700007e05000000000000,Sega Saturn,a:b2,b:b4,dpdown:b16,dpleft:b15,dpright:b14,dpup:b17,leftshoulder:b8,lefttrigger:a5,leftx:a0,lefty:a2,rightshoulder:b9,righttrigger:a4,start:b13,x:b0,y:b6,platform:Mac OS X,
03000000b40400000a01000000000000,Sega Saturn USB Gamepad,a:b0,b:b1,back:b5,guide:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Mac OS X,
030000003512000021ab000000000000,SFC30 Joystick,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,
030000004c050000cc09000000000000,Sony DualShock 4 V2,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000004c050000a00b000000000000,Sony DualShock 4 Wireless Adaptor,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
030000005e0400008e02000001000000,Steam Virtual GamePad,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
03000000110100002014000000000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b12,x:b2,y:b3,platform:Mac OS X,
03000000110100002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X,
03000000381000002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X,
03000000110100001714000000000000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X,
03000000110100001714000020010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X,
030000004f04000015b3000000000000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Mac OS X,
030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Mac OS X,
03000000bd12000015d0000000010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,
03000000bd12000015d0000000000000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X,
03000000100800000100000000000000,Twin USB Joystick,a:b4,b:b2,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b12,leftstick:b20,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b14,rightstick:b22,righttrigger:b10,rightx:a6,righty:a4,start:b18,x:b6,y:b0,platform:Mac OS X,
050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,back:b7,dpdown:b3,dpleft:b0,dpright:b1,dpup:b2,guide:b8,leftshoulder:b11,lefttrigger:b12,leftx:a0,lefty:a1,start:b6,x:b10,y:b9,platform:Mac OS X,
050000005769696d6f74652028313800,Wii U Pro Controller,a:b16,b:b15,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b8,leftshoulder:b19,leftstick:b23,lefttrigger:b21,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b24,righttrigger:b22,rightx:a2,righty:a3,start:b6,x:b18,y:b17,platform:Mac OS X,
030000005e0400008e02000000000000,X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
03000000c6240000045d000000000000,Xbox 360 Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
030000005e040000e302000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
030000005e040000d102000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
030000005e040000dd02000000000000,Xbox One Wired Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
030000005e040000e002000000000000,Xbox Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X,
030000005e040000fd02000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
030000005e040000ea02000000000000,Xbox Wireless Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
030000005e040000e002000003090000,Xbox Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X,
03000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Mac OS X,
03000000120c0000100e000000010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,

# Linux
05000000203800000900000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
03000000022000000090000011010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
05000000c82d00002038000000010000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
03000000c82d00000190000011010000,8Bitdo NES30 Pro 8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
05000000c82d00003028000000010000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,
05000000102800000900000000010000,8Bitdo SFC30 GamePad,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,
05000000a00500003232000008010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux,
05000000a00500003232000001000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux,
030000006f0e00003901000020060000,Afterglow Wired Controller for Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000100000008200000011010000,Akishop Customs PS360+ v1.66,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
05000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux,
03000000666600006706000000010000,boom PSX to PC Converter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Linux,
03000000e82000006058000001010000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
03000000260900008888000000010000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Linux,
03000000a306000022f6000011010000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,
03000000b40400000a01000000010000,CYPRESS USB Gamepad,a:b0,b:b1,back:b5,guide:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Linux,
03000000790000000600000010010000,DragonRise Inc. Generic USB Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Linux,
030000006f0e00003001000001010000,EA Sports PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000341a000005f7000010010000,GameCube {HuiJia USB box},a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux,
0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
030000006f0e00000104000000010000,Gamestop Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006f0e00001304000000010000,Generic X-Box pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:a0,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:a3,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006f0e00001f01000000010000,Generic X-Box pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000f0250000c183000010010000,Goodbetterbest Ltd USB Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000280400000140000000010000,Gravis GamePad Pro USB ,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
030000008f0e00000610000000010000,GreenAsia Electronics 4Axes 12Keys GamePad ,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Linux,
030000008f0e00001200000010010000,GreenAsia Inc. USB Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,
030000008f0e00000300000010010000,GreenAsia Inc. USB Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,
0500000047532067616d657061640000,GS gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
06000000adde0000efbe000002010000,Hidromancer Game Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000d81400000862000011010000,HitBox (PS3/PC) Analog Mode,a:b1,b:b2,back:b8,guide:b9,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux,
03000000c9110000f055000011010000,HJC Game GAMEPAD,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
030000000d0f00000d00000000010000,hori,a:b0,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,leftx:b4,lefty:b5,rightshoulder:b7,start:b9,x:b1,y:b2,platform:Linux,
030000000d0f00001000000011010000,HORI CO. LTD. FIGHTING STICK 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
030000000d0f00006a00000011010000,HORI CO. LTD. Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000000d0f00006b00000011010000,HORI CO. LTD. Real Arcade Pro.4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000000d0f00002200000011010000,HORI CO. LTD. REAL ARCADE Pro.V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
030000000d0f00005f00000011010000,Hori Fighting Commander 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000000d0f00005e00000011010000,Hori Fighting Commander 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000000d0f00006e00000011010000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000000d0f00006600000011010000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000000d0f00006700000001010000,HORIPAD ONE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000008f0e00001330000010010000,HuiJia SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b9,x:b3,y:b0,platform:Linux,
03000000830500006020000010010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux,
050000006964726f69643a636f6e0000,idroid:con,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000b50700001503000010010000,impact,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,
03000000fd0500000030000000010000,InterAct GoPad I-73000 (Fighting Game Layout),a:b3,b:b4,back:b6,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b7,x:b0,y:b1,platform:Linux,
030000006e0500000320000010010000,JC-U3613M - DirectInput Mode,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux,
03000000300f00001001000010010000,Jess Tech Dual Analog Rumble Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,
03000000ba2200002010000001010000,Jess Technology USB Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,
030000006f0e00000103000000020000,Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006d04000019c2000010010000,Logitech Cordless RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000006d04000016c2000011010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000006d04000016c2000010010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000006d0400001dc2000014400000,Logitech F310 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006d0400001ec2000020200000,Logitech F510 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006d04000019c2000011010000,Logitech F710 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000006d0400001fc2000005030000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000006d04000015c2000010010000,Logitech Logitech Extreme 3D,a:b0,b:b4,back:b6,guide:b8,leftshoulder:b9,leftstick:h0.8,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:h0.2,start:b7,x:b2,y:b5,platform:Linux,
030000006d04000018c2000010010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000006d04000011c2000010010000,Logitech WingMan Cordless RumblePad,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b10,rightx:a3,righty:a4,start:b8,x:b3,y:b4,platform:Linux,
05000000380700006652000025010000,Mad Catz C.T.R.L.R ,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000380700005032000011010000,Mad Catz FightPad PRO (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000380700005082000011010000,Mad Catz FightPad PRO (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
03000000ad1b00002ef0000090040000,Mad Catz Fightpad SFxT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux,
03000000380700008034000011010000,Mad Catz fightstick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000380700008084000011010000,Mad Catz fightstick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
03000000380700008433000011010000,Mad Catz FightStick TE S+ PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000380700008483000011010000,Mad Catz FightStick TE S+ PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
03000000380700001647000010040000,Mad Catz Wired Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000380700003847000090040000,Mad Catz Wired Xbox 360 Controller (SFIV),a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
03000000ad1b000016f0000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000380700001888000010010000,MadCatz PC USB Wired Stick 8818,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000380700003888000010010000,MadCatz PC USB Wired Stick 8838,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:a0,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000790000004418000010010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux,
03000000780000000600000010010000,Microntek USB Joystick,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,
030000005e0400008e02000004010000,Microsoft X-Box 360 pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e0400008e02000062230000,Microsoft X-Box 360 pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e040000d102000001010000,Microsoft X-Box One pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e040000d102000003020000,Microsoft X-Box One pad v2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e0400008502000000010000,Microsoft X-Box pad (Japan),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,
030000005e0400008902000021010000,Microsoft X-Box pad v2 (US),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,
05000000d6200000ad0d000001000000,Moga Pro,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux,
030000001008000001e5000010010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b6,start:b9,x:b3,y:b0,platform:Linux,
050000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
050000007e0500003003000001000000,Nintendo Wii Remote Pro Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,
05000000010000000100000003000000,Nintendo Wiimote,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
030000000d0500000308000010010000,Nostromo n45 Dual Analog Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Linux,
03000000550900001072000011010000,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b8,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,
03000000451300000830000010010000,NYKO CORE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000005e0400000202000000010000,Old Xbox pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux,
05000000362800000100000002010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux,
05000000362800000100000003010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux,
03000000ff1100003133000010010000,PC Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
030000006f0e00006401000001010000,PDP Battlefield One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000ff1100004133000010010000,PS2 Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,
030000004c0500006802000010010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux,
050000004c0500006802000000810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
03000000341a00003608000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000004c0500006802000011810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
050000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:a12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:a13,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux,
030000004c0500006802000010810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
030000004c0500006802000011010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux,
060000004c0500006802000000010000,PS3 Controller (Bluetooth),a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux,
05000000504c415953544154494f4e00,PS3 Controller (Bluetooth),a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux,
050000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000004c050000a00b000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
050000004c050000cc09000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
050000004c050000c405000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
030000004c050000c405000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
050000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000004c050000cc09000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000004c050000a00b000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
030000004c050000cc09000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,
030000004c050000c405000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
03000000300f00001211000011010000,QanBa Arcade JoyStick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,platform:Linux,
030000009b2800000300000001010000,raphnet.net 4nes4snes v1.5,a:b0,b:b4,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux,
030000008916000001fd000024010000,Razer Onza Classic Edition,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000008916000000fd000024010000,Razer Onza Tournament,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000321500000010000011010000,Razer RAIJU,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
03000000c6240000045d000025010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000321500000009000011010000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,
050000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,
0300000032150000030a000001010000,Razer Wildcat,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000790000001100000010010000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,
0300000000f000000300000000010000,RetroUSB.com RetroPad,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux,
0300000000f00000f100000000010000,RetroUSB.com Super RetroPort,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux,
030000006b140000010d000011010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000006f0e00001e01000011010000,Rock Candy Gamepad for PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
030000006f0e00004601000001010000,Rock Candy Wired Controller for Xbox One,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000a306000023f6000011010000,Saitek Cyborg V.1 Game Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,
03000000a30600000cff000010010000,Saitek P2500 Force Rumble Pad,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,x:b0,y:b1,platform:Linux,
03000000a30600000c04000011010000,Saitek P2900 Wireless Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b12,x:b0,y:b3,platform:Linux,
03000000a30600000901000000010000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,x:b0,y:b1,platform:Linux,
03000000a30600000b04000000010000,Saitek P990 Dual Analog Pad,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux,
03000000a306000018f5000010010000,Saitek PLC Saitek P3200 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux,
03000000c01600008704000011010000,Serial/Keyboard/Mouse/Joystick,a:b12,b:b10,back:b4,dpdown:b2,dpleft:b3,dpright:b1,dpup:b0,leftshoulder:b9,leftstick:b14,lefttrigger:b6,leftx:a1,lefty:a0,rightshoulder:b8,rightstick:b15,righttrigger:b7,rightx:a2,righty:a3,start:b5,x:b13,y:b11,platform:Linux,
03000000f025000021c1000010010000,ShanWan Gioteck PS3 Wired Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
03000000250900000500000000010000,Sony PS2 pad with SmartJoy adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,
030000005e0400008e02000073050000,Speedlink TORID Wireless Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e0400008e02000020200000,SpeedLink XEOX Pro Analog Gamepad pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000de2800000211000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,
05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,
03000000de2800000112000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,
05000000de2800000212000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,
03000000de280000fc11000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000de2800004211000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux,
03000000de280000ff11000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000666600000488000000010000,Super Joy Box 5 Pro,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,
030000004f04000020b3000010010000,Thrustmaster 2 in 1 DT,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,
030000004f04000015b3000010010000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux,
030000004f04000023b3000000010000,Thrustmaster Dual Trigger 3-in-1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000004f04000000b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Linux,
030000004f04000008d0000000010000,Thrustmaster Run N Drive Wireless,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
030000004f04000009d0000000010000,Thrustmaster Run N Drive Wireless PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
03000000bd12000015d0000010010000,Tomee SNES USB Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,
03000000d814000007cd000011010000,Toodles 2008 Chimp PC/PS3,a:b0,b:b1,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux,
03000000100800000100000010010000,Twin USB PS2 Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,
03000000100800000300000010010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,
03000000790000001100000000010000,USB Gamepad1,a:b2,b:b1,back:b8,dpdown:a0,dpleft:a1,dpright:a2,dpup:a4,start:b9,platform:Linux,
05000000ac0500003232000001000000,VR-BOX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,
030000005e0400008e02000014010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e0400008e02000010010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e0400001907000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e0400009102000007010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e040000a102000007010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000005e040000a102000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
0000000058626f782033363020576900,Xbox 360 Wireless Controller,a:b0,b:b1,back:b14,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b7,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux,
0000000058626f782047616d65706100,Xbox Gamepad (userspace driver),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux,
050000005e040000e002000003090000,Xbox One Wireless Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
050000005e040000fd02000003090000,Xbox One Wireless Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
03000000450c00002043000010010000,XEOX Gamepad SL-6556-BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
05000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux,
03000000c0160000e105000001010000,Xin-Mo Xin-Mo Dual Arcade,a:b4,b:b3,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b9,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b1,y:b0,platform:Linux,
xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
03000000120c0000100e000011010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,

# Android
64633436313965656664373634323364,Microsoft X-Box 360 pad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android,
61363931656135336130663561616264,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android,
4e564944494120436f72706f72617469,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android,
37336435666338653565313731303834,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android,
35643031303033326130316330353564,PS4 Controller,a:b1,b:b17,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android,
05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Android,
5477696e20555342204a6f7973746963,Twin USB Joystick,a:b22,b:b21,back:b28,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b26,leftstick:b30,lefttrigger:b24,leftx:a0,lefty:a1,rightshoulder:b27,rightstick:b31,righttrigger:b25,rightx:a3,righty:a2,start:b29,x:b23,y:b20,platform:Android,
34356136633366613530316338376136,Xbox Wireless Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,x:b17,y:b2,platform:Android,

# iOS
4d466947616d65706164010000000000,MFi Extended Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:iOS,
4d466947616d65706164020000000000,MFi Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b6,x:b2,y:b3,platform:iOS,
05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:iOS,


================================================
FILE: bin/icon.ai
================================================
%PDF-1.5
%
1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[6 0 R 41 0 R]/Order 42 0 R/RBGroups[]>>/OCGs[6 0 R 41 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 22748/Subtype/XML/Type/Metadata>>stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
            xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
            xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
            xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
         <xmp:CreatorTool>Adobe Illustrator CC 23.0 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2019-12-19T21:31:25+02:00</xmp:CreateDate>
         <xmp:MetadataDate>2019-12-22T21:29:11+01:00</xmp:MetadataDate>
         <xmp:ModifyDate>2019-12-22T21:29:11+01:00</xmp:ModifyDate>
         <xmp:Thumbnails>
            <rdf:Alt>
               <rdf:li rdf:parseType="Resource">
                  <xmpGImg:width>244</xmpGImg:width>
                  <xmpGImg:height>256</xmpGImg:height>
                  <xmpGImg:format>JPEG</xmpGImg:format>
                  <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD0AwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q8R/O/wD5Su0/5gI/&#xA;+T02c12z/ej+r+kt2Pk88zUtjsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdir6xzu3FeI/nf8A8pXaf8wEf/J6bOa7Z/vR/V/SW7HyeeZqWx2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV9Y53bivEfzv/AOUr&#xA;tP8AmAj/AOT02c12z/ej+r+kt2Pk88zUtjsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdir6xzu3FeI/nf/AMpXaf8AMBH/AMnps5rtn+9H9X9JbsfJ55mp&#xA;bHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX1jnd&#xA;uK8R/O//AJSu0/5gI/8Ak9NnNds/3o/q/pLdj5PPM1LY7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+sc7txXiP53/8AKV2n/MBH/wAnps5rtn+9H9X9&#xA;JbsfJ55mpbHYq7FXYq7FXYq7FXYq7FXYqoX2oWNhbtc3s6W8C9ZJGCj5b9T7ZOGOUzURZQSwLW/z&#xA;j0u3LRaTbNeuNhPJWKL5gU5t+GbbB2PM7zPCwORhmpfmh5wvSQl0tpGf9126Bf8Ahm5P/wANmyx9&#xA;mYY9L97AzKRy61r969Jb66uGNfhaWR9j12qcyhhxx5AD4MbKlJ+lI15yeui/zNzA+85IcB5Uqpba&#xA;/rtqQbfUbmKn8kzgfcDglp8cucR8lssi0z81fN1mQJpkvYx+xOgrT/WTg331zDy9l4Zchw+5kJlm&#xA;mi/nBoV2Vj1KF9PlO3qf3sX3qAw/4H6c1mbsjJHeJ4vsLMZAzizvbO9gW4tJ0uIG+zLEwdT9IzVT&#xA;hKJqQos7Vsil2KuxV2KuxV2KuxV2KuxV2KvrHO7cV4j+d/8Ayldp/wAwEf8Ayemzmu2f70f1f0lu&#xA;x8nnmalsdirsVdirsVdirsVdirsVYZ50/Miw0IvZWQW71QbMlf3cR/4sI6n/ACR9NM2ei7Oll9Ut&#xA;ofewlOnmkdp5r843/rXE3Ov2Z7lxFAg8EH8EGbszw6aNAfLn+Pe10ZM60b8nNHiVZdTu3vW6mOL9&#xA;3F8q7ufmCM1WbtiZ2iOFmMbLbDyh5YsAv1XTLdWX7MjIJHH+zfk345r8mryz5yLIRCbKiovFQFUd&#xA;ABQZjksm8CqFzp9hdKVubaKdTsVkRXBr/rA5OOSUeRIQxzWvIflSaIy/ohKgHl9WLQsB4qqUU/Ij&#xA;MzDr8wNcXz3RwAsMvPyw0m6BbRtUMUn7NtegCp/4yIP+NTmzh2nOP1x+I/UxOJj02m+dPJt39ZCy&#xA;2gBp9YjPOB/AMRVDXwbfMwZMGpFbH72uiHpPkj8yLXXWWwvlW21Snw02jlp/JXo3+Tmk1vZxxeqO&#xA;8fubIztmuaxsdirsVdirsVdirsVdirsVfWOd24rxH87/APlK7T/mAj/5PTZzXbP96P6v6S3Y+Tzz&#xA;NS2OxV2KuxV2KuxV2KuxVhP5k+dW0W0XTrBv9yl2teY6xRnbl/rN0X782nZui8U8UvpH2tc5UwrQ&#xA;PKUaKt5qa+rcP8YhfcLXf46/abNnqNWT6YcmUMfUsnAAAAFANgBmA2oi0F40gW19T1D2jJB/DIT4&#xA;a3Vklha+YAAZ7lVX+RwJG+mlP+JZhzlj6BiaTdeQUciC3cgUH3VOY5Q3gVDX1/DZIskwb02PHkoq&#xA;AffJwxmXJaWQ6xpk32LhQfBvhP8Aw1MJwyHRaSrXNEDhryzFa7yRr3/ylzIw5ukkgpRbapdwIYuQ&#xA;lgYUaCUc0IPah7ZkSxA79UkJDrPkrStSb61oX+4zVFPNbXlSGRhv+6b/AHW1enb5dcy8OtnDbJ6o&#xA;9/X497VLH3Mt8h+Z7nVbOWx1JTFrOnER3aOKMw6B6eO1G9/nmv1+mGOQlH6JcljK2U5gM3Yq7FXY&#xA;q7FXYq7FXYq+sc7txXiP53/8pXaf8wEf/J6bOa7Z/vR/V/SW7HyeeZqWx2KuxV2KuxV2KuxV2KvE&#xA;lY63591G9n+OK3lcxg9KRt6cQ+gCudOf3WnjEdR+0tUBcmVEgCp6ZgOQivLlj+mudxGxTT43KeuB&#xA;vKy/aEdf2R3b7vHK9RPwtj9X3e9hxXyZna2dtax+nBGEXvTqfmTuc1spmRsqrZFXYq7FVK7to7m2&#xA;kgk+y4pXwPY/QclCXCbVgk8MkEzxSCjoSGHyzaxNi2bori6h3t53hbsyHv7g1U/SMTEHmLUhLbjz&#xA;A66lHaalCsU05pDdxbRSmu1UP2H8aGhPhl0dP6bidh06hgJUaKPypmuW4EPmvQdRXa4vTPYXxH+7&#xA;VVFaJm8SCRv7YOG8M49I1IeXe1SFSeg5qGTsVdirsVdirsVdirsVfWOd24rxH87/APlK7T/mAj/5&#xA;PTZzXbP96P6v6S3Y+TzzNS2OxV2KuxV2KuxV2KuxV4xpcJ03zjrOnTfC7SO0VerKGLKfpR650uWX&#xA;HhhIMMexITvU4JJ9OuoYv7ySJ1T5lSBmLikBIE97bIbJFo35p3+j6Lb6Xb6fCWtVKCV2ahqxJJQU&#xA;3qfHMvN2XHJMzMju4wnQULj82vOEpJjkgt/aOIH/AJOF8nHsnCO8/FfEKCl/MjztKKNqbD/VjiT/&#xA;AIigy0dnYB/D96OMoCbzb5om/vNWuyD1AmdR9ykDLRpMQ/hj8kcRQUmqanIeUl3M58Wkcn8TlgxR&#xA;HIBbbj1XVIjWK8nQ+KyOD+BxOKB5gLZVh5h13nzbULh323kkZ+n+sTkfy+P+aEiZRtv501yKnN0n&#xA;H+WgH/EOOVS0WM+TIZSt1PzDe6ysFqLdVlEgaMpUsWpQAV+eHFp44rNrKZls9DXlxHI1am5980xc&#xA;lL9Juf0v560yztvit9JM1xPIP5yoU/QCqL9+XZY+Hp5SPOdD8fa0yNyeqZoWbsVdirsVdirsVdir&#xA;sVfWOd24rxH87/8AlK7T/mAj/wCT02c12z/ej+r+kt2Pk88zUtjsVdirsVdirsVdirsVedfmdpFl&#xA;Nd2l9YXIj8xKVSGzjDPNcCvwhY0DNyBO21CNjm67LySowIvGevc1z7+qRW/mdra4fT9etpdN1GA8&#xA;Jopo3QhqdGRhzQ+xGZeTRnnDcMo5e9inmf6m2sSyWjo8UoVyyEFeRHxdPffM7S8XAAWrJV7JTmQw&#xA;dirsVdirsVdirsVTvyjJZRat613IsSxRs0bOQBz2HfvQnMXViRhUWzHV7p1fa7qOs3H6L8vwyTPJ&#xA;s0qCjEe1fsL4scxseCOMceQs5ZL2D0fyJ5Nj8uae3qlZdRuaG5lHQAdI1J7D8c0uu1hzS2+kcljG&#xA;mT5gs3Yq7FXYq7FXYq7FXYq+sc7txXiP53/8pXaf8wEf/J6bOa7Z/vR/V/SW7HyeeZqWx2KuxV2K&#xA;uxV2KuxVZ5a0HzB591i50vQJhYaPp7cNa8xMvJY36m3tlOzzcftHog670zZ4NLGMRPJ15D9J8mBN&#xA;7B6voWmeRvIkL23lPT0l1CQcbvWbg+tcTN3Mk7fG9TvQUTwGRz60nYfscnFpepYz538t6L53APmO&#xA;1S6nVSsNyoEc0Y8EkTi1B4Go8cpx6zLA2C5J08CKp82+TPLHl5/NmseXdbhFzPaSSRWzl3jq1tIy&#xA;SACN1qWG/fpm712oyRxRyQNA8/i6sRAkQWef8qx8j/8AVt/5L3H/AFUzUfynn/nfYP1MuAKsf5de&#xA;S0XiulxkD+Z5GP3sxORPaOc/xfcngC4+RPJcKtI2lwhVBLFuRAA3PUnB+eznbiK8ISWWx8khiItC&#xA;hcDoWAWv/EsyRkz9Zll4YQ02neVH+zoVupHTdv8AjXjkxkzD+Mr4YS248seXp5Of1BIu3GNpFX7u&#xA;eXx1WQD6vuXw4qUnlry7DE0j2qrHGpZmLPsFFSftYRqcpNWvBFM/yD/L7yl5s1nU7rzTBcPotmqr&#xA;DFA5jBmlYkcmWjFURT9k9xmVrtX4IA6lhiwmd09gv/yK1Py9ZSX35c3ia7pNS82h3fpx3Y7n0bpF&#xA;RWbf7EyjbuTmuyHHqN5Gpd/T5fqUxMdmNaXq1rqKS+mskNxbuYruznUxzwSrsY5YzurDNZnwSxmp&#xA;f2sgbRuUpdirsVdirsVdirsVdir6xzu3FeI/nf8A8pXaf8wEf/J6bOa7Z/vR/V/SW7HyeeZqWx2K&#xA;uxV2KuxV2KpR5mn1D6nb6dpZA1fWbqHTdOJ2AmuX4Bie3EVNczNFhE8m/wBMdz8GMi9rbTdN8o+X&#xA;bDyVodUstPiUXU3R5pm+J3kI6l2PJvc06DJavOZScvTYgBaWZhOY7FXx/wCcNVlj/MDWdSsJDFIm&#xA;o3DwSof5ZWAb/ZU6Z2GDGDhjGX80Okyn1k+bOtE/OPS5YETWLeS3uQKPLCOcTe9K8l+W/wA80+fs&#xA;eYPoNj7WQyBHzfm95RjDcPrMtOgSICvy5suVDsjMe75p8QJPqv5uaVdxG3gtrmOJvtllj5H22fbM&#xA;jF2TOJskfj4KMgStPO2isafvR80/oTl50U/Jl4oVF846AaVnZa+KPt9wOD8nk7k+LFqTzloKAlZX&#xA;kp2VG3/4ILiNHk7keKGOa/5sl1GM21spgtT9st9t/nToPbM3T6QQNnctc8lvqLyF5TsPK/lm10y0&#xA;cTEj1rm6H+7pZACzj2pQL7AZzWqznLMyLtcOMQjQZVY6heWM4ntZDG4606EeDDuMojIxNhnKAkKK&#xA;R/mv5VTXtIm8/wDluAQebdFj56xaR7Lf2UYq6OB9p0Raxt9rbjv8NNrgyRyx4JcvuPe63NiMCwnT&#xA;7+31CxgvbZuUFwiyRnvRhXf3zVZIGEjE8wxBRGQS7FXYq7FXYq7FXYq+sc7txXiP53/8pXaf8wEf&#xA;/J6bOa7Z/vR/V/SW7HyeeZqWx2KuxV2KuxV2Ku0EwL+aPkdrkqLdb64ZmfZA4s5ShJO1eQ2zY6Dl&#xA;P3D72EuYT/zP+bv5d2msXn1nXYJHM8grbiS5H2j3gWQZH8jmmSRH9H3ufHPCIAtLbT85Py3upBEu&#xA;spFIe00U8IHzaRFX8cEuzs4/h+5kNTjPVONe806fY+VNQ16zuIrqG1t3lhkidZI2cL+7HJSRuxAy&#xA;nFgMsggRVlnPIBEkPm/RPyf8+eYfKq+atNto7mynupLZEaZI53aMAvIBIUUpUla8q1B2zqcurx4j&#xA;UjTqIYpT5N2n5J/mVcSBDpPoLWhkmmgVR9AcsfoGVS7SwD+L7C2DS5D0Zha/kBbaXpzah5k1CS4k&#xA;UqkWm6ao5SzSMEihSWUfE0kjKoHAbnrmIe1TOXDjHxLd+UERci9D8q/kx5S8uRg3tjBqGs15XMsl&#xA;ZoIX/wB826yVBEfT1GHJjUjiDxGFq+0JyPDE0PvbsGnA3IZhNp2nz231Wa1hltqU9B41aOh7cSKZ&#xA;rhMg2Du5RiHmnm/8rfKemTN5hg0mOfS4vi1jShyUCH9qe2MZVkaJfiKV4svQA0zZ6fXZJDgMvV0P&#xA;6D73FyYIj1Vt1Rk/5E/lrfQLLaQT20cqh45be4dgVYAgqZfVGQHameJ3IPwSdJjPJ4R+YnlKHyp5&#xA;puNHguTdQxqkkUjABwsi8grgbVH45v8AR6g5cYkRTr82PglT3/8AJHzNJrfka3inNbrSm+pOe5RF&#xA;Bib/AIAhfoznu08PBlNcpbux0s+KHuZ/mvclOvKF00OuQp1juA0Ui9iGFR+IGXYJVJp1Ebi8P0Sw&#xA;TSr7zFocI42mja1f2VmvXjAsvOMf8DJmT2iPWD/OiC62Ka5r2bsVdirsVdirsVdir6xzu3FeI/nf&#xA;/wApXaf8wEf/ACemzmu2f70f1f0lux8nnmalsdirsVdirsVdiqA1nQtL1q3jttSh9eCKQTKnJl+J&#xA;QVFSpB6Mcuw554jcTRQRarY6VplggjsrSK2UdokVPvoN8jPLKf1ElQFW5tLW6jMdzDHPGeqSKHX7&#xA;mByMZmJsGlYJ588laHZ+W9R1DTLZrW5VULpA7rGy+qvLlGDxoFJPTNtoNbklljGRsefuYSjs9y/K&#xA;yO1vPyI8qXGnCsVktxFdovVZTO/qMwHi4r8jke1InjJcnRyA2R+ap2CXXoVvMflSNwCjaqW4noZI&#xA;rC6mh+kTxoR7gZl6T+I/0f0hx9RyHveP+Y/Pf5nw/mwmj2CSG3+tRxWemLEGS4gYirliOR5DcsG+&#xA;H2pm002jwSwcR59T3OLmzzE6D2nXZLq00/UZdNQXV3BFM1lGa0lkRSY12/mYDNHCIMgCdrdgSeG+&#xA;ryL8lvNvn3zH5k1Sz14yXelx20j3bSwrGkE3JVSPZUoXqV4fTTY5u9fpcOPHxR2PRwMGacp0d1by&#xA;R+dPkzTvL8Wk6pPNBNpaG3hf02lWeOIlYuBjDUPAAfFQe+U6ns3LKfFEfV9jZi1URGj0eJebvME3&#xA;mLzJqGsygr9clLRodysY+GND/qooGbzT4RjgI9zgZJ8UiWa/lK/naPTtRGg3sGnWlzLGk91LH60o&#xA;eNSf3SN+76SfFy9s1vaeTCJDjBke7l82zDOUQaZsfLeuzHneebtaaY9Tb3P1dPojUEDNX+eA5Y4f&#xA;EWz4pfziidOg89aHeQ32iea7uSW3YOkGqBbyN6fsszUYA+I3yUdZjJ9WMf5uy8Uqq1XRINXB1G+1&#xA;gxHVNWv7nULwW/L0g9w9aR86txAA4g9BtlOszRyTBjyAAYxFJlmIydirsVdirsVdirsVfWOd24rx&#xA;H87/APlK7T/mAj/5PTZzXbP96P6v6S3Y+TzzNS2OxV2KuxV2KuxV2KuxV2Kqdzbw3NvLbTqHhmRo&#xA;5UPQqwoR92SjIxII5hCO/wCcV7jXNF84eZvIrUutBiiGorIx/u5HKRqAKfaljYch/kff0GbIMuKO&#xA;TqdmuOxpnHn3X/Luh3l1c3EkdlZxyejHGtS0kg2KxxirMzN0VRmm8E5J8MA7SE+GAMik9r5J/M/z&#xA;fFDqsMcXlS1sJFv9Fgv0Ml9cXVuecH1iNSotoWYUcfE/GopQ5sMOGGLmeKXly/a4ebOZ7Dkmlnqk&#xA;WpfWjDC9je2rcNW0aUj6xZSnqkij7UZ6xSj4XXcGtQMHUac4z/RPVy8OYSHmvzFb0j1q71bWJ28o&#xA;+WGWfzFeRkOxJ9KwgcUe6uGUHhxB+BerNSgOZulwWeOX0D7fJxs+URFD6nzB58/LTzl5F1H6l5is&#xA;Gtw5It7tPjtpgNyYpR8J/wBXZh3AzqMeWMxYdURTFstQ+hfI1lp1p5W09LBvUhljErykULyPu5I8&#xA;QdqdqUzj9dOUssuLm5ERsn2YjJ2KuxV2KuxV2KuxV2KuxV2KvrHO7cV4j+d//KV2n/MBH/yemzmu&#xA;2f70f1f0lux8nnmalsdirsVdirsVdirsVdirsVSSPWNfk8wy6NBozXkvD1rV4Z4UaWKoHwpO0VWU&#xA;mjBWP45sMOhGSHFGXvHd8mBnRZb+U/lv85NA8weZ9StPKiQzeYPqy2d7q93FDDbJCH3lhgM00hPJ&#xA;fhWnTrmyrGMcYk/T3Md7ej6D5D8ueVL/APxL5r1Ea95vlqUvZ1VVg9Q1KWVtUrCvYv8AaPdt6ZCI&#xA;MhwwFR/HMpnPqS35y/ODTNOi9G0nWAyVWO4kFZJD4QQgF3b/AGNfbL8WkrebUchO0XlWqaPrnmu6&#xA;S7S1bSHUkpr100kepAN1MCQvHKlf+LZB7ochn7QxRHCBxfc5GHSTO5NN6r5C8yCOI6f5m1C7VP8A&#xA;eizvbl4vWHtc2ypJGT48WzXYdZjEvXCPw/a5mTBKvTIpt5G832nkmQWK2P6D+suDPaXdPSuJOnJL&#xA;sF0lc9qvz8VzcXizj0n8e51k4ZMZ3esXmu+RfNejvpeuwRTWd38E9neKCgNNjy7UP2XFCD4ZjHBk&#xA;gbCRkBfO/wCZf/OIetWs0mo+QZhqenv8a6XcSKlxHXtHKxWOVf8AWKt/rHMrFrhynsph3JT5P8v+&#xA;fvKvl+Wy1zytqq/V5XeOVIAYVjcA0MrOsY+LkeuYOt0vjZOKBjuGUZUN028u6zPrGni/e0azglJ+&#xA;rK7BneMdJCAKAN267b981WpwjHLhuz1Zg2mmY7J2KuxV2KuxV2KuxV2KuxV9Y53bivEfzv8A+Urt&#xA;P+YCP/k9NnNds/3o/q/pLdj5PPM1LY7FXYq7FXYq7FXYq7FXYqh72wtrxUEwIeJucEyMUkjfpyR1&#xA;oyn5ZbhzSxm4mkEAoCz86ebdM876N5cudais9L1ZvRg1y6t2leKRqqqOsM1mhHPiC21A1T0zotLq&#xA;fFxmRHqj0ceWOi9N8wfl/r9jcoup6888Uy19Sxt1tA56MrGV7uQePwuD75h6jtKcdogBysGlhLcl&#xA;Q0vy7oulu8tnaqtzIKS3Tlpbhx/lzSF5G+ls1eXUTyfUbdjDFGPIJllLN2KrJ4ILiF4Z41mhkFHj&#xA;kUMrDwIOxwgkGwpFvBNW8weYR561LTfy/K2+k6TA5vImPKzBgBaZwsnJYhy+ACOlafPOn02QwxA5&#xA;TZly7/J1GbEJTIiOSHsv+clfOVtbNALaEBhRljkmjjPzTkwzNOGJ5hxaZbp+seY/OGjWt75iuWFr&#xA;OC6aXFyWJo6kJ6rOzu4Zd+PIKR1BzR63XGEjCG3m3QxjmU3VVVQqgKqigA2AAzStzeKuxV2KuxV2&#xA;KuxV2KuxV2KvrHO7cV4j+d//ACldp/zAR/8AJ6bOa7Z/vR/V/SW7HyeeZqWx2KuxV2KuxV2KuxV2&#xA;KuxV2KpJ5v8ALFt5i0h7KQhJ0PqWs5/YkA7/AOSehzK0mpOGfF06sZRtlf5W/nlZzWa+QvzRlNhq&#xA;tqBFp+uTmkcqrsnqyHZXA6SH4XH2jy+1t8+mjljx494lGPIYF6Hqmg3thSWgns3AaK7i+KNlO6mo&#xA;rSozSZMRjzdnjzRkluVNrTuiKWdgqjqxNAMVeSfm1+cNjp1jLovl26W41ScFLi8gYMluh2bi67GQ&#xA;9Nvs/PNvoOzjI8UxUe7vcLUakAVHm8W0zzjf6X5Z1LQ7FFiOrOPr95WsjQqtBCPAEluR71p893PT&#xA;iUxM/wAPIfpcGOQiJA6oryJ5MuPMOoq8qFdKt2BuZegam/pqfFu/gPoyjXawYY7fWeX62MY295RE&#xA;jRURQqIAqqBQADYADOUJtvbwJdirsVdirsVdirsVdirsVdir6xzu3FeI/nf/AMpXaf8AMBH/AMnp&#xA;s5rtn+9H9X9JbsfJ55mpbHYq7FXYq7FXYq7FXYq7FXYq7FUs13y3o+uW/oajbiXj/dyj4ZEJ/lcb&#xA;j9WX4NTPEbiWJAKRaXon5meVqxeTvNs1vYmoFjdMWgAPX90yzQt8/TGbSPamOX95DfyYcB6Jfqfk&#xA;vzzrrmTWNWsIZGPJmsLK3tyT4k28NrX3yf8AKmKP0xJ9/wCCnhPelkn5JTVqmsK5P2i1uR/zMbEd&#xA;tD+Z9v7EeGgZvyX18MPRvrV17lzIh+4I+WjtnH1EvsR4ZTjRPyZtIpFl1e8NyBv9WgBRD/rOfiI+&#xA;QGY+btgkVAV5lIx970S0tLWzt47a1iWG3iHGOJBRQPkM005mRsmy2KuRS7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq+sc7txXiP53/8AKV2n/MBH/wAnps5rtn+9H9X9JbsfJ55mpbHYq7FXYq7FXYq7FUBd+YNB&#xA;s5/q91qNtBOOsUk0aMNq7gkU28cuhp8khYiSPciwjY5I5Y1kicPG4DI6kFSDuCCOoyogg0VXYEux&#xA;V2KuxV2KoC48w6BbTtb3OpWsM6GjxSTxo4J33UsCMujp8khYjIj3FFhfe6zo9jIsd9fW9rIw5Kk8&#xA;qRsVrSoDEbYIYZzFxiT7gpIRFvc29zCk9tKk8DiqSxsHRh02Zag5CUTE0RRVUyKUvHmHQDci1Gp2&#xA;huS/pCATx+oXJ48OPKvKu1Mu/L5KvhlXuKLCIudR0+1khiurmKCW4PGBJXVGkaoFEDEFjUjpkI45&#xA;SBIBNLa2+1bSrAoL69gtDJXgJ5Uj5U605EVwwxTn9IJ9wUlVtrq1u4FuLWZJ4HrwliYOjUNDRlJB&#xA;3GRlExNEUVVcil2KuxV2KuxV2KuxV9Y53bivEfzv/wCUrtP+YCP/AJPTZzXbP96P6v6S3Y+TzzNS&#xA;2OxV2KuxV2KuxVJfOerT6T5Yv763NLiNAsJ8HkYIGFf5eVcytHiGTLGJ5MZGgkvknynpcnlaCXUL&#xA;dbi6vw088z7v+8Jpxf7Snj1INcydbq5jKRE0I7IjHZKfIOp3Wk6jr+gBJb2LT2eW1hSnM8JODhAa&#xA;D4uQNP65ka/GMkYZNo8XNjE1YTGH81tPuLaWS20y7nmiLM8Ea8ikSUrJIy1Cjf8ADKT2VIEAyiB+&#xA;nuTxp/o/m/RtT0STWI5DDa2/L6yJBRoygqQQK12O1OvzzEzaScMnAdyeTISBFpR/yszT0EVzcade&#xA;QaVO4jh1J0Hpkn2BrTr08MyP5NlyEomY6I40V5g8+2WhajBaXlnP6E/EpejiYim3NloSx4V3FMr0&#xA;+glliTEix06qZUt0f8wdP1HWk0mSzubGeZedqblOHqLxLDbqKgbdsObs+UIcYIkBzpRPdj/m63sR&#xA;+Z+hmdI1ieJZJywUKzK0lC9dj9kDfMzSSl+VnXf+pjL6l35uzabcaPbSQvDNcLKF5oVZwh6io3pX&#xA;B2SJCZBsClycmYa3rujeWtNjkuB6cIIitraFRyY/yoooAAPozXYcE88qHPqSzJASzT/P9rNqNvp+&#xA;o2Fzpc92AbQ3CgK/L7Ir1BJ26Zdk0BETKMhIDnSBJj+r2NnpX5qaXdtCPq9/TbiOImkDRqQP5vUo&#xA;1ffMzDOWTSSF7x+7+xiRUks/NC5urvX5Db8/T0eKIsw+ysrn1A3/AANR9GX9mREce/8AGSifNP8A&#xA;z/Lb61YaDZW6gTaxLG0MtAWSJwpIPtR+X+x9sxNADilOR5QH2/j72Ut6Z1bW1va28dtbxrFBEoSO&#xA;NRQKo6AZqpSMjZ5s1TIpdirsVdirsVdirsVfWOd24rxH87/+UrtP+YCP/k9NnNds/wB6P6v6S3Y+&#xA;TzzNS2OxV2KuxV2KuxVjf5i2ct35O1BIlLSRqsoUeEbhm+5QTmb2dMRzRthPku/L/UYr3yhp8isv&#xA;KGP0ZgCPhaM038KijfTjr8ZjmkO/dMDsxz8vYTeecPMWtwnlZvJJFDJQgP6kvMEfIJ+OZnaB4cOP&#xA;Gfq/YwhzJV/yeFuNF1EgL631xvUbvw4LwB+nlke174493CnHyYdZxTf4M81y2wP1F7q2CEfZKrKS&#xA;1K/6yZsZkePjB+qj939rDoWSHRG1LyVay6j5oCaMIYmMf1eCiMi/3YdaOzKdqdTmF43BnIjj9dnq&#xA;WVWOav5ttIYdR8iWfMXEUUqxCQgUkVfQXlTf7WR0kyY5pcjX/FJl0X+bwo/Mjy042YgAn2DtT9eD&#xA;Sf4tkWX1BQ852dpe/mXoVrdxrLby24EkbdCOUtK/TktHMx0syOd/qRL6kP8Amf5a0HS9Fgm0+yjt&#xA;pWmCs6A1IpWm+T7M1OTJMiRvZZgAI/8AMZxF5o8qy3DBbNbgly1OI/eR8q17ccq7OF4sgHOv1pnz&#xA;Cz83FMkugwwb3z3DehT7W/Abf7KmHsk0Jk/TS5OiJ/Nm1lXTLHVYKi4sJw0bLtStH5H/AFfT/HK+&#xA;ypDiMDykFmgtHsRrHlHzHq80bq2qzSXCKTUmG2PJVX/Zc1y3NPw82OA/gFfE/gIAsFC/ls11q2sW&#xA;01yrBdAszbKa7eo7OiVHtGXH3ZZ2lWOBA/ykr/HxpYbl6lmhbXYq7FXYq7FXYq7FXYq+sc7txXiP&#xA;53/8pXaf8wEf/J6bOa7Z/vR/V/SW7HyeeZqWx2KuxV2KuxV2KuZVZSrAFSKEHcEHFWLT/lx5fkml&#xA;eF7i0inIM1rbycIXoa/EnE1FexzPj2jkAF0SOp5sOAJ5Z2WlaLpxigVLSxgBdyTRQAKlmZv1nMWc&#xA;55ZWd5FlVPL/AMu/L2ia5YX0U17cQXfqt6sFvMI/UtyF481oea8q5ve0NRPFIEAEV1HVqgAXptl5&#xA;f0iz0o6VBbKti4YSRGp5c/tFj1qc0c9ROU+Mn1NtJDa/lb5Ut7360I5ZBWogkcGMeAAChvx+eZc+&#xA;1MxjWzHgCL1ryJpGr38V9cT3UU0CqsCwy8Fj4dCg4niflleHXTxx4QBR7wkxtbq3kLSdU1VdUuLq&#xA;8W7jCCFo5uPp+mBTh8JK7/Ft33xxa+cIcAEa9yDG29U8haTqWsDVri5u1vFKmIxzcRHw6BPhqorv&#xA;seuOLXzhDgAjXuUxsq/mTybpnmGSJr+a4CQiiRRSBY6k15FSG+L3yOm1k8N8IG6TG1W68q6Td6LD&#xA;pN2HubeAARSytylBHQ8z3yMdVOMzMbE/JeHZDaR5F0TTbuO7DT3dxAoS3e6k9X0lXoE2FAO3h2ye&#xA;XXTmK2APd1URATTWdJtNX02bT7vl6E4AcoaMKEHYkHwyjDlOOQkOYSRbel6TZabpkOm2yn6rChRQ&#xA;xqSCSTU+5Jxy5ZTmZHmVApDeX/LWmaDBPFYhz9YkMs0khDOWpSlQBsMnqNTLKQZdEAUmuY7J2Kux&#xA;V2KuxV2KuxV2KvrHO7cV4j+d/wDyldp/zAR/8nps5rtn+9H9X9JbsfJ55mpbHYq7FXYq7FXYq7FX&#xA;Yq06JIhR1DowoysKgj3Bwg0hSgsrOBi0EEcTEUJRFUkfQMMpyPMqrZFLsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdir6xzu3FeI/nf/wApXaf8wEf/ACemzmu2f70f1f0lux8nnmalsdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfWOd24rxH&#xA;87/+UrtP+YCP/k9NnNds/wB6P6v6S3Y+TzzNS2OxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvrHO7cV4j+d//KV2n/MBH/yemzmu2f70f1f0lux8nnma&#xA;lsdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfWOd&#xA;24rxH87/APlK7T/mAj/5PTZzXbP96P6v6S3Y+TzzNS2OxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvrHO7cVLtR8uaDqc6z6hYQXUyqEWSVAzBQSQtT2&#xA;qxynJp8czcgCUglC/wCB/J//AFZ7T/kUv9Mh+Tw/zR8l4i7/AAP5P/6s9p/yKX+mP5PD/NHyXiLv&#xA;8D+T/wDqz2n/ACKX+mP5PD/NHyXiLv8AA/k//qz2n/Ipf6Y/k8P80fJeIu/wP5P/AOrPaf8AIpf6&#xA;Y/k8P80fJeIu/wAD+T/+rPaf8il/pj+Tw/zR8l4i7/A/k/8A6s9p/wAil/pj+Tw/zR8l4i7/AAP5&#xA;P/6s9p/yKX+mP5PD/NHyXiLv8D+T/wDqz2n/ACKX+mP5PD/NHyXiLv8AA/k//qz2n/Ipf6Y/k8P8&#xA;0fJeIu/wP5P/AOrPaf8AIpf6Y/k8P80fJeIu/wAD+T/+rPaf8il/pj+Tw/zR8l4i7/A/k/8A6s9p&#xA;/wAil/pj+Tw/zR8l4i7/AAP5P/6s9p/yKX+mP5PD/NHyXiLv8D+T/wDqz2n/ACKX+mP5PD/NHyXi&#xA;Lv8AA/k//qz2n/Ipf6Y/k8P80fJeIu/wP5P/AOrPaf8AIpf6Y/k8P80fJeIu/wAD+T/+rPaf8il/&#xA;pj+Tw/zR8l4i7/A/k/8A6s9p/wAil/pj+Tw/zR8l4i7/AAP5P/6s9p/yKX+mP5PD/NHyXiLv8D+T&#xA;/wDqz2n/ACKX+mP5PD/NHyXiLv8AA/k//qz2n/Ipf6Y/k8P80fJeIu/wP5P/AOrPaf8AIpf6Y/k8&#xA;P80fJeIu/wAD+T/+rPaf8il/pj+Tw/zR8l4i7/A/k/8A6s9p/wAil/pj+Tw/zR8l4i7/AAP5P/6s&#xA;9p/yKX+mP5PD/NHyXiLv8D+T/wDqz2n/ACKX+mP5PD/NHyXiLv8AA/k//qz2n/Ipf6Y/k8P80fJe&#xA;Iu/wP5P/AOrPaf8AIpf6Y/k8P80fJeIp3mSh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv//Z</xmpGImg:image>
               </rdf:li>
            </rdf:Alt>
         </xmp:Thumbnails>
         <xmpTPg:NPages>1</xmpTPg:NPages>
         <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
         <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
         <xmpTPg:MaxPageSize rdf:parseType="Resource">
            <stDim:w>1333.333252</stDim:w>
            <stDim:h>1333.333252</stDim:h>
            <stDim:unit>Pixels</stDim:unit>
         </xmpTPg:MaxPageSize>
         <xmpTPg:Fonts>
            <rdf:Bag>
               <rdf:li rdf:parseType="Resource">
                  <stFnt:fontName>Cambria</stFnt:fontName>
                  <stFnt:fontFamily>Cambria</stFnt:fontFamily>
                  <stFnt:fontFace>Regular</stFnt:fontFace>
                  <stFnt:fontType>TrueType</stFnt:fontType>
                  <stFnt:versionString>Version 6.99</stFnt:versionString>
                  <stFnt:composite>False</stFnt:composite>
                  <stFnt:fontFileName>cambria.ttc</stFnt:fontFileName>
               </rdf:li>
            </rdf:Bag>
         </xmpTPg:Fonts>
         <xmpTPg:PlateNames>
            <rdf:Seq>
               <rdf:li>Cyan</rdf:li>
               <rdf:li>Magenta</rdf:li>
               <rdf:li>Yellow</rdf:li>
               <rdf:li>Black</rdf:li>
            </rdf:Seq>
         </xmpTPg:PlateNames>
         <xmpTPg:SwatchGroups>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <xmpG:groupName>Default Swatch Group</xmpG:groupName>
                  <xmpG:groupType>0</xmpG:groupType>
               </rdf:li>
            </rdf:Seq>
         </xmpTPg:SwatchGroups>
         <dc:format>application/pdf</dc:format>
         <dc:title>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">OpenHoW2</rdf:li>
            </rdf:Alt>
         </dc:title>
         <illustrator:Type>Document</illustrator:Type>
         <xmpMM:DocumentID>xmp.did:fc9d5223-940d-fc4a-8888-c932b67313cb</xmpMM:DocumentID>
         <xmpMM:InstanceID>uuid:52997245-095d-4a65-8b89-f3bd6e55f8fd</xmpMM:InstanceID>
         <xmpMM:OriginalDocumentID>xmp.did:fc9d5223-940d-fc4a-8888-c932b67313cb</xmpMM:OriginalDocumentID>
         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
         <xmpMM:DerivedFrom rdf:parseType="Resource"/>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:fc9d5223-940d-fc4a-8888-c932b67313cb</stEvt:instanceID>
                  <stEvt:when>2019-12-19T21:31:24+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Illustrator CC 23.0 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <pdf:Producer>Adobe PDF library 15.00</pdf:Producer>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                           
<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[8 0 R]/Type/Pages>>
endobj
8 0 obj
<</ArtBox[0.0 0.0 1333.33 1333.33]/BleedBox[0.0 0.0 1333.33 1333.33]/Contents 43 0 R/CropBox[0.0 0.0 1333.33 1333.33]/LastModified(D:20191222212910+02'00')/MediaBox[0.0 0.0 1333.33 1333.33]/Parent 3 0 R/PieceInfo<</Illustrator 44 0 R>>/Resources<</ExtGState<</GS0 45 0 R>>/Properties<</MC0 41 0 R>>/XObject<</Fm0 46 0 R>>>>/Thumb 47 0 R/TrimBox[0.0 0.0 1333.33 1333.33]/Type/Page>>
endobj
43 0 obj
<</Filter/FlateDecode/Length 10661>>stream
HlͲ,G
Ӯ-v
&pY\C,x}L9^{FUR*R}u~#ݽ.W~HWrǏoz~^_^~c5]ѯ^l;_V?z1{sw]9ݳ]FW{ {kۍRTǕ^ݥ#SjWwyѯR}ұpM\e^]uޥxVupw@J	ZXkxm,]q^g?ss~lʰ+!q]_׳Mͻf{e^O0&_ws%'*%VyFU&*zoƝF}?٣cdKfd$fL{@'<k6Av~P
+TW?{I>3I~uoK"ųMӢƥ|o5r2q`޳勏9
853	[8˫(A*M6lmL:Ki<6AA>Y~fsai֕*t YIJeM0ozJiReJ/f'gE%+}GJ8ۥ(d|s.jzSj4ĤI)F
a|Wt@}ٵJbwh҇
.R}U,IWbٔ afxֱVU!Zó@fiVK2 -SL6
[RXR*)7$mv7DA
ظgTZ%D3ħ*5@V_o)ƒ+zA$UA@8(\dcmdoVJh2F]yR6x2$ۜa"h[x[ =ħvQ[E}$X8MOuLSA'YW*ID"TWyTWcp;eqs(l25rS3MN<=T"D(mXE3Z,7Un9([~c-nSd~@p .Ti@fck9Y<RD0h
_>lNpʟĤ!OB(*"/t:lsJV>6&isbkBB@?7BIcT~jTLGNWr-:cW|z[-,L9˧'R&X eTzzpFK1<=IQmB=z{hY>T3=ssJXăcTǎ}>Pyo{s Ψj@ۖQ,GbB.:bѥ?{ZfԭQBN^VҐM
eHdk|j֫Cų<>76k/vx}xߣ QI,:.%j<z\54nY],'0J<(%7v[4w뜀,/"<Z2}J4g];S2,
*j
#ݚ>X=Z!DU!a)DK/"Lazq<
uY137
>I;VTp:<ta&MGw);n-=Uզ?4T#!a̚ʼu&恛ZDF
f^e®
]˭B5s숣>S`ZME'eծƪ	7Tu{G\gx?-RqP0kBTSԍ;Bl
}52x?8SOȸZ<IJÜz_!B=aR7YhzSr̸|./ekukn5|0kS)iBhv	`Z$!efwŘO`-%ψv9bl.lfTzD*w"6}S\+u%P>zCM/V:bqjyV@=NWSzVA+ATsǜuͤtx9>‘ϐc$ z/M#cu\vi%6RiDCD!Y}:T -cl d1
`9J0癋mAw}<
G`('p=ES%#6y!/=TŮk zrRt![:c'K&nP&׎i_f2yr)Tz}Ai-P|=3y}(8uhĽdh9I$҅=ĘMM{`&g]Cy~a'I[-|ĩ(XK^148fx6Z2vσC>?@XFl/tM=kHvYĐYf-JK\̈́<5U%x/sm#4!]s l*͗Œ~@N7^A3JE֔ g!gBQn)xÄt	7-WtIC9:]ŖQcmxjxEL+'u)nlPΌ5shZYm絙[D2NKeyywJҔKJR>QI%TЩ}+tq*	%Hd̕t~*'}~On"b՜HV{[w
[	Gi$]6hDnP]ӿRB6v./$u*(r%*"-0}ڲo+hAVtmYɒL{ecxBEd)uC}u2*»9RWk=uJ**V9qzVεe1%mx_ox׾^DaԴyZ^R}U,Zڭ[n^.A-&UR)M=(:2)g:YK1F8+,|28S,]:2H)uIs
B#ڗҶQE=ɿWǣUlவ,
ϖeUӗǑߧSׄ3zMLNI]ujwF_SbH;whfe~
lh+} ({K̨{G-i3@<D${KF.^H^qMˑǐm/vܕ'fsl决j|rƻH4sncM'#Tsgݹ!46xK;O6~ѻОecWq:C]ʺ"ukpUdmdWDٙ=9D>_\}75h蹡Ng)UhEcb@j[_Th;tәFhk/+|#|Kګʜ*ȺhRav{,x	RyTkDXo
2$9XqX#\~uKWf[zSL$צ'Łjꆢ-}l
EsTIZ[1{ۦgݶM/쑑mľn<{I{ٺ7$#LOG/I@s):}P$_tA M%unTCϒ;]]uh=0k[83 $$Yamk+8,DR~3\3k|0Wk
WE·m@6Zog[qblŵI$HBJbD-_xvUoJKPǩg#%?/0_TEe;KɡmW؅5DW$5Zj&^tLhDۢ oJ983'mxxᘶ[YBs
e<l@{WyدA#m~GeXPȅh*@Һl{EyŕƳott(9MbhaXbtMVisە?e$DmF6&WMsi ,{|քWϜvr\KMT:c&!kgX>yGV_wO%_dv$E'w>r~n'Q

gkywsƛ7U?HZ̢rhÒW]GE>l~Ue63@qUd|V9WC5R/hqJFʪFږLT_Gv"E|tgf>Q*շ`\6)8@a=b3[{ʱPv>W}<lDv=|*B>NSd2TWuJ'
)o~h1#FII\:G!}	ǥѽ 4FT܌rP"ofZxZ,I m`i(68tn	ל:Nmq$
L9]!:<@uJo$yysk[+3a5DI8#OO<.&E}z#^`Lfo486O
+^ !u>[T0UT~'T6WX3^AV,g;'~VUhTdwoko٭%ラ	>qvyWLe:%s|0/F@"..ŔI4dW-qZs5\e˵D!uaᶳrW"qfqM6lL6<
+Sf[cK
gA/v{h\wjZs$EskfP8GZrPHܳ$뺾\5OH,ːaOʖЄuWqqiX.9{A9E
P}>BiTS7Z5-sm]WКWFq9fn=\B0W;Y=#m/>A2nُ˪O30Q5<wy{J7?ro.[QCq*yp-%ja[ԓU6߷k|u8jP*;2a t"zmQx\N^W0ׅ~kp1Bh\w˵<]yȬ1ҹѴZ;>lqaA.j)[wZ	_9V	kv.y!/˹0;#XqD=6+^SIcW9l4L1жq^d!fp]%/ִ3XJ#11{afG<FeWj rp$>iYxoޠEu4Eqc'm-CؠsԽgJ4w_ZUGk8
)˞ГnP>؏>;8/VCćWezXt0G`:hd5>a'cG}/sz>*Oo"^-v;>N޻ޞ'xG0\k^YQHGJD<4HQE䨒bD(SmzF+pԍ$\'݇hIPǪd\]׍,ڿtN5ܯ{v^n鐇̝1Tjm3*T<j]m\u<K!JГy4+hZ|?8Dv{۬7NףY6t7l.Anyuw9r0[f!ɗ}\,֜ȏx:[;vVxWUf;4Q'a0vY_wmfTT[{m=jIg!TO-Anjg
/(}ͫ~WV}/6L$.di~ҏ#mIp[aKBSup
?NcVϡ<f#F$1,e?ƨܳGRU4iRB/ueIZVEWl~/ˌnإ{.3W1xY0[qy왆ZYxf֧Q3_AQؘR}2*ylE#'ezLtfjkƓ+:rb̾jDmzvͩ9(w`Uݙ>{>J3Vزqއpl_oE"i2dEMF"-r[>{+hdto@^<&˶L^Ϻ5robs˷b1S'Bcv֘Bpe왉്W4vIF6eNx.9/1g\Llj^cin~fEG,[s	V6eOr65oS!MSt@Ӥ)+R-zSƺ*6`~+st)R^FU5USV(/mW<
f0 {aɚ4l9ЌoB=L69[JKm|kj`n(DSG4EUfMVºQkQ?*1\mY4WBtś9;8CY8ހOUlb=QWsęO_RER86ShM4vݞ{=M]6oVY{ktE[	$M&(ӤFe;FB8	ho<ac|cע;'iAUEލV|&εOKQd/fGFwil76BJ(H2Zˍ%S?Xo@#
fwHm2d)]wǰHmn@cPK8m?
=³kyA̱B2Tf;})?,HkAxJ^/d	ˡ*.VAHW 2eOQ#2^Wh%l-ޚ`P[	J
(1CH
fq8ظNexI
lYj/;(-l&MsE1gObY!en-Bb3&D_`8midFEnzt]_5s)ov3>f<t:J9PK[gwme%ZSؑ7J;/rao8Ry-\d8HGIy
vBRC?q)'u\:xQD!H&"̣5uiQ.sC#3OJ}Ғ	И*JK=WaN-~3$MMVk]B+Hm]}qmٖf,WLO[ju:4N!z=~Q%NGSZ#IqlHgV0j}7ܪБk*PolAdk6}*|q&*7V`KV6
LؠӖhi8`|v#cjؖ
=桭+<31`
f%zyγYHY9o~eO:("4*!}spKCd\7iZy8^s,JCj⻅5U,d?dL\T[413(#/TޑlVxRFBk^[qw.9;̟Tk~OeۭSy|Tz7oRrz4`
2sGffGw}QxpcCBxLw2Q맍?u/1j&1FΏ^uJ'ǣtg~Lb3<Ͳ,
P46j<)s&tpaynݔ3mWn$=m~{]nh	9;4ͻD@gf;<k(Ӡ"`z1>
п&؄_UVN5יpOIč>6d^Fz@sh/'T@<J(_m[MzyKepؗ"LEObѵAP:'d6S?Jiz84߄G:Z7YѺh<x7&wx#LLMDgl<nFC4Xh>MBף(h}RP=蛀2~7/z=CCH@ȷc31	gD%üۧjXdINXlhEK3J!0cWKH0e(RsdzFN[Nlޏ|iI$&\dB	s]d2RotaU+;򈀜- G#4QԣN !Ettr[9ĩ1>no(C5—hǗf	8r~4U~+S3b"
T
Ƈl+
%>,OĄ1H&k<&3b@:V˗V-_○uszׯkǶ6𺳽_9sszCBko_=~p0A7qbү]BP:+Dq_G(8K^xNt2Ήg陎G-=?a7`Q\
jD^
|uOM>7p虄ڞ)>e9/$ u@+ʛK]B#
ht$l)]E%KAg֯‘# k,\4,VPQ
/U.W-b$K]wd_.-nn$~6pV)#Ck3C
u)%F/6
Zdj^*qLCOJ-4COO
_ODŽ}<Dq{;66W9Riez
?r"=Ʌ8h~W	ysYa. D뉋;U*]Eu{vzp[֫_&):64^X1
+%#
Tg=WF*	-'q㿎nCIt%ia	K*$2F",A8HVJ+F-by iӉl+~–~
6꼽b`LNo>5LǨS`نɵRn#LqvO)G;=xH~NeJeOx˗1et]bHe!Pr͕pCH;W6Cu@G/#K=;qǹ2x)R(@>s@=8]_~}?ۘmrmᇝjӻ2nRhvjo鹀"ZU6E4	6O>:k:BW5o}z,	hg\~Yn<Ն? >;r)p	Jɒ`$W>DC?pflHڱ4aT9\p#٣4y@U}Gw2	|EeuYKɕlNXKKe	sF0+:Cj_-ˮ+@C z率}BpQF6J'6<Iգ*@5[aid?jPV~&´0j$&&1Z4mLn;x9"5k+5ZI 9c>`RnFK9)vUǬP!9Nyg[ Oˬ^B_ZT,zt]swPtf-lz!mOK@._q]νdRL
M_2\U -qVƞB튣N%=uy{Vu	L4@Vכ&sNYpAO&'Z[p9儶	g۷,6g{aĻ(LQjqQ4ٻD7J
Ϻ82ʴ;J]5q>,wdnXKҬ@՞*=Mǿq,܏2XxaS[*̮~p;#?&fWm@̕yFlZ%)=}	<AF3V>=8֒uِѵ|DK%N1
qYkXI1~P$dXvԹZrOo.?iHt 2k<:_b(u'*)pR;WNΣ*;I¡{̯2|B`u1;X2CI$e$KecU(\HF۟zԜBfI]xpw1O)^{2Ű"ϼw
ޝ>3rsET5g1*3$&S{xK
{WY{($Rg%>L%Kfa=@}`F1
endstream
endobj
47 0 obj
<</BitsPerComponent 8/ColorSpace 48 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 106/Length 1243/Width 106>>stream
8;Z]!9t$Q7&;=onp>TO$kq%2?36FR0jC2GVA3HodMP#>L:l='VnO/$'K*q*f087E5
_0i$e+1ja+A;:+X9h]d'hAr$Pke0&5h9gRnA3)\+8?_c5%sG*70^T;_#.osG?*^([
Z*)/i7%FDD7G]Q@>H*riTfR6V'D9c_?*8Sa;)K[(dFaFAQb@RDQah'#$B9eCn"f;>
:`Dn_0d0E_mp(feFg3MlW6pDX=C0a\?DtBI\?@A3!Jj)&?9>V.'u,Z!BiW;*jA_;0
<i4`c/#,qjZ&OT?H;Ta0"tS>c^e0l[b2+@1Ga1%PSD%+?e)EMq4f:^Ia8j=*'\C34
7&Ra]P)m._5?4(!VNrHk8l_86<#Tg<FbD5DR-7E3WOAEM?EUWj4dBba;nP5Rc-ebY
\J(>('+TXl[FH_OA4*#,S_*[K`dKtULl(,-_tg[mLRf6*5H>@@.kUhn6F!H7-^s;*
cJMTm^K7&5*P.8?S=h6tS3k<'3i5:oTC%5&*$Yi9gj@r`i`k2Lr$PQFM>m'C89N(%
?lt<*[$5bJ8CYOpL!5mU6_[I6de@3&f<%;V*_G@K8sPn_<*F!m:j?#Nnb!IIk+L3A
mod70#JIf_:[/)mV$?\O)=N8Qk!n)n$QOtPj-g"`JbG:SUJe#`;j.*8M:HTKd#)j=
/\/s):s'HJ>odfl'%Jn,Ds(+_-^N-OU*/GK#]""tYVkV^*N<0Z'pITmm<4fO??_g;
%i(9nOZL"q7'SU)WVXsr%B'rGd$"h*+(3@C9H*@sC8,V1]UELWSPF8R=mrtK+*o7P
lnSI5RsM!AV+df\Smjn4`&cT9pG?;%PpZ=o5;VS0.d,dgVbhclMffu)MnB:Y^VX.7
11$oN0(^4L"(<Rr*Q>UhFOFbb)pY:U8=m>35<53OiOn_g(Qp.F4fF/@J_F"eiYR?P
%kZ8g1>h+pV$5A\8^HIPZ>%ne5*Y^M0ZbcOED@#LTU&.94kWo?Qi@",?kP*#^bMFu
9MOUk;oAP_U-mda,?+<k8\X^?NZP'f0+,%YXti"s#)W-cGSH@"(8a3ZS*=#FKdtOU
C%;cn0_""u]I1&X$^Eij0:rY8KUSW1-'aF2_Z/ULa[i^Z6VSj9;k.i"i77?ja"\sT
QZO$aG3IWg?h03j.XrP*]pCE`QiN<,"el?&P"a?f&"=E@pN`XW<f^,5oo'(>;meKL
f@Ks_VQ7iSZW/c/M!/b;TDhuj4*p@U9R$-c*LZ?Z]c/a*)$#b\Z$-~>
endstream
endobj
48 0 obj
[/Indexed/DeviceRGB 255 49 0 R]
endobj
49 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
46 0 obj
<</BBox[328.926 402.706 995.569 -130.626]/Group 50 0 R/Length 357/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 45 0 R>>/XObject<</Fm0 51 0 R/Fm1 52 0 R/Fm2 53 0 R/Fm3 54 0 R/Fm4 55 0 R/Fm5 56 0 R/Fm6 57 0 R>>>>/Subtype/Form>>stream
q
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs
0 TL/Fm0 Do
Q
q
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs
0 TL/Fm1 Do
Q
q
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs
0 TL/Fm2 Do
Q
q
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs
0 TL/Fm3 Do
Q
q
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs
0 TL/Fm4 Do
Q
q
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs
0 TL/Fm5 Do
Q
q
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /GS0 gs
0 TL/Fm6 Do
Q

endstream
endobj
50 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
51 0 obj
<</BBox[328.926 402.706 428.038 -130.626]/Group 58 0 R/Length 108/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 45 0 R>>/Font<</TT0 40 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
BT
0 0 0 rg
/GS0 gs
/TT0 1 Tf
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 151.704 0 0 161.7572 328.9263 267.9219 Tm
(O)Tj
ET

endstream
endobj
52 0 obj
<</BBox[427.989 402.706 512.359 -130.626]/Group 59 0 R/Length 108/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 45 0 R>>/Font<</TT0 40 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
BT
0 0 0 rg
/GS0 gs
/TT0 1 Tf
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 151.704 0 0 161.7572 427.9888 267.9219 Tm
(p)Tj
ET

endstream
endobj
53 0 obj
<</BBox[512.336 402.706 586.336 -130.626]/Group 60 0 R/Length 108/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 45 0 R>>/Font<</TT0 40 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
BT
0 0 0 rg
/GS0 gs
/TT0 1 Tf
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 151.704 0 0 161.7572 512.3359 267.9219 Tm
(e)Tj
ET

endstream
endobj
54 0 obj
<</BBox[586.367 402.706 671.034 -130.626]/Group 61 0 R/Length 108/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 45 0 R>>/Font<</TT0 40 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
BT
0 0 0 rg
/GS0 gs
/TT0 1 Tf
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 151.704 0 0 161.7572 586.3672 267.9219 Tm
(n)Tj
ET

endstream
endobj
55 0 obj
<</BBox[671.019 402.706 775.167 -130.626]/Group 62 0 R/Length 108/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 45 0 R>>/Font<</TT0 40 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
BT
0 0 0 rg
/GS0 gs
/TT0 1 Tf
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 151.704 0 0 161.7572 671.0186 267.9219 Tm
(H)Tj
ET

endstream
endobj
56 0 obj
<</BBox[775.163 402.706 855.682 -130.626]/Group 63 0 R/Length 108/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 45 0 R>>/Font<</TT0 40 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
BT
0 0 0 rg
/GS0 gs
/TT0 1 Tf
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 151.704 0 0 161.7572 775.1631 267.9219 Tm
(o)Tj
ET

endstream
endobj
57 0 obj
<</BBox[855.718 402.706 995.569 -130.626]/Group 64 0 R/Length 108/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 45 0 R>>/Font<</TT0 40 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
BT
0 0 0 rg
/GS0 gs
/TT0 1 Tf
0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 151.704 0 0 161.7572 855.7178 267.9219 Tm
(W)Tj
ET

endstream
endobj
64 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
40 0 obj
<</BaseFont/QGTLBC+Cambria/Encoding/WinAnsiEncoding/FirstChar 72/FontDescriptor 65 0 R/LastChar 112/Subtype/TrueType/Type/Font/Widths[687 0 0 0 0 0 0 653 0 0 0 0 0 0 0 921 0 0 0 0 0 0 0 0 0 0 0 0 0 488 0 0 0 0 0 0 0 0 558 531 556]>>
endobj
65 0 obj
<</Ascent 3117/CapHeight 667/Descent -2464/Flags 34/FontBBox[-1475 -2464 2868 3117]/FontFamily(Cambria)/FontFile2 66 0 R/FontName/QGTLBC+Cambria/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 84/Type/FontDescriptor/XHeight 467>>
endobj
66 0 obj
<</Filter/FlateDecode/Length 30309/Length1 83058>>stream
HtUXUW;<0dQ"a"%5%6Q4*DA{/"*P)&&}1(fr9sf9s.U1{7f68"*&~X;
&*>NBh@h|ԗ%螛RsQ#tЮcl+Þn11qӺgۀ#oEML4{%`OKqeAiOeykawՇpq()0yZ<M.favq&p-kk	#LPVRDmV.P9}⸹s5bF*C:+:A>iTmk$dD,%mk_TQ
iCaL@;k?k/Rn@=Xp=JSB~J?ҋ>|}6k}idsYllmV[#[mmm//^/^Y275%7#fkޥƞKPaH+Ns syyK5Zg;õY!vOFU{p=Rqz'>	5ZE㏯w?坥k*ǯ;H8*:Pr޼|t
xS}wq~\NR^ds=eG#aw%j"9A<vl^ϛ]opTw5ZNr:*px#b]=Gz&y.<y9k)yZ+mqqjkaeYP%jخjz 5bT^S|RZ߅
h.D[LUL&oWy+MESDDqæ+)ߊqP*D
7T{*FoU<-U
ZxM"EXXXXXH*:l&lȤX41(:.)L5s"DVވ"X*-D'ΘjSVd]"Kq4o|P6Gc4AC{tl?` > aD$b~VaұB PS838.+
?~3~xQ_;Q{h}@.Q88!|hchvmcEGG'\@g\'.nk艛[;/KR>xQxPLD1x	/QXB~T(4&Y1!IQuK؇s]	KN6LGS؏i*קi@ܐMKIܘ9fl9<\y^9^i>-ܔq0-%܌s-
x:Dh9C(Vq(i
ܚqZmiDm1m;R*w	qg](vF;;=){.M{7؍p<܇q_0~i?<ǃ(SBxC<s8p:t#E'x$Qt43<?<;:Kx<t'%LW*OkKy
xSRL.WrUM+tnjFUwur!7ȍrܬfYr[ʭ2M#tu.wN!3.%w=j+92[樹2Wez@=j,<,ByDqyBiyFyyA^yU^
ySޖwB~)ɯjlƟ`VGм<\ܟCq5J׻KU%'	.-zR,rJjZzlFlflVlvp"Xtb؃E$"Nq2D!H~AaQ@;CP;#H;ʎcX;Ύ	vN_:aNwM)'9Mv9xEmUvmIPa*\V{TTQ*ZŨX⽩*A%:YN~u@TauDUquB%:Ψ:.꒺R4UTY*[\U*TTnꖺ;N;ꮺz'zz^7^MsH?BLSh*ԚP[jOi$*TQuA5զ:TQ}j@
5&ԔQsjA-u!4pK3unԝzPOE}]zާ/#>O?}Fi
4FhGKn@V UwK%Rni[-w+m61v66s+]vnerE@NZ /dRpEiERES>JDKh>-~h)-崂V*ZMkh-6&L[h+mvA:DctNP2StY:G]KtR
UJtʠLʢlʡ\*T@yTHݤ[t}C=l:%#{f36ӞYͶm`sEG1'ͷmM6٫M7	`{Ib&I/.Q9 A)aIIsXJ#R2昔5ǥ9!MT0'9%i欰9's^*bEsI`.5)joRU	4bҥɐj&S,a29RJ'uM3RJsM"idKcsCܒf47w+-=ieKk@ژ<v汼cH{T:g<Nt6/y%]kfHwVzHGz	Io_&o;о0?<53-+=;#'@rM04I&!%ْ#'R rMܐrKn+<Hy*乼J^y8 ((((򨀊*@XGUPP5PPuPP
M-mڣ::zz{x/C|	>E|A!aQ1q1&Kğg`2?
?/[|~O10300s00KAzz	z,</"/})<U_i:<CLγt֙<Gg<u/йP"ϋu/хƿ"^2}뛼B6wxk=^:뇼A?1oOx~[3ު6뗼C5o8Lp&bGQ\pIRǥ9>.	\<'LyuoB^rW!|pre>'I>ŧ?֟yӼHo𢽙^7ˋf{q/ޛy	|/[%N\V]Qf핝EQAPTPInn`ѹNi~O|_37,g>oV<O;$OO{4OLl}?Q?O"/|?]gğYȟFWFWEWGDתzzz%x5k%OuQj4NREUЭ(P+[JC.ݦ;UYUT"XH
XVhVjJZO=Fmfm&mP+QW:c:jW^KzUR<jkjNhjkiFAt5Y5U35E34MT]^={tjkE7z[]}wSGW?T_SB*H~0Ds4I5Q)UU"EZeZ-"=fz\M#%B~NnS[Qk,,w:ouJ߫M"s#A;*b#B[EAo/t!tŕ#*C?~
]
]]	UwsPmpV0,7
r7
s7ҍ
nKrc]ƻ\p.e/AkVvNn^~Aa0<F1AR06HoqiAzdYAv͍&G3yќXp	
?:zFP=ȍ=5p_Y܏5Csx0[kGPvc/^rcQ4@C4chM\4?_D3<'3x6&ϡ9Z%xm/X XFW^xomw>'s|N]
=}111C11#1
1Idx iHG2l`rɘ阁٘|`.Q(F	bc	bcJk[۰ݕbvb[؃؇88[
pG]+wnN$N838s8q
wޭď	?K;7Uk21e	JxoMa1<)FXVFc%y;+-᝼UXw|⣬:zlF|لM8	>ɧ4|ق-<_llöl|/_|
ɷ#?3~/؉_3+;{'{7/?p q0p(q8Gp$Gq40cq2`&N`.88S88388s<r>,B.b.R.r`)Wr
6FhcI6kΒm ,2,Ӳ,rlZMI6٦Tn&fmʹY6p=7X\g6ߊl[-EؖR[fmJ[emu6FdmmmvNem}A;dcvNi;cg휝]o[ξG~_Wd7+e?vkv=LB(!.%M@%GJuuu$}<slw(l`ElT.]{+6
KbXbFgNrdИ3_ri;3yV>=+j-r
XN3y<i2?70O_g̳9yhfyͼn0okU*l[E,˶Zb[%V)򲼭ҖkZ~V9dQr^]}2vY.g+xu+e8%e~ϭ.elY+eT-{elUN6Y-eCrX2dDzX4)d̑D+I2O(L
Y)Kd*dp,C$RvIdhX/d,I2YH_[m	P*$no@IKiI/-G0,(B(wlJ<e5ߘ]\;vfJTPUFթդZTP]GTPCjD	5fԜZPKjE
vԞRGDAԙPWFԝzPOE)B~ԟ@
ANi
a4"((b(FHQ4XGiMxD)TFiͤY4P"ͥ$Gi-ERZFidJUZZG)6FDiVFi]^G)A:D)Q>7J(C9GʨꨁڨG4D#4F4E34GD+FE;G: 	A.nFw@OBo }0ap0G"h #0q񘀉$LF`*a:f`&fa6 syXEX%XeXXd`V'`
֚o͇Xg>SwtΘyʤ+tnG=Hg(8`"/#[؆؁؅؃؇H!F(>1>_)>qI%,<."2q	qW:n&n6k=|xoc
OxOx~Kdb]87y9ٕqvrA.ąٝ\qq.%{{sia_.eُqysEĕ
Wj\kpMŵz7FܘpSn͹Vܚp[n9;p wNĝwnݹ^ܛC8p_y0<P9#99cy8ţyq<'DI<x
O+3Nwgvwu^pSsf:;82REKU+Ӻd<.{7-F{ʧT Oe#WaM:IV5e௴ޥ\++.RmwK?׫E#5.G9"{GԱ?}V'a59P{VOM3T\jj=vҜ`R^jމTUjV*O)љ9ܓor+@{R.Tijjկop6Z
Uckijګ]jg@bUy\b^U*Kj]蘨bXng*I}y,ɟHRK)Ti#:_lHQIZqF~2ʿΟAm:o:cѺ.tjt߄`s{!Nw$'J+Va}Ku_MU_gWw5%S5pW|.TZ6Z5|O~w}wyԫ{iDMWkR~OU[/W[lW>^KM&3v;mZغi2x/zIfY!$m JUE8ɑZDTzAE?3MS{Μ=c-foUmX^9v]"^ӴwKѹHo]_PB|$b'+i3{-#Kuzivi
 2XvU{ŵ? Q+{{O(wDFEVOjo}d3ӷ
;:^=zk%
"ooFHGj9<fyZd"td(zЫ&Ы\PX{#OG?o6Π}eW>Ϝ?鳟:|sٙO~NN;#'}4V<zˎ~:|<}ڷ7}{L0|.cm[z;$:㱎h$^-)Y; wd]9s8~ذd})zag_@%iKr`n0+Ȏf2o`>f𼌤c3iB;;i2¯~c^8C4kofd<i;[[ǹPV6y\FbG6'@%ޔl+#ܓ":VJMKm1b{=s"_E--jr{v,%	ݕٹ.FW7 s
-qHSP"?xGi,HkB`7`oak+QlUYҪH{Wft*SW@`TVJ(95x=,r
jmΥ0\Nڋ!޴Y2^>9iy\>uaMIN(d6ŪrT>^eMxbLYuH
]39ueu5+/h#qq,©ͼ)wb
}?儑֠OVZebehUrN
0nqL btHp$Rr /ooiu{_Oױ.Z4u÷QiJ&(&'pyJդq_z^AzZ}Fp]xD;wJ
K,,;Rwkڈ{ɒ8I*Z/16;C#(<tۂd&*!,:a#'fU	2eMIc!28@!4)F'lٌqYi%Ja-L[4.>^VW*Wʸ?22	\ߟF(X0(eb$bze$ki9BE}EQeJm* ہDk͠Z@\{WU;U2Lb̑[6-}QjFΖͩ͵@L$F}n}{@#ПZvj#b݃pʖX)cEg*m+h|$)|9@ݙݺ.Ӯe[-HX=	]lQ>4BН=J"]r#iGș0=G-'fŸdGQxװ,!XĔ}C+i2)hCh&vajھ3/!-uGnK1KAC% m8mH$6qEo\+lD~1`m|4XZ>S	脹luEi%B=!X@Nz4
N˸$MuPކAs"['?q'QzЃ5-2UiO85u(T6?}Q!&C4H.17*( xLxp*+P<ѾlfhJP7o#u
3pԀ1|Dg+%y:aq֑@e'$t@QP<C4H'M$s|M#cЗOܧqGJv	ݨ(-s|#|V5r?FʑAu>dD95%;Ժ{9-8[hp)X""T%+$f&PHi%)I+(>7 "b}hnPk?_4=(d`o3@Dۉo({n+~,*8Z0j`黟.b:VoM1p@#L^uJPD:"\T=Nv{=yzh'PTƔ<Xmω.F)(#4\(H!Q}3DW+x8VC'ɳ
")	:>]?Wkp˲ݵvW[d{eV2`l05jp41mqLSJ)SSe)mfҌ4aLɐ`,ܕ\<Dsw{ws2
!>3J=8',gu &=5f<WvX
9@BAipLhwRO/.[؃tpo%Dw/,>-&[$AnГQ|B놜SG[}L+~Za!(ltj.ب+ghoaP;Otj[~M(UU.g\3{оoşfhYqgʹKcB[F[s~FՠjS|$QSBJs,as(A'PU2=Pf<x13Ό
3g.]Ed"MKSD@)Р$o2E^JFubemJ{S[+ՋBo^ O멞_:"JJjUOÕJKm R
k*;_Nm;
BCHG֢hpE5*[)*K<M<e'F/.IYBO,ֺ'+a|JtTF8((#HaEŞQNTdd8oȱKePNz}#%׊ܔ{i2	(C"L^pD =<wL|m81]g)aD(([8>?[@Xײ8jNWKc1&l9ճ$#X,x/xRK'l)о[^ Z%"eRQ2і'v.r
27LRdC9
rd2	zxLA;ӣߞ[Ξ~H[7\dV	uG{='ҳ#Z`Oݰ~23$T (.9DAmDt@%ə]nh2̖We3(5ϻaqF[9;h0(.XDvEe.n9 *
AHD‹6A,'BB~?%햼tc._&tBb]
:/~^7uNgX4*Kݍ;ȩ%yCEfnQ/Rȁ
mu{ؗT,ˎ$r0㖃6Q(aDrfx#r1N=mLns	6t0[27uq:n^ZJ0U:K#9<ptw]"H(*#%_ ($<*zu@qͷw\85=oڡ[SW豍KZOjgӰj35Pp!QhIjjkFAcFL!1+K"2	֓ID'"բRmu$3W5A  GPEA4	 `#G>b,w`˚S7˖oJ4m㍶@$Vyeokm%[վ<?Y![Wԇ"1i:N#ё[vImM,jHV!`ܰr1B()q
5ek3#P+u?8p330s	
8
b
 mo?xo5oZlڽ ѭWv}r=Ľ7/5Zm|ߚ _gY0VBSR(eDbSf?eyMl;5V*+fWTski-9<p2FW5bȩygS

 dFbImv#]*hu,9q˿}zquﱫWڤXbږԆe5N΄II7OLq5y.AHAT!3>B.#¿H#NDo^`p!<}h>Nbgmvί.4h
}?[<uT3Ϡo-@èO~nZ
;H #@q>o`x>6<?*Yk݀揢tU`*XVӕj>[f}B[`,>zv5٧
c8kc빦a>0E1V=(J=ӻv}̡_5{9'AA@ QP|	5%Wb&(A"mGiepF-/LꈥU-HjjD﹐ACo{گu)VeQ_C~QeC?S#Ist7iBQ
qus3Q]mq9᠏
0~Nř4ADl;s9g>93J_ֱ.%Yh|3㌸9ؚ`%|S a
l]7t_־=|t}J}Δ33SL关hZuѯu}YS;x^H?<[*gM1^]98A=s(޿u|V0?&C09{ׅ?sN|<dskP氵<lck[_[K㧺•i@ƻQCS+
s#4,F6$w.N=]ڡQ*ߚRUpq#i31(s2~]GVK)\y'`Ҷ~BQDSEtFrw(
RzG93{xFVۿ]}A76?htLylkZ
3(g6ʿgxAaS/oj:oC
֨3B&MV
4R/k:KqR-9'+ݠ)!7kHX_"O	qkAVt;Nଜ
jpޠQa/葮7crrجB-jo-ϾIOgiGc:?gͦ+K?A,Bq4í{7y@4? IOe'^MuKU
e&
'2/p֩ܓ`ZoSL
u-᝙=,x~{6g|uqlLq^Ibۧ>l}(̴EUmR}wY{\'ecvWs.sqFԊvNSTg|,cϼZujfB~&|`/M^nUA\_eGͫ]Pi[`fM83)UKK^&>U~-h8;k37z]e\ӼṜٯ~6Dgf\s-nlک3kOn{}u7Tvc86<JhDWCܕ5|hc)~mîPIEnƇ0<|v<YE}j*cҙ*dUU}q>%8wH|C}TDYwb6yho1X6込ĈFpz'XEypgHm#~چzy0|\Tӱi+d]fQAR<Kn;=Sķ"
B#\m
Hy_c041nW?2x{Pmp;,ĪR͇L`Kګ`*ԙ
C]+5?coN?+{Ѩy k,Y]6]9GptX35,ƞ|ΨxEKxV
Download .txt
gitextract_hocwqf5u/

├── .clang-format
├── .github/
│   └── FUNDING.yml
├── .gitignore
├── .gitmodules
├── CMakeLists.txt
├── CONTRIBUTORS
├── LICENSE
├── README.md
├── bin/
│   ├── CREDITS
│   ├── gamecontrollerdb.txt
│   ├── icon.ai
│   └── mods/
│       ├── README.md
│       ├── base/
│       │   ├── actors/
│       │   │   └── misc.actor
│       │   ├── chars/
│       │   │   └── primitives/
│       │   │       ├── cube.mtl
│       │   │       ├── cube.obj
│       │   │       ├── icosphere.mtl
│       │   │       ├── icosphere.obj
│       │   │       ├── sphere.mtl
│       │   │       ├── sphere.obj
│       │   │       ├── torus.mtl
│       │   │       └── torus.obj
│       │   ├── effects/
│       │   │   └── test.effect
│       │   ├── fonts/
│       │   │   └── LICENSE.txt
│       │   ├── languages/
│       │   │   ├── eng.language
│       │   │   ├── fre.language
│       │   │   ├── ger.language
│       │   │   ├── ita.language
│       │   │   ├── rus.language
│       │   │   └── spa.language
│       │   ├── languages.manifest
│       │   ├── maps/
│       │   │   └── test/
│       │   │       ├── test.pmg
│       │   │       └── test.pog
│       │   ├── scripts/
│       │   │   ├── classes.json
│       │   │   ├── postprocess.json
│       │   │   └── teams.json
│       │   └── shaders/
│       │       ├── alpha_test.program
│       │       ├── debug_normals.program
│       │       ├── debug_test.program
│       │       ├── generic_textured.program
│       │       ├── generic_textured_lit.program
│       │       ├── generic_textured_lit_basic.program
│       │       ├── generic_untextured.program
│       │       ├── gl3/
│       │       │   ├── alpha_test_texture.frag
│       │       │   ├── debug.frag
│       │       │   ├── debug_normals.frag
│       │       │   ├── generic.vert
│       │       │   ├── global.glsl
│       │       │   ├── gouraud.vert
│       │       │   ├── lit_texture.frag
│       │       │   ├── shadow.frag
│       │       │   ├── texture.frag
│       │       │   ├── vertex_colour.frag
│       │       │   └── water.frag
│       │       ├── shadow.program
│       │       └── water.program
│       ├── base.mod
│       ├── feralwarfare/
│       │   ├── README.md
│       │   └── music/
│       │       └── track02.ogg
│       ├── feralwarfare.mod
│       ├── how/
│       │   ├── actors/
│       │   │   ├── pigs.actor
│       │   │   ├── vehicles.actor
│       │   │   └── weapons.actor
│       │   └── maps/
│       │       ├── cold.template
│       │       ├── desert.template
│       │       ├── night.template
│       │       ├── ominous.template
│       │       ├── space.template
│       │       ├── sunny.template
│       │       ├── sunrise.template
│       │       └── sunset.template
│       └── how.mod
├── doc/
│   ├── Maps.md
│   ├── README.md
│   ├── Scenario.md
│   ├── Speech.md
│   ├── coding_style.md
│   ├── file-formats/
│   │   ├── FAC.md
│   │   ├── HIR.md
│   │   ├── MAD_MTD.md
│   │   ├── MCAP.md
│   │   ├── MIN.md
│   │   ├── NO2.md
│   │   ├── OFS.md
│   │   ├── PMG.md
│   │   ├── POG.md
│   │   ├── PTG.md
│   │   ├── README.md
│   │   ├── TAB.md
│   │   └── VTX.md
│   └── game/
│       └── pig_faces.md
├── setup_cmake.bat
├── setup_libraries.bat
└── src/
    ├── engine/
    │   ├── App.cpp
    │   ├── App.h
    │   ├── CMakeLists.txt
    │   ├── Console.cpp
    │   ├── Console.h
    │   ├── InputManager.cpp
    │   ├── InputManager.h
    │   ├── Language.cpp
    │   ├── Language.h
    │   ├── Map.cpp
    │   ├── Map.h
    │   ├── MathUtilities.h
    │   ├── Menu.cpp
    │   ├── Menu.h
    │   ├── ModManager.cpp
    │   ├── ModManager.h
    │   ├── ModelResource.cpp
    │   ├── ModelResource.h
    │   ├── Physics.h
    │   ├── Property.cpp
    │   ├── Property.h
    │   ├── Resource.cpp
    │   ├── Resource.h
    │   ├── ResourceManager.cpp
    │   ├── ResourceManager.h
    │   ├── Terrain.cpp
    │   ├── Terrain.h
    │   ├── TextureResource.cpp
    │   ├── TextureResource.h
    │   ├── Timer.h
    │   ├── Utilities.cpp
    │   ├── Utilities.h
    │   ├── audio/
    │   │   ├── AudioManager.cpp
    │   │   ├── AudioManager.h
    │   │   └── stb_vorbis.c
    │   ├── config.cpp
    │   ├── config.h
    │   ├── editor/
    │   │   ├── ActorTreeWindow.cpp
    │   │   ├── ActorTreeWindow.h
    │   │   ├── BaseWindow.cpp
    │   │   ├── BaseWindow.h
    │   │   ├── ConsoleWindow.cpp
    │   │   ├── ConsoleWindow.h
    │   │   ├── MapConfigEditor.cpp
    │   │   ├── MapConfigEditor.h
    │   │   ├── ModelViewer.cpp
    │   │   ├── ModelViewer.h
    │   │   ├── NewGameWindow.cpp
    │   │   ├── NewGameWindow.h
    │   │   ├── NewMapWindow.cpp
    │   │   ├── NewMapWindow.h
    │   │   ├── ParticleEditor.cpp
    │   │   ├── ParticleEditor.h
    │   │   ├── TerrainImportWindow.cpp
    │   │   ├── TerrainImportWindow.h
    │   │   ├── TexturePicker.cpp
    │   │   ├── TexturePicker.h
    │   │   └── TextureViewer.h
    │   ├── game/
    │   │   ├── AAirship.cpp
    │   │   ├── AAirship.h
    │   │   ├── AAnimatedModel.cpp
    │   │   ├── AAnimatedModel.h
    │   │   ├── AHealthPickup.cpp
    │   │   ├── AItemPickup.cpp
    │   │   ├── AModel.cpp
    │   │   ├── AModel.h
    │   │   ├── AParachuteWeapon.cpp
    │   │   ├── AParachuteWeapon.h
    │   │   ├── AParticle.cpp
    │   │   ├── APig.cpp
    │   │   ├── APig.h
    │   │   ├── ASprite.cpp
    │   │   ├── AStaticModel.cpp
    │   │   ├── AStaticModel.h
    │   │   ├── ATrotterWeapon.cpp
    │   │   ├── ATrotterWeapon.h
    │   │   ├── AVehicle.cpp
    │   │   ├── AVehicle.h
    │   │   ├── AWeapon.cpp
    │   │   ├── AWeapon.h
    │   │   ├── Actor.cpp
    │   │   ├── Actor.h
    │   │   ├── ActorManager.cpp
    │   │   ├── ActorManager.h
    │   │   ├── GameManager.cpp
    │   │   ├── GameManager.h
    │   │   ├── GameMode.cpp
    │   │   ├── GameMode.h
    │   │   ├── GameModeInterface.h
    │   │   ├── Inventory.cpp
    │   │   ├── Inventory.h
    │   │   ├── Player.cpp
    │   │   └── Player.h
    │   ├── graphics/
    │   │   ├── BitmapFont.cpp
    │   │   ├── BitmapFont.h
    │   │   ├── Camera.cpp
    │   │   ├── Camera.h
    │   │   ├── Display.cpp
    │   │   ├── Display.h
    │   │   ├── ParticleEffect.cpp
    │   │   ├── ParticleEffect.h
    │   │   ├── ParticleEmitter.cpp
    │   │   ├── ParticleEmitter.h
    │   │   ├── PostProcess.h
    │   │   ├── ShaderManager.cpp
    │   │   ├── ShaderManager.h
    │   │   ├── Sprite.cpp
    │   │   ├── Sprite.h
    │   │   ├── TextureAtlas.cpp
    │   │   ├── TextureAtlas.h
    │   │   ├── mesh.cpp
    │   │   ├── mesh.h
    │   │   ├── particles.cpp
    │   │   ├── particles.h
    │   │   ├── video.cpp
    │   │   └── video.h
    │   ├── imgui_layer.cpp
    │   ├── imgui_layer.h
    │   ├── loaders/
    │   │   ├── FacLoader.cpp
    │   │   ├── FacLoader.h
    │   │   ├── HirLoader.cpp
    │   │   ├── Loaders.h
    │   │   ├── MinLoader.cpp
    │   │   ├── No2Loader.cpp
    │   │   ├── No2Loader.h
    │   │   ├── VtxLoader.cpp
    │   │   ├── VtxLoader.h
    │   │   └── WaveFrontReader.h
    │   ├── model.cpp
    │   ├── model.h
    │   ├── physics/
    │   │   ├── PhysicsInterface.cpp
    │   │   └── PhysicsInterface.h
    │   └── script/
    │       ├── JsonReader.cpp
    │       ├── JsonReader.h
    │       └── duktape-2.2.0/
    │           ├── duk_config.h
    │           ├── duk_module_duktape.c
    │           ├── duk_module_duktape.h
    │           ├── duktape.c
    │           └── duktape.h
    ├── extractor/
    │   ├── CMakeLists.txt
    │   ├── extractor.c
    │   ├── extractor.h
    │   ├── fac.c
    │   ├── fac.h
    │   ├── pc_copy_paths.h
    │   ├── pc_music_paths.h
    │   ├── pc_package_paths.h
    │   └── version.c
    └── tools/
        ├── CMakeLists.txt
        ├── img2pmg/
        │   ├── CMakeLists.txt
        │   └── main.c
        └── ptgtool/
            ├── CMakeLists.txt
            └── ptgtool.c
Download .txt
Showing preview only (230K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2312 symbols across 103 files)

FILE: src/engine/App.cpp
  function MemoryAbortCallback (line 30) | static void MemoryAbortCallback( size_t failSize )
  function TranslateSDLKey (line 249) | static int TranslateSDLKey( int key ) {
  function TranslateSDLMouseButton (line 317) | static ohw::InputManager::MouseButton TranslateSDLMouseButton( int butto...
  function main (line 476) | int main( int argc, char **argv ) {

FILE: src/engine/App.h
  function namespace (line 58) | namespace ohw {

FILE: src/engine/Console.cpp
  function FrontendModeCommand (line 24) | static void FrontendModeCommand(unsigned int argc, char* argv[]) {
  function OpenCommand (line 37) | static void OpenCommand( unsigned int argc, char *argv[] ) {
  function Console_Initialize (line 121) | void Console_Initialize() {

FILE: src/engine/Console.h
  function namespace (line 6) | namespace ohw {

FILE: src/engine/InputManager.h
  function namespace (line 20) | namespace ohw {

FILE: src/engine/Language.h
  function namespace (line 20) | namespace ohw {

FILE: src/engine/Map.cpp
  function PLVector2 (line 104) | PLVector2 ohw::Map::GetRandomPointInPlayArea() const {
  type PogIndex (line 120) | struct PogIndex {

FILE: src/engine/Map.h
  type MapManifest (line 22) | struct MapManifest
  type ActorSpawn (line 26) | struct ActorSpawn
  function namespace (line 28) | namespace ohw {

FILE: src/engine/MathUtilities.h
  function VectorClamp (line 12) | inline static void VectorClamp( hei::Vector3 *vector, float min, float m...
  function VecAngleClamp (line 22) | inline static void VecAngleClamp( hei::Vector3 *vector ) {

FILE: src/engine/Menu.cpp
  function Menu_Initialize (line 27) | void Menu_Initialize() {
  function Menu_UpdateViewport (line 69) | void Menu_UpdateViewport( int x, int y, int width, int height ) {
  function FrontendInputCallback (line 99) | static void FrontendInputCallback( int key, bool is_pressed ) {
  function FE_Shutdown (line 113) | void FE_Shutdown( void ) {
  function FE_ProcessInput (line 119) | void FE_ProcessInput( void ) {
  function FrontEnd_Tick (line 139) | void FrontEnd_Tick( void ) {}
  function FE_SetLoadingBackground (line 152) | void FE_SetLoadingBackground( const char *name ) {
  function FE_SetLoadingDescription (line 163) | void FE_SetLoadingDescription( const char *description ) {
  function FE_SetLoadingProgress (line 168) | void FE_SetLoadingProgress( uint8_t progress ) {
  function FE_GetLoadingProgress (line 174) | uint8_t FE_GetLoadingProgress( void ) {
  function DrawTimer (line 183) | static void DrawTimer() {
  function FrontEnd_DrawMinimap (line 206) | static void FrontEnd_DrawMinimap() {
  function DrawLoadingScreen (line 302) | static void DrawLoadingScreen() {
  function Menu_Draw (line 335) | void Menu_Draw() {
  function FE_RestoreLastState (line 381) | void FE_RestoreLastState( void ) {
  function FrontEnd_GetState (line 385) | unsigned int FrontEnd_GetState( void ) {
  function FrontEnd_SetState (line 389) | void FrontEnd_SetState( unsigned int state ) {

FILE: src/engine/Menu.h
  type MinimapIcon (line 34) | enum MinimapIcon {

FILE: src/engine/ModManager.h
  function namespace (line 9) | namespace ohw {

FILE: src/engine/ModelResource.cpp
  function PLGMesh (line 98) | PLGMesh *ohw::ModelResource::GetInternalMesh( unsigned int i ) {
  type MeshSet (line 160) | struct MeshSet {

FILE: src/engine/ModelResource.h
  function namespace (line 9) | namespace ohw {

FILE: src/engine/Property.h
  function class (line 53) | class Property {
  function class (line 215) | class VectorStringProperty : public Property {
  function class (line 273) | class StringProperty : public Property {

FILE: src/engine/Resource.h
  function namespace (line 9) | namespace ohw {
  function class (line 57) | class Resource {

FILE: src/engine/ResourceManager.cpp
  function PLGTexture (line 56) | PLGTexture *ohw::ResourceManager::GetFallbackTexture() {
  function PLMModel (line 82) | PLMModel *ohw::ResourceManager::GetFallbackModel() {

FILE: src/engine/ResourceManager.h
  function namespace (line 11) | namespace ohw {

FILE: src/engine/Terrain.h
  type Tile (line 29) | struct Tile {
  type Behaviour (line 46) | enum Behaviour {
  function texture (line 55) | uint8_t texture{ 0 }
  type Rotation (line 57) | enum Rotation {
  type Chunk (line 71) | struct Chunk {
  function PLGMesh (line 78) | PLGMesh *waterMesh{ nullptr };
  function GetMaxHeight (line 90) | float GetMaxHeight() { return max_height_; }
  function GetMinHeight (line 91) | float GetMinHeight() { return min_height_; }
  function PLGTexture (line 96) | PLGTexture *GetOverview() { return overview_; }
  function max_height_ (line 108) | float max_height_{ 0 }
  function min_height_ (line 109) | float min_height_{ 0 }
  function PLGTexture (line 114) | PLGTexture *overview_{ nullptr };

FILE: src/engine/TextureResource.h
  function namespace (line 8) | namespace ohw {

FILE: src/engine/Timer.h
  function class (line 22) | class Timer {

FILE: src/engine/Utilities.cpp
  function u_unmangle (line 9) | unsigned long u_unmangle( void *source, void *destination ) {

FILE: src/engine/Utilities.h
  function std (line 16) | static inline std::string u_stringtolower( std::string s ) {

FILE: src/engine/audio/AudioManager.cpp
  function AudioSample (line 140) | const AudioSample *AudioSource::GetSample() const {
  function AudioSample (line 355) | const AudioSample *AudioManager::CacheSample( const std::string &path, b...
  function AudioSample (line 468) | const AudioSample *AudioManager::GetCachedSample( const std::string &pat...
  function AudioSource (line 482) | AudioSource *AudioManager::CreateSource( const std::string &path, float ...
  function AudioSource (line 486) | AudioSource *AudioManager::CreateSource( const std::string &path, PLVect...
  function AudioSource (line 491) | AudioSource *AudioManager::CreateSource( const AudioSample *sample, PLVe...

FILE: src/engine/audio/AudioManager.h
  type AudioEffectReverb (line 23) | typedef enum {
  type AudioSample (line 59) | struct AudioSample {
  function preserve_ (line 65) | bool preserve_{ false };
  type ExtensionType (line 113) | enum ExtensionType {
  function SupportsExtension (line 119) | inline bool SupportsExtension( ExtensionType extension ) {
  function AudioSource (line 136) | AudioSource *musicSource{ nullptr };
  function PLVector3 (line 162) | PLVector3 GetPosition() { return position_; }
  function PLVector3 (line 163) | PLVector3 GetVelocity() { return velocity_; }
  function GetGain (line 164) | float GetGain() { return gain_; }
  function GetPitch (line 165) | float GetPitch() { return pitch_; }
  function alSourceId (line 181) | unsigned int alSourceId{ 0 }
  function looping (line 183) | bool looping{ false };

FILE: src/engine/audio/stb_vorbis.c
  type stb_vorbis_alloc (line 109) | typedef struct
  type stb_vorbis (line 118) | typedef struct stb_vorbis stb_vorbis;
  type stb_vorbis_info (line 120) | typedef struct
  type STBVorbisError (line 348) | enum STBVorbisError
  type uint8 (line 618) | typedef unsigned char  uint8;
  type int8 (line 619) | typedef   signed char   int8;
  type uint16 (line 620) | typedef unsigned short uint16;
  type int16 (line 621) | typedef   signed short  int16;
  type uint32 (line 622) | typedef unsigned int   uint32;
  type int32 (line 623) | typedef   signed int    int32;
  type codetype (line 630) | typedef float codetype;
  type Codebook (line 648) | typedef struct
  type Floor0 (line 671) | typedef struct
  type Floor1 (line 682) | typedef struct
  type Floor (line 698) | typedef union
  type Residue (line 704) | typedef struct
  type MappingChannel (line 714) | typedef struct
  type Mapping (line 721) | typedef struct
  type Mode (line 730) | typedef struct
  type CRCscan (line 738) | typedef struct
  type ProbedPage (line 747) | typedef struct
  type stb_vorbis (line 753) | struct stb_vorbis
  type vorb (line 872) | typedef struct stb_vorbis vorb;
  function error (line 874) | static int error(vorb *f, enum STBVorbisError e)
  function setup_free (line 924) | static void setup_free(vorb *f, void *p)
  function setup_temp_free (line 941) | static void setup_temp_free(vorb *f, void *p, int sz)
  function crc32_init (line 953) | static void crc32_init(void)
  function uint32 (line 964) | static __forceinline uint32 crc32_update(uint32 crc, uint8 byte)
  function bit_reverse (line 971) | static unsigned int bit_reverse(unsigned int n)
  function square (line 980) | static float square(float x)
  function ilog (line 988) | static int ilog(int32 n)
  function float32_unpack (line 1018) | static float float32_unpack(uint32 x)
  function add_entry (line 1036) | static void add_entry(Codebook *c, uint32 huff_code, int symbol, int cou...
  function compute_codewords (line 1047) | static int compute_codewords(Codebook *c, uint8 *len, int n, uint32 *val...
  function compute_accelerated_huffman (line 1095) | static void compute_accelerated_huffman(Codebook *c)
  function uint32_compare (line 1123) | static int STBV_CDECL uint32_compare(const void *p, const void *q)
  function include_in_sort (line 1130) | static int include_in_sort(Codebook *c, uint8 len)
  function compute_sorted_huffman (line 1140) | static void compute_sorted_huffman(Codebook *c, uint8 *lengths, uint32 *...
  function vorbis_validate (line 1194) | static int vorbis_validate(uint8 *data)
  function lookup1_values (line 1202) | static int lookup1_values(int entries, int dim)
  function compute_twiddle_factors (line 1213) | static void compute_twiddle_factors(int n, float *A, float *B, float *C)
  function compute_window (line 1230) | static void compute_window(int n, float *window)
  function compute_bitreverse (line 1237) | static void compute_bitreverse(int n, uint16 *rev)
  function init_blocksize (line 1245) | static int init_blocksize(vorb *f, int b, int n)
  function neighbors (line 1262) | static void neighbors(uint16 *x, int n, int *plow, int *phigh)
  type stbv__floor_ordering (line 1274) | typedef struct
  function point_compare (line 1279) | static int STBV_CDECL point_compare(const void *p, const void *q)
  function uint8 (line 1296) | static uint8 get8(vorb *z)
  function uint32 (line 1312) | static uint32 get32(vorb *f)
  function getn (line 1322) | static int getn(vorb *z, uint8 *data, int n)
  function skip (line 1341) | static void skip(vorb *z, int n)
  function set_file_offset (line 1356) | static int set_file_offset(stb_vorbis *f, unsigned int loc)
  function capture_pattern (line 1390) | static int capture_pattern(vorb *f)
  function start_page_no_capturepattern (line 1403) | static int start_page_no_capturepattern(vorb *f)
  function start_page (line 1456) | static int start_page(vorb *f)
  function start_packet (line 1462) | static int start_packet(vorb *f)
  function maybe_start_packet (line 1477) | static int maybe_start_packet(vorb *f)
  function next_segment (line 1498) | static int next_segment(vorb *f)
  function get8_packet_raw (line 1522) | static int get8_packet_raw(vorb *f)
  function get8_packet (line 1534) | static int get8_packet(vorb *f)
  function flush_packet (line 1541) | static void flush_packet(vorb *f)
  function uint32 (line 1548) | static uint32 get_bits(vorb *f, int n)
  function prep_huffman (line 1582) | static __forceinline void prep_huffman(vorb *f)
  function codebook_decode_scalar_raw (line 1604) | static int codebook_decode_scalar_raw(vorb *f, Codebook *c)
  function codebook_decode_scalar (line 1681) | static int codebook_decode_scalar(vorb *f, Codebook *c)
  function codebook_decode_start (line 1723) | static int codebook_decode_start(vorb *f, Codebook *c)
  function codebook_decode (line 1743) | static int codebook_decode(vorb *f, Codebook *c, float *output, int len)
  function codebook_decode_step (line 1782) | static int codebook_decode_step(vorb *f, Codebook *c, float *output, int...
  function codebook_decode_deinterleave_repeat (line 1813) | static int codebook_decode_deinterleave_repeat(vorb *f, Codebook *c, flo...
  function predict_point (line 1883) | static int predict_point(int x, int x0, int x1, int y0, int y1)
  function draw_line (line 1982) | static __forceinline void draw_line(float *output, int x0, int y0, int x...
  function residue_decode (line 2031) | static int residue_decode(vorb *f, Codebook *book, float *target, int of...
  function decode_residue (line 2052) | static void decode_residue(vorb *f, float *residue_buffers[], int ch, in...
  function inverse_mdct_slow (line 2277) | void inverse_mdct_slow(float *buffer, int n)
  function inverse_mdct_slow (line 2300) | void inverse_mdct_slow(float *buffer, int n, vorb *f, int blocktype)
  function dct_iv_slow (line 2321) | void dct_iv_slow(float *buffer, int n)
  function inverse_mdct_slow (line 2338) | void inverse_mdct_slow(float *buffer, int n, vorb *f, int blocktype)
  type mdct_lookup (line 2359) | typedef struct
  function inverse_mdct (line 2376) | void inverse_mdct(float *buffer, int n, vorb *f, int blocktype)
  function imdct_step3_iter0_loop (line 2396) | static void imdct_step3_iter0_loop(int n, float *e, int i_off, int k_off...
  function imdct_step3_inner_r_loop (line 2441) | static void imdct_step3_inner_r_loop(int lim, float *e, int d0, int k_of...
  function imdct_step3_inner_s_loop (line 2491) | static void imdct_step3_inner_s_loop(int n, float *e, int i_off, int k_o...
  function iter_54 (line 2542) | static __forceinline void iter_54(float *z)
  function imdct_step3_inner_s_loop_ld654 (line 2574) | static void imdct_step3_inner_s_loop_ld654(int n, float *e, int i_off, f...
  function inverse_mdct (line 2618) | static void inverse_mdct(float *buffer, int n, vorb *f, int blocktype)
  function inverse_mdct_naive (line 2922) | void inverse_mdct_naive(float *buffer, int n)
  type int16 (line 3058) | typedef int16 YTYPE;
  type YTYPE (line 3060) | typedef int YTYPE;
  function do_floor (line 3062) | static int do_floor(vorb *f, Mapping *map, int i, int n, float *target, ...
  function vorbis_decode_initial (line 3113) | static int vorbis_decode_initial(vorb *f, int *p_left_start, int *p_left...
  function vorbis_decode_packet_rest (line 3169) | static int vorbis_decode_packet_rest(vorb *f, int *len, Mode *m, int lef...
  function vorbis_decode_packet (line 3437) | static int vorbis_decode_packet(vorb *f, int *len, int *p_left, int *p_r...
  function vorbis_finish_frame (line 3444) | static int vorbis_finish_frame(stb_vorbis *f, int len, int left, int right)
  function vorbis_pump_first_frame (line 3496) | static int vorbis_pump_first_frame(stb_vorbis *f)
  function is_whole_packet_present (line 3506) | static int is_whole_packet_present(stb_vorbis *f, int end_page)
  function start_decoder (line 3571) | static int start_decoder(vorb *f)
  function vorbis_deinit (line 4141) | static void vorbis_deinit(stb_vorbis *p)
  function stb_vorbis_close (line 4197) | void stb_vorbis_close(stb_vorbis *p)
  function vorbis_init (line 4204) | static void vorbis_init(stb_vorbis *p, const stb_vorbis_alloc *z)
  function stb_vorbis_get_sample_offset (line 4223) | int stb_vorbis_get_sample_offset(stb_vorbis *f)
  function stb_vorbis_info (line 4231) | stb_vorbis_info stb_vorbis_get_info(stb_vorbis *f)
  function stb_vorbis_get_error (line 4243) | int stb_vorbis_get_error(stb_vorbis *f)
  function stb_vorbis (line 4250) | static stb_vorbis * vorbis_alloc(stb_vorbis *f)
  function stb_vorbis_flush_pushdata (line 4258) | void stb_vorbis_flush_pushdata(stb_vorbis *f)
  function vorbis_search_for_page_pushdata (line 4270) | static int vorbis_search_for_page_pushdata(vorb *f, uint8 *data, int dat...
  function stb_vorbis_decode_frame_pushdata (line 4361) | int stb_vorbis_decode_frame_pushdata(
  function stb_vorbis (line 4431) | stb_vorbis *stb_vorbis_open_pushdata(
  function stb_vorbis_get_file_offset (line 4461) | unsigned int stb_vorbis_get_file_offset(stb_vorbis *f)
  function uint32 (line 4477) | static uint32 vorbis_find_page(stb_vorbis *f, uint32 *end, uint32 *last)
  function get_seek_page_info (line 4559) | static int get_seek_page_info(stb_vorbis *f, ProbedPage *z)
  function go_to_page_before (line 4591) | static int go_to_page_before(stb_vorbis *f, unsigned int limit_offset)
  function seek_to_sample_coarse (line 4616) | static int seek_to_sample_coarse(stb_vorbis *f, uint32 sample_number)
  function peek_decode_initial (line 4766) | static int peek_decode_initial(vorb *f, int *p_left_start, int *p_left_e...
  function stb_vorbis_seek_frame (line 4791) | int stb_vorbis_seek_frame(stb_vorbis *f, unsigned int sample_number)
  function stb_vorbis_seek (line 4830) | int stb_vorbis_seek(stb_vorbis *f, unsigned int sample_number)
  function stb_vorbis_seek_start (line 4847) | int stb_vorbis_seek_start(stb_vorbis *f)
  function stb_vorbis_stream_length_in_samples (line 4857) | unsigned int stb_vorbis_stream_length_in_samples(stb_vorbis *f)
  function stb_vorbis_stream_length_in_seconds (line 4932) | float stb_vorbis_stream_length_in_seconds(stb_vorbis *f)
  function stb_vorbis_get_frame_float (line 4939) | int stb_vorbis_get_frame_float(stb_vorbis *f, int *channels, float ***ou...
  function stb_vorbis (line 4963) | stb_vorbis * stb_vorbis_open_file_section(FILE *file, int close_on_free,...
  function stb_vorbis (line 4984) | stb_vorbis * stb_vorbis_open_file(FILE *file, int close_on_free, int *er...
  function stb_vorbis (line 4994) | stb_vorbis * stb_vorbis_open_filename(const char *filename, int *error, ...
  function stb_vorbis (line 5010) | stb_vorbis * stb_vorbis_open_memory(const unsigned char *data, int len, ...
  type float_conv (line 5056) | typedef union {
  function copy_samples (line 5073) | static void copy_samples(short *dest, float *src, int len)
  function compute_samples (line 5086) | static void compute_samples(int mask, short *output, int num_c, float **...
  function compute_stereo_samples (line 5111) | static void compute_stereo_samples(short *output, int num_c, float **dat...
  function convert_samples_short (line 5150) | static void convert_samples_short(int buf_c, short **buffer, int b_offse...
  function stb_vorbis_get_frame_short (line 5166) | int stb_vorbis_get_frame_short(stb_vorbis *f, int num_c, short **buffer,...
  function convert_channels_short_interleaved (line 5176) | static void convert_channels_short_interleaved(int buf_c, short *buffer,...
  function stb_vorbis_get_frame_short_interleaved (line 5202) | int stb_vorbis_get_frame_short_interleaved(stb_vorbis *f, int num_c, sho...
  function stb_vorbis_get_samples_short_interleaved (line 5215) | int stb_vorbis_get_samples_short_interleaved(stb_vorbis *f, int channels...
  function stb_vorbis_get_samples_short (line 5236) | int stb_vorbis_get_samples_short(stb_vorbis *f, int channels, short **bu...
  function stb_vorbis_decode_filename (line 5256) | int stb_vorbis_decode_filename(const char *filename, int *channels, int ...
  function stb_vorbis_decode_memory (line 5296) | int stb_vorbis_decode_memory(const uint8 *mem, int len, int *channels, i...
  function stb_vorbis_get_samples_float_interleaved (line 5336) | int stb_vorbis_get_samples_float_interleaved(stb_vorbis *f, int channels...
  function stb_vorbis_get_samples_float (line 5363) | int stb_vorbis_get_samples_float(stb_vorbis *f, int channels, float **bu...

FILE: src/engine/config.cpp
  function Config_Save (line 35) | void Config_Save( const char *path ) {
  function Config_Load (line 68) | void Config_Load( const char *path ) {

FILE: src/engine/editor/ActorTreeWindow.h
  function class (line 22) | class ActorTreeWindow : public BaseWindow {

FILE: src/engine/editor/BaseWindow.h
  type ImVec2 (line 8) | struct ImVec2
  function class (line 10) | class BaseWindow {
  function GetStatus (line 23) | bool GetStatus() { return status_; }
  function SetWindowStatus (line 25) | void SetWindowStatus( bool status) { status_ = status; }
  function ToggleStatus (line 32) | void ToggleStatus() {
  function BaseWindow (line 40) | BaseWindow *parent_{nullptr};

FILE: src/engine/editor/ConsoleWindow.h
  function namespace (line 8) | namespace ohw {

FILE: src/engine/editor/ModelViewer.h
  type PLGFrameBuffer (line 22) | struct PLGFrameBuffer
  type PLGTexture (line 23) | struct PLGTexture
  function viewSkeleton (line 33) | bool viewSkeleton{ false };

FILE: src/engine/editor/NewGameWindow.h
  function playTrainingMission (line 30) | bool playTrainingMission{ true };

FILE: src/engine/editor/ParticleEditor.h
  type PLGFrameBuffer (line 26) | struct PLGFrameBuffer
  type PLGTexture (line 27) | struct PLGTexture
  function viewDebugNormals (line 36) | bool viewDebugNormals{ false };

FILE: src/engine/editor/TexturePicker.h
  function namespace (line 22) | namespace ohw {

FILE: src/engine/editor/TextureViewer.h
  function class (line 6) | class TextureViewer : public BaseWindow {
  function explicit (line 13) | explicit TextureViewer( const std::string &path ) {
  function ReloadTexture (line 28) | void ReloadTexture( PLGTextureFilter filter_mode ) {
  function Display (line 40) | void Display() override {
  function PLGTextureFilter (line 84) | PLGTextureFilter filterMode{ PLG_TEXTURE_FILTER_LINEAR };

FILE: src/engine/game/AAirship.h
  function Tick (line 15) | void Tick() override;
  function myTurnSpeed (line 26) | float myTurnSpeed{ 0.0f };

FILE: src/engine/game/AAnimatedModel.h
  function class (line 23) | class AAnimatedModel : public AModel {

FILE: src/engine/game/AHealthPickup.cpp
  class AHealthPickup (line 9) | class AHealthPickup : public AModel {
    method IsVisibleOnMinimap (line 18) | bool IsVisibleOnMinimap() const override { return true; }
    method GetMinimapIconStyle (line 19) | unsigned int GetMinimapIconStyle() const override { return MINIMAP_ICO...
    method PLColour (line 20) | PLColour GetMinimapIconColour() const override { return hei::Colour( 2...

FILE: src/engine/game/AItemPickup.cpp
  class AItemPickup (line 10) | class AItemPickup : public AModel {
    method IsVisibleOnMinimap (line 19) | bool IsVisibleOnMinimap() const override { return true; }
    method GetMinimapIconStyle (line 20) | unsigned int GetMinimapIconStyle() const override { return MINIMAP_ICO...
    method PLColour (line 21) | PLColour GetMinimapIconColour() const override { return hei::Colour( 2...

FILE: src/engine/game/AModel.h
  function class (line 22) | class AModel : public Actor {

FILE: src/engine/game/AParticle.cpp
  class AParticleEffect (line 24) | class AParticleEffect : public Actor {
    method ActorSpawn (line 34) | ActorSpawn Serialize() override { return ActorSpawn(); }

FILE: src/engine/game/APig.cpp
  function Player (line 174) | const Player *APig::GetPlayerOwner() const {
  function PLColour (line 236) | PLColour APig::GetMinimapIconColour() const {

FILE: src/engine/game/APig.h
  function GetClass (line 37) | unsigned int GetClass() { return myClass; }
  function GetPersonality (line 40) | unsigned int GetPersonality() { return myPersonality; }
  function PLColour (line 53) | PLColour GetMinimapIconColour() const override;

FILE: src/engine/game/ASprite.cpp
  class ASprite (line 11) | class ASprite : public Actor {

FILE: src/engine/game/AStaticModel.h
  function class (line 23) | class AStaticModel : public AModel {

FILE: src/engine/game/ATrotterWeapon.h
  function class (line 22) | class ATrotterWeapon : public AWeapon {

FILE: src/engine/game/AVehicle.cpp
  function Actor (line 56) | Actor *AVehicle::GetOccupant( unsigned int slot ) {

FILE: src/engine/game/AVehicle.h
  function class (line 22) | class AVehicle : public AModel {

FILE: src/engine/game/AWeapon.h
  function class (line 22) | class AWeapon : public AModel {

FILE: src/engine/game/Actor.cpp
  function PLVector3 (line 171) | PLVector3 Actor::CalculateForwardVector() {

FILE: src/engine/game/Actor.h
  type ActorFlag (line 8) | enum ActorFlag {
  type ActorEvent (line 16) | enum ActorEvent {
  type ActorSpawn (line 33) | struct ActorSpawn {
  function namespace (line 57) | namespace ohw {
  function virtual (line 74) | virtual const char *GetClassName() { return "Actor"; }
  function virtual (line 77) | virtual void Draw() {}
  function virtual (line 85) | virtual void SetHealth( int16_t health ) { myHealth = health; }
  function GetHealth (line 87) | int16_t GetHealth() { return myHealth; }
  function virtual (line 116) | virtual void HandleInput() {}
  function virtual (line 118) | virtual ActorSpawn Serialize() { return ActorSpawn(); }
  function virtual (line 121) | virtual void Activate() { isActive = true; }
  function virtual (line 122) | virtual void Deactivate() { isActive = false; }
  function virtual (line 123) | virtual bool IsActivated() { return isActive; }
  function Actor (line 129) | Actor *GetParent() { return parentActor; }
  function GetNumOfChildren (line 131) | unsigned int GetNumOfChildren() { return childActors.size(); }
  function PLCollisionAABB (line 144) | PLCollisionAABB *GetBoundingBox() { return &boundingBox; }
  function myHealth (line 180) | int16_t myHealth{ 0 }
  function Actor (line 186) | Actor *parentActor{ nullptr };

FILE: src/engine/game/ActorManager.cpp
  function Actor (line 15) | __attribute__((init_priority (1000)));

FILE: src/engine/game/ActorManager.h
  type std (line 22) | typedef std::set< Actor * > ActorSet;
  type ActorSpawnManifest (line 24) | struct ActorSpawnManifest {
  function class (line 31) | class ActorManager {

FILE: src/engine/game/GameManager.cpp
  function Player (line 141) | Player *ohw::GameManager::GetPlayerByIndex( unsigned int i ) const {
  function RegisterManifestInterface (line 271) | static void RegisterManifestInterface( const char *path, void *userPtr ) {
  function MapManifest (line 289) | MapManifest *ohw::GameManager::GetMapManifest( const std::string &name ) {
  function MapManifest (line 304) | MapManifest *ohw::GameManager::CreateManifest( const std::string &name ) {
  function CharacterClass (line 329) | const CharacterClass *ohw::GameManager::GetDefaultClass( const std::stri...

FILE: src/engine/game/GameManager.h
  type class (line 9) | enum class
  function PropertyOwner (line 44) | struct CharacterClass : PropertyOwner {
  type CharacterSlot (line 75) | struct CharacterSlot
  function CharacterStatus (line 104) | CharacterStatus status{ CharacterStatus::ALIVE };   // Pig's status (ali...
  function PropertyOwner (line 109) | struct PlayerTeam : PropertyOwner {
  type MapManifest (line 141) | struct MapManifest {
  type GameModeDescriptor (line 169) | struct GameModeDescriptor {
  function num_pigs (line 177) | unsigned int num_pigs{ 3 }
  function turn_time (line 178) | unsigned int turn_time{ 45 };
  type std (line 182) | typedef std::vector< Player * > PlayerPtrVector;
  type AudioSample (line 184) | struct AudioSample
  function class (line 191) | class GameManager {
  function ToggleSimulation (line 241) | inline void ToggleSimulation( bool paused ) {
  function simSteps (line 262) | unsigned int simSteps{ 0 }
  type class (line 267) | enum class
  function Map (line 284) | Map *currentMap{ nullptr };

FILE: src/engine/game/GameMode.cpp
  function Player (line 185) | Player *GameMode::GetCurrentPlayer() {
  function Actor (line 189) | Actor *GameMode::GetPossessedActor() {

FILE: src/engine/game/GameMode.h
  function namespace (line 22) | namespace ohw {

FILE: src/engine/game/GameModeInterface.h
  type PlayerTeam (line 20) | struct PlayerTeam
  function GetMaxSpectators (line 41) | virtual unsigned int GetMaxSpectators() const = 0;
  function GetTurnTime (line 50) | unsigned int GetTurnTime() { return num_turn_ticks; }
  function GetTurnTimeSeconds (line 51) | unsigned int GetTurnTimeSeconds() { return num_turn_ticks / TICKS_PER_SE...
  function GetMaxTurnTime (line 52) | unsigned int GetMaxTurnTime() { return max_turn_ticks; }
  function GetMaxTurnTimeSeconds (line 53) | unsigned int GetMaxTurnTimeSeconds() { return max_turn_ticks / TICKS_PER...
  function max_turn_ticks (line 64) | unsigned int max_turn_ticks{ 0 }
  function num_turn_ticks (line 65) | unsigned int num_turn_ticks{ 0 }
  function hasRoundStarted (line 68) | bool hasRoundStarted{ false };

FILE: src/engine/game/Inventory.cpp
  function InventoryItem (line 24) | InventoryItem *InventoryManager::GetItem( ItemIdentifier identifier ) {
  function PLGTexture (line 30) | PLGTexture *InventoryItem::GetInventoryIcon() {

FILE: src/engine/game/Inventory.h
  type class (line 6) | enum class
  function virtual (line 95) | virtual bool IsSelectable() { return false; }
  function class (line 106) | class InventoryManager {

FILE: src/engine/game/Player.cpp
  function Actor (line 50) | Actor* Player::GetCurrentChild() {

FILE: src/engine/game/Player.h
  function PlayerType (line 20) | enum class PlayerType {

FILE: src/engine/graphics/BitmapFont.h
  function GetCharacterWidth (line 17) | inline unsigned int GetCharacterWidth( unsigned char index ) const {
  function GetCharacterHeight (line 26) | inline unsigned int GetCharacterHeight( unsigned char index ) const {
  type TableIndex (line 35) | struct TableIndex {
  function numChars (line 50) | unsigned int numChars{ 0 }
  function SharedTextureResourcePointer (line 52) | SharedTextureResourcePointer texture{ nullptr };

FILE: src/engine/graphics/Camera.h
  function namespace (line 8) | namespace ohw {

FILE: src/engine/graphics/Display.cpp
  function Display_GetFramesCount (line 18) | void Display_GetFramesCount( unsigned int *fps, unsigned int *ms ) {
  function Display_DrawMap (line 34) | static void Display_DrawMap() {

FILE: src/engine/graphics/Display.h
  type DebugLine (line 38) | struct DebugLine {
  function numDrawTicks (line 44) | unsigned int numDrawTicks{ 0 }
  function lastDrawTick (line 45) | unsigned int lastDrawTick{ 0 }
  function lastDrawMS (line 46) | unsigned int lastDrawMS{ 0 }
  function myDesiredScreen (line 48) | int myDesiredScreen{ 0 }
  function SDL_Window (line 50) | SDL_Window *myWindow{ nullptr };

FILE: src/engine/graphics/ParticleEffect.h
  function namespace (line 20) | namespace ohw {

FILE: src/engine/graphics/ParticleEmitter.h
  function SetGravity (line 33) | void SetGravity( float gravity ) { myGravity = gravity; }
  function GetGravity (line 34) | float GetGravity() { return myGravity; }
  function maxParticles (line 63) | unsigned int maxParticles{ 0 }
  type class (line 65) | enum class
  type class (line 72) | enum class
  function BlendType (line 80) | BlendType myBlendType{ BlendType::ADDITIVE };

FILE: src/engine/graphics/PostProcess.h
  function namespace (line 20) | namespace ohw {

FILE: src/engine/graphics/ShaderManager.cpp
  function Shaders_ValidateDefault (line 17) | static void Shaders_ValidateDefault() {
  function Shaders_CacheShaderProgram (line 39) | static void Shaders_CacheShaderProgram( const char *path, void *userData...
  function Shaders_ClearPrograms (line 71) | static void Shaders_ClearPrograms() {
  function Shaders_CachePrograms (line 80) | static void Shaders_CachePrograms() {
  function Cmd_ListShaderPrograms (line 88) | static void Cmd_ListShaderPrograms( unsigned int argc, char *argv[] ) {
  function Cmd_RebuildShaderProgramCache (line 100) | static void Cmd_RebuildShaderProgramCache( unsigned int argc, char *argv...
  function Cmd_RebuildShaderPrograms (line 107) | static void Cmd_RebuildShaderPrograms( unsigned int argc, char *argv[] ) {
  function Cmd_RebuildShaderProgram (line 122) | static void Cmd_RebuildShaderProgram( unsigned int argc, char *argv[] ) {
  function Shaders_Initialize (line 149) | void Shaders_Initialize() {
  function Shaders_Shutdown (line 158) | void Shaders_Shutdown() {
  function Shaders_SetProgramByName (line 172) | void Shaders_SetProgramByName( const std::string &name ) {

FILE: src/engine/graphics/ShaderManager.h
  function namespace (line 8) | namespace ohw {

FILE: src/engine/graphics/Sprite.h
  type SpriteType (line 10) | enum SpriteType {
  function GetScale (line 17) | float GetScale() { return scale_; }
  function PLVector3 (line 20) | PLVector3 GetPosition() { return position_; }
  function PLVector3 (line 23) | PLVector3 GetAngles() { return angles_; }
  function PLColour (line 26) | PLColour GetColour() { return colour_; }
  function current_frame_ (line 46) | unsigned int current_frame_{ 0 }
  function frame_delay_ (line 47) | double frame_delay_{ 0 }
  function PLGMesh (line 49) | PLGMesh *mesh_{ nullptr };

FILE: src/engine/graphics/TextureAtlas.h
  function PLGTexture (line 20) | PLGTexture *GetTexture() { return texture_; }
  type Index (line 24) | struct Index {
  function width_ (line 29) | int width_{ 512 };

FILE: src/engine/graphics/mesh.cpp
  function Mesh_GenerateFragmentedMeshNormals (line 9) | void Mesh_GenerateFragmentedMeshNormals( const std::list< PLGMesh * > &m...

FILE: src/engine/graphics/particles.h
  function Tick (line 28) | void Tick() {}
  function PLVector3 (line 34) | PLVector3 myScale{ 0.0f, 0.0f, 0.0f };

FILE: src/engine/graphics/video.cpp
  type VideoState (line 35) | struct VideoState {
  function PlayVideoCommand (line 57) | void PlayVideoCommand( unsigned int argc, char *argv[] ) {
  function Video_Initialize (line 71) | void Video_Initialize( void ) {
  function Video_Shutdown (line 83) | void Video_Shutdown( void ) {
  function Video_ClearQueue (line 89) | void Video_ClearQueue( void ) {
  function Video_QueuePlayback (line 95) | void Video_QueuePlayback( const char **videos, unsigned int num_videos ) {
  function Video_Play (line 125) | void Video_Play( const char *path ) {
  function Video_SkipCurrent (line 137) | void Video_SkipCurrent( void ) {
  function ProcessVideo (line 164) | static void ProcessVideo(void) {
  function Video_Draw (line 203) | void Video_Draw( void ) {

FILE: src/engine/imgui_layer.cpp
  function ConsoleOutputCallback (line 33) | static void ConsoleOutputCallback( int level, const char *msg, PLColour ...
  function ImGuiImpl_Setup (line 52) | void ImGuiImpl_Setup() {
  function ImGuiImpl_Shutdown (line 129) | void ImGuiImpl_Shutdown() {
  function ImGuiImpl_SetupFrame (line 134) | void ImGuiImpl_SetupFrame() {
  function ImGuiImpl_Tick (line 148) | void ImGuiImpl_Tick( void ) {
  function ImGuiImpl_Draw (line 162) | void ImGuiImpl_Draw( void ) {
  function UI_DisplaySettings (line 174) | void UI_DisplaySettings() {
  type FileDescriptor (line 279) | struct FileDescriptor {
  function AddFilePath (line 286) | void AddFilePath( const char *path, void *userData ) {
  function ScanDirectories (line 331) | void ScanDirectories() {
  function UI_DisplayFileBox (line 336) | void UI_DisplayFileBox() {
  class QuitWindow (line 434) | class QuitWindow : public BaseWindow {
    method Display (line 436) | void Display() override {
  function UI_DisplayDebugMenu (line 463) | void UI_DisplayDebugMenu() {
  function ImGuiImpl_RegisterWindow (line 671) | void ImGuiImpl_RegisterWindow( BaseWindow *window ) {
  function ImGuiImpl_HandleEvent (line 675) | bool ImGuiImpl_HandleEvent( const SDL_Event &event ) {

FILE: src/engine/loaders/FacLoader.cpp
  type FacQuad (line 11) | struct FacQuad {
  function FacQuad (line 19) | static FacQuad *Fac_LoadQuads( PLFile *filePtr, unsigned int numQuads ) {
  function FacTriangle (line 45) | static FacTriangle *Fac_LoadTriangles( PLFile *filePtr, unsigned int num...
  function FacHandle (line 72) | FacHandle *Fac_LoadFile( const char *path ) {
  function Fac_WriteFile (line 165) | void Fac_WriteFile( FacHandle *handle, const char *path ) {
  function Fac_DestroyHandle (line 216) | void Fac_DestroyHandle( FacHandle *handle ) {

FILE: src/engine/loaders/FacLoader.h
  type FacTriangle (line 22) | struct FacTriangle {
  type FacTextureIndex (line 31) | typedef struct FacTextureIndex {
  type FacHandle (line 35) | typedef struct FacHandle {

FILE: src/engine/loaders/HirLoader.cpp
  function HirHandle (line 10) | HirHandle *Hir_LoadFile( const char *path ) {
  function Hir_DestroyHandle (line 69) | void Hir_DestroyHandle( HirHandle *handle ) {

FILE: src/engine/loaders/Loaders.h
  type HirSkeletonBone (line 34) | typedef enum HirSkeletonBone {
  type HirHandle (line 58) | typedef struct HirHandle {
  type MinHandle (line 65) | typedef struct MinHandle {

FILE: src/engine/loaders/MinLoader.cpp
  function MinHandle (line 10) | MinHandle *Min_LoadFile( const char *path ) {

FILE: src/engine/loaders/No2Loader.cpp
  function No2Handle (line 17) | No2Handle *No2_LoadFile( const char *path ) {
  function No2_DestroyHandle (line 55) | void No2_DestroyHandle( No2Handle *handle ) {

FILE: src/engine/loaders/No2Loader.h
  type No2Handle (line 22) | struct No2Handle {

FILE: src/engine/loaders/VtxLoader.cpp
  function VtxHandle (line 11) | VtxHandle *Vtx_LoadFile( const char *path ) {
  function Vtx_DestroyHandle (line 56) | void Vtx_DestroyHandle( VtxHandle *handle ) {

FILE: src/engine/loaders/VtxLoader.h
  type VtxHandle (line 10) | struct VtxHandle {

FILE: src/engine/loaders/WaveFrontReader.h
  function class (line 24) | class WaveFrontReader {
  function LoadMTL (line 302) | bool LoadMTL(const std::string &szFilePath) {
  function Clear (line 413) | void Clear() {
  type Material (line 423) | struct Material {
  function std (line 487) | static std::string LoadTexturePath(std::stringstream &InFile) {

FILE: src/engine/model.cpp
  function CacheModelData (line 83) | void CacheModelData() {
  function DEBUGDrawSkeleton (line 218) | void DEBUGDrawSkeleton() {

FILE: src/engine/model.h
  function AnimationIndex (line 23) | enum class AnimationIndex {

FILE: src/engine/physics/PhysicsInterface.h
  type class (line 22) | enum class
  function class (line 43) | class PhysicsInterface {

FILE: src/engine/script/JsonReader.cpp
  function PLVector4 (line 162) | PLVector4 JsonReader::GetVector4Property( const std::string &property, P...
  function PLVector3 (line 187) | PLVector3 JsonReader::GetVector3Property( const std::string &property, P...

FILE: src/engine/script/JsonReader.h
  function class (line 6) | class JsonReader {

FILE: src/engine/script/duktape-2.2.0/duk_config.h
  type duk_uint8_t (line 1612) | typedef uint8_t duk_uint8_t;
  type duk_int8_t (line 1613) | typedef int8_t duk_int8_t;
  type duk_uint16_t (line 1614) | typedef uint16_t duk_uint16_t;
  type duk_int16_t (line 1615) | typedef int16_t duk_int16_t;
  type duk_uint32_t (line 1616) | typedef uint32_t duk_uint32_t;
  type duk_int32_t (line 1617) | typedef int32_t duk_int32_t;
  type duk_uint64_t (line 1618) | typedef uint64_t duk_uint64_t;
  type duk_int64_t (line 1619) | typedef int64_t duk_int64_t;
  type uint_least8_t (line 1620) | typedef uint_least8_t duk_uint_least8_t;
  type int_least8_t (line 1621) | typedef int_least8_t duk_int_least8_t;
  type uint_least16_t (line 1622) | typedef uint_least16_t duk_uint_least16_t;
  type int_least16_t (line 1623) | typedef int_least16_t duk_int_least16_t;
  type uint_least32_t (line 1624) | typedef uint_least32_t duk_uint_least32_t;
  type int_least32_t (line 1625) | typedef int_least32_t duk_int_least32_t;
  type uint_least64_t (line 1626) | typedef uint_least64_t duk_uint_least64_t;
  type int_least64_t (line 1627) | typedef int_least64_t duk_int_least64_t;
  type uint_fast8_t (line 1628) | typedef uint_fast8_t duk_uint_fast8_t;
  type int_fast8_t (line 1629) | typedef int_fast8_t duk_int_fast8_t;
  type uint_fast16_t (line 1630) | typedef uint_fast16_t duk_uint_fast16_t;
  type int_fast16_t (line 1631) | typedef int_fast16_t duk_int_fast16_t;
  type uint_fast32_t (line 1632) | typedef uint_fast32_t duk_uint_fast32_t;
  type int_fast32_t (line 1633) | typedef int_fast32_t duk_int_fast32_t;
  type uint_fast64_t (line 1634) | typedef uint_fast64_t duk_uint_fast64_t;
  type int_fast64_t (line 1635) | typedef int_fast64_t duk_int_fast64_t;
  type duk_uintptr_t (line 1636) | typedef uintptr_t duk_uintptr_t;
  type duk_intptr_t (line 1637) | typedef intptr_t duk_intptr_t;
  type uintmax_t (line 1638) | typedef uintmax_t duk_uintmax_t;
  type intmax_t (line 1639) | typedef intmax_t duk_intmax_t;
  type duk_uint8_t (line 1719) | typedef unsigned char duk_uint8_t;
  type duk_int8_t (line 1720) | typedef signed char duk_int8_t;
  type duk_uint16_t (line 1726) | typedef unsigned short duk_uint16_t;
  type duk_int16_t (line 1727) | typedef signed short duk_int16_t;
  type duk_uint16_t (line 1730) | typedef unsigned int duk_uint16_t;
  type duk_int16_t (line 1731) | typedef signed int duk_int16_t;
  type duk_uint32_t (line 1737) | typedef unsigned int duk_uint32_t;
  type duk_int32_t (line 1738) | typedef signed int duk_int32_t;
  type duk_uint32_t (line 1741) | typedef unsigned long duk_uint32_t;
  type duk_int32_t (line 1742) | typedef signed long duk_int32_t;
  type duk_uint64_t (line 1764) | typedef unsigned long duk_uint64_t;
  type duk_int64_t (line 1765) | typedef signed long duk_int64_t;
  type duk_uint64_t (line 1771) | typedef unsigned long long duk_uint64_t;
  type duk_int64_t (line 1772) | typedef signed long long duk_int64_t;
  type duk_uint64_t (line 1778) | typedef unsigned long long duk_uint64_t;
  type duk_int64_t (line 1779) | typedef signed long long duk_int64_t;
  type duk_uint64_t (line 1785) | typedef unsigned long long duk_uint64_t;
  type duk_int64_t (line 1786) | typedef signed long long duk_int64_t;
  type duk_uint64_t (line 1791) | typedef unsigned long duk_uint64_t;
  type duk_int64_t (line 1792) | typedef signed long duk_int64_t;
  type duk_uint64_t (line 1796) | typedef unsigned __int64 duk_uint64_t;
  type duk_int64_t (line 1797) | typedef signed __int64 duk_int64_t;
  type duk_uint8_t (line 1803) | typedef duk_uint8_t duk_uint_least8_t;
  type duk_int8_t (line 1804) | typedef duk_int8_t duk_int_least8_t;
  type duk_uint16_t (line 1805) | typedef duk_uint16_t duk_uint_least16_t;
  type duk_int16_t (line 1806) | typedef duk_int16_t duk_int_least16_t;
  type duk_uint32_t (line 1807) | typedef duk_uint32_t duk_uint_least32_t;
  type duk_int32_t (line 1808) | typedef duk_int32_t duk_int_least32_t;
  type duk_uint8_t (line 1809) | typedef duk_uint8_t duk_uint_fast8_t;
  type duk_int8_t (line 1810) | typedef duk_int8_t duk_int_fast8_t;
  type duk_uint16_t (line 1811) | typedef duk_uint16_t duk_uint_fast16_t;
  type duk_int16_t (line 1812) | typedef duk_int16_t duk_int_fast16_t;
  type duk_uint32_t (line 1813) | typedef duk_uint32_t duk_uint_fast32_t;
  type duk_int32_t (line 1814) | typedef duk_int32_t duk_int_fast32_t;
  type duk_uint64_t (line 1816) | typedef duk_uint64_t duk_uint_least64_t;
  type duk_int64_t (line 1817) | typedef duk_int64_t duk_int_least64_t;
  type duk_uint64_t (line 1818) | typedef duk_uint64_t duk_uint_fast64_t;
  type duk_int64_t (line 1819) | typedef duk_int64_t duk_int_fast64_t;
  type duk_uint64_t (line 1822) | typedef duk_uint64_t duk_uintmax_t;
  type duk_int64_t (line 1823) | typedef duk_int64_t duk_intmax_t;
  type duk_uint32_t (line 1825) | typedef duk_uint32_t duk_uintmax_t;
  type duk_int32_t (line 1826) | typedef duk_int32_t duk_intmax_t;
  type duk_int32_t (line 1919) | typedef duk_int32_t duk_intptr_t;
  type duk_uint32_t (line 1920) | typedef duk_uint32_t duk_uintptr_t;
  type duk_int64_t (line 1926) | typedef duk_int64_t duk_intptr_t;
  type duk_uint64_t (line 1927) | typedef duk_uint64_t duk_uintptr_t;
  type duk_size_t (line 1952) | typedef size_t duk_size_t;
  type duk_ptrdiff_t (line 1953) | typedef ptrdiff_t duk_ptrdiff_t;
  type duk_int_t (line 1960) | typedef int duk_int_t;
  type duk_uint_t (line 1961) | typedef unsigned int duk_uint_t;
  type duk_int_fast32_t (line 1967) | typedef duk_int_fast32_t duk_int_t;
  type duk_uint_fast32_t (line 1968) | typedef duk_uint_fast32_t duk_uint_t;
  type duk_int_fast32_t (line 1979) | typedef duk_int_fast32_t duk_int_fast_t;
  type duk_uint_fast32_t (line 1980) | typedef duk_uint_fast32_t duk_uint_fast_t;
  type duk_small_int_t (line 1989) | typedef int duk_small_int_t;
  type duk_small_uint_t (line 1990) | typedef unsigned int duk_small_uint_t;
  type duk_int_fast16_t (line 1999) | typedef duk_int_fast16_t duk_small_int_fast_t;
  type duk_uint_fast16_t (line 2000) | typedef duk_uint_fast16_t duk_small_uint_fast_t;
  type duk_small_uint_t (line 2007) | typedef duk_small_uint_t duk_bool_t;
  type duk_int_t (line 2012) | typedef duk_int_t duk_idx_t;
  type duk_uint_t (line 2017) | typedef duk_uint_t duk_uidx_t;
  type duk_uint_t (line 2024) | typedef duk_uint_t duk_uarridx_t;
  type duk_small_int_t (line 2032) | typedef duk_small_int_t duk_ret_t;
  type duk_int_t (line 2039) | typedef duk_int_t duk_errcode_t;
  type duk_int_t (line 2050) | typedef duk_int_t duk_codepoint_t;
  type duk_uint_t (line 2051) | typedef duk_uint_t duk_ucodepoint_t;
  type duk_float_t (line 2058) | typedef float duk_float_t;
  type duk_double_t (line 2059) | typedef double duk_double_t;
  type duk_context (line 2082) | typedef struct duk_hthread duk_context;

FILE: src/engine/script/duktape-2.2.0/duk_module_duktape.c
  function duk__resolve_module_id (line 31) | static void duk__resolve_module_id(duk_context *ctx, const char *req_id,...
  function duk_ret_t (line 199) | static duk_ret_t duk__require(duk_context *ctx) {
  function duk_module_duktape_init (line 439) | void duk_module_duktape_init(duk_context *ctx) {

FILE: src/engine/script/duktape-2.2.0/duktape.c
  type duk_double_union (line 260) | typedef union duk_double_union duk_double_union;
  type duk_jmpbuf (line 659) | struct duk_jmpbuf {
  type duk_jmpbuf (line 663) | struct duk_jmpbuf {
  function class (line 683) | class duk_internal_exception {
  type duk_jmpbuf (line 705) | struct duk_jmpbuf
  type duk_heaphdr (line 709) | struct duk_heaphdr
  type duk_heaphdr_string (line 710) | struct duk_heaphdr_string
  type duk_harray (line 711) | struct duk_harray
  type duk_hstring (line 712) | struct duk_hstring
  type duk_hstring_external (line 713) | struct duk_hstring_external
  type duk_hobject (line 714) | struct duk_hobject
  type duk_hcompfunc (line 715) | struct duk_hcompfunc
  type duk_hnatfunc (line 716) | struct duk_hnatfunc
  type duk_hboundfunc (line 717) | struct duk_hboundfunc
  type duk_hthread (line 718) | struct duk_hthread
  type duk_hbufobj (line 719) | struct duk_hbufobj
  type duk_hdecenv (line 720) | struct duk_hdecenv
  type duk_hobjenv (line 721) | struct duk_hobjenv
  type duk_hproxy (line 722) | struct duk_hproxy
  type duk_hbuffer (line 723) | struct duk_hbuffer
  type duk_hbuffer_fixed (line 724) | struct duk_hbuffer_fixed
  type duk_hbuffer_dynamic (line 725) | struct duk_hbuffer_dynamic
  type duk_hbuffer_external (line 726) | struct duk_hbuffer_external
  type duk_propaccessor (line 728) | struct duk_propaccessor
  type duk_propdesc (line 730) | struct duk_propdesc
  type duk_heap (line 732) | struct duk_heap
  type duk_breakpoint (line 733) | struct duk_breakpoint
  type duk_activation (line 735) | struct duk_activation
  type duk_catcher (line 736) | struct duk_catcher
  type duk_strcache (line 737) | struct duk_strcache
  type duk_ljstate (line 738) | struct duk_ljstate
  type duk_strtab_entry (line 739) | struct duk_strtab_entry
  type duk_fixedbuffer (line 742) | struct duk_fixedbuffer
  type duk_bitdecoder_ctx (line 745) | struct duk_bitdecoder_ctx
  type duk_bitencoder_ctx (line 746) | struct duk_bitencoder_ctx
  type duk_bufwriter_ctx (line 747) | struct duk_bufwriter_ctx
  type duk_token (line 749) | struct duk_token
  type duk_re_token (line 750) | struct duk_re_token
  type duk_lexer_point (line 751) | struct duk_lexer_point
  type duk_lexer_ctx (line 752) | struct duk_lexer_ctx
  type duk_lexer_codepoint (line 753) | struct duk_lexer_codepoint
  type duk_compiler_instr (line 755) | struct duk_compiler_instr
  type duk_compiler_func (line 756) | struct duk_compiler_func
  type duk_compiler_ctx (line 757) | struct duk_compiler_ctx
  type duk_re_matcher_ctx (line 759) | struct duk_re_matcher_ctx
  type duk_re_compiler_ctx (line 760) | struct duk_re_compiler_ctx
  type duk_jmpbuf (line 765) | typedef struct duk_jmpbuf duk_jmpbuf;
  type duk_heaphdr (line 769) | typedef struct duk_heaphdr duk_heaphdr;
  type duk_heaphdr_string (line 770) | typedef struct duk_heaphdr_string duk_heaphdr_string;
  type duk_harray (line 771) | typedef struct duk_harray duk_harray;
  type duk_hstring (line 772) | typedef struct duk_hstring duk_hstring;
  type duk_hstring_external (line 773) | typedef struct duk_hstring_external duk_hstring_external;
  type duk_hobject (line 774) | typedef struct duk_hobject duk_hobject;
  type duk_hcompfunc (line 775) | typedef struct duk_hcompfunc duk_hcompfunc;
  type duk_hnatfunc (line 776) | typedef struct duk_hnatfunc duk_hnatfunc;
  type duk_hboundfunc (line 777) | typedef struct duk_hboundfunc duk_hboundfunc;
  type duk_hthread (line 778) | typedef struct duk_hthread duk_hthread;
  type duk_hbufobj (line 779) | typedef struct duk_hbufobj duk_hbufobj;
  type duk_hdecenv (line 780) | typedef struct duk_hdecenv duk_hdecenv;
  type duk_hobjenv (line 781) | typedef struct duk_hobjenv duk_hobjenv;
  type duk_hproxy (line 782) | typedef struct duk_hproxy duk_hproxy;
  type duk_hbuffer (line 783) | typedef struct duk_hbuffer duk_hbuffer;
  type duk_hbuffer_fixed (line 784) | typedef struct duk_hbuffer_fixed duk_hbuffer_fixed;
  type duk_hbuffer_dynamic (line 785) | typedef struct duk_hbuffer_dynamic duk_hbuffer_dynamic;
  type duk_hbuffer_external (line 786) | typedef struct duk_hbuffer_external duk_hbuffer_external;
  type duk_propaccessor (line 788) | typedef struct duk_propaccessor duk_propaccessor;
  type duk_propvalue (line 789) | typedef union duk_propvalue duk_propvalue;
  type duk_propdesc (line 790) | typedef struct duk_propdesc duk_propdesc;
  type duk_heap (line 792) | typedef struct duk_heap duk_heap;
  type duk_breakpoint (line 793) | typedef struct duk_breakpoint duk_breakpoint;
  type duk_activation (line 795) | typedef struct duk_activation duk_activation;
  type duk_catcher (line 796) | typedef struct duk_catcher duk_catcher;
  type duk_strcache (line 797) | typedef struct duk_strcache duk_strcache;
  type duk_ljstate (line 798) | typedef struct duk_ljstate duk_ljstate;
  type duk_strtab_entry (line 799) | typedef struct duk_strtab_entry duk_strtab_entry;
  type duk_fixedbuffer (line 802) | typedef struct duk_fixedbuffer duk_fixedbuffer;
  type duk_bitdecoder_ctx (line 805) | typedef struct duk_bitdecoder_ctx duk_bitdecoder_ctx;
  type duk_bitencoder_ctx (line 806) | typedef struct duk_bitencoder_ctx duk_bitencoder_ctx;
  type duk_bufwriter_ctx (line 807) | typedef struct duk_bufwriter_ctx duk_bufwriter_ctx;
  type duk_token (line 809) | typedef struct duk_token duk_token;
  type duk_re_token (line 810) | typedef struct duk_re_token duk_re_token;
  type duk_lexer_point (line 811) | typedef struct duk_lexer_point duk_lexer_point;
  type duk_lexer_ctx (line 812) | typedef struct duk_lexer_ctx duk_lexer_ctx;
  type duk_lexer_codepoint (line 813) | typedef struct duk_lexer_codepoint duk_lexer_codepoint;
  type duk_compiler_instr (line 815) | typedef struct duk_compiler_instr duk_compiler_instr;
  type duk_compiler_func (line 816) | typedef struct duk_compiler_func duk_compiler_func;
  type duk_compiler_ctx (line 817) | typedef struct duk_compiler_ctx duk_compiler_ctx;
  type duk_re_matcher_ctx (line 819) | typedef struct duk_re_matcher_ctx duk_re_matcher_ctx;
  type duk_re_compiler_ctx (line 820) | typedef struct duk_re_compiler_ctx duk_re_compiler_ctx;
  type duk_tval (line 859) | typedef union duk_double_union duk_tval;
  type duk_tval_unused (line 860) | typedef struct {
  type duk_tval (line 1124) | typedef struct duk_tval_struct duk_tval;
  type duk_tval_struct (line 1126) | struct duk_tval_struct {
  type duk_tval_unused (line 1147) | typedef struct {
  type duk_bitdecoder_ctx (line 2274) | struct duk_bitdecoder_ctx {
  type duk_bitencoder_ctx (line 2288) | struct duk_bitencoder_ctx {
  type duk_bufwriter_ctx (line 2359) | struct duk_bufwriter_ctx {
  type duk_uint32_t (line 3048) | typedef duk_uint32_t duk_instr_t;
  type duk_token (line 3802) | struct duk_token {
  type duk_re_token (line 3818) | struct duk_re_token {
  type duk_lexer_point (line 3827) | struct duk_lexer_point {
  type duk_lexer_codepoint (line 3833) | struct duk_lexer_codepoint {
  type duk_lexer_ctx (line 3840) | struct duk_lexer_ctx {
  type duk_int32_t (line 3932) | typedef duk_int32_t duk_regconst_t;
  type duk_ispec (line 3934) | typedef struct {
  type duk_ivalue (line 3940) | typedef struct {
  type duk_compiler_instr (line 3961) | struct duk_compiler_instr {
  type duk_labelinfo (line 3979) | typedef struct {
  type duk_compiler_func (line 3997) | struct duk_compiler_func {
  type duk_compiler_ctx (line 4080) | struct duk_compiler_ctx {
  type duk_re_matcher_ctx (line 4159) | struct duk_re_matcher_ctx {
  type duk_re_compiler_ctx (line 4175) | struct duk_re_compiler_ctx {
  type duk_heaphdr (line 4237) | struct duk_heaphdr {
  type duk_heaphdr_string (line 4284) | struct duk_heaphdr_string {
  type duk_hstring (line 5754) | struct duk_hstring {
  type duk_hstring_external (line 5801) | struct duk_hstring_external {
  type duk_propaccessor (line 6560) | struct duk_propaccessor {
  type duk_propdesc (line 6574) | struct duk_propdesc {
  type duk_hobject (line 6586) | struct duk_hobject {
  type duk_hcompfunc (line 6968) | struct duk_hcompfunc {
  type duk_hnatfunc (line 7109) | struct duk_hnatfunc {
  type duk_hboundfunc (line 7155) | struct duk_hboundfunc {
  type duk_hbufobj (line 7274) | struct duk_hbufobj {
  type duk_activation (line 7525) | struct duk_activation {
  type duk_catcher (line 7586) | struct duk_catcher {
  type duk_hthread (line 7598) | struct duk_hthread {
  type duk_harray (line 7764) | struct duk_harray {
  type duk_hdecenv (line 7811) | struct duk_hdecenv {
  type duk_hobjenv (line 7824) | struct duk_hobjenv {
  type duk_hbuffer (line 8010) | struct duk_hbuffer {
  type duk_hbuffer_fixed (line 8056) | struct duk_hbuffer_fixed {
  type duk_hbuffer_dynamic (line 8110) | struct duk_hbuffer_dynamic {
  type duk_hbuffer_external (line 8139) | struct duk_hbuffer_external {
  type duk_hproxy (line 8182) | struct duk_hproxy {
  type duk_breakpoint (line 8478) | struct duk_breakpoint {
  type duk_strcache (line 8492) | struct duk_strcache {
  type duk_ljstate (line 8503) | struct duk_ljstate {
  type duk_heap (line 8527) | struct duk_heap {
  type duk_fixedbuffer (line 9178) | struct duk_fixedbuffer {
  type duk_json_enc_ctx (line 10056) | typedef struct {
  type duk_json_dec_ctx (line 10084) | typedef struct {
  function DUK_INTERNAL (line 10429) | DUK_INTERNAL int duk_repl_fpclassify(double x) {
  function DUK_INTERNAL (line 10461) | DUK_INTERNAL int duk_repl_signbit(double x) {
  function DUK_INTERNAL (line 10469) | DUK_INTERNAL int duk_repl_isfinite(double x) {
  function DUK_INTERNAL (line 10480) | DUK_INTERNAL int duk_repl_isnan(double x) {
  function DUK_INTERNAL (line 10487) | DUK_INTERNAL int duk_repl_isinf(double x) {
  function DUK_INTERNAL (line 10517) | DUK_INTERNAL void duk_debug_log(duk_int_t level, const char *file, duk_i...
  function DUK_INTERNAL (line 10548) | DUK_INTERNAL void duk_debug_log(const char *fmt, ...) {
  function duk_err_handle_error_fmt (line 11399) | void duk_err_handle_error_fmt(duk_hthread *thr, const char *filename, du...
  function duk_err_handle_error (line 11409) | void duk_err_handle_error(duk_hthread *thr, const char *filename, duk_ui...
  function duk_err_handle_error (line 11415) | void duk_err_handle_error(duk_hthread *thr, duk_errcode_t code) {
  function duk_err_require_type_index (line 11427) | void duk_err_require_type_index(duk_hthread *thr, const char *filename, ...
  function duk_err_require_type_index (line 11432) | void duk_err_require_type_index(duk_hthread *thr, const char *filename, ...
  function duk_err_error_internal (line 11437) | void duk_err_error_internal(duk_hthread *thr, const char *filename, duk_...
  function duk_err_error_alloc_failed (line 11440) | void duk_err_error_alloc_failed(duk_hthread *thr, const char *filename, ...
  function duk_err_error (line 11443) | void duk_err_error(duk_hthread *thr, const char *filename, duk_int_t lin...
  function duk_err_range (line 11446) | void duk_err_range(duk_hthread *thr, const char *filename, duk_int_t lin...
  function duk_err_range_index (line 11449) | void duk_err_range_index(duk_hthread *thr, const char *filename, duk_int...
  function duk_err_range_push_beyond (line 11452) | void duk_err_range_push_beyond(duk_hthread *thr, const char *filename, d...
  function duk_err_type_invalid_args (line 11455) | void duk_err_type_invalid_args(duk_hthread *thr, const char *filename, d...
  function duk_err_type_invalid_state (line 11458) | void duk_err_type_invalid_state(duk_hthread *thr, const char *filename, ...
  function duk_err_type_invalid_trap_result (line 11461) | void duk_err_type_invalid_trap_result(duk_hthread *thr, const char *file...
  function DUK_LOCAL (line 11470) | DUK_LOCAL void duk__err_shared(duk_hthread *thr, duk_errcode_t code) {
  function duk_err_error (line 11473) | void duk_err_error(duk_hthread *thr) {
  function duk_err_range (line 11476) | void duk_err_range(duk_hthread *thr) {
  function duk_err_eval (line 11479) | void duk_err_eval(duk_hthread *thr) {
  function duk_err_reference (line 11482) | void duk_err_reference(duk_hthread *thr) {
  function duk_err_syntax (line 11485) | void duk_err_syntax(duk_hthread *thr) {
  function duk_err_type (line 11488) | void duk_err_type(duk_hthread *thr) {
  function duk_err_uri (line 11491) | void duk_err_uri(duk_hthread *thr) {
  function duk_default_fatal_handler (line 11500) | void duk_default_fatal_handler(void *udata, const char *msg) {
  function DUK_INTERNAL (line 11569) | DUK_INTERNAL duk_small_int_t duk_unicode_get_xutf8_length(duk_ucodepoint...
  function DUK_INTERNAL (line 11596) | DUK_INTERNAL duk_small_int_t duk_unicode_get_cesu8_length(duk_ucodepoint...
  function DUK_INTERNAL (line 11625) | DUK_INTERNAL duk_small_int_t duk_unicode_encode_xutf8(duk_ucodepoint_t c...
  function DUK_INTERNAL (line 11659) | DUK_INTERNAL duk_small_int_t duk_unicode_encode_cesu8(duk_ucodepoint_t c...
  function DUK_INTERNAL (line 11719) | DUK_INTERNAL duk_small_int_t duk_unicode_decode_xutf8(duk_hthread *thr, ...
  function DUK_INTERNAL (line 11812) | DUK_INTERNAL duk_ucodepoint_t duk_unicode_decode_xutf8_checked(duk_hthre...
  function DUK_INTERNAL (line 11838) | DUK_INTERNAL duk_size_t duk_unicode_unvalidated_utf8_length(const duk_ui...
  function DUK_INTERNAL (line 11864) | DUK_INTERNAL duk_size_t duk_unicode_unvalidated_utf8_length(const duk_ui...
  function DUK_LOCAL (line 11945) | DUK_LOCAL duk_uint32_t duk__uni_decode_value(duk_bitdecoder_ctx *bd_ctx) {
  function DUK_LOCAL (line 11965) | DUK_LOCAL duk_small_int_t duk__uni_range_match(const duk_uint8_t *unitab...
  function DUK_INTERNAL (line 12002) | DUK_INTERNAL duk_small_int_t duk_unicode_is_whitespace(duk_codepoint_t c...
  function DUK_INTERNAL (line 12082) | DUK_INTERNAL duk_small_int_t duk_unicode_is_line_terminator(duk_codepoin...
  function DUK_INTERNAL (line 12102) | DUK_INTERNAL duk_small_int_t duk_unicode_is_identifier_start(duk_codepoi...
  function DUK_INTERNAL (line 12181) | DUK_INTERNAL duk_small_int_t duk_unicode_is_identifier_part(duk_codepoin...
  function DUK_INTERNAL (line 12277) | DUK_INTERNAL duk_small_int_t duk_unicode_is_letter(duk_codepoint_t cp) {
  function DUK_LOCAL (line 12352) | DUK_LOCAL
  function DUK_LOCAL (line 12458) | DUK_LOCAL
  function DUK_INTERNAL (line 12548) | DUK_INTERNAL void duk_unicode_case_convert_string(duk_hthread *thr, duk_...
  function DUK_INTERNAL (line 12616) | DUK_INTERNAL duk_codepoint_t duk_unicode_re_canonicalize_char(duk_hthrea...
  function DUK_INTERNAL (line 12651) | DUK_INTERNAL duk_small_int_t duk_unicode_re_is_wordchar(duk_codepoint_t ...
  function DUK_INTERNAL (line 12929) | DUK_INTERNAL void duk_byteswap_bytes(duk_uint8_t *p, duk_small_uint_t le...
  function DUK_INTERNAL (line 12952) | DUK_INTERNAL duk_bool_t duk_is_whole_get_int32_nonegzero(duk_double_t x,...
  function DUK_INTERNAL (line 12973) | DUK_INTERNAL duk_bool_t duk_is_whole_get_int32(duk_double_t x, duk_int32...
  function DUK_INTERNAL (line 12988) | DUK_INTERNAL duk_bool_t duk_double_is_anyinf(duk_double_t x) {
  function DUK_INTERNAL (line 12994) | DUK_INTERNAL duk_bool_t duk_double_is_posinf(duk_double_t x) {
  function DUK_INTERNAL (line 13000) | DUK_INTERNAL duk_bool_t duk_double_is_neginf(duk_double_t x) {
  function DUK_INTERNAL (line 13006) | DUK_INTERNAL duk_bool_t duk_double_is_nan(duk_double_t x) {
  function DUK_INTERNAL (line 13016) | DUK_INTERNAL duk_bool_t duk_double_is_nan_or_zero(duk_double_t x) {
  function DUK_INTERNAL (line 13026) | DUK_INTERNAL duk_bool_t duk_double_is_nan_or_inf(duk_double_t x) {
  function DUK_INTERNAL (line 13043) | DUK_INTERNAL duk_bool_t duk_double_is_nan_zero_inf(duk_double_t x) {
  function DUK_INTERNAL (line 13083) | DUK_INTERNAL duk_small_uint_t duk_double_signbit(duk_double_t x) {
  function DUK_INTERNAL (line 13089) | DUK_INTERNAL duk_double_t duk_double_trunc_towards_zero(duk_double_t x) {
  function DUK_INTERNAL (line 13099) | DUK_INTERNAL duk_bool_t duk_double_same_sign(duk_double_t x, duk_double_...
  function DUK_INTERNAL (line 13108) | DUK_INTERNAL duk_double_t duk_double_fmin(duk_double_t x, duk_double_t y) {
  function DUK_INTERNAL (line 13117) | DUK_INTERNAL duk_double_t duk_double_fmax(duk_double_t x, duk_double_t y) {
  function DUK_INTERNAL (line 13266) | DUK_INTERNAL void *duk_default_alloc_function(void *udata, duk_size_t si...
  function DUK_INTERNAL (line 13275) | DUK_INTERNAL void *duk_default_realloc_function(void *udata, void *ptr, ...
  function DUK_INTERNAL (line 13284) | DUK_INTERNAL void duk_default_free_function(void *udata, void *ptr) {
  function DUK_EXTERNAL (line 13297) | DUK_EXTERNAL void *duk_resize_buffer(duk_hthread *thr, duk_idx_t idx, du...
  function DUK_EXTERNAL (line 13315) | DUK_EXTERNAL void *duk_steal_buffer(duk_hthread *thr, duk_idx_t idx, duk...
  function DUK_EXTERNAL (line 13345) | DUK_EXTERNAL void duk_config_buffer(duk_hthread *thr, duk_idx_t idx, voi...
  function DUK_LOCAL (line 13388) | DUK_LOCAL duk_uint8_t *duk__load_string_raw(duk_hthread *thr, duk_uint8_...
  function DUK_LOCAL (line 13397) | DUK_LOCAL duk_uint8_t *duk__load_buffer_raw(duk_hthread *thr, duk_uint8_...
  function DUK_LOCAL (line 13409) | DUK_LOCAL duk_uint8_t *duk__dump_hstring_raw(duk_uint8_t *p, duk_hstring...
  function DUK_LOCAL (line 13426) | DUK_LOCAL duk_uint8_t *duk__dump_hbuffer_raw(duk_hthread *thr, duk_uint8...
  function DUK_LOCAL (line 13445) | DUK_LOCAL duk_uint8_t *duk__dump_string_prop(duk_hthread *thr, duk_uint8...
  function DUK_LOCAL (line 13463) | DUK_LOCAL duk_uint8_t *duk__dump_buffer_prop(duk_hthread *thr, duk_uint8...
  function DUK_LOCAL (line 13481) | DUK_LOCAL duk_uint8_t *duk__dump_uint32_prop(duk_hthread *thr, duk_uint8...
  function DUK_LOCAL (line 13496) | DUK_LOCAL duk_uint8_t *duk__dump_varmap(duk_hthread *thr, duk_uint8_t *p...
  function DUK_LOCAL (line 13542) | DUK_LOCAL duk_uint8_t *duk__dump_formals(duk_hthread *thr, duk_uint8_t *...
  function duk_uint8_t (line 13588) | static duk_uint8_t *duk__dump_func(duk_hthread *thr, duk_hcompfunc *func...
  function duk_uint8_t (line 13743) | static duk_uint8_t *duk__load_func(duk_hthread *thr, duk_uint8_t *p, duk...
  function DUK_EXTERNAL (line 14046) | DUK_EXTERNAL void duk_dump_function(duk_hthread *thr) {
  function DUK_EXTERNAL (line 14077) | DUK_EXTERNAL void duk_load_function(duk_hthread *thr) {
  function DUK_EXTERNAL (line 14116) | DUK_EXTERNAL void duk_dump_function(duk_hthread *thr) {
  function DUK_EXTERNAL (line 14121) | DUK_EXTERNAL void duk_load_function(duk_hthread *thr) {
  type duk__pcall_prop_args (line 14158) | struct duk__pcall_prop_args {
  type duk__pcall_prop_args (line 14163) | typedef struct duk__pcall_prop_args duk__pcall_prop_args;
  type duk__pcall_method_args (line 14165) | struct duk__pcall_method_args {
  type duk__pcall_method_args (line 14169) | typedef struct duk__pcall_method_args duk__pcall_method_args;
  type duk__pcall_args (line 14171) | struct duk__pcall_args {
  type duk__pcall_args (line 14175) | typedef struct duk__pcall_args duk__pcall_args;
  function DUK_LOCAL (line 14181) | DUK_LOCAL duk_idx_t duk__call_get_idx_func(duk_hthread *thr, duk_idx_t n...
  function DUK_LOCAL (line 14201) | DUK_LOCAL duk_idx_t duk__call_get_idx_func_unvalidated(duk_hthread *thr,...
  function DUK_LOCAL (line 14218) | DUK_LOCAL void duk__call_prop_prep_stack(duk_hthread *thr, duk_idx_t nor...
  function DUK_EXTERNAL (line 14262) | DUK_EXTERNAL void duk_call(duk_hthread *thr, duk_idx_t nargs) {
  function DUK_EXTERNAL (line 14277) | DUK_EXTERNAL void duk_call_method(duk_hthread *thr, duk_idx_t nargs) {
  function DUK_EXTERNAL (line 14290) | DUK_EXTERNAL void duk_call_prop(duk_hthread *thr, duk_idx_t obj_idx, duk...
  function DUK_LOCAL (line 14310) | DUK_LOCAL duk_ret_t duk__pcall_raw(duk_hthread *thr, void *udata) {
  function DUK_EXTERNAL (line 14331) | DUK_EXTERNAL duk_int_t duk_pcall(duk_hthread *thr, duk_idx_t nargs) {
  function DUK_LOCAL (line 14346) | DUK_LOCAL duk_ret_t duk__pcall_method_raw(duk_hthread *thr, void *udata) {
  function DUK_INTERNAL (line 14366) | DUK_INTERNAL duk_int_t duk_pcall_method_flags(duk_hthread *thr, duk_idx_...
  function DUK_EXTERNAL (line 14381) | DUK_EXTERNAL duk_int_t duk_pcall_method(duk_hthread *thr, duk_idx_t narg...
  function DUK_LOCAL (line 14387) | DUK_LOCAL duk_ret_t duk__pcall_prop_raw(duk_hthread *thr, void *udata) {
  function DUK_EXTERNAL (line 14406) | DUK_EXTERNAL duk_int_t duk_pcall_prop(duk_hthread *thr, duk_idx_t obj_id...
  function DUK_EXTERNAL (line 14422) | DUK_EXTERNAL duk_int_t duk_safe_call(duk_hthread *thr, duk_safe_call_fun...
  function DUK_EXTERNAL (line 14463) | DUK_EXTERNAL void duk_new(duk_hthread *thr, duk_idx_t nargs) {
  function DUK_LOCAL (line 14477) | DUK_LOCAL duk_ret_t duk__pnew_helper(duk_hthread *thr, void *udata) {
  function DUK_EXTERNAL (line 14487) | DUK_EXTERNAL duk_int_t duk_pnew(duk_hthread *thr, duk_idx_t nargs) {
  function DUK_EXTERNAL (line 14506) | DUK_EXTERNAL duk_bool_t duk_is_constructor_call(duk_hthread *thr) {
  function DUK_INTERNAL (line 14521) | DUK_INTERNAL void duk_require_constructor_call(duk_hthread *thr) {
  function DUK_EXTERNAL (line 14529) | DUK_EXTERNAL duk_bool_t duk_is_strict_call(duk_hthread *thr) {
  function DUK_EXTERNAL (line 14556) | DUK_EXTERNAL duk_int_t duk_get_current_magic(duk_hthread *thr) {
  function DUK_EXTERNAL (line 14581) | DUK_EXTERNAL duk_int_t duk_get_magic(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 14606) | DUK_EXTERNAL void duk_set_magic(duk_hthread *thr, duk_idx_t idx, duk_int...
  function DUK_INTERNAL (line 14623) | DUK_INTERNAL void duk_resolve_nonbound_function(duk_hthread *thr) {
  function DUK_LOCAL (line 14670) | DUK_LOCAL const duk_uint8_t *duk__prep_codec_arg(duk_hthread *thr, duk_i...
  function DUK_LOCAL (line 14688) | DUK_LOCAL void duk__base64_encode_helper(const duk_uint8_t *src, duk_siz...
  function DUK_LOCAL (line 14744) | DUK_LOCAL void duk__base64_encode_helper(const duk_uint8_t *src, duk_siz...
  function DUK_LOCAL (line 14802) | DUK_LOCAL duk_bool_t duk__base64_decode_helper(const duk_uint8_t *src, d...
  function DUK_LOCAL (line 14937) | DUK_LOCAL duk_bool_t duk__base64_decode_helper(const duk_uint8_t *src, d...
  function DUK_EXTERNAL (line 15033) | DUK_EXTERNAL const char *duk_base64_encode(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 15072) | DUK_EXTERNAL void duk_base64_decode(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 15115) | DUK_EXTERNAL const char *duk_hex_encode(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 15171) | DUK_EXTERNAL void duk_hex_decode(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 15255) | DUK_EXTERNAL const char *duk_json_encode(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 15281) | DUK_EXTERNAL void duk_json_decode(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 15301) | DUK_EXTERNAL const char *duk_json_encode(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 15307) | DUK_EXTERNAL void duk_json_decode(duk_hthread *thr, duk_idx_t idx) {
  type duk__compile_raw_args (line 15320) | typedef struct duk__compile_raw_args duk__compile_raw_args;
  type duk__compile_raw_args (line 15321) | struct duk__compile_raw_args {
  function DUK_EXTERNAL (line 15328) | DUK_EXTERNAL duk_int_t duk_eval_raw(duk_hthread *thr, const char *src_bu...
  function DUK_LOCAL (line 15371) | DUK_LOCAL duk_ret_t duk__do_compile(duk_hthread *thr, void *udata) {
  function DUK_EXTERNAL (line 15443) | DUK_EXTERNAL duk_int_t duk_compile_raw(duk_hthread *thr, const char *src...
  function DUK_EXTERNAL (line 15493) | DUK_EXTERNAL void duk_push_context_dump(duk_hthread *thr) {
  function DUK_EXTERNAL (line 15527) | DUK_EXTERNAL void duk_push_context_dump(duk_hthread *thr) {
  function DUK_EXTERNAL (line 15535) | DUK_EXTERNAL void duk_debugger_attach(duk_hthread *thr,
  function DUK_EXTERNAL (line 15597) | DUK_EXTERNAL void duk_debugger_detach(duk_hthread *thr) {
  function DUK_EXTERNAL (line 15607) | DUK_EXTERNAL void duk_debugger_cooperate(duk_hthread *thr) {
  function DUK_EXTERNAL (line 15628) | DUK_EXTERNAL duk_bool_t duk_debugger_notify(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 15664) | DUK_EXTERNAL void duk_debugger_pause(duk_hthread *thr) {
  function DUK_EXTERNAL (line 15689) | DUK_EXTERNAL void duk_debugger_attach(duk_hthread *thr,
  function DUK_EXTERNAL (line 15710) | DUK_EXTERNAL void duk_debugger_detach(duk_hthread *thr) {
  function DUK_EXTERNAL (line 15715) | DUK_EXTERNAL void duk_debugger_cooperate(duk_hthread *thr) {
  function DUK_EXTERNAL (line 15721) | DUK_EXTERNAL duk_bool_t duk_debugger_notify(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 15737) | DUK_EXTERNAL void duk_debugger_pause(duk_hthread *thr) {
  type duk_internal_thread_state (line 15751) | typedef struct duk_internal_thread_state duk_internal_thread_state;
  type duk_internal_thread_state (line 15753) | struct duk_internal_thread_state {
  function DUK_EXTERNAL (line 15760) | DUK_EXTERNAL duk_hthread *duk_create_heap(duk_alloc_function alloc_func,
  function DUK_EXTERNAL (line 15811) | DUK_EXTERNAL void duk_destroy_heap(duk_hthread *thr) {
  function DUK_EXTERNAL (line 15824) | DUK_EXTERNAL void duk_suspend(duk_hthread *thr, duk_thread_state *state) {
  function DUK_EXTERNAL (line 15866) | DUK_EXTERNAL void duk_resume(duk_hthread *thr, const duk_thread_state *s...
  function DUK_EXTERNAL (line 15891) | DUK_EXTERNAL void duk_set_global_object(duk_hthread *thr) {
  function DUK_LOCAL (line 15960) | DUK_LOCAL void duk__inspect_multiple_uint(duk_hthread *thr, const char *...
  function DUK_EXTERNAL (line 16007) | DUK_EXTERNAL void duk_inspect_value(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 16136) | DUK_EXTERNAL void duk_inspect_callstack_entry(duk_hthread *thr, duk_int_...
  function DUK_EXTERNAL (line 16203) | DUK_EXTERNAL void *duk_alloc_raw(duk_hthread *thr, duk_size_t size) {
  function DUK_EXTERNAL (line 16209) | DUK_EXTERNAL void duk_free_raw(duk_hthread *thr, void *ptr) {
  function DUK_EXTERNAL (line 16215) | DUK_EXTERNAL void *duk_realloc_raw(duk_hthread *thr, void *ptr, duk_size...
  function DUK_EXTERNAL (line 16221) | DUK_EXTERNAL void *duk_alloc(duk_hthread *thr, duk_size_t size) {
  function DUK_EXTERNAL (line 16227) | DUK_EXTERNAL void duk_free(duk_hthread *thr, void *ptr) {
  function DUK_EXTERNAL (line 16233) | DUK_EXTERNAL void *duk_realloc(duk_hthread *thr, void *ptr, duk_size_t s...
  function DUK_EXTERNAL (line 16249) | DUK_EXTERNAL void duk_get_memory_functions(duk_hthread *thr, duk_memory_...
  function DUK_EXTERNAL (line 16264) | DUK_EXTERNAL void duk_gc(duk_hthread *thr, duk_uint_t flags) {
  function DUK_EXTERNAL (line 16292) | DUK_EXTERNAL duk_bool_t duk_get_prop(duk_hthread *thr, duk_idx_t obj_idx) {
  function DUK_EXTERNAL (line 16315) | DUK_EXTERNAL duk_bool_t duk_get_prop_string(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 16324) | DUK_EXTERNAL duk_bool_t duk_get_prop_lstring(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 16333) | DUK_EXTERNAL duk_bool_t duk_get_prop_index(duk_hthread *thr, duk_idx_t o...
  function DUK_EXTERNAL (line 16341) | DUK_EXTERNAL duk_bool_t duk_get_prop_heapptr(duk_hthread *thr, duk_idx_t...
  function DUK_INTERNAL (line 16349) | DUK_INTERNAL duk_bool_t duk_get_prop_stridx(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 16358) | DUK_INTERNAL duk_bool_t duk_get_prop_stridx_short_raw(duk_hthread *thr, ...
  function DUK_INTERNAL (line 16363) | DUK_INTERNAL duk_bool_t duk_get_prop_stridx_boolean(duk_hthread *thr, du...
  function DUK_LOCAL (line 16379) | DUK_LOCAL duk_bool_t duk__put_prop_shared(duk_hthread *thr, duk_idx_t ob...
  function DUK_EXTERNAL (line 16409) | DUK_EXTERNAL duk_bool_t duk_put_prop(duk_hthread *thr, duk_idx_t obj_idx) {
  function DUK_EXTERNAL (line 16414) | DUK_EXTERNAL duk_bool_t duk_put_prop_string(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 16427) | DUK_EXTERNAL duk_bool_t duk_put_prop_lstring(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 16436) | DUK_EXTERNAL duk_bool_t duk_put_prop_index(duk_hthread *thr, duk_idx_t o...
  function DUK_EXTERNAL (line 16444) | DUK_EXTERNAL duk_bool_t duk_put_prop_heapptr(duk_hthread *thr, duk_idx_t...
  function DUK_INTERNAL (line 16453) | DUK_INTERNAL duk_bool_t duk_put_prop_stridx(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 16462) | DUK_INTERNAL duk_bool_t duk_put_prop_stridx_short_raw(duk_hthread *thr, ...
  function DUK_EXTERNAL (line 16467) | DUK_EXTERNAL duk_bool_t duk_del_prop(duk_hthread *thr, duk_idx_t obj_idx) {
  function DUK_EXTERNAL (line 16490) | DUK_EXTERNAL duk_bool_t duk_del_prop_string(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 16499) | DUK_EXTERNAL duk_bool_t duk_del_prop_lstring(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 16508) | DUK_EXTERNAL duk_bool_t duk_del_prop_index(duk_hthread *thr, duk_idx_t o...
  function DUK_EXTERNAL (line 16516) | DUK_EXTERNAL duk_bool_t duk_del_prop_heapptr(duk_hthread *thr, duk_idx_t...
  function DUK_INTERNAL (line 16524) | DUK_INTERNAL duk_bool_t duk_del_prop_stridx(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 16534) | DUK_INTERNAL duk_bool_t duk_del_prop_stridx_short_raw(duk_hthread *thr, ...
  function DUK_EXTERNAL (line 16540) | DUK_EXTERNAL duk_bool_t duk_has_prop(duk_hthread *thr, duk_idx_t obj_idx) {
  function DUK_EXTERNAL (line 16561) | DUK_EXTERNAL duk_bool_t duk_has_prop_string(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 16570) | DUK_EXTERNAL duk_bool_t duk_has_prop_lstring(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 16579) | DUK_EXTERNAL duk_bool_t duk_has_prop_index(duk_hthread *thr, duk_idx_t o...
  function DUK_EXTERNAL (line 16587) | DUK_EXTERNAL duk_bool_t duk_has_prop_heapptr(duk_hthread *thr, duk_idx_t...
  function DUK_INTERNAL (line 16595) | DUK_INTERNAL duk_bool_t duk_has_prop_stridx(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 16605) | DUK_INTERNAL duk_bool_t duk_has_prop_stridx_short_raw(duk_hthread *thr, ...
  function DUK_INTERNAL (line 16616) | DUK_INTERNAL void duk_xdef_prop(duk_hthread *thr, duk_idx_t obj_idx, duk...
  function DUK_INTERNAL (line 16633) | DUK_INTERNAL void duk_xdef_prop_index(duk_hthread *thr, duk_idx_t obj_id...
  function DUK_INTERNAL (line 16645) | DUK_INTERNAL void duk_xdef_prop_stridx(duk_hthread *thr, duk_idx_t obj_i...
  function DUK_INTERNAL (line 16662) | DUK_INTERNAL void duk_xdef_prop_stridx_short_raw(duk_hthread *thr, duk_u...
  function DUK_INTERNAL (line 16669) | DUK_INTERNAL void duk_xdef_prop_stridx_builtin(duk_hthread *thr, duk_idx...
  function DUK_INTERNAL (line 16693) | DUK_INTERNAL void duk_xdef_prop_stridx_thrower(duk_hthread *thr, duk_idx...
  function DUK_EXTERNAL (line 16704) | DUK_EXTERNAL void duk_get_prop_desc(duk_hthread *thr, duk_idx_t obj_idx,...
  function DUK_EXTERNAL (line 16712) | DUK_EXTERNAL void duk_def_prop(duk_hthread *thr, duk_idx_t obj_idx, duk_...
  function DUK_EXTERNAL (line 16805) | DUK_EXTERNAL void duk_compact(duk_hthread *thr, duk_idx_t obj_idx) {
  function DUK_INTERNAL (line 16817) | DUK_INTERNAL void duk_compact_m1(duk_hthread *thr) {
  function DUK_EXTERNAL (line 16825) | DUK_EXTERNAL void duk_enum(duk_hthread *thr, duk_idx_t obj_idx, duk_uint...
  function DUK_EXTERNAL (line 16833) | DUK_EXTERNAL duk_bool_t duk_next(duk_hthread *thr, duk_idx_t enum_index,...
  function DUK_INTERNAL (line 16841) | DUK_INTERNAL void duk_seal_freeze_raw(duk_hthread *thr, duk_idx_t obj_id...
  function DUK_EXTERNAL (line 16895) | DUK_EXTERNAL void duk_seal(duk_hthread *thr, duk_idx_t obj_idx) {
  function DUK_EXTERNAL (line 16901) | DUK_EXTERNAL void duk_freeze(duk_hthread *thr, duk_idx_t obj_idx) {
  function DUK_EXTERNAL (line 16911) | DUK_EXTERNAL void duk_put_function_list(duk_hthread *thr, duk_idx_t obj_...
  function DUK_EXTERNAL (line 16926) | DUK_EXTERNAL void duk_put_number_list(duk_hthread *thr, duk_idx_t obj_id...
  function DUK_EXTERNAL (line 16948) | DUK_EXTERNAL duk_bool_t duk_get_global_string(duk_hthread *thr, const ch...
  function DUK_EXTERNAL (line 16962) | DUK_EXTERNAL duk_bool_t duk_get_global_lstring(duk_hthread *thr, const c...
  function DUK_EXTERNAL (line 16976) | DUK_EXTERNAL duk_bool_t duk_put_global_string(duk_hthread *thr, const ch...
  function DUK_EXTERNAL (line 16991) | DUK_EXTERNAL duk_bool_t duk_put_global_lstring(duk_hthread *thr, const c...
  function DUK_EXTERNAL (line 17010) | DUK_EXTERNAL void duk_get_prototype(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 17028) | DUK_EXTERNAL void duk_set_prototype(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 17063) | DUK_EXTERNAL void duk_get_finalizer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 17069) | DUK_EXTERNAL void duk_set_finalizer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 17097) | DUK_EXTERNAL void duk_get_finalizer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 17103) | DUK_EXTERNAL void duk_set_finalizer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_LOCAL (line 17193) | DUK_LOCAL duk_small_uint_t duk__get_symbol_type(duk_hstring *h) {
  function DUK_LOCAL (line 17220) | DUK_LOCAL const char *duk__get_symbol_type_string(duk_hstring *h) {
  function DUK_LOCAL (line 17229) | DUK_LOCAL duk_int_t duk__api_coerce_d2i(duk_hthread *thr, duk_idx_t idx,...
  function DUK_LOCAL (line 17290) | DUK_LOCAL duk_uint_t duk__api_coerce_d2ui(duk_hthread *thr, duk_idx_t id...
  function DUK_EXTERNAL (line 17350) | DUK_EXTERNAL duk_idx_t duk_normalize_index(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 17385) | DUK_EXTERNAL duk_idx_t duk_require_normalize_index(duk_hthread *thr, duk...
  function DUK_INTERNAL (line 17413) | DUK_INTERNAL duk_tval *duk_get_tval(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 17448) | DUK_INTERNAL duk_tval *duk_get_tval_or_unused(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 17460) | DUK_INTERNAL duk_tval *duk_require_tval(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 17490) | DUK_EXTERNAL duk_bool_t duk_is_valid_index(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 17498) | DUK_EXTERNAL void duk_require_valid_index(duk_hthread *thr, duk_idx_t id...
  function DUK_EXTERNAL (line 17512) | DUK_EXTERNAL duk_idx_t duk_get_top(duk_hthread *thr) {
  function DUK_INTERNAL (line 17521) | DUK_INTERNAL duk_idx_t duk_get_top_require_min(duk_hthread *thr, duk_idx...
  function DUK_EXTERNAL (line 17537) | DUK_EXTERNAL void duk_set_top(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 17634) | DUK_INTERNAL void duk_set_top_unsafe(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 17640) | DUK_INTERNAL void duk_set_top_unsafe(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 17708) | DUK_INTERNAL void duk_set_top_and_wipe(duk_hthread *thr, duk_idx_t top, ...
  function DUK_EXTERNAL (line 17720) | DUK_EXTERNAL duk_idx_t duk_get_top_index(duk_hthread *thr) {
  function DUK_INTERNAL (line 17739) | DUK_INTERNAL duk_idx_t duk_get_top_index_unsafe(duk_hthread *thr) {
  function DUK_EXTERNAL (line 17748) | DUK_EXTERNAL duk_idx_t duk_require_top_index(duk_hthread *thr) {
  function DUK_NOINLINE (line 17785) | DUK_NOINLINE duk_bool_t duk__resize_valstack(duk_hthread *thr, duk_size_...
  function DUK_NOINLINE (line 17932) | DUK_NOINLINE duk_bool_t duk__valstack_grow(duk_hthread *thr, duk_size_t ...
  function duk_valstack_grow_check_throw (line 17977) | void duk_valstack_grow_check_throw(duk_hthread *thr, duk_size_t min_byte...
  function duk_bool_t (line 17995) | duk_bool_t duk_valstack_grow_check_nothrow(duk_hthread *thr, duk_size_t ...
  function DUK_INTERNAL (line 18010) | DUK_INTERNAL void duk_valstack_shrink_check_nothrow(duk_hthread *thr, du...
  function DUK_EXTERNAL (line 18077) | DUK_EXTERNAL duk_bool_t duk_check_stack(duk_hthread *thr, duk_idx_t extr...
  function DUK_EXTERNAL (line 18100) | DUK_EXTERNAL void duk_require_stack(duk_hthread *thr, duk_idx_t extra) {
  function DUK_EXTERNAL (line 18123) | DUK_EXTERNAL duk_bool_t duk_check_stack_top(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 18146) | DUK_EXTERNAL void duk_require_stack_top(duk_hthread *thr, duk_idx_t top) {
  function DUK_EXTERNAL (line 18173) | DUK_EXTERNAL void duk_swap(duk_hthread *thr, duk_idx_t idx1, duk_idx_t i...
  function DUK_EXTERNAL (line 18191) | DUK_EXTERNAL void duk_swap_top(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18197) | DUK_EXTERNAL void duk_dup(duk_hthread *thr, duk_idx_t from_idx) {
  function DUK_EXTERNAL (line 18212) | DUK_EXTERNAL void duk_dup_top(duk_hthread *thr) {
  function DUK_INTERNAL (line 18235) | DUK_INTERNAL void duk_dup_0(duk_hthread *thr) {
  function DUK_INTERNAL (line 18239) | DUK_INTERNAL void duk_dup_1(duk_hthread *thr) {
  function DUK_INTERNAL (line 18243) | DUK_INTERNAL void duk_dup_2(duk_hthread *thr) {
  function DUK_INTERNAL (line 18247) | DUK_INTERNAL void duk_dup_m2(duk_hthread *thr) {
  function DUK_INTERNAL (line 18251) | DUK_INTERNAL void duk_dup_m3(duk_hthread *thr) {
  function DUK_INTERNAL (line 18255) | DUK_INTERNAL void duk_dup_m4(duk_hthread *thr) {
  function DUK_EXTERNAL (line 18260) | DUK_EXTERNAL void duk_insert(duk_hthread *thr, duk_idx_t to_idx) {
  function DUK_INTERNAL (line 18300) | DUK_INTERNAL void duk_insert_undefined(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 18308) | DUK_INTERNAL void duk_insert_undefined_n(duk_hthread *thr, duk_idx_t idx...
  function DUK_EXTERNAL (line 18323) | DUK_EXTERNAL void duk_replace(duk_hthread *thr, duk_idx_t to_idx) {
  function DUK_EXTERNAL (line 18345) | DUK_EXTERNAL void duk_copy(duk_hthread *thr, duk_idx_t from_idx, duk_idx...
  function DUK_EXTERNAL (line 18360) | DUK_EXTERNAL void duk_remove(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 18399) | DUK_INTERNAL void duk_remove_unsafe(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 18405) | DUK_INTERNAL void duk_remove_m2(duk_hthread *thr) {
  function DUK_INTERNAL (line 18411) | DUK_INTERNAL void duk_remove_n(duk_hthread *thr, duk_idx_t idx, duk_idx_...
  function DUK_INTERNAL (line 18456) | DUK_INTERNAL void duk_remove_n_unsafe(duk_hthread *thr, duk_idx_t idx, d...
  function DUK_EXTERNAL (line 18466) | DUK_EXTERNAL void duk_xcopymove_raw(duk_hthread *to_thr, duk_hthread *fr...
  function DUK_INTERNAL (line 18540) | DUK_INTERNAL duk_tval *duk_reserve_gap(duk_hthread *thr, duk_idx_t idx_b...
  function DUK_EXTERNAL (line 18570) | DUK_EXTERNAL void duk_require_undefined(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18582) | DUK_EXTERNAL void duk_require_null(duk_hthread *thr, duk_idx_t idx) {
  function duk_bool_t (line 18594) | duk_bool_t duk__get_boolean_raw(duk_hthread *thr, duk_idx_t idx, duk_boo...
  function DUK_EXTERNAL (line 18613) | DUK_EXTERNAL duk_bool_t duk_get_boolean(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18619) | DUK_EXTERNAL duk_bool_t duk_get_boolean_default(duk_hthread *thr, duk_id...
  function DUK_EXTERNAL (line 18625) | DUK_EXTERNAL duk_bool_t duk_require_boolean(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 18642) | DUK_EXTERNAL duk_bool_t duk_opt_boolean(duk_hthread *thr, duk_idx_t idx,...
  function duk_double_t (line 18651) | duk_double_t duk__get_number_raw(duk_hthread *thr, duk_idx_t idx, duk_do...
  function DUK_EXTERNAL (line 18680) | DUK_EXTERNAL duk_double_t duk_get_number(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18685) | DUK_EXTERNAL duk_double_t duk_get_number_default(duk_hthread *thr, duk_i...
  function DUK_EXTERNAL (line 18690) | DUK_EXTERNAL duk_double_t duk_require_number(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 18712) | DUK_EXTERNAL duk_double_t duk_opt_number(duk_hthread *thr, duk_idx_t idx...
  function DUK_EXTERNAL (line 18722) | DUK_EXTERNAL duk_int_t duk_get_int(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18728) | DUK_EXTERNAL duk_uint_t duk_get_uint(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18734) | DUK_EXTERNAL duk_int_t duk_get_int_default(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 18740) | DUK_EXTERNAL duk_uint_t duk_get_uint_default(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 18746) | DUK_EXTERNAL duk_int_t duk_require_int(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18752) | DUK_EXTERNAL duk_uint_t duk_require_uint(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18758) | DUK_EXTERNAL duk_int_t duk_opt_int(duk_hthread *thr, duk_idx_t idx, duk_...
  function DUK_EXTERNAL (line 18767) | DUK_EXTERNAL duk_uint_t duk_opt_uint(duk_hthread *thr, duk_idx_t idx, du...
  function DUK_EXTERNAL (line 18776) | DUK_EXTERNAL const char *duk_get_lstring(duk_hthread *thr, duk_idx_t idx...
  function DUK_EXTERNAL (line 18798) | DUK_EXTERNAL const char *duk_require_lstring(duk_hthread *thr, duk_idx_t...
  function DUK_INTERNAL (line 18811) | DUK_INTERNAL const char *duk_require_lstring_notsymbol(duk_hthread *thr,...
  function DUK_EXTERNAL (line 18824) | DUK_EXTERNAL const char *duk_get_string(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18837) | DUK_EXTERNAL const char *duk_opt_lstring(duk_hthread *thr, duk_idx_t idx...
  function DUK_EXTERNAL (line 18849) | DUK_EXTERNAL const char *duk_opt_string(duk_hthread *thr, duk_idx_t idx,...
  function DUK_EXTERNAL (line 18858) | DUK_EXTERNAL const char *duk_get_lstring_default(duk_hthread *thr, duk_i...
  function DUK_EXTERNAL (line 18880) | DUK_EXTERNAL const char *duk_get_string_default(duk_hthread *thr, duk_id...
  function DUK_INTERNAL (line 18893) | DUK_INTERNAL const char *duk_get_string_notsymbol(duk_hthread *thr, duk_...
  function DUK_EXTERNAL (line 18906) | DUK_EXTERNAL const char *duk_require_string(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 18912) | DUK_INTERNAL const char *duk_require_string_notsymbol(duk_hthread *thr, ...
  function DUK_EXTERNAL (line 18922) | DUK_EXTERNAL void duk_require_object(duk_hthread *thr, duk_idx_t idx) {
  function DUK_LOCAL (line 18934) | DUK_LOCAL void *duk__get_pointer_raw(duk_hthread *thr, duk_idx_t idx, vo...
  function DUK_EXTERNAL (line 18950) | DUK_EXTERNAL void *duk_get_pointer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 18955) | DUK_EXTERNAL void *duk_opt_pointer(duk_hthread *thr, duk_idx_t idx, void...
  function DUK_EXTERNAL (line 18964) | DUK_EXTERNAL void *duk_get_pointer_default(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 18969) | DUK_EXTERNAL void *duk_require_pointer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 18988) | DUK_INTERNAL void *duk_get_voidptr(duk_hthread *thr, duk_idx_t idx) {
  function DUK_LOCAL (line 19006) | DUK_LOCAL void *duk__get_buffer_helper(duk_hthread *thr, duk_idx_t idx, ...
  function DUK_EXTERNAL (line 19040) | DUK_EXTERNAL void *duk_get_buffer(duk_hthread *thr, duk_idx_t idx, duk_s...
  function DUK_EXTERNAL (line 19046) | DUK_EXTERNAL void *duk_opt_buffer(duk_hthread *thr, duk_idx_t idx, duk_s...
  function DUK_EXTERNAL (line 19058) | DUK_EXTERNAL void *duk_get_buffer_default(duk_hthread *thr, duk_idx_t id...
  function DUK_EXTERNAL (line 19064) | DUK_EXTERNAL void *duk_require_buffer(duk_hthread *thr, duk_idx_t idx, d...
  function DUK_INTERNAL (line 19075) | DUK_INTERNAL void *duk_get_buffer_data_raw(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 19136) | DUK_EXTERNAL void *duk_get_buffer_data(duk_hthread *thr, duk_idx_t idx, ...
  function DUK_EXTERNAL (line 19141) | DUK_EXTERNAL void *duk_get_buffer_data_default(duk_hthread *thr, duk_idx...
  function DUK_EXTERNAL (line 19146) | DUK_EXTERNAL void *duk_opt_buffer_data(duk_hthread *thr, duk_idx_t idx, ...
  function DUK_EXTERNAL (line 19158) | DUK_EXTERNAL void *duk_require_buffer_data(duk_hthread *thr, duk_idx_t i...
  function DUK_LOCAL (line 19168) | DUK_LOCAL duk_heaphdr *duk__get_tagged_heaphdr_raw(duk_hthread *thr, duk...
  function DUK_INTERNAL (line 19186) | DUK_INTERNAL duk_hstring *duk_get_hstring(duk_hthread *thr, duk_idx_t id...
  function DUK_INTERNAL (line 19191) | DUK_INTERNAL duk_hstring *duk_get_hstring_notsymbol(duk_hthread *thr, du...
  function DUK_INTERNAL (line 19203) | DUK_INTERNAL duk_hstring *duk_require_hstring(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 19215) | DUK_INTERNAL duk_hstring *duk_require_hstring_notsymbol(duk_hthread *thr...
  function DUK_INTERNAL (line 19227) | DUK_INTERNAL duk_hobject *duk_get_hobject(duk_hthread *thr, duk_idx_t id...
  function DUK_INTERNAL (line 19232) | DUK_INTERNAL duk_hobject *duk_require_hobject(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 19244) | DUK_INTERNAL duk_hbuffer *duk_get_hbuffer(duk_hthread *thr, duk_idx_t id...
  function DUK_INTERNAL (line 19249) | DUK_INTERNAL duk_hbuffer *duk_require_hbuffer(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 19261) | DUK_INTERNAL duk_hthread *duk_get_hthread(duk_hthread *thr, duk_idx_t id...
  function DUK_INTERNAL (line 19273) | DUK_INTERNAL duk_hthread *duk_require_hthread(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 19285) | DUK_INTERNAL duk_hcompfunc *duk_get_hcompfunc(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 19297) | DUK_INTERNAL duk_hcompfunc *duk_require_hcompfunc(duk_hthread *thr, duk_...
  function DUK_INTERNAL (line 19309) | DUK_INTERNAL duk_hnatfunc *duk_get_hnatfunc(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 19321) | DUK_INTERNAL duk_hnatfunc *duk_require_hnatfunc(duk_hthread *thr, duk_id...
  function DUK_EXTERNAL (line 19333) | DUK_EXTERNAL duk_c_function duk_get_c_function(duk_hthread *thr, duk_idx...
  function DUK_EXTERNAL (line 19357) | DUK_EXTERNAL duk_c_function duk_opt_c_function(duk_hthread *thr, duk_idx...
  function DUK_EXTERNAL (line 19366) | DUK_EXTERNAL duk_c_function duk_get_c_function_default(duk_hthread *thr,...
  function DUK_EXTERNAL (line 19379) | DUK_EXTERNAL duk_c_function duk_require_c_function(duk_hthread *thr, duk...
  function DUK_EXTERNAL (line 19391) | DUK_EXTERNAL void duk_require_function(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 19398) | DUK_INTERNAL void duk_require_constructable(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 19410) | DUK_EXTERNAL duk_hthread *duk_get_context(duk_hthread *thr, duk_idx_t id...
  function DUK_EXTERNAL (line 19416) | DUK_EXTERNAL duk_hthread *duk_require_context(duk_hthread *thr, duk_idx_...
  function DUK_EXTERNAL (line 19422) | DUK_EXTERNAL duk_hthread *duk_opt_context(duk_hthread *thr, duk_idx_t id...
  function DUK_EXTERNAL (line 19431) | DUK_EXTERNAL duk_hthread *duk_get_context_default(duk_hthread *thr, duk_...
  function DUK_EXTERNAL (line 19444) | DUK_EXTERNAL void *duk_get_heapptr(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 19461) | DUK_EXTERNAL void *duk_opt_heapptr(duk_hthread *thr, duk_idx_t idx, void...
  function DUK_EXTERNAL (line 19470) | DUK_EXTERNAL void *duk_get_heapptr_default(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 19483) | DUK_EXTERNAL void *duk_require_heapptr(duk_hthread *thr, duk_idx_t idx) {
  function DUK_LOCAL (line 19501) | DUK_LOCAL duk_hobject *duk__get_hobject_promote_mask_raw(duk_hthread *th...
  function DUK_INTERNAL (line 19537) | DUK_INTERNAL duk_hobject *duk_get_hobject_promote_mask(duk_hthread *thr,...
  function DUK_INTERNAL (line 19545) | DUK_INTERNAL duk_hobject *duk_require_hobject_promote_mask(duk_hthread *...
  function DUK_INTERNAL (line 19553) | DUK_INTERNAL duk_hobject *duk_require_hobject_accept_mask(duk_hthread *t...
  function DUK_INTERNAL (line 19558) | DUK_INTERNAL duk_hobject *duk_get_hobject_with_class(duk_hthread *thr, d...
  function DUK_INTERNAL (line 19572) | DUK_INTERNAL duk_hobject *duk_require_hobject_with_class(duk_hthread *th...
  function DUK_EXTERNAL (line 19590) | DUK_EXTERNAL duk_size_t duk_get_length(duk_hthread *thr, duk_idx_t idx) {
  function DUK_LOCAL (line 19675) | DUK_LOCAL duk_heaphdr *duk__known_heaphdr(duk_hthread *thr, duk_idx_t id...
  function DUK_INTERNAL (line 19692) | DUK_INTERNAL duk_hstring *duk_known_hstring(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 19698) | DUK_INTERNAL duk_hobject *duk_known_hobject(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 19704) | DUK_INTERNAL duk_hbuffer *duk_known_hbuffer(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 19710) | DUK_INTERNAL duk_hcompfunc *duk_known_hcompfunc(duk_hthread *thr, duk_id...
  function DUK_INTERNAL (line 19716) | DUK_INTERNAL duk_hnatfunc *duk_known_hnatfunc(duk_hthread *thr, duk_idx_...
  function DUK_EXTERNAL (line 19722) | DUK_EXTERNAL void duk_set_length(duk_hthread *thr, duk_idx_t idx, duk_si...
  function DUK_LOCAL (line 19740) | DUK_LOCAL duk_bool_t duk__defaultvalue_coerce_attempt(duk_hthread *thr, ...
  function DUK_EXTERNAL (line 19757) | DUK_EXTERNAL void duk_to_undefined(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 19767) | DUK_EXTERNAL void duk_to_null(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 19778) | DUK_EXTERNAL void duk_to_primitive(duk_hthread *thr, duk_idx_t idx, duk_...
  function DUK_EXTERNAL (line 19858) | DUK_EXTERNAL duk_bool_t duk_to_boolean(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 19877) | DUK_EXTERNAL duk_double_t duk_to_number(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 19897) | DUK_INTERNAL duk_double_t duk_to_number_m1(duk_hthread *thr) {
  function DUK_INTERNAL (line 19901) | DUK_INTERNAL duk_double_t duk_to_number_m2(duk_hthread *thr) {
  function DUK_INTERNAL (line 19906) | DUK_INTERNAL duk_double_t duk_to_number_tval(duk_hthread *thr, duk_tval ...
  type duk_double_t (line 19941) | typedef duk_double_t (*duk__toint_coercer)(duk_hthread *thr, duk_tval *tv);
  function DUK_LOCAL (line 19943) | DUK_LOCAL duk_double_t duk__to_int_uint_helper(duk_hthread *thr, duk_idx...
  function DUK_EXTERNAL (line 19971) | DUK_EXTERNAL duk_int_t duk_to_int(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 19980) | DUK_EXTERNAL duk_uint_t duk_to_uint(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 19989) | DUK_EXTERNAL duk_int32_t duk_to_int32(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 20005) | DUK_EXTERNAL duk_uint32_t duk_to_uint32(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 20021) | DUK_EXTERNAL duk_uint16_t duk_to_uint16(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 20039) | DUK_INTERNAL duk_uint8_t duk_to_uint8clamped(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 20076) | DUK_EXTERNAL const char *duk_to_lstring(duk_hthread *thr, duk_idx_t idx,...
  function DUK_LOCAL (line 20084) | DUK_LOCAL duk_ret_t duk__safe_to_string_raw(duk_hthread *thr, void *udat...
  function DUK_EXTERNAL (line 20092) | DUK_EXTERNAL const char *duk_safe_to_lstring(duk_hthread *thr, duk_idx_t...
  function DUK_INTERNAL (line 20125) | DUK_INTERNAL duk_hstring *duk_to_property_key_hstring(duk_hthread *thr, ...
  function DUK_INTERNAL (line 20145) | DUK_INTERNAL duk_hstring *duk_safe_to_hstring(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 20156) | DUK_INTERNAL void duk_push_class_string_tval(duk_hthread *thr, duk_tval ...
  function DUK_INTERNAL (line 20236) | DUK_INTERNAL duk_int_t duk_to_int_clamped_raw(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 20298) | DUK_INTERNAL duk_int_t duk_to_int_clamped(duk_hthread *thr, duk_idx_t id...
  function DUK_INTERNAL (line 20306) | DUK_INTERNAL duk_int_t duk_to_int_check_range(duk_hthread *thr, duk_idx_...
  function DUK_EXTERNAL (line 20311) | DUK_EXTERNAL const char *duk_to_string(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 20410) | DUK_INTERNAL duk_hstring *duk_to_hstring(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 20421) | DUK_INTERNAL duk_hstring *duk_to_hstring_m1(duk_hthread *thr) {
  function DUK_INTERNAL (line 20426) | DUK_INTERNAL duk_hstring *duk_to_hstring_acceptsymbol(duk_hthread *thr, ...
  function DUK_EXTERNAL (line 20445) | DUK_EXTERNAL const char *duk_buffer_to_string(duk_hthread *thr, duk_idx_...
  function DUK_EXTERNAL (line 20462) | DUK_EXTERNAL void *duk_to_buffer_raw(duk_hthread *thr, duk_idx_t idx, du...
  function DUK_EXTERNAL (line 20522) | DUK_EXTERNAL void *duk_to_pointer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_LOCAL (line 20572) | DUK_LOCAL void duk__push_func_from_lightfunc(duk_hthread *thr, duk_c_fun...
  function DUK_EXTERNAL (line 20610) | DUK_EXTERNAL void duk_to_object(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 20734) | DUK_INTERNAL duk_hobject *duk_to_hobject(duk_hthread *thr, duk_idx_t idx) {
  function DUK_LOCAL (line 20748) | DUK_LOCAL duk_bool_t duk__tag_check(duk_hthread *thr, duk_idx_t idx, duk...
  function DUK_LOCAL (line 20756) | DUK_LOCAL duk_bool_t duk__obj_flag_any_default_false(duk_hthread *thr, d...
  function DUK_INTERNAL (line 20768) | DUK_INTERNAL duk_int_t duk_get_type_tval(duk_tval *tv) {
  function DUK_EXTERNAL (line 20807) | DUK_EXTERNAL duk_int_t duk_get_type(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 20832) | DUK_INTERNAL const char *duk_get_type_name(duk_hthread *thr, duk_idx_t i...
  function DUK_INTERNAL (line 20845) | DUK_INTERNAL duk_small_uint_t duk_get_class_number(duk_hthread *thr, duk...
  function DUK_EXTERNAL (line 20871) | DUK_EXTERNAL duk_bool_t duk_check_type(duk_hthread *thr, duk_idx_t idx, ...
  function DUK_INTERNAL (line 20877) | DUK_INTERNAL duk_uint_t duk_get_type_mask_tval(duk_tval *tv) {
  function DUK_EXTERNAL (line 20916) | DUK_EXTERNAL duk_uint_t duk_get_type_mask(duk_hthread *thr, duk_idx_t id...
  function DUK_EXTERNAL (line 20927) | DUK_EXTERNAL duk_bool_t duk_check_type_mask(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 20940) | DUK_EXTERNAL duk_bool_t duk_is_undefined(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 20945) | DUK_EXTERNAL duk_bool_t duk_is_null(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 20950) | DUK_EXTERNAL duk_bool_t duk_is_boolean(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 20955) | DUK_EXTERNAL duk_bool_t duk_is_number(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 20972) | DUK_EXTERNAL duk_bool_t duk_is_nan(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 20993) | DUK_EXTERNAL duk_bool_t duk_is_string(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 20998) | DUK_INTERNAL duk_bool_t duk_is_string_notsymbol(duk_hthread *thr, duk_id...
  function DUK_EXTERNAL (line 21003) | DUK_EXTERNAL duk_bool_t duk_is_object(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 21008) | DUK_EXTERNAL duk_bool_t duk_is_buffer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 21014) | DUK_EXTERNAL duk_bool_t duk_is_buffer_data(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 21033) | DUK_EXTERNAL duk_bool_t duk_is_buffer_data(duk_hthread *thr, duk_idx_t i...
  function DUK_EXTERNAL (line 21041) | DUK_EXTERNAL duk_bool_t duk_is_pointer(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 21046) | DUK_EXTERNAL duk_bool_t duk_is_lightfunc(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 21051) | DUK_EXTERNAL duk_bool_t duk_is_symbol(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 21065) | DUK_EXTERNAL duk_bool_t duk_is_array(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 21077) | DUK_EXTERNAL duk_bool_t duk_is_function(duk_hthread *thr, duk_idx_t idx) {
  function DUK_INTERNAL (line 21095) | DUK_INTERNAL duk_bool_t duk_is_callable_tval(duk_hthread *thr, duk_tval ...
  function DUK_EXTERNAL (line 21112) | DUK_EXTERNAL duk_bool_t duk_is_constructable(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 21130) | DUK_EXTERNAL duk_bool_t duk_is_c_function(duk_hthread *thr, duk_idx_t id...
  function DUK_EXTERNAL (line 21137) | DUK_EXTERNAL duk_bool_t duk_is_ecmascript_function(duk_hthread *thr, duk...
  function DUK_EXTERNAL (line 21144) | DUK_EXTERNAL duk_bool_t duk_is_bound_function(duk_hthread *thr, duk_idx_...
  function DUK_EXTERNAL (line 21151) | DUK_EXTERNAL duk_bool_t duk_is_thread(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 21163) | DUK_EXTERNAL duk_bool_t duk_is_fixed_buffer(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 21178) | DUK_EXTERNAL duk_bool_t duk_is_dynamic_buffer(duk_hthread *thr, duk_idx_...
  function DUK_EXTERNAL (line 21193) | DUK_EXTERNAL duk_bool_t duk_is_external_buffer(duk_hthread *thr, duk_idx...
  function DUK_EXTERNAL (line 21208) | DUK_EXTERNAL duk_errcode_t duk_get_error_code(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 21256) | DUK_INTERNAL void duk_push_tval(duk_hthread *thr, duk_tval *tv) {
  function DUK_EXTERNAL (line 21268) | DUK_EXTERNAL void duk_push_undefined(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21280) | DUK_EXTERNAL void duk_push_null(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21289) | DUK_EXTERNAL void duk_push_boolean(duk_hthread *thr, duk_bool_t val) {
  function DUK_EXTERNAL (line 21300) | DUK_EXTERNAL void duk_push_true(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21309) | DUK_EXTERNAL void duk_push_false(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21319) | DUK_EXTERNAL void duk_push_number(duk_hthread *thr, duk_double_t val) {
  function DUK_EXTERNAL (line 21331) | DUK_EXTERNAL void duk_push_int(duk_hthread *thr, duk_int_t val) {
  function DUK_EXTERNAL (line 21360) | DUK_EXTERNAL void duk_push_uint(duk_hthread *thr, duk_uint_t val) {
  function DUK_EXTERNAL (line 21390) | DUK_EXTERNAL void duk_push_nan(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21402) | DUK_EXTERNAL const char *duk_push_lstring(duk_hthread *thr, const char *...
  function DUK_EXTERNAL (line 21435) | DUK_EXTERNAL const char *duk_push_string(duk_hthread *thr, const char *s...
  function DUK_EXTERNAL (line 21446) | DUK_EXTERNAL void duk_push_pointer(duk_hthread *thr, void *val) {
  function DUK_INTERNAL (line 21455) | DUK_INTERNAL duk_hstring *duk_push_uint_to_hstring(duk_hthread *thr, duk...
  function DUK_LOCAL (line 21467) | DUK_LOCAL void duk__push_this_helper(duk_hthread *thr, duk_small_uint_t ...
  function DUK_EXTERNAL (line 21501) | DUK_EXTERNAL void duk_push_this(duk_hthread *thr) {
  function DUK_INTERNAL (line 21507) | DUK_INTERNAL void duk_push_this_check_object_coercible(duk_hthread *thr) {
  function DUK_INTERNAL (line 21513) | DUK_INTERNAL duk_hobject *duk_push_this_coercible_to_object(duk_hthread ...
  function DUK_INTERNAL (line 21524) | DUK_INTERNAL duk_hstring *duk_push_this_coercible_to_string(duk_hthread ...
  function DUK_INTERNAL (line 21531) | DUK_INTERNAL duk_tval *duk_get_borrowed_this_tval(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21542) | DUK_EXTERNAL void duk_push_current_function(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21555) | DUK_EXTERNAL void duk_push_current_thread(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21565) | DUK_EXTERNAL void duk_push_global_object(duk_hthread *thr) {
  function DUK_LOCAL (line 21572) | DUK_LOCAL void duk__push_stash(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21583) | DUK_EXTERNAL void duk_push_heap_stash(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21592) | DUK_EXTERNAL void duk_push_global_stash(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21598) | DUK_EXTERNAL void duk_push_thread_stash(duk_hthread *thr, duk_hthread *t...
  function DUK_LOCAL (line 21609) | DUK_LOCAL duk_int_t duk__try_push_vsprintf(duk_hthread *thr, void *buf, ...
  function DUK_EXTERNAL (line 21626) | DUK_EXTERNAL const char *duk_push_vsprintf(duk_hthread *thr, const char ...
  function DUK_EXTERNAL (line 21691) | DUK_EXTERNAL const char *duk_push_sprintf(duk_hthread *thr, const char *...
  function DUK_INTERNAL (line 21705) | DUK_INTERNAL duk_hobject *duk_push_object_helper(duk_hthread *thr, duk_u...
  function DUK_INTERNAL (line 21737) | DUK_INTERNAL duk_hobject *duk_push_object_helper_proto(duk_hthread *thr,...
  function DUK_EXTERNAL (line 21748) | DUK_EXTERNAL duk_idx_t duk_push_object(duk_hthread *thr) {
  function DUK_EXTERNAL (line 21759) | DUK_EXTERNAL duk_idx_t duk_push_array(duk_hthread *thr) {
  function DUK_INTERNAL (line 21788) | DUK_INTERNAL duk_harray *duk_push_harray(duk_hthread *thr) {
  function DUK_INTERNAL (line 21804) | DUK_INTERNAL duk_harray *duk_push_harray_with_size(duk_hthread *thr, duk...
  function DUK_INTERNAL (line 21821) | DUK_INTERNAL duk_tval *duk_push_harray_with_size_outptr(duk_hthread *thr...
  function DUK_EXTERNAL (line 21831) | DUK_EXTERNAL duk_idx_t duk_push_thread_raw(duk_hthread *thr, duk_uint_t ...
  function DUK_INTERNAL (line 21887) | DUK_INTERNAL duk_hcompfunc *duk_push_hcompfunc(duk_hthread *thr) {
  function DUK_INTERNAL (line 21923) | DUK_INTERNAL duk_hboundfunc *duk_push_hboundfunc(duk_hthread *thr) {
  function DUK_LOCAL (line 21952) | DUK_LOCAL duk_idx_t duk__push_c_function_raw(duk_hthread *thr, duk_c_fun...
  function DUK_EXTERNAL (line 21997) | DUK_EXTERNAL duk_idx_t duk_push_c_function(duk_hthread *thr, duk_c_funct...
  function DUK_INTERNAL (line 22018) | DUK_INTERNAL void duk_push_c_function_builtin(duk_hthread *thr, duk_c_fu...
  function DUK_INTERNAL (line 22037) | DUK_INTERNAL void duk_push_c_function_builtin_noconstruct(duk_hthread *t...
  function DUK_EXTERNAL (line 22055) | DUK_EXTERNAL duk_idx_t duk_push_c_lightfunc(duk_hthread *thr, duk_c_func...
  function DUK_INTERNAL (line 22090) | DUK_INTERNAL duk_hbufobj *duk_push_bufobj_raw(duk_hthread *thr, duk_uint...
  function DUK_EXTERNAL (line 22139) | DUK_EXTERNAL void duk_push_buffer_object(duk_hthread *thr, duk_idx_t idx...
  function DUK_EXTERNAL (line 22245) | DUK_EXTERNAL void duk_push_buffer_object(duk_hthread *thr, duk_idx_t idx...
  function DUK_EXTERNAL (line 22255) | DUK_EXTERNAL duk_idx_t duk_push_error_object_va_raw(duk_hthread *thr, du...
  function DUK_EXTERNAL (line 22309) | DUK_EXTERNAL duk_idx_t duk_push_error_object_raw(duk_hthread *thr, duk_e...
  function DUK_EXTERNAL (line 22322) | DUK_EXTERNAL duk_idx_t duk_push_error_object_stash(duk_hthread *thr, duk...
  function DUK_EXTERNAL (line 22339) | DUK_EXTERNAL void *duk_push_buffer_raw(duk_hthread *thr, duk_size_t size...
  function DUK_INTERNAL (line 22366) | DUK_INTERNAL void *duk_push_fixed_buffer_nozero(duk_hthread *thr, duk_si...
  function DUK_INTERNAL (line 22371) | DUK_INTERNAL void *duk_push_fixed_buffer_zero(duk_hthread *thr, duk_size...
  function DUK_EXTERNAL (line 22387) | DUK_EXTERNAL duk_idx_t duk_push_proxy(duk_hthread *thr, duk_uint_t proxy...
  function DUK_EXTERNAL (line 22480) | DUK_EXTERNAL duk_idx_t duk_push_proxy(duk_hthread *thr, duk_uint_t proxy...
  function DUK_LOCAL (line 22488) | DUK_LOCAL void duk__validate_push_heapptr(duk_hthread *thr, void *ptr) {
  function DUK_EXTERNAL (line 22585) | DUK_EXTERNAL duk_idx_t duk_push_heapptr(duk_hthread *thr, void *ptr) {
  function DUK_EXTERNAL (line 22677) | DUK_EXTERNAL duk_idx_t duk_push_bare_object(duk_hthread *thr) {
  function DUK_INTERNAL (line 22688) | DUK_INTERNAL void duk_push_hstring(duk_hthread *thr, duk_hstring *h) {
  function DUK_INTERNAL (line 22698) | DUK_INTERNAL void duk_push_hstring_stridx(duk_hthread *thr, duk_small_ui...
  function DUK_INTERNAL (line 22704) | DUK_INTERNAL void duk_push_hstring_empty(duk_hthread *thr) {
  function DUK_INTERNAL (line 22709) | DUK_INTERNAL void duk_push_hobject(duk_hthread *thr, duk_hobject *h) {
  function DUK_INTERNAL (line 22719) | DUK_INTERNAL void duk_push_hbuffer(duk_hthread *thr, duk_hbuffer *h) {
  function DUK_INTERNAL (line 22729) | DUK_INTERNAL void duk_push_hobject_bidx(duk_hthread *thr, duk_small_int_...
  function duk__pop_n_unsafe_raw (line 22741) | void duk__pop_n_unsafe_raw(duk_hthread *thr, duk_idx_t count) {
  function DUK_EXTERNAL (line 22775) | DUK_EXTERNAL void duk_pop_n(duk_hthread *thr, duk_idx_t count) {
  function DUK_INTERNAL (line 22789) | DUK_INTERNAL void duk_pop_n_unsafe(duk_hthread *thr, duk_idx_t count) {
  function DUK_INTERNAL (line 22794) | DUK_INTERNAL void duk_pop_n_unsafe(duk_hthread *thr, duk_idx_t count) {
  function DUK_INTERNAL (line 22802) | DUK_INTERNAL void duk_pop_n_nodecref_unsafe(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 22822) | DUK_INTERNAL void duk_pop_n_nodecref_unsafe(duk_hthread *thr, duk_idx_t ...
  function DUK_EXTERNAL (line 22832) | DUK_EXTERNAL void duk_pop(duk_hthread *thr) {
  function DUK_INTERNAL (line 22836) | DUK_INTERNAL void duk_pop_unsafe(duk_hthread *thr) {
  function DUK_INTERNAL (line 22840) | DUK_INTERNAL void duk_pop_nodecref_unsafe(duk_hthread *thr) {
  function duk__pop_unsafe_raw (line 22845) | void duk__pop_unsafe_raw(duk_hthread *thr) {
  function DUK_EXTERNAL (line 22863) | DUK_EXTERNAL void duk_pop(duk_hthread *thr) {
  function DUK_INTERNAL (line 22873) | DUK_INTERNAL void duk_pop_unsafe(duk_hthread *thr) {
  function DUK_INTERNAL (line 22877) | DUK_INTERNAL void duk_pop_nodecref_unsafe(duk_hthread *thr) {
  function DUK_INTERNAL (line 22894) | DUK_INTERNAL void duk_pop_undefined(duk_hthread *thr) {
  function DUK_INTERNAL (line 22899) | DUK_INTERNAL void duk_pop_undefined(duk_hthread *thr) {
  function DUK_EXTERNAL (line 22913) | DUK_EXTERNAL void duk_pop_2(duk_hthread *thr) {
  function DUK_INTERNAL (line 22917) | DUK_INTERNAL void duk_pop_2_unsafe(duk_hthread *thr) {
  function DUK_INTERNAL (line 22921) | DUK_INTERNAL void duk_pop_2_nodecref_unsafe(duk_hthread *thr) {
  function duk__pop_2_unsafe_raw (line 22926) | void duk__pop_2_unsafe_raw(duk_hthread *thr) {
  function DUK_EXTERNAL (line 22951) | DUK_EXTERNAL void duk_pop_2(duk_hthread *thr) {
  function DUK_INTERNAL (line 22961) | DUK_INTERNAL void duk_pop_2_unsafe(duk_hthread *thr) {
  function DUK_INTERNAL (line 22965) | DUK_INTERNAL void duk_pop_2_nodecref_unsafe(duk_hthread *thr) {
  function DUK_EXTERNAL (line 22979) | DUK_EXTERNAL void duk_pop_3(duk_hthread *thr) {
  function DUK_INTERNAL (line 22984) | DUK_INTERNAL void duk_pop_3_unsafe(duk_hthread *thr) {
  function DUK_INTERNAL (line 22989) | DUK_INTERNAL void duk_pop_3_nodecref_unsafe(duk_hthread *thr) {
  function DUK_INTERNAL (line 22999) | DUK_INTERNAL void duk_pack(duk_hthread *thr, duk_idx_t count) {
  function DUK_INTERNAL (line 23054) | DUK_INTERNAL duk_idx_t duk_unpack_array_like(duk_hthread *thr, duk_idx_t...
  function DUK_EXTERNAL (line 23162) | DUK_EXTERNAL void duk_throw_raw(duk_hthread *thr) {
  function DUK_EXTERNAL (line 23206) | DUK_EXTERNAL void duk_fatal_raw(duk_hthread *thr, const char *err_msg) {
  function DUK_EXTERNAL (line 23230) | DUK_EXTERNAL void duk_error_va_raw(duk_hthread *thr, duk_errcode_t err_c...
  function DUK_EXTERNAL (line 23237) | DUK_EXTERNAL void duk_error_raw(duk_hthread *thr, duk_errcode_t err_code...
  function DUK_LOCAL (line 23251) | DUK_LOCAL void duk__throw_error_from_stash(duk_hthread *thr, duk_errcode...
  function DUK_EXTERNAL (line 23278) | DUK_EXTERNAL duk_ret_t duk_generic_error_stash(duk_hthread *thr, const c...
  function DUK_EXTERNAL (line 23282) | DUK_EXTERNAL duk_ret_t duk_eval_error_stash(duk_hthread *thr, const char...
  function DUK_EXTERNAL (line 23286) | DUK_EXTERNAL duk_ret_t duk_range_error_stash(duk_hthread *thr, const cha...
  function DUK_EXTERNAL (line 23290) | DUK_EXTERNAL duk_ret_t duk_reference_error_stash(duk_hthread *thr, const...
  function DUK_EXTERNAL (line 23294) | DUK_EXTERNAL duk_ret_t duk_syntax_error_stash(duk_hthread *thr, const ch...
  function DUK_EXTERNAL (line 23298) | DUK_EXTERNAL duk_ret_t duk_type_error_stash(duk_hthread *thr, const char...
  function DUK_EXTERNAL (line 23302) | DUK_EXTERNAL duk_ret_t duk_uri_error_stash(duk_hthread *thr, const char ...
  function DUK_EXTERNAL (line 23312) | DUK_EXTERNAL duk_bool_t duk_equals(duk_hthread *thr, duk_idx_t idx1, duk...
  function DUK_EXTERNAL (line 23329) | DUK_EXTERNAL duk_bool_t duk_strict_equals(duk_hthread *thr, duk_idx_t id...
  function DUK_EXTERNAL (line 23344) | DUK_EXTERNAL duk_bool_t duk_samevalue(duk_hthread *thr, duk_idx_t idx1, ...
  function DUK_EXTERNAL (line 23363) | DUK_EXTERNAL duk_bool_t duk_instanceof(duk_hthread *thr, duk_idx_t idx1,...
  function DUK_INTERNAL (line 23386) | DUK_INTERNAL void duk_push_lightfunc_name_raw(duk_hthread *thr, duk_c_fu...
  function DUK_INTERNAL (line 23407) | DUK_INTERNAL void duk_push_lightfunc_name(duk_hthread *thr, duk_tval *tv) {
  function DUK_INTERNAL (line 23418) | DUK_INTERNAL void duk_push_lightfunc_tostring(duk_hthread *thr, duk_tval...
  function DUK_INTERNAL (line 23439) | DUK_INTERNAL void duk_push_string_funcptr(duk_hthread *thr, duk_uint8_t ...
  function DUK_LOCAL (line 23484) | DUK_LOCAL void duk__push_hstring_readable_unicode(duk_hthread *thr, duk_...
  function DUK_LOCAL (line 23535) | DUK_LOCAL const char *duk__push_string_tval_readable(duk_hthread *thr, d...
  function DUK_INTERNAL (line 23615) | DUK_INTERNAL const char *duk_push_string_tval_readable(duk_hthread *thr,...
  function DUK_INTERNAL (line 23620) | DUK_INTERNAL const char *duk_push_string_readable(duk_hthread *thr, duk_...
  function DUK_INTERNAL (line 23625) | DUK_INTERNAL const char *duk_push_string_tval_readable_error(duk_hthread...
  function DUK_INTERNAL (line 23630) | DUK_INTERNAL void duk_push_symbol_descriptive_string(duk_hthread *thr, d...
  function DUK_INTERNAL (line 23663) | DUK_INTERNAL void duk_push_hnatfunc_name(duk_hthread *thr, duk_hnatfunc ...
  function DUK_INTERNAL (line 23684) | DUK_INTERNAL void duk_copy_tvals_incref(duk_hthread *thr, duk_tval *tv_d...
  function DUK_LOCAL (line 23714) | DUK_LOCAL void duk__concat_and_join_helper(duk_hthread *thr, duk_idx_t c...
  function DUK_EXTERNAL (line 23816) | DUK_EXTERNAL void duk_concat(duk_hthread *thr, duk_idx_t count) {
  function DUK_INTERNAL (line 23823) | DUK_INTERNAL void duk_concat_2(duk_hthread *thr) {
  function DUK_INTERNAL (line 23828) | DUK_INTERNAL void duk_concat_2(duk_hthread *thr) {
  function DUK_EXTERNAL (line 23866) | DUK_EXTERNAL void duk_join(duk_hthread *thr, duk_idx_t count) {
  function DUK_EXTERNAL (line 23876) | DUK_EXTERNAL void duk_decode_string(duk_hthread *thr, duk_idx_t idx, duk...
  function DUK_EXTERNAL (line 23899) | DUK_EXTERNAL void duk_map_string(duk_hthread *thr, duk_idx_t idx, duk_ma...
  function DUK_EXTERNAL (line 23939) | DUK_EXTERNAL void duk_substring(duk_hthread *thr, duk_idx_t idx, duk_siz...
  function DUK_EXTERNAL (line 23987) | DUK_EXTERNAL void duk_trim(duk_hthread *thr, duk_idx_t idx) {
  function DUK_EXTERNAL (line 24062) | DUK_EXTERNAL duk_codepoint_t duk_char_code_at(duk_hthread *thr, duk_idx_...
  function DUK_INTERNAL (line 24091) | DUK_INTERNAL duk_double_t duk_time_get_ecmascript_time(duk_hthread *thr) {
  function DUK_INTERNAL (line 24099) | DUK_INTERNAL duk_double_t duk_time_get_ecmascript_time_nofrac(duk_hthrea...
  function DUK_INTERNAL (line 24107) | DUK_INTERNAL duk_double_t duk_time_get_monotonic_time(duk_hthread *thr) {
  function DUK_EXTERNAL (line 24116) | DUK_EXTERNAL duk_double_t duk_get_now(duk_hthread *thr) {
  function DUK_EXTERNAL (line 24125) | DUK_EXTERNAL duk_double_t duk_get_monotonic_time(duk_hthread *thr) {
  function DUK_EXTERNAL (line 24133) | DUK_EXTERNAL void duk_time_to_components(duk_hthread *thr, duk_double_t ...
  function DUK_EXTERNAL (line 24162) | DUK_EXTERNAL duk_double_t duk_components_to_time(duk_hthread *thr, duk_t...
  function DUK_LOCAL (line 24254) | DUK_LOCAL duk_uint32_t duk__push_this_obj_len_u32(duk_hthread *thr) {
  function DUK_LOCAL (line 24267) | DUK_LOCAL duk_uint32_t duk__push_this_obj_len_u32_limited(duk_hthread *t...
  function DUK_LOCAL (line 24286) | DUK_LOCAL duk_harray *duk__arraypart_fastpath_this(duk_hthread *thr) {
  function DUK_INTERNAL (line 24339) | DUK_INTERNAL duk_ret_t duk_bi_array_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 24374) | DUK_INTERNAL duk_ret_t duk_bi_array_constructor_is_array(duk_hthread *th...
  function DUK_INTERNAL (line 24386) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_to_string(duk_hthread *thr) {
  function DUK_INTERNAL (line 24425) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_concat(duk_hthread *thr) {
  function DUK_INTERNAL (line 24517) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_join_shared(duk_hthread *t...
  function DUK_LOCAL (line 24600) | DUK_LOCAL duk_ret_t duk__array_pop_fastpath(duk_hthread *thr, duk_harray...
  function DUK_INTERNAL (line 24640) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_pop(duk_hthread *thr) {
  function DUK_LOCAL (line 24674) | DUK_LOCAL duk_ret_t duk__array_push_fastpath(duk_hthread *thr, duk_harra...
  function DUK_INTERNAL (line 24721) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_push(duk_hthread *thr) {
  function DUK_LOCAL (line 24790) | DUK_LOCAL duk_small_int_t duk__array_sort_compare(duk_hthread *thr, duk_...
  function DUK_LOCAL (line 24909) | DUK_LOCAL void duk__array_sort_swap(duk_hthread *thr, duk_int_t l, duk_i...
  function DUK_LOCAL (line 24939) | DUK_LOCAL void duk__debuglog_qsort_state(duk_hthread *thr, duk_int_t lo,...
  function DUK_LOCAL (line 24969) | DUK_LOCAL void duk__array_qsort(duk_hthread *thr, duk_int_t lo, duk_int_...
  function DUK_INTERNAL (line 25065) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_sort(duk_hthread *thr) {
  function DUK_INTERNAL (line 25101) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_splice(duk_hthread *thr) {
  function DUK_INTERNAL (line 25268) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_reverse(duk_hthread *thr) {
  function DUK_INTERNAL (line 25319) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_slice(duk_hthread *thr) {
  function DUK_INTERNAL (line 25385) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_shift(duk_hthread *thr) {
  function DUK_INTERNAL (line 25427) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_unshift(duk_hthread *thr) {
  function DUK_INTERNAL (line 25489) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_indexof_shared(duk_hthread...
  function DUK_INTERNAL (line 25590) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_iter_shared(duk_hthread *t...
  function DUK_INTERNAL (line 25723) | DUK_INTERNAL duk_ret_t duk_bi_array_prototype_reduce_shared(duk_hthread ...
  function DUK_INTERNAL (line 25827) | DUK_INTERNAL duk_ret_t duk_bi_boolean_prototype_tostring_shared(duk_hthr...
  function DUK_INTERNAL (line 25864) | DUK_INTERNAL duk_ret_t duk_bi_boolean_constructor(duk_hthread *thr) {
  function DUK_LOCAL (line 26002) | DUK_LOCAL duk_hbufobj *duk__hbufobj_promote_this(duk_hthread *thr) {
  function DUK_LOCAL (line 26026) | DUK_LOCAL duk_heaphdr *duk__getrequire_bufobj_this(duk_hthread *thr, duk...
  function DUK_LOCAL (line 26068) | DUK_LOCAL duk_hbufobj *duk__get_bufobj_this(duk_hthread *thr) {
  function DUK_LOCAL (line 26075) | DUK_LOCAL duk_hbufobj *duk__require_bufobj_this(duk_hthread *thr) {
  function DUK_LOCAL (line 26080) | DUK_LOCAL duk_hbufobj *duk__require_bufobj_value(duk_hthread *thr, duk_i...
  function DUK_LOCAL (line 26107) | DUK_LOCAL void duk__set_bufobj_buffer(duk_hthread *thr, duk_hbufobj *h_b...
  function DUK_LOCAL (line 26126) | DUK_LOCAL void duk__resolve_offset_opt_length(duk_hthread *thr,
  function DUK_LOCAL (line 26184) | DUK_LOCAL void duk__clamp_startend_nonegidx_noshift(duk_hthread *thr,
  function DUK_LOCAL (line 26221) | DUK_LOCAL void duk__clamp_startend_negidx_shifted(duk_hthread *thr,
  function DUK_INTERNAL (line 26279) | DUK_INTERNAL void duk_hbufobj_promote_plain(duk_hthread *thr, duk_idx_t ...
  function DUK_INTERNAL (line 26285) | DUK_INTERNAL void duk_hbufobj_push_uint8array_from_plain(duk_hthread *th...
  function DUK_INTERNAL (line 26326) | DUK_INTERNAL void duk_hbufobj_push_validated_read(duk_hthread *thr, duk_...
  function DUK_INTERNAL (line 26363) | DUK_INTERNAL void duk_hbufobj_validated_write(duk_hthread *thr, duk_hbuf...
  function DUK_LOCAL (line 26412) | DUK_LOCAL duk_hbuffer *duk__hbufobj_fixed_from_argvalue(duk_hthread *thr) {
  function DUK_INTERNAL (line 26495) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 26520) | DUK_INTERNAL duk_ret_t duk_bi_arraybuffer_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 26562) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 26915) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 26941) | DUK_INTERNAL duk_ret_t duk_bi_dataview_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 26993) | DUK_INTERNAL duk_ret_t duk_bi_arraybuffer_isview(duk_hthread *thr) {
  function DUK_INTERNAL (line 27019) | DUK_INTERNAL duk_ret_t duk_bi_uint8array_allocplain(duk_hthread *thr) {
  function DUK_INTERNAL (line 27030) | DUK_INTERNAL duk_ret_t duk_bi_uint8array_plainof(duk_hthread *thr) {
  function DUK_INTERNAL (line 27059) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_tostring(duk_hthread *thr) {
  function DUK_INTERNAL (line 27118) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_tojson(duk_hthread *thr) {
  function DUK_INTERNAL (line 27161) | DUK_INTERNAL duk_ret_t duk_bi_buffer_compare_shared(duk_hthread *thr) {
  function DUK_INTERNAL (line 27214) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_fill(duk_hthread *thr) {
  function DUK_INTERNAL (line 27288) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_write(duk_hthread *thr) {
  function DUK_INTERNAL (line 27331) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_copy(duk_hthread *thr) {
  function DUK_INTERNAL (line 27469) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_set(duk_hthread *thr) {
  function DUK_LOCAL (line 27748) | DUK_LOCAL void duk__arraybuffer_plain_slice(duk_hthread *thr, duk_hbuffe...
  function DUK_INTERNAL (line 27780) | DUK_INTERNAL duk_ret_t duk_bi_buffer_slice_shared(duk_hthread *thr) {
  function DUK_INTERNAL (line 27933) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_is_encoding(duk_hthread *thr) {
  function DUK_INTERNAL (line 27950) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_is_buffer(duk_hthread *thr) {
  function DUK_INTERNAL (line 27977) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_byte_length(duk_hthread *thr) {
  function DUK_INTERNAL (line 28008) | DUK_INTERNAL duk_ret_t duk_bi_nodejs_buffer_concat(duk_hthread *thr) {
  function DUK_INTERNAL (line 28138) | DUK_INTERNAL duk_ret_t duk_bi_buffer_readfield(duk_hthread *thr) {
  function DUK_INTERNAL (line 28394) | DUK_INTERNAL duk_ret_t duk_bi_buffer_writefield(duk_hthread *thr) {
  function DUK_LOCAL (line 28671) | DUK_LOCAL duk_hbufobj *duk__autospawn_arraybuffer(duk_hthread *thr, duk_...
  function DUK_INTERNAL (line 28688) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_buffer_getter(duk_hthread *thr) {
  function DUK_INTERNAL (line 28736) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_byteoffset_getter(duk_hthread *...
  function DUK_INTERNAL (line 28752) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_bytelength_getter(duk_hthread *...
  function DUK_INTERNAL (line 28774) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_buffer_getter(duk_hthread *thr) {
  function DUK_INTERNAL (line 28779) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_byteoffset_getter(duk_hthread *...
  function DUK_INTERNAL (line 28784) | DUK_INTERNAL duk_ret_t duk_bi_typedarray_bytelength_getter(duk_hthread *...
  function DUK_LOCAL (line 28996) | DUK_LOCAL duk_bool_t duk__parse_string_iso8601_subset(duk_hthread *thr, ...
  function DUK_LOCAL (line 29191) | DUK_LOCAL duk_ret_t duk__parse_string(duk_hthread *thr, const char *str) {
  function DUK_INTERNAL (line 29249) | DUK_INTERNAL duk_bool_t duk_bi_date_is_leap_year(duk_int_t year) {
  function DUK_INTERNAL (line 29262) | DUK_INTERNAL duk_bool_t duk_bi_date_timeval_in_valid_range(duk_double_t ...
  function DUK_INTERNAL (line 29266) | DUK_INTERNAL duk_bool_t duk_bi_date_timeval_in_leeway_range(duk_double_t...
  function DUK_INTERNAL (line 29270) | DUK_INTERNAL duk_bool_t duk_bi_date_year_in_valid_range(duk_double_t x) {
  function DUK_LOCAL (line 29274) | DUK_LOCAL duk_double_t duk__timeclip(duk_double_t x) {
  function DUK_LOCAL (line 29290) | DUK_LOCAL duk_int_t duk__div_floor(duk_int_t a, duk_int_t b) {
  function DUK_LOCAL (line 29304) | DUK_LOCAL duk_int_t duk__day_from_year(duk_int_t year) {
  function DUK_LOCAL (line 29315) | DUK_LOCAL duk_int_t duk__year_from_day(duk_int_t day, duk_small_int_t *o...
  function DUK_LOCAL (line 29352) | DUK_LOCAL duk_double_t duk__make_day(duk_double_t year, duk_double_t mon...
  function DUK_INTERNAL (line 29414) | DUK_INTERNAL void duk_bi_date_timeval_to_parts(duk_double_t d, duk_int_t...
  function DUK_INTERNAL (line 29560) | DUK_INTERNAL duk_double_t duk_bi_date_get_timeval_from_dparts(duk_double...
  function DUK_LOCAL (line 29698) | DUK_LOCAL duk_double_t duk__push_this_get_timeval_tzoffset(duk_hthread *...
  function DUK_LOCAL (line 29739) | DUK_LOCAL duk_double_t duk__push_this_get_timeval(duk_hthread *thr, duk_...
  function DUK_LOCAL (line 29747) | DUK_LOCAL duk_ret_t duk__set_this_timeval_from_dparts(duk_hthread *thr, ...
  function DUK_LOCAL (line 29762) | DUK_LOCAL void duk__format_parts_iso8601(duk_int_t *parts, duk_int_t tzo...
  function DUK_LOCAL (line 29832) | DUK_LOCAL duk_ret_t duk__to_string_helper(duk_hthread *thr, duk_small_ui...
  function DUK_LOCAL (line 29888) | DUK_LOCAL duk_ret_t duk__get_part_helper(duk_hthread *thr, duk_small_uin...
  function DUK_LOCAL (line 29920) | DUK_LOCAL duk_ret_t duk__set_part_helper(duk_hthread *thr, duk_small_uin...
  function DUK_LOCAL (line 30019) | DUK_LOCAL void duk__twodigit_year_fixup(duk_hthread *thr, duk_idx_t idx_...
  function DUK_LOCAL (line 30045) | DUK_LOCAL void duk__set_parts_from_args(duk_hthread *thr, duk_double_t *...
  function DUK_LOCAL (line 30220) | DUK_LOCAL duk_small_uint_t duk__date_get_indirect_magic(duk_hthread *thr) {
  function DUK_INTERNAL (line 30231) | DUK_INTERNAL duk_ret_t duk_bi_date_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 30281) | DUK_INTERNAL duk_ret_t duk_bi_date_constructor_parse(duk_hthread *thr) {
  function DUK_INTERNAL (line 30285) | DUK_INTERNAL duk_ret_t duk_bi_date_constructor_utc(duk_hthread *thr) {
  function DUK_INTERNAL (line 30304) | DUK_INTERNAL duk_ret_t duk_bi_date_constructor_now(duk_hthread *thr) {
  function DUK_INTERNAL (line 30347) | DUK_INTERNAL duk_ret_t duk_bi_date_prototype_tostring_shared(duk_hthread...
  function DUK_INTERNAL (line 30352) | DUK_INTERNAL duk_ret_t duk_bi_date_prototype_value_of(duk_hthread *thr) {
  function DUK_INTERNAL (line 30363) | DUK_INTERNAL duk_ret_t duk_bi_date_prototype_to_json(duk_hthread *thr) {
  function DUK_INTERNAL (line 30429) | DUK_INTERNAL duk_ret_t duk_bi_date_prototype_get_shared(duk_hthread *thr) {
  function DUK_INTERNAL (line 30434) | DUK_INTERNAL duk_ret_t duk_bi_date_prototype_get_timezone_offset(duk_hth...
  function DUK_INTERNAL (line 30514) | DUK_INTERNAL duk_ret_t duk_bi_date_prototype_set_shared(duk_hthread *thr) {
  function DUK_INTERNAL (line 30519) | DUK_INTERNAL duk_ret_t duk_bi_date_prototype_set_time(duk_hthread *thr) {
  function duk_bi_date_get_now_gettimeofday (line 30600) | duk_bi_date_get_now_gettimeofday(void) {
  function duk_bi_date_get_now_time (line 30619) | duk_bi_date_get_now_time(void) {
  function DUK_INTERNAL (line 30633) | DUK_INTERNAL duk_int_t duk_bi_date_get_local_tzoffset_gmtime(duk_double_...
  function DUK_INTERNAL (line 30782) | DUK_INTERNAL duk_bool_t duk_bi_date_parse_string_strptime(duk_hthread *t...
  function DUK_INTERNAL (line 30817) | DUK_INTERNAL duk_bool_t duk_bi_date_parse_string_getdate(duk_hthread *th...
  function DUK_INTERNAL (line 30844) | DUK_INTERNAL duk_bool_t duk_bi_date_format_parts_strftime(duk_hthread *t...
  function duk_bi_date_get_monotonic_time_clock_gettime (line 30896) | duk_bi_date_get_monotonic_time_clock_gettime(void) {
  function DUK_LOCAL (line 30926) | DUK_LOCAL void duk__convert_systime_to_ularge(const SYSTEMTIME *st, ULAR...
  function DUK_LOCAL (line 30937) | DUK_LOCAL void duk__convert_filetime_to_ularge(const FILETIME *ft, ULARG...
  function DUK_LOCAL (line 30942) | DUK_LOCAL void duk__set_systime_jan1970(SYSTEMTIME *st) {
  function duk_bi_date_get_now_windows (line 30956) | duk_bi_date_get_now_windows(void) {
  function duk_bi_date_get_now_windows_subms (line 30978) | duk_bi_date_get_now_windows_subms(void) {
  function DUK_INTERNAL (line 31000) | DUK_INTERNAL duk_int_t duk_bi_date_get_local_tzoffset_windows(duk_double...
  function DUK_INTERNAL (line 31040) | DUK_INTERNAL duk_int_t duk_bi_date_get_local_tzoffset_windows_no_dst(duk...
  function duk_bi_date_get_monotonic_time_windows_qpc (line 31072) | duk_bi_date_get_monotonic_time_windows_qpc(void) {
  function DUK_INTERNAL (line 31111) | DUK_INTERNAL duk_ret_t duk_bi_duktape_object_info(duk_hthread *thr) {
  function DUK_INTERNAL (line 31116) | DUK_INTERNAL duk_ret_t duk_bi_duktape_object_act(duk_hthread *thr) {
  function DUK_INTERNAL (line 31124) | DUK_INTERNAL duk_ret_t duk_bi_duktape_object_gc(duk_hthread *thr) {
  function DUK_INTERNAL (line 31138) | DUK_INTERNAL duk_ret_t duk_bi_duktape_object_fin(duk_hthread *thr) {
  function DUK_INTERNAL (line 31160) | DUK_INTERNAL duk_ret_t duk_bi_duktape_object_enc(duk_hthread *thr) {
  function DUK_INTERNAL (line 31204) | DUK_INTERNAL duk_ret_t duk_bi_duktape_object_dec(duk_hthread *thr) {
  function DUK_INTERNAL (line 31247) | DUK_INTERNAL duk_ret_t duk_bi_duktape_object_compact(duk_hthread *thr) {
  type duk__encode_context (line 31268) | typedef struct {
  type duk__decode_context (line 31273) | typedef struct {
  function DUK_LOCAL (line 31298) | DUK_LOCAL duk_uint8_t *duk__utf8_emit_repl(duk_uint8_t *ptr) {
  function DUK_LOCAL (line 31305) | DUK_LOCAL void duk__utf8_decode_init(duk__decode_context *dec_ctx) {
  function DUK_LOCAL (line 31316) | DUK_LOCAL duk_codepoint_t duk__utf8_decode_next(duk__decode_context *dec...
  function DUK_LOCAL (line 31401) | DUK_LOCAL void duk__utf8_encode_char(void *udata, duk_codepoint_t codepo...
  function DUK_LOCAL (line 31460) | DUK_LOCAL duk_ret_t duk__decode_helper(duk_hthread *thr, duk__decode_con...
  function DUK_INTERNAL (line 31596) | DUK_INTERNAL duk_ret_t duk_bi_textencoder_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 31605) | DUK_INTERNAL duk_ret_t duk_bi_textencoder_prototype_encoding_getter(duk_...
  function DUK_INTERNAL (line 31610) | DUK_INTERNAL duk_ret_t duk_bi_textencoder_prototype_encode(duk_hthread *...
  function DUK_INTERNAL (line 31692) | DUK_INTERNAL duk_ret_t duk_bi_textdecoder_constructor(duk_hthread *thr) {
  function DUK_LOCAL (line 31727) | DUK_LOCAL duk__decode_context *duk__get_textdecoder_context(duk_hthread ...
  function DUK_INTERNAL (line 31736) | DUK_INTERNAL duk_ret_t duk_bi_textdecoder_prototype_shared_getter(duk_ht...
  function DUK_INTERNAL (line 31760) | DUK_INTERNAL duk_ret_t duk_bi_textdecoder_prototype_decode(duk_hthread *...
  function DUK_INTERNAL (line 31777) | DUK_INTERNAL duk_ret_t duk_textdecoder_decode_utf8_nodejs(duk_hthread *t...
  function DUK_INTERNAL (line 31798) | DUK_INTERNAL duk_ret_t duk_bi_error_constructor_shared(duk_hthread *thr) {
  function DUK_INTERNAL (line 31837) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_to_string(duk_hthread *thr) {
  function DUK_LOCAL (line 31906) | DUK_LOCAL duk_ret_t duk__error_getter_helper(duk_hthread *thr, duk_small...
  function DUK_INTERNAL (line 32097) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_stack_getter(duk_hthread *...
  function DUK_INTERNAL (line 32101) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_filename_getter(duk_hthrea...
  function DUK_INTERNAL (line 32105) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_linenumber_getter(duk_hthr...
  function DUK_INTERNAL (line 32123) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_stack_getter(duk_hthread *...
  function DUK_INTERNAL (line 32130) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_filename_getter(duk_hthrea...
  function DUK_INTERNAL (line 32135) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_linenumber_getter(duk_hthr...
  function DUK_LOCAL (line 32142) | DUK_LOCAL duk_ret_t duk__error_setter_helper(duk_hthread *thr, duk_small...
  function DUK_INTERNAL (line 32168) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_stack_setter(duk_hthread *...
  function DUK_INTERNAL (line 32172) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_filename_setter(duk_hthrea...
  function DUK_INTERNAL (line 32176) | DUK_INTERNAL duk_ret_t duk_bi_error_prototype_linenumber_setter(duk_hthr...
  function DUK_INTERNAL (line 32192) | DUK_INTERNAL duk_ret_t duk_bi_function_prototype(duk_hthread *thr) {
  function DUK_INTERNAL (line 32199) | DUK_INTERNAL duk_ret_t duk_bi_function_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 32282) | DUK_INTERNAL duk_ret_t duk_bi_function_prototype_to_string(duk_hthread *...
  function DUK_INTERNAL (line 32353) | DUK_INTERNAL duk_ret_t duk_bi_function_prototype_call(duk_hthread *thr) {
  function DUK_INTERNAL (line 32361) | DUK_INTERNAL duk_ret_t duk_bi_function_prototype_apply(duk_hthread *thr) {
  function DUK_INTERNAL (line 32367) | DUK_INTERNAL duk_ret_t duk_bi_reflect_apply(duk_hthread *thr) {
  function DUK_INTERNAL (line 32373) | DUK_INTERNAL duk_ret_t duk_bi_reflect_construct(duk_hthread *thr) {
  function DUK_INTERNAL (line 32385) | DUK_INTERNAL duk_ret_t duk_bi_function_prototype_bind(duk_hthread *thr) {
  function DUK_INTERNAL (line 32567) | DUK_INTERNAL duk_ret_t duk_bi_native_function_length(duk_hthread *thr) {
  function DUK_INTERNAL (line 32600) | DUK_INTERNAL duk_ret_t duk_bi_native_function_name(duk_hthread *thr) {
  type duk__transform_context (line 32714) | typedef struct {
  function DUK_LOCAL (line 32726) | DUK_LOCAL duk_small_int_t duk__decode_hex_escape(const duk_uint8_t *p, d...
  function DUK_LOCAL (line 32743) | DUK_LOCAL int duk__transform_helper(duk_hthread *thr, duk__transform_cal...
  function DUK_LOCAL (line 32770) | DUK_LOCAL void duk__transform_callback_encode_uri(duk__transform_context...
  function DUK_LOCAL (line 32832) | DUK_LOCAL void duk__transform_callback_decode_uri(duk__transform_context...
  function DUK_LOCAL (line 32971) | DUK_LOCAL void duk__transform_callback_escape(duk__transform_context *tf...
  function DUK_LOCAL (line 33010) | DUK_LOCAL void duk__transform_callback_unescape(duk__transform_context *...
  function DUK_INTERNAL (line 33045) | DUK_INTERNAL duk_ret_t duk_bi_global_object_eval(duk_hthread *thr) {
  function DUK_INTERNAL (line 33230) | DUK_INTERNAL duk_ret_t duk_bi_global_object_parse_int(duk_hthread *thr) {
  function DUK_INTERNAL (line 33278) | DUK_INTERNAL duk_ret_t duk_bi_global_object_parse_float(duk_hthread *thr) {
  function DUK_INTERNAL (line 33306) | DUK_INTERNAL duk_ret_t duk_bi_global_object_is_nan(duk_hthread *thr) {
  function DUK_INTERNAL (line 33314) | DUK_INTERNAL duk_ret_t duk_bi_global_object_is_finite(duk_hthread *thr) {
  function DUK_INTERNAL (line 33326) | DUK_INTERNAL duk_ret_t duk_bi_global_object_decode_uri(duk_hthread *thr) {
  function DUK_INTERNAL (line 33330) | DUK_INTERNAL duk_ret_t duk_bi_global_object_decode_uri_component(duk_hth...
  function DUK_INTERNAL (line 33334) | DUK_INTERNAL duk_ret_t duk_bi_global_object_encode_uri(duk_hthread *thr) {
  function DUK_INTERNAL (line 33338) | DUK_INTERNAL duk_ret_t duk_bi_global_object_encode_uri_component(duk_hth...
  function DUK_INTERNAL (line 33343) | DUK_INTERNAL duk_ret_t duk_bi_global_object_escape(duk_hthread *thr) {
  function DUK_INTERNAL (line 33347) | DUK_INTERNAL duk_ret_t duk_bi_global_object_unescape(duk_hthread *thr) {
  function DUK_LOCAL (line 33566) | DUK_LOCAL void duk__dec_syntax_error(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 33575) | DUK_LOCAL void duk__dec_eat_white(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 33606) | DUK_LOCAL duk_uint8_t duk__dec_peek(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 33612) | DUK_LOCAL duk_uint8_t duk__dec_get(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 33617) | DUK_LOCAL duk_uint8_t duk__dec_get_nonwhite(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 33623) | DUK_LOCAL duk_uint_fast32_t duk__dec_decode_hex_escape(duk_json_dec_ctx ...
  function DUK_LOCAL (line 33656) | DUK_LOCAL void duk__dec_req_stridx(duk_json_dec_ctx *js_ctx, duk_small_u...
  function DUK_LOCAL (line 33693) | DUK_LOCAL duk_small_int_t duk__dec_string_escape(duk_json_dec_ctx *js_ct...
  function DUK_LOCAL (line 33742) | DUK_LOCAL void duk__dec_string(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 33851) | DUK_LOCAL void duk__dec_plain_string(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 33893) | DUK_LOCAL void duk__dec_pointer(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 33946) | DUK_LOCAL void duk__dec_buffer(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 34004) | DUK_LOCAL void duk__dec_number(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 34069) | DUK_LOCAL void duk__dec_objarr_entry(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 34083) | DUK_LOCAL void duk__dec_objarr_exit(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 34091) | DUK_LOCAL void duk__dec_object(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 34174) | DUK_LOCAL void duk__dec_array(duk_json_dec_ctx *js_ctx) {
  function else (line 34267) | else if (x == DUK_ASC_LC_T) {
  function else (line 34270) | else if (x == DUK_ASC_LC_F) {
  function else (line 34273) | else if (x == DUK_ASC_LC_N) {
  function else (line 34277) | else if (js_ctx->flag_ext_custom && x == DUK_ASC_LC_U) {
  function else (line 34280) | else if (js_ctx->flag_ext_custom && x == DUK_ASC_UC_N) {
  function else (line 34283) | else if (js_ctx->flag_ext_custom && x == DUK_ASC_UC_I) {
  function else (line 34286) | else if (js_ctx->flag_ext_custom && x == DUK_ASC_LPAREN) {
  function else (line 34288) | else if (js_ctx->flag_ext_custom && x == DUK_ASC_PIPE) {
  function else (line 34291) | else if (x == DUK_ASC_LCURLY) {
  function else (line 34293) | else if (x == DUK_ASC_LBRACKET) {
  function DUK_LOCAL (line 34314) | DUK_LOCAL void duk__dec_reviver_walk(duk_json_dec_ctx *js_ctx) {
  function DUK_LOCAL (line 34414) | DUK_LOCAL void duk__emit_1(duk_json_enc_ctx *js_ctx, duk_uint_fast8_t ch) {
  function DUK_LOCAL (line 34418) | DUK_LOCAL void duk__emit_2(duk_json_enc_ctx *js_ctx, duk_uint_fast8_t ch...
  function DUK_LOCAL (line 34422) | DUK_LOCAL void duk__emit_hstring(duk_json_enc_ctx *js_ctx, duk_hstring *...
  function DUK_LOCAL (line 34427) | DUK_LOCAL void duk__emit_cstring(duk_json_enc_ctx *js_ctx, const char *s...
  function DUK_LOCAL (line 34432) | DUK_LOCAL void duk__emit_stridx(duk_json_enc_ctx *js_ctx, duk_small_uint...
  function DUK_LOCAL (line 34442) | DUK_LOCAL void duk__unemit_1(duk_json_enc_ctx *js_ctx) {
  function DUK_LOCAL (line 34452) | DUK_LOCAL duk_uint8_t *duk__emit_esc_auto_fast(duk_json_enc_ctx *js_ctx,...
  function DUK_LOCAL (line 34506) | DUK_LOCAL void duk__enc_key_autoquote(duk_json_enc_ctx *js_ctx, duk_hstr...
  function DUK_LOCAL (line 34694) | DUK_LOCAL void duk__enc_double(duk_json_enc_ctx *js_ctx) {
  function DUK_LOCAL (line 34758) | DUK_LOCAL void duk__enc_fastint_tval(duk_json_enc_ctx *js_ctx, duk_tval ...
  function DUK_LOCAL (line 34783) | DUK_LOCAL duk_uint8_t *duk__enc_buffer_data_hex(const duk_uint8_t *src, ...
  function DUK_LOCAL (line 34841) | DUK_LOCAL duk_uint8_t *duk__enc_buffer_data_hex(const duk_uint8_t *src, ...
  function DUK_LOCAL (line 34860) | DUK_LOCAL void duk__enc_buffer_data(duk_json_enc_ctx *js_ctx, duk_uint8_...
  function DUK_LOCAL (line 34914) | DUK_LOCAL void duk__enc_buffer_jx_jc(duk_json_enc_ctx *js_ctx, duk_hbuff...
  function DUK_LOCAL (line 34922) | DUK_LOCAL void duk__enc_buffer_json_fastpath(duk_json_enc_ctx *js_ctx, d...
  function DUK_LOCAL (line 34969) | DUK_LOCAL void duk__enc_pointer(duk_json_enc_ctx *js_ctx, void *ptr) {
  function DUK_LOCAL (line 35007) | DUK_LOCAL void duk__enc_bufobj(duk_json_enc_ctx *js_ctx, duk_hbufobj *h_...
  function DUK_LOCAL (line 35026) | DUK_LOCAL void duk__enc_newline_indent(duk_json_enc_ctx *js_ctx, duk_uin...
  function DUK_LOCAL (line 35036) | DUK_LOCAL void duk__enc_newline_indent(duk_json_enc_ctx *js_ctx, duk_uin...
  function DUK_LOCAL (line 35089) | DUK_LOCAL void duk__enc_objarr_entry(duk_json_enc_ctx *js_ctx, duk_idx_t...
  function DUK_LOCAL (line 35140) | DUK_LOCAL void duk__enc_objarr_exit(duk_json_enc_ctx *js_ctx, duk_idx_t ...
  function DUK_LOCAL (line 35172) | DUK_LOCAL void duk__enc_object(duk_json_enc_ctx *js_ctx) {
  function DUK_LOCAL (line 35268) | DUK_LOCAL void duk__enc_array(duk_json_enc_ctx *js_ctx) {
  function DUK_LOCAL (line 35334) | DUK_LOCAL duk_bool_t duk__enc_value(duk_json_enc_ctx *js_ctx, duk_idx_t ...
  function DUK_LOCAL (line 35600) | DUK_LOCAL duk_bool_t duk__enc_allow_into_proplist(duk_tval *tv) {
  function DUK_LOCAL (line 35640) | DUK_LOCAL duk_bool_t duk__json_stringify_fast_value(duk_json_enc_ctx *js...
  function DUK_INTERNAL (line 36935) | DUK_INTERNAL duk_ret_t duk_bi_math_object_onearg_shared(duk_hthread *thr) {
  function DUK_INTERNAL (line 36948) | DUK_INTERNAL duk_ret_t duk_bi_math_object_twoarg_shared(duk_hthread *thr) {
  function DUK_INTERNAL (line 36963) | DUK_INTERNAL duk_ret_t duk_bi_math_object_max(duk_hthread *thr) {
  function DUK_INTERNAL (line 36967) | DUK_INTERNAL duk_ret_t duk_bi_math_object_min(duk_hthread *thr) {
  function DUK_INTERNAL (line 36971) | DUK_INTERNAL duk_ret_t duk_bi_math_object_random(duk_hthread *thr) {
  function DUK_INTERNAL (line 36977) | DUK_INTERNAL duk_ret_t duk_bi_math_object_hypot(duk_hthread *thr) {
  function DUK_INTERNAL (line 37045) | DUK_INTERNAL duk_ret_t duk_bi_math_object_sign(duk_hthread *thr) {
  function DUK_INTERNAL (line 37063) | DUK_INTERNAL duk_ret_t duk_bi_math_object_clz32(duk_hthread *thr) {
  function DUK_INTERNAL (line 37121) | DUK_INTERNAL duk_ret_t duk_bi_math_object_imul(duk_hthread *thr) {
  function DUK_LOCAL (line 37147) | DUK_LOCAL duk_double_t duk__push_this_number_plain(duk_hthread *thr) {
  function DUK_INTERNAL (line 37175) | DUK_INTERNAL duk_ret_t duk_bi_number_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 37225) | DUK_INTERNAL duk_ret_t duk_bi_number_prototype_value_of(duk_hthread *thr) {
  function DUK_INTERNAL (line 37230) | DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_string(duk_hthread *th...
  function DUK_INTERNAL (line 37251) | DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_locale_string(duk_hthr...
  function DUK_INTERNAL (line 37264) | DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_fixed(duk_hthread *thr) {
  function DUK_INTERNAL (line 37297) | DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_exponential(duk_hthrea...
  function DUK_INTERNAL (line 37331) | DUK_INTERNAL duk_ret_t duk_bi_number_prototype_to_precision(duk_hthread ...
  function DUK_INTERNAL (line 37387) | DUK_INTERNAL duk_ret_t duk_bi_object_prototype_to_string(duk_hthread *th...
  function DUK_INTERNAL (line 37399) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 37440) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_assign(duk_hthread *thr) {
  function DUK_INTERNAL (line 37474) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_is(duk_hthread *thr) {
  function DUK_INTERNAL (line 37482) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_create(duk_hthread *thr) {
  function DUK_INTERNAL (line 37520) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_define_properties(duk_h...
  function DUK_INTERNAL (line 37607) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_seal_freeze_shared(duk_...
  function DUK_INTERNAL (line 37616) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_is_sealed_frozen_shared...
  function DUK_INTERNAL (line 37641) | DUK_INTERNAL duk_ret_t duk_bi_object_prototype_to_locale_string(duk_hthr...
  function DUK_INTERNAL (line 37655) | DUK_INTERNAL duk_ret_t duk_bi_object_prototype_value_of(duk_hthread *thr) {
  function DUK_INTERNAL (line 37663) | DUK_INTERNAL duk_ret_t duk_bi_object_prototype_is_prototype_of(duk_hthre...
  function DUK_INTERNAL (line 37687) | DUK_INTERNAL duk_ret_t duk_bi_object_prototype_has_own_property(duk_hthr...
  function DUK_INTERNAL (line 37693) | DUK_INTERNAL duk_ret_t duk_bi_object_prototype_property_is_enumerable(du...
  function DUK_INTERNAL (line 37704) | DUK_INTERNAL duk_ret_t duk_bi_object_getprototype_shared(duk_hthread *th...
  function DUK_INTERNAL (line 37762) | DUK_INTERNAL duk_ret_t duk_bi_object_setprototype_shared(duk_hthread *th...
  function DUK_INTERNAL (line 37857) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_define_property(duk_hth...
  function DUK_INTERNAL (line 37944) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_get_own_property_descri...
  function DUK_INTERNAL (line 37960) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_is_extensible(duk_hthre...
  function DUK_INTERNAL (line 38013) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_keys_shared(duk_hthread...
  function DUK_INTERNAL (line 38087) | DUK_INTERNAL duk_ret_t duk_bi_object_constructor_prevent_extensions(duk_...
  function DUK_INTERNAL (line 38139) | DUK_INTERNAL duk_ret_t duk_bi_object_prototype_defineaccessor(duk_hthrea...
  function DUK_INTERNAL (line 38153) | DUK_INTERNAL duk_ret_t duk_bi_object_prototype_lookupaccessor(duk_hthrea...
  function DUK_INTERNAL (line 38195) | DUK_INTERNAL duk_ret_t duk_bi_performance_now(duk_hthread *thr) {
  function DUK_INTERNAL (line 38207) | DUK_INTERNAL duk_ret_t duk_bi_performance_timeorigin_getter(duk_hthread ...
  function DUK_INTERNAL (line 38228) | DUK_INTERNAL duk_ret_t duk_bi_pointer_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 38261) | DUK_INTERNAL duk_ret_t duk_bi_pointer_prototype_tostring_shared(duk_hthr...
  function DUK_INTERNAL (line 38302) | DUK_INTERNAL duk_ret_t duk_bi_promise_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 38307) | DUK_INTERNAL duk_ret_t duk_bi_promise_all(duk_hthread *thr) {
  function DUK_INTERNAL (line 38312) | DUK_INTERNAL duk_ret_t duk_bi_promise_race(duk_hthread *thr) {
  function DUK_INTERNAL (line 38317) | DUK_INTERNAL duk_ret_t duk_bi_promise_reject(duk_hthread *thr) {
  function DUK_INTERNAL (line 38322) | DUK_INTERNAL duk_ret_t duk_bi_promise_resolve(duk_hthread *thr) {
  function DUK_INTERNAL (line 38327) | DUK_INTERNAL duk_ret_t duk_bi_promise_catch(duk_hthread *thr) {
  function DUK_INTERNAL (line 38332) | DUK_INTERNAL duk_ret_t duk_bi_promise_then(duk_hthread *thr) {
  function DUK_INTERNAL (line 38350) | DUK_INTERNAL void duk_proxy_ownkeys_postprocess(duk_hthread *thr, duk_ho...
  function DUK_INTERNAL (line 38426) | DUK_INTERNAL duk_ret_t duk_bi_proxy_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 38446) | DUK_INTERNAL duk_ret_t duk_bi_reflect_object_delete_property(duk_hthread...
  function DUK_INTERNAL (line 38465) | DUK_INTERNAL duk_ret_t duk_bi_reflect_object_get(duk_hthread *thr) {
  function DUK_INTERNAL (line 38487) | DUK_INTERNAL duk_ret_t duk_bi_reflect_object_has(duk_hthread *thr) {
  function DUK_INTERNAL (line 38506) | DUK_INTERNAL duk_ret_t duk_bi_reflect_object_set(duk_hthread *thr) {
  function DUK_LOCAL (line 38541) | DUK_LOCAL void duk__get_this_regexp(duk_hthread *thr) {
  function DUK_INTERNAL (line 38552) | DUK_INTERNAL duk_ret_t duk_bi_regexp_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 38623) | DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_exec(duk_hthread *thr) {
  function DUK_INTERNAL (line 38635) | DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_test(duk_hthread *thr) {
  function DUK_INTERNAL (line 38650) | DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_tostring(duk_hthread *thr) {
  function DUK_INTERNAL (line 38662) | DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_flags(duk_hthread *thr) {
  function DUK_INTERNAL (line 38691) | DUK_INTERNAL duk_ret_t duk_bi_regexp_prototype_shared_getter(duk_hthread...
  function DUK_LOCAL (line 38785) | DUK_LOCAL duk_hstring *duk__str_tostring_notregexp(duk_hthread *thr, duk...
  function DUK_LOCAL (line 38797) | DUK_LOCAL duk_int_t duk__str_search_shared(duk_hthread *thr, duk_hstring...
  function DUK_INTERNAL (line 38875) | DUK_INTERNAL duk_ret_t duk_bi_string_constructor(duk_hthread *thr) {
  function DUK_LOCAL (line 38917) | DUK_LOCAL duk_ret_t duk__construct_from_codepoints(duk_hthread *thr, duk...
  function DUK_INTERNAL (line 38975) | DUK_INTERNAL duk_ret_t duk_bi_string_constructor_from_char_code(duk_hthr...
  function DUK_INTERNAL (line 38980) | DUK_INTERNAL duk_ret_t duk_bi_string_constructor_from_code_point(duk_hth...
  function DUK_INTERNAL (line 38989) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_to_string(duk_hthread *th...
  function DUK_INTERNAL (line 39024) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_char_at(duk_hthread *thr) {
  function DUK_INTERNAL (line 39036) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_char_code_at(duk_hthread ...
  function DUK_INTERNAL (line 39085) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_substring(duk_hthread *th...
  function DUK_INTERNAL (line 39118) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_substr(duk_hthread *thr) {
  function DUK_INTERNAL (line 39162) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_slice(duk_hthread *thr) {
  function DUK_INTERNAL (line 39202) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_caseconv_shared(duk_hthre...
  function DUK_INTERNAL (line 39214) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_indexof_shared(duk_hthrea...
  function DUK_LOCAL (line 39917) | DUK_LOCAL void duk__to_regexp_helper(duk_hthread *thr, duk_idx_t idx, du...
  function DUK_INTERNAL (line 39943) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_search(duk_hthread *thr) {
  function DUK_INTERNAL (line 39982) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_match(duk_hthread *thr) {
  function DUK_INTERNAL (line 40054) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_concat(duk_hthread *thr) {
  function DUK_INTERNAL (line 40062) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_trim(duk_hthread *thr) {
  function DUK_INTERNAL (line 40071) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_repeat(duk_hthread *thr) {
  function DUK_INTERNAL (line 40168) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_locale_compare(duk_hthrea...
  function DUK_INTERNAL (line 40227) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_startswith_endswith(duk_h...
  function DUK_INTERNAL (line 40292) | DUK_INTERNAL duk_ret_t duk_bi_string_prototype_includes(duk_hthread *thr) {
  function DUK_INTERNAL (line 40327) | DUK_INTERNAL duk_ret_t duk_bi_symbol_constructor_shared(duk_hthread *thr) {
  function DUK_LOCAL (line 40387) | DUK_LOCAL duk_hstring *duk__auto_unbox_symbol(duk_hthread *thr, duk_tval...
  function DUK_INTERNAL (line 40426) | DUK_INTERNAL duk_ret_t duk_bi_symbol_tostring_shared(duk_hthread *thr) {
  function DUK_INTERNAL (line 40444) | DUK_INTERNAL duk_ret_t duk_bi_symbol_key_for(duk_hthread *thr) {
  function DUK_INTERNAL (line 40473) | DUK_INTERNAL duk_ret_t duk_bi_symbol_toprimitive(duk_hthread *thr) {
  function DUK_INTERNAL (line 40497) | DUK_INTERNAL duk_ret_t duk_bi_thread_constructor(duk_hthread *thr) {
  function DUK_INTERNAL (line 40539) | DUK_INTERNAL duk_ret_t duk_bi_thread_resume(duk_hthread *ctx) {
  function DUK_INTERNAL (line 40692) | DUK_INTERNAL duk_ret_t duk_bi_thread_yield(duk_hthread *thr) {
  function DUK_INTERNAL (line 40793) | DUK_INTERNAL duk_ret_t duk_bi_thread_current(duk_hthread *thr) {
  function DUK_INTERNAL (line 40805) | DUK_INTERNAL duk_ret_t duk_bi_type_error_thrower(duk_hthread *thr) {
  function DUK_INTERNAL (line 40818) | DUK_INTERNAL void duk_fb_put_bytes(duk_fixedbuffer *fb, const duk_uint8_...
  function DUK_INTERNAL (line 40833) | DUK_INTERNAL void duk_fb_put_byte(duk_fixedbuffer *fb, duk_uint8_t x) {
  function DUK_INTERNAL (line 40837) | DUK_INTERNAL void duk_fb_put_cstring(duk_fixedbuffer *fb, const char *x) {
  function DUK_INTERNAL (line 40841) | DUK_INTERNAL void duk_fb_sprintf(duk_fixedbuffer *fb, const char *fmt, ....
  function DUK_INTERNAL (line 40866) | DUK_INTERNAL void duk_fb_put_funcptr(duk_fixedbuffer *fb, duk_uint8_t *f...
  function DUK_INTERNAL (line 40873) | DUK_INTERNAL duk_bool_t duk_fb_is_full(duk_fixedbuffer *fb) {
  type duk__dprint_state (line 40996) | typedef struct duk__dprint_state duk__dprint_state;
  type duk__dprint_state (line 40997) | struct duk__dprint_state {
  function DUK_LOCAL (line 41028) | DUK_LOCAL void duk__print_shared_heaphdr(duk__dprint_state *st, duk_heap...
  function DUK_LOCAL (line 41076) | DUK_LOCAL void duk__print_shared_heaphdr_string(duk__dprint_state *st, d...
  function DUK_LOCAL (line 41120) | DUK_LOCAL void duk__print_hstring(duk__dprint_state *st, duk_hstring *h,...
  function DUK_LOCAL (line 41188) | DUK_LOCAL void duk__print_hobject(duk__dprint_state *st, duk_hobject *h) {
  function DUK_LOCAL (line 41492) | DUK_LOCAL void duk__print_hbuffer(duk__dprint_state *st, duk_hbuffer *h) {
  function DUK_LOCAL (line 41539) | DUK_LOCAL void duk__print_heaphdr(duk__dprint_state *st, duk_heaphdr *h) {
  function DUK_LOCAL (line 41567) | DUK_LOCAL void duk__print_tval(duk__dprint_state *st, duk_tval *tv) {
  function DUK_LOCAL (line 41661) | DUK_LOCAL void duk__print_instr(duk__dprint_state *st, duk_instr_t ins) {
  function DUK_LOCAL (line 41686) | DUK_LOCAL void duk__print_opcode(duk__dprint_state *st, duk_small_int_t ...
  function DUK_INTERNAL (line 41696) | DUK_INTERNAL duk_int_t duk_debug_vsnprintf(char *str, duk_size_t size, c...
  function DUK_INTERNAL (line 41880) | DUK_INTERNAL duk_int_t duk_debug_snprintf(char *str, duk_size_t size, co...
  function DUK_INTERNAL (line 41895) | DUK_INTERNAL void duk_debug_format_funcptr(char *buf, duk_size_t buf_siz...
  type duk__ptr_union (line 41958) | typedef union {
  function duk__debug_do_detach1 (line 41976) | void duk__debug_do_detach1(duk_heap *heap, duk_int_t reason) {
  function DUK_LOCAL (line 42033) | DUK_LOCAL void duk__debug_do_detach2(duk_heap *heap) {
  function DUK_INTERNAL (line 42063) | DUK_INTERNAL void duk_debug_do_detach(duk_heap *heap) {
  function DUK_LOCAL (line 42073) | DUK_LOCAL void duk__debug_null_most_callbacks(duk_hthread *thr) {
  function DUK_LOCAL (line 42093) | DUK_LOCAL void duk__debug_set_pause_state(duk_hthread *thr, duk_heap *he...
  function DUK_INTERNAL (line 42121) | DUK_INTERNAL duk_bool_t duk_debug_read_peek(duk_hthread *thr) {
  function DUK_INTERNAL (line 42144) | DUK_INTERNAL void duk_debug_read_flush(duk_hthread *thr) {
  function DUK_INTERNAL (line 42165) | DUK_INTERNAL void duk_debug_write_flush(duk_hthread *thr) {
  function DUK_INTERNAL (line 42191) | DUK_INTERNAL void duk_debug_skip_bytes(duk_hthread *thr, duk_size_t leng...
  function DUK_INTERNAL (line 42204) | DUK_INTERNAL void duk_debug_skip_byte(duk_hthread *thr) {
  function DUK_INTERNAL (line 42215) | DUK_INTERNAL uint8_t duk_debug_peek_byte(duk_hthread *thr) {
  function DUK_INTERNAL (line 42230) | DUK_INTERNAL void duk_debug_read_bytes(duk_hthread *thr, duk_uint8_t *da...
  function DUK_INTERNAL (line 42279) | DUK_INTERNAL duk_uint8_t duk_debug_read_byte(duk_hthread *thr) {
  function DUK_LOCAL (line 42287) | DUK_LOCAL duk_uint32_t duk__debug_read_uint32_raw(duk_hthread *thr) {
  function DUK_LOCAL (line 42299) | DUK_LOCAL duk_int32_t duk__debug_read_int32_raw(duk_hthread *thr) {
  function DUK_LOCAL (line 42303) | DUK_LOCAL duk_uint16_t duk__debug_read_uint16_raw(duk_hthread *thr) {
  function DUK_INTERNAL (line 42313) | DUK_INTERNAL duk_int32_t duk_debug_read_int(duk_hthread *thr) {
  function DUK_LOCAL (line 42334) | DUK_LOCAL duk_hstring *duk__debug_read_hstring_raw(duk_hthread *thr, duk...
  function DUK_INTERNAL (line 42351) | DUK_INTERNAL duk_hstring *duk_debug_read_hstring(duk_hthread *thr) {
  function DUK_LOCAL (line 42378) | DUK_LOCAL duk_hbuffer *duk__debug_read_hbuffer_raw(duk_hthread *thr, duk...
  function DUK_LOCAL (line 42388) | DUK_LOCAL void *duk__debug_read_pointer_raw(duk_hthread *thr) {
  function DUK_LOCAL (line 42410) | DUK_LOCAL duk_double_t duk__debug_read_double_raw(duk_hthread *thr) {
  function DUK_INTERNAL (line 42420) | DUK_INTERNAL duk_heaphdr *duk_debug_read_heapptr(duk_hthread *thr) {
  function DUK_INTERNAL (line 42439) | DUK_INTERNAL duk_heaphdr *duk_debug_read_any_ptr(duk_hthread *thr) {
  function DUK_INTERNAL (line 42468) | DUK_INTERNAL duk_tval *duk_debug_read_tval(duk_hthread *thr) {
  function DUK_INTERNAL (line 42587) | DUK_INTERNAL void duk_debug_write_bytes(duk_hthread *thr, const duk_uint...
  function DUK_INTERNAL (line 42635) | DUK_INTERNAL void duk_debug_write_byte(duk_hthread *thr, duk_uint8_t x) {
  function DUK_INTERNAL (line 42639) | DUK_INTERNAL void duk_debug_write_unused(duk_hthread *thr) {
  function DUK_INTERNAL (line 42643) | DUK_INTERNAL void duk_debug_write_undefined(duk_hthread *thr) {
  function DUK_INTERNAL (line 42648) | DUK_INTERNAL void duk_debug_write_null(duk_hthread *thr) {
  function DUK_INTERNAL (line 42653) | DUK_INTERNAL void duk_debug_write_boolean(duk_hthread *thr, duk_uint_t v...
  function DUK_INTERNAL (line 42658) | DUK_INTERNAL void duk_debug_write_int(duk_hthread *thr, duk_int32_t x) {
  function DUK_INTERNAL (line 42684) | DUK_INTERNAL void duk_debug_write_uint(duk_hthread *thr, duk_uint32_t x) {
  function DUK_INTERNAL (line 42699) | DUK_INTERNAL void duk_debug_write_strbuf(duk_hthread *thr, const char *d...
  function DUK_INTERNAL (line 42728) | DUK_INTERNAL void duk_debug_write_string(duk_hthread *thr, const char *d...
  function DUK_INTERNAL (line 42732) | DUK_INTERNAL void duk_debug_write_cstring(duk_hthread *thr, const char *...
  function DUK_INTERNAL (line 42740) | DUK_INTERNAL void duk_debug_write_hstring(duk_hthread *thr, duk_hstring ...
  function DUK_LOCAL (line 42749) | DUK_LOCAL void duk__debug_write_hstring_safe_top(duk_hthread *thr) {
  function DUK_INTERNAL (line 42753) | DUK_INTERNAL void duk_debug_write_buffer(duk_hthread *thr, const char *d...
  function DUK_INTERNAL (line 42757) | DUK_INTERNAL void duk_debug_write_hbuffer(duk_hthread *thr, duk_hbuffer ...
  function DUK_LOCAL (line 42765) | DUK_LOCAL void duk__debug_write_pointer_raw(duk_hthread *thr, void *ptr,...
  function DUK_INTERNAL (line 42783) | DUK_INTERNAL void duk_debug_write_pointer(duk_hthread *thr, void *ptr) {
  function DUK_INTERNAL (line 42788) | DUK_INTERNAL void duk_debug_write_heapptr(duk_hthread *thr, duk_heaphdr ...
  function DUK_INTERNAL (line 42793) | DUK_INTERNAL void duk_debug_write_hobject(duk_hthread *thr, duk_hobject ...
  function DUK_INTERNAL (line 42812) | DUK_INTERNAL void duk_debug_write_tval(duk_hthread *thr, duk_tval *tv) {
  function DUK_LOCAL (line 42903) | DUK_LOCAL void duk__debug_write_tval_heapptr(duk_hthread *thr, duk_tval ...
  function DUK_INTERNAL (line 42918) | DUK_INTERNAL void duk_debug_write_request(duk_hthread *thr, duk_small_ui...
  function DUK_INTERNAL (line 42924) | DUK_INTERNAL void duk_debug_write_reply(duk_hthread *thr) {
  function DUK_INTERNAL (line 42928) | DUK_INTERNAL void duk_debug_write_error_eom(duk_hthread *thr, duk_small_...
  function DUK_INTERNAL (line 42936) | DUK_INTERNAL void duk_debug_write_notify(duk_hthread *thr, duk_small_uin...
  function DUK_INTERNAL (line 42941) | DUK_INTERNAL void duk_debug_write_eom(duk_hthread *thr) {
  function DUK_INTERNAL (line 42956) | DUK_INTERNAL duk_uint_fast32_t duk_debug_curr_line(duk_hthread *thr) {
  function DUK_INTERNAL (line 42984) | DUK_INTERNAL void duk_debug_send_status(duk_hthread *thr) {
  function DUK_INTERNAL (line 43012) | DUK_INTERNAL void duk_debug_send_throw(duk_hthread *thr, duk_bool_t fata...
  function DUK_LOCAL (line 43068) | DUK_LOCAL duk_bool_t duk__debug_skip_dvalue(duk_hthread *thr) {
  function DUK_LOCAL (line 43142) | DUK_LOCAL void duk__debug_skip_to_eom(duk_hthread *thr) {
  function DUK_LOCAL (line 43153) | DUK_LOCAL duk_int32_t duk__debug_read_validate_csindex(duk_hthread *thr) {
  function DUK_LOCAL (line 43166) | DUK_LOCAL duk_activation *duk__debug_read_level_get_activation(duk_hthre...
  function DUK_LOCAL (line 43182) | DUK_LOCAL void duk__debug_handle_basic_info(duk_hthread *thr, duk_heap *...
  function DUK_LOCAL (line 43203) | DUK_LOCAL void duk__debug_handle_trigger_status(duk_hthread *thr, duk_he...
  function DUK_LOCAL (line 43212) | DUK_LOCAL void duk__debug_handle_pause(duk_hthread *thr, duk_heap *heap) {
  function DUK_LOCAL (line 43219) | DUK_LOCAL void duk__debug_handle_resume(duk_hthread *thr, duk_heap *heap) {
  function DUK_LOCAL (line 43242) | DUK_LOCAL void duk__debug_handle_step(duk_hthread *thr, duk_heap *heap, ...
  function DUK_LOCAL (line 43273) | DUK_LOCAL void duk__debug_handle_list_break(duk_hthread *thr, duk_heap *...
  function DUK_LOCAL (line 43285) | DUK_LOCAL void duk__debug_handle_add_break(duk_hthread *thr, duk_heap *h...
  function DUK_LOCAL (line 43305) | DUK_LOCAL void duk__debug_handle_del_break(duk_hthread *thr, duk_heap *h...
  function DUK_LOCAL (line 43320) | DUK_LOCAL void duk__debug_handle_get_var(duk_hthread *thr, duk_heap *hea...
  function DUK_LOCAL (line 43349) | DUK_LOCAL void duk__debug_handle_put_var(duk_hthread *thr, duk_heap *hea...
  function DUK_LOCAL (line 43378) | DUK_LOCAL void duk__debug_handle_get_call_stack(duk_hthread *thr, duk_he...
  function DUK_LOCAL (line 43425) | DUK_LOCAL void duk__debug_handle_get_locals(duk_hthread *thr, duk_heap *...
  function DUK_LOCAL (line 43464) | DUK_LOCAL void duk__debug_handle_eval(duk_hthread *thr, duk_heap *heap) {
  function DUK_LOCAL (line 43554) | DUK_LOCAL void duk__debug_handle_detach(duk_hthread *thr, duk_heap *heap) {
  function DUK_LOCAL (line 43565) | DUK_LOCAL void duk__debug_handle_apprequest(duk_hthread *thr, duk_heap *...
  function DUK_LOCAL (line 43648) | DUK_LOCAL void duk__debug_dump_heaphdr(duk_hthread *thr, duk_heap *heap,...
  function DUK_LOCAL (line 43723) | DUK_LOCAL void duk__debug_dump_heap_allocated(duk_hthread *thr, duk_heap...
  function DUK_LOCAL (line 43733) | DUK_LOCAL void duk__debug_dump_strtab(duk_hthread *thr, duk_heap *heap) {
  function DUK_LOCAL (line 43750) | DUK_LOCAL void duk__debug_handle_dump_heap(duk_hthread *thr, duk_heap *h...
  function DUK_LOCAL (line 43760) | DUK_LOCAL void duk__debug_handle_get_bytecode(duk_hthread *thr, duk_heap...
  function DUK_LOCAL (line 43942) | DUK_LOCAL void duk__debug_getinfo_flags_key(duk_hthread *thr, const char...
  function DUK_LOCAL (line 43947) | DUK_LOCAL void duk__debug_getinfo_prop_uint(duk_hthread *thr, const char...
  function DUK_LOCAL (line 43953) | DUK_LOCAL void duk__debug_getinfo_prop_int(duk_hthread *thr, const char ...
  function DUK_LOCAL (line 43959) | DUK_LOCAL void duk__debug_getinfo_prop_bool(duk_hthread *thr, const char...
  function DUK_LOCAL (line 43965) | DUK_LOCAL void duk__debug_getinfo_bitmask(duk_hthread *thr, const char *...
  function DUK_LOCAL (line 43987) | DUK_LOCAL duk_bool_t duk__debug_getprop_index(duk_hthread *thr, duk_heap...
  function DUK_LOCAL (line 44047) | DUK_LOCAL void duk__debug_handle_get_heap_obj_info(duk_hthread *thr, duk...
  function DUK_LOCAL (line 44270) | DUK_LOCAL void duk__debug_handle_get_obj_prop_desc(duk_hthread *thr, duk...
  function DUK_LOCAL (line 44313) | DUK_LOCAL void duk__debug_handle_get_obj_prop_desc_range(duk_hthread *th...
  function DUK_LOCAL (line 44363) | DUK_LOCAL void duk__debug_process_message(duk_hthread *thr) {
  function DUK_LOCAL (line 44507) | DUK_LOCAL void duk__check_resend_status(duk_hthread *thr) {
  function DUK_INTERNAL (line 44514) | DUK_INTERNAL duk_bool_t duk_debug_process_messages(duk_hthread *thr, duk...
  function DUK_INTERNAL (line 44639) | DUK_INTERNAL void duk_debug_halt_execution(duk_hthread *thr, duk_bool_t ...
  function DUK_INTERNAL (line 44706) | DUK_INTERNAL duk_small_int_t duk_debug_add_breakpoint(duk_hthread *thr, ...
  function DUK_INTERNAL (line 44734) | DUK_INTERNAL duk_bool_t duk_debug_remove_breakpoint(duk_hthread *thr, du...
  function DUK_INTERNAL (line 44781) | DUK_INTERNAL duk_bool_t duk_debug_is_attached(duk_heap *heap) {
  function DUK_INTERNAL (line 44785) | DUK_INTERNAL duk_bool_t duk_debug_is_paused(duk_heap *heap) {
  function DUK_INTERNAL (line 44789) | DUK_INTERNAL void duk_debug_set_paused(duk_heap *heap) {
  function DUK_INTERNAL (line 44804) | DUK_INTERNAL void duk_debug_clear_paused(duk_heap *heap) {
  function DUK_INTERNAL (line 44819) | DUK_INTERNAL void duk_debug_clear_pause_state(duk_heap *heap) {
  function DUK_LOCAL (line 44897) | DUK_LOCAL void duk__err_augment_user(duk_hthread *thr, duk_small_uint_t ...
  function DUK_LOCAL (line 44978) | DUK_LOCAL void duk__add_traceback(duk_hthread *thr, duk_hthread *thr_cal...
  function DUK_LOCAL (line 45131) | DUK_LOCAL void duk__add_fileline(duk_hthread *thr, duk_hthread *thr_call...
  function DUK_LOCAL (line 45247) | DUK_LOCAL void duk__add_compiler_error_line(duk_hthread *thr) {
  function DUK_LOCAL (line 45285) | DUK_LOCAL void duk__err_augment_builtin_create(duk_hthread *thr, duk_hth...
  function DUK_INTERNAL (line 45338) | DUK_INTERNAL void duk_err_augment_error_create(duk_hthread *thr, duk_hth...
  function DUK_INTERNAL (line 45393) | DUK_INTERNAL void duk_err_augment_error_throw(duk_hthread *thr) {
  function DUK_LOCAL (line 45408) | DUK_LOCAL void duk__uncaught_minimal(duk_hthread *thr) {
  function DUK_LOCAL (line 45414) | DUK_LOCAL void duk__uncaught_readable(duk_hthread *thr) {
  function DUK_LOCAL (line 45426) | DUK_LOCAL void duk__uncaught_error_aware(duk_hthread *thr) {
  function DUK_INTERNAL (line 45438) | DUK_INTERNAL void duk_err_longjmp(duk_hthread *thr) {
  function DUK_LOCAL (line 45519) | DUK_LOCAL duk_bool_t duk__have_active_catcher(duk_hthread *thr) {
  function DUK_INTERNAL (line 45548) | DUK_INTERNAL duk_hobject *duk_error_prototype_from_code(duk_hthread *thr...
  function DUK_INTERNAL (line 45573) | DUK_INTERNAL void duk_err_check_debugger_integration(duk_hthread *thr) {
  function DUK_INTERNAL (line 45665) | DUK_INTERNAL void duk_err_setup_ljstate1(duk_hthread *thr, duk_small_uin...
  function DUK_INTERNAL (line 45707) | DUK_INTERNAL void duk_err_create_and_throw(duk_hthread *thr, duk_errcode...
  function DUK_INTERNAL (line 45827) | DUK_INTERNAL void duk_error_throw_from_negative_rc(duk_hthread *thr, duk...
  function DUK_INTERNAL (line 45855) | DUK_INTERNAL duk_hbuffer *duk_hbuffer_alloc(duk_heap *heap, duk_size_t s...
  function DUK_INTERNAL (line 45972) | DUK_INTERNAL void *duk_hbuffer_get_dynalloc_ptr(duk_heap *heap, void *ud) {
  function DUK_INTERNAL (line 45989) | DUK_INTERNAL void duk_hbuffer_resize(duk_hthread *thr, duk_hbuffer_dynam...
  function DUK_INTERNAL (line 46046) | DUK_INTERNAL void duk_hbuffer_reset(duk_hthread *thr, duk_hbuffer_dynami...
  function DUK_INTERNAL (line 46058) | DUK_INTERNAL duk_uint_t duk_hbufobj_clamp_bytelength(duk_hbufobj *h_bufo...
  function DUK_INTERNAL (line 46096) | DUK_INTERNAL void duk_free_hobject(duk_heap *heap, duk_hobject *h) {
  function DUK_INTERNAL (line 46152) | DUK_INTERNAL void duk_free_hbuffer(duk_heap *heap, duk_hbuffer *h) {
  function DUK_INTERNAL (line 46164) | DUK_INTERNAL void duk_free_hstring(duk_heap *heap, duk_hstring *h) {
  function DUK_INTERNAL (line 46181) | DUK_INTERNAL void duk_heap_free_heaphdr_raw(duk_heap *heap, duk_heaphdr ...
  function DUK_LOCAL (line 46215) | DUK_LOCAL duk_size_t duk__heap_free_activation_freelist(duk_heap *heap) {
  function DUK_LOCAL (line 46234) | DUK_LOCAL duk_size_t duk__heap_free_catcher_freelist(duk_heap *heap) {
  function DUK_INTERNAL (line 46253) | DUK_INTERNAL void duk_heap_free_freelists(duk_heap *heap) {
  function DUK_LOCAL (line 46271) | DUK_LOCAL void duk__free_allocated(duk_heap *heap) {
  function DUK_LOCAL (line 46290) | DUK_LOCAL void duk__free_finalize_list(duk_heap *heap) {
  function DUK_LOCAL (line 46305) | DUK_LOCAL void duk__free_stringtable(duk_heap *heap) {
  function DUK_LOCAL (line 46311) | DUK_LOCAL void duk__free_run_finalizers(duk_heap *heap) {
  function DUK_INTERNAL (line 46410) | DUK_INTERNAL void duk_heap_free(duk_heap *heap) {
  function DUK_LOCAL (line 46506) | DUK_LOCAL duk_bool_t duk__init_heap_strings(duk_heap *heap) {
  function DUK_LOCAL (line 46537) | DUK_LOCAL duk_bool_t duk__init_heap_strings(duk_heap *heap) {
  function DUK_LOCAL (line 46600) | DUK_LOCAL duk_bool_t duk__init_heap_thread(duk_heap *heap) {
  function DUK_LOCAL (line 46668) | DUK_LOCAL void duk__dump_type_sizes(void) {
  function DUK_LOCAL (line 46778) | DUK_LOCAL void duk__dump_type_limits(void) {
  function DUK_LOCAL (line 46824) | DUK_LOCAL void duk__dump_misc_options(void) {
  function DUK_LOCAL (line 47293) | DUK_LOCAL duk_ret_t duk__fake_global_finalizer(duk_hthread *thr) {
  function DUK_LOCAL (line 47327) | DUK_LOCAL void duk__run_global_torture_finalizer(duk_hthread *thr) {
  function DUK_INTERNAL (line 47408) | DUK_INTERNAL void duk_heap_process_finalize_list(duk_heap *heap) {
  function DUK_LOCAL (line 47619) | DUK_LOCAL duk_ret_t duk__finalize_helper(duk_hthread *thr, void *udata) {
  function DUK_INTERNAL (line 47651) | DUK_INTERNAL void duk_heap_run_finalizer(duk_heap *heap, duk_hobject *ob...
  function DUK_INTERNAL (line 47753) | DUK_INTERNAL duk_uint32_t duk_heap_hashstring(duk_heap *heap, const duk_...
  function DUK_INTERNAL (line 47809) | DUK_INTERNAL duk_uint32_t duk_heap_hashstring(duk_heap *heap, const duk_...
  function DUK_LOCAL (line 47863) | DUK_LOCAL void duk__mark_hstring(duk_heap *heap, duk_hstring *h) {
  function DUK_LOCAL (line 47873) | DUK_LOCAL void duk__mark_hobject(duk_heap *heap, duk_hobject *h) {
  function DUK_LOCAL (line 48018) | DUK_LOCAL void duk__mark_heaphdr(duk_heap *heap, duk_heaphdr *h) {
  function DUK_LOCAL (line 48077) | DUK_LOCAL void duk__mark_tval(duk_heap *heap, duk_tval *tv) {
  function DUK_LOCAL (line 48090) | DUK_LOCAL void duk__mark_tvals(duk_heap *heap, duk_tval *tv, duk_idx_t c...
  function DUK_LOCAL (line 48105) | DUK_LOCAL void duk__mark_heaphdr_nonnull(duk_heap *heap, duk_heaphdr *h) {
  function DUK_LOCAL (line 48116) | DUK_LOCAL void duk__mark_roots_heap(duk_heap *heap) {
  function DUK_LOCAL (line 48152) | DUK_LOCAL void duk__mark_finalizable(duk_heap *heap) {
  function DUK_LOCAL (line 48217) | DUK_LOCAL void duk__mark_finalize_list(duk_heap *heap) {
  function DUK_LOCAL (line 48263) | DUK_LOCAL void duk__handle_temproot(duk_heap *heap, duk_heaphdr *hdr) {
  function DUK_LOCAL (line 48285) | DUK_LOCAL void duk__mark_temproots_by_heap_scan(duk_heap *heap) {
  function DUK_LOCAL (line 48339) | DUK_LOCAL void duk__finalize_refcounts(duk_heap *heap) {
  function DUK_LOCAL (line 48385) | DUK_LOCAL void duk__clear_finalize_list_flags(duk_heap *heap) {
  function DUK_LOCAL (line 48486) | DUK_LOCAL void duk__sweep_heap(duk_heap *heap, duk_small_uint_t flags, d...
  function DUK_LOCAL (line 48662) | DUK_LOCAL int duk__protected_compact_object(duk_hthread *thr, void *udat...
  function DUK_LOCAL (line 48675) | DUK_LOCAL void duk__compact_object_list(duk_heap *heap, duk_hthread *thr...
  function DUK_LOCAL (line 48724) | DUK_LOCAL void duk__compact_objects(duk_heap *heap) {
  function DUK_LOCAL (line 48762) | DUK_LOCAL void duk__assert_heaphdr_flags(duk_heap *heap) {
  function DUK_LOCAL (line 48780) | DUK_LOCAL void duk__assert_valid_refcounts(duk_heap *heap) {
  function DUK_LOCAL (line 48805) | DUK_LOCAL void duk__clear_assert_refcounts(duk_heap *heap) {
  function DUK_LOCAL (line 48838) | DUK_LOCAL void duk__check_refcount_heaphdr(duk_heaphdr *hdr) {
  function DUK_LOCAL (line 48865) | DUK_LOCAL void duk__check_assert_refcounts(duk_heap *heap) {
  function DUK_LOCAL (line 48900) | DUK_LOCAL void duk__dump_stats(duk_heap *heap) {
  function DUK_INTERNAL (line 48953) | DUK_INTERNAL void duk_heap_mark_and_sweep(duk_heap *heap, duk_small_uint...
  function duk__check_voluntary_gc (line 49234) | void duk__check_voluntary_gc(duk_heap *heap) {
  function DUK_INTERNAL (line 49344) | DUK_INTERNAL void *duk_heap_mem_alloc_zeroed(duk_heap *heap, duk_size_t ...
  function DUK_INTERNAL (line 49358) | DUK_INTERNAL void *duk_heap_mem_alloc_checked(duk_hthread *thr, duk_size...
  function DUK_INTERNAL (line 49370) | DUK_INTERNAL void *duk_heap_mem_alloc_checked_zeroed(duk_hthread *thr, d...
  function DUK_INTERNAL (line 49386) | DUK_INTERNAL void *duk_heap_mem_realloc(duk_heap *heap, void *ptr, duk_s...
  function DUK_INTERNAL (line 49471) | DUK_INTERNAL void *duk_heap_mem_realloc_indirect(duk_heap *heap, duk_mem...
  function DUK_INTERNAL (line 49572) | DUK_INTERNAL void duk_heap_mem_free(duk_heap *heap, void *ptr) {
  function DUK_INTERNAL (line 49596) | DUK_INTERNAL void duk_heap_insert_into_heap_allocated(duk_heap *heap, du...
  function DUK_INTERNAL (line 49616) | DUK_INTERNAL void duk_heap_remove_from_heap_allocated(duk_heap *heap, du...
  function DUK_INTERNAL (line 49659) | DUK_INTERNAL void duk_heap_insert_into_finalize_list(duk_heap *heap, duk...
  function DUK_INTERNAL (line 49678) | DUK_INTERNAL void duk_heap_remove_from_finalize_list(duk_heap *heap, duk...
  function DUK_INTERNAL (line 49724) | DUK_INTERNAL duk_bool_t duk_heap_in_heap_allocated(duk_heap *heap, duk_h...
  function DUK_INTERNAL (line 49738) | DUK_INTERNAL void duk_heap_switch_thread(duk_heap *heap, duk_hthread *ne...
  function DUK_LOCAL (line 49806) | DUK_LOCAL void duk__decref_tvals_norz(duk_hthread *thr, duk_tval *tv, du...
  function DUK_INTERNAL (line 49815) | DUK_INTERNAL void duk_hobject_refcount_finalize_norz(duk_heap *heap, duk...
  function DUK_INTERNAL (line 49998) | DUK_INTERNAL void duk_heaphdr_refcount_finalize_norz(duk_heap *heap, duk...
  function DUK_LOCAL (line 50057) | DUK_LOCAL void duk__refcount_free_pending(duk_heap *heap) {
  function duk__refcount_refzero_hobject (line 50104) | void duk__refcount_refzero_hobject(duk_heap *heap, duk_hobject *obj, duk...
  function duk_refzero_check_fast (line 50211) | void duk_refzero_check_fast(duk_hthread *thr) {
  function DUK_INTERNAL (line 50221) | DUK_INTERNAL void duk_refzero_check_slow(duk_hthread *thr) {
  function duk__refcount_refzero_hstring (line 50236) | void duk__refcount_refzero_hstring(duk_heap *heap, duk_hstring *str) {
  function duk__refcount_refzero_hbuffer (line 50251) | void duk__refcount_refzero_hbuffer(duk_heap *heap, duk_hbuffer *buf) {
  function duk__hstring_refzero_helper (line 50345) | void duk__hstring_refzero_helper(duk_hthread *thr, duk_hstring *h) {
  function duk__hbuffer_refzero_helper (line 50356) | void duk__hbuffer_refzero_helper(duk_hthread *thr, duk_hbuffer *h) {
  function duk__hobject_refzero_helper (line 50367) | void duk__hobject_refzero_helper(duk_hthread *thr, duk_hobject *h, duk_b...
  function duk__heaphdr_refzero_helper (line 50378) | void duk__heaphdr_refzero_helper(duk_hthread *thr, duk_heaphdr *h, duk_b...
  function duk_heaphdr_refzero (line 50420) | void duk_heaphdr_refzero(duk_hthread *thr, duk_heaphdr *h) {
  function duk_heaphdr_refzero_norz (line 50424) | void duk_heaphdr_refzero_norz(duk_hthread *thr, duk_heaphdr *h) {
  function duk_hstring_refzero (line 50428) | void duk_hstring_refzero(duk_hthread *thr, duk_hstring *h) {
  function duk_hbuffer_refzero (line 50432) | void duk_hbuffer_refzero(duk_hthread *thr, duk_hbuffer *h) {
  function duk_hobject_refzero (line 50436) | void duk_hobject_refzero(duk_hthread *thr, duk_hobject *h) {
  function duk_hobject_refzero_norz (line 50440) | void duk_hobject_refzero_norz(duk_hthread *thr, duk_hobject *h) {
  function DUK_INTERNAL (line 50445) | DUK_INTERNAL void duk_tval_incref(duk_tval *tv) {
  function DUK_INTERNAL (line 50458) | DUK_INTERNAL void duk_tval_decref(duk_hthread *thr, duk_tval *tv) {
  function DUK_INTERNAL (line 50478) | DUK_INTERNAL void duk_tval_decref_norz(duk_hthread *thr, duk_tval *tv) {
  function DUK_INTERNAL (line 50538) | DUK_INTERNAL void duk_heaphdr_incref(duk_heaphdr *h) {
  function DUK_INTERNAL (line 50546) | DUK_INTERNAL void duk_heaphdr_decref(duk_hthread *thr, duk_heaphdr *h) {
  function DUK_INTERNAL (line 50556) | DUK_INTERNAL void duk_heaphdr_decref_norz(duk_hthread *thr, duk_heaphdr ...
  function DUK_INTERNAL (line 50564) | DUK_INTERNAL void duk_hstring_decref(duk_hthread *thr, duk_hstring *h) {
  function DUK_INTERNAL (line 50569) | DUK_INTERNAL void duk_hstring_decref_norz(duk_hthread *thr, duk_hstring ...
  function DUK_INTERNAL (line 50574) | DUK_INTERNAL void duk_hbuffer_decref(duk_hthread *thr, duk_hbuffer *h) {
  function DUK_INTERNAL (line 50579) | DUK_INTERNAL void duk_hbuffer_decref_norz(duk_hthread *thr, duk_hbuffer ...
  function DUK_INTERNAL (line 50584) | DUK_INTERNAL void duk_hobject_decref(duk_hthread *thr, duk_hobject *h) {
  function DUK_INTERNAL (line 50589) | DUK_INTERNAL void duk_hobject_decref_norz(duk_hthread *thr, duk_hobject ...
  function DUK_INTERNAL (line 50634) | DUK_INTERNAL void duk_heap_strcache_string_remove(duk_heap *heap, duk_hs...
  function DUK_LOCAL (line 50659) | DUK_LOCAL const duk_uint8_t *duk__scan_forwards(const duk_uint8_t *p, co...
  function DUK_LOCAL (line 50675) | DUK_LOCAL const duk_uint8_t *duk__scan_backwards(const duk_uint8_t *p, c...
  function DUK_INTERNAL (line 50707) | DUK_INTERNAL duk_uint_fast32_t duk_heap_strcache_offset_char2byte(duk_ht...
  function DUK_INTERNAL (line 50956) | DUK_INTERNAL void duk_heap_strtable_dump(duk_heap *heap) {
  function DUK_LOCAL (line 51014) | DUK_LOCAL void duk__strtable_assert_checks(duk_heap *heap) {
  function DUK_LOCAL (line 51189) | DUK_LOCAL void duk__strtable_grow_inplace(duk_heap *heap) {
  function DUK_LOCAL (line 51306) | DUK_LOCAL void duk__strtable_shrink_inplace(duk_heap *heap) {
  function duk__strtable_resize_check (line 51392) | void duk__strtable_resize_check(duk_heap *heap) {
  function DUK_LOCAL (line 51454) | DUK_LOCAL void duk__strtable_resize_torture(duk_heap *heap) {
  function DUK_LOCAL (line 51477) | DUK_LOCAL duk_hstring *duk__strtable_do_intern(duk_heap *heap, const duk...
  function DUK_LOCAL (line 51600) | DUK_LOCAL duk_hstring *duk__strtab_romstring_lookup(duk_heap *heap, cons...
  function DUK_INTERNAL (line 51629) | DUK_INTERNAL duk_hstring *duk_heap_strtable_intern(duk_heap *heap, const...
  function DUK_INTERNAL (line 51691) | DUK_INTERNAL duk_hstring *duk_heap_strtable_intern_u32(duk_heap *heap, d...
  function DUK_INTERNAL (line 51718) | DUK_INTERNAL duk_hstring *duk_heap_strtable_intern_checked(duk_hthread *...
  function DUK_INTERNAL (line 51732) | DUK_INTERNAL duk_hstring *duk_heap_strtable_intern_u32_checked(duk_hthre...
  function DUK_INTERNAL (line 51754) | DUK_INTERNAL void duk_heap_strtable_unlink(duk_heap *heap, duk_hstring *...
  function DUK_INTERNAL (line 51805) | DUK_INTERNAL void duk_heap_strtable_unlink_prev(duk_heap *heap, duk_hstr...
  function DUK_INTERNAL (line 51868) | DUK_INTERNAL void duk_heap_strtable_free(duk_heap *heap) {
  function DUK_LOCAL (line 51933) | DUK_LOCAL void duk__init_object_parts(duk_heap *heap, duk_uint_t hobject...
  function DUK_LOCAL (line 51961) | DUK_LOCAL void *duk__hobject_alloc_init(duk_hthread *thr, duk_uint_t hob...
  function DUK_INTERNAL (line 51981) | DUK_INTERNAL duk_hobject *duk_hobject_alloc_unchecked(duk_heap *heap, du...
  function DUK_INTERNAL (line 52003) | DUK_INTERNAL duk_hobject *duk_hobject_alloc(duk_hthread *thr, duk_uint_t...
  function DUK_INTERNAL (line 52010) | DUK_INTERNAL duk_hcompfunc *duk_hcompfunc_alloc(duk_hthread *thr, duk_ui...
  function DUK_INTERNAL (line 52029) | DUK_INTERNAL duk_hnatfunc *duk_hnatfunc_alloc(duk_hthread *thr, duk_uint...
  function DUK_INTERNAL (line 52040) | DUK_INTERNAL duk_hboundfunc *duk_hboundfunc_alloc(duk_heap *heap, duk_ui...
  function DUK_INTERNAL (line 52062) | DUK_INTERNAL duk_hbufobj *duk_hbufobj_alloc(duk_hthread *thr, duk_uint_t...
  function DUK_INTERNAL (line 52082) | DUK_INTERNAL duk_hthread *duk_hthread_alloc_unchecked(duk_heap *heap, du...
  function DUK_INTERNAL (line 52125) | DUK_INTERNAL duk_hthread *duk_hthread_alloc(duk_hthread *thr, duk_uint_t...
  function DUK_INTERNAL (line 52135) | DUK_INTERNAL duk_harray *duk_harray_alloc(duk_hthread *thr, duk_uint_t h...
  function DUK_INTERNAL (line 52145) | DUK_INTERNAL duk_hdecenv *duk_hdecenv_alloc(duk_hthread *thr, duk_uint_t...
  function DUK_INTERNAL (line 52161) | DUK_INTERNAL duk_hobjenv *duk_hobjenv_alloc(duk_hthread *thr, duk_uint_t...
  function DUK_INTERNAL (line 52174) | DUK_INTERNAL duk_hproxy *duk_hproxy_alloc(duk_hthread *thr, duk_uint_t h...
  type duk_uint32_t (line 52246) | typedef duk_uint32_t duk__sort_key_t;
  type duk_uint64_t (line 52248) | typedef duk_uint64_t duk__sort_key_t;
  type duk_double_t (line 52250) | typedef duk_double_t duk__sort_key_t;
  function DUK_LOCAL (line 52254) | DUK_LOCAL duk__sort_key_t duk__hstring_sort_key(duk_hstring *x) {
  function DUK_LOCAL (line 52276) | DUK_LOCAL duk_bool_t duk__sort_compare_es6(duk_hstring *a, duk_hstring *...
  function DUK_LOCAL (line 52292) | DUK_LOCAL void duk__sort_enum_keys_es6(duk_hthread *thr, duk_hobject *h_...
  function DUK_LOCAL (line 52364) | DUK_LOCAL void duk__add_enum_key(duk_hthread *thr, duk_hstring *k) {
  function DUK_LOCAL (line 52373) | DUK_LOCAL void duk__add_enum_key_stridx(duk_hthread *thr, duk_small_uint...
  function DUK_INTERNAL (line 52740) | DUK_INTERNAL duk_bool_t duk_hobject_enumerator_next(duk_hthread *thr, du...
  function DUK_INTERNAL (line 52835) | DUK_INTERNAL duk_ret_t duk_hobject_get_enumerated_keys(duk_hthread *thr,...
  function DUK_INTERNAL (line 52895) | DUK_INTERNAL duk_bool_t duk_hobject_prototype_chain_contains(duk_hthread...
  function DUK_INTERNAL (line 52926) | DUK_INTERNAL void duk_hobject_set_prototype_updref(duk_hthread *thr, duk...
  function DUK_INTERNAL (line 52956) | DUK_INTERNAL void duk_hobject_pc2line_pack(duk_hthread *thr, duk_compile...
  function DUK_LOCAL (line 53064) | DUK_LOCAL duk_uint_fast32_t duk__hobject_pc2line_query_raw(duk_hthread *...
  function DUK_INTERNAL (line 53162) | DUK_INTERNAL duk_uint_fast32_t duk_hobject_pc2line_query(duk_hthread *th...
  function DUK_LOCAL (line 53276) | DUK_LOCAL duk_uint32_t duk__tval_number_to_arr_idx(duk_tval *tv) {
  function DUK_LOCAL (line 53299) | DUK_LOCAL duk_uint32_t duk__tval_fastint_to_arr_idx(duk_tval *tv) {
  function DUK_LOCAL (line 53325) | DUK_LOCAL duk_uint32_t duk__to_property_key(duk_hthread *thr, duk_idx_t ...
  function DUK_LOCAL (line 53360) | DUK_LOCAL duk_uint32_t duk__push_tval_to_property_key(duk_hthread *thr, ...
  function DUK_LOCAL (line 53366) | DUK_LOCAL duk_bool_t duk__key_is_plain_buf_ownprop(duk_hthread *thr, duk...
  function DUK_LOCAL (line 53389) | DUK_LOCAL duk_uint32_t duk__get_default_h_size(duk_uint32_t e_size) {
  function DUK_LOCAL (line 53420) | DUK_LOCAL duk_uint32_t duk__get_min_grow_e(duk_uint32_t e_size) {
  function DUK_LOCAL (line 53431) | DUK_LOCAL duk_uint32_t duk__get_min_grow_a(duk_uint32_t a_size) {
  function DUK_LOCAL (line 53442) | DUK_LOCAL duk_uint32_t duk__count_used_e_keys(duk_hthread *thr, duk_hobj...
  function DUK_LOCAL (line 53464) | DUK_LOCAL void duk__compute_a_stats(duk_hthread *thr, duk_hobject *obj, ...
  function DUK_LOCAL (line 53494) | DUK_LOCAL duk_bool_t duk__abandon_array_density_check(duk_uint32_t a_use...
  function DUK_LOCAL (line 53515) | DUK_LOCAL duk_bool_t duk__abandon_array_slow_check_required(duk_uint32_t...
  function DUK_INTERNAL (line 53545) | DUK_INTERNAL duk_bool_t duk_hobject_proxy_check(duk_hobject *obj, duk_ho...
  function DUK_INTERNAL (line 53574) | DUK_INTERNAL duk_hobject *duk_hobject_resolve_proxy_target(duk_hobject *...
  function DUK_LOCAL (line 53597) | DUK_LOCAL duk_bool_t duk__proxy_check_prop(duk_hthread *thr, duk_hobject...
  function DUK_INTERNAL (line 53691) | DUK_INTERNAL void duk_hobject_realloc_props(duk_hthread *thr,
  function DUK_INTERNAL (line 54147) | DUK_INTERNAL void duk_hobject_resize_entrypart(duk_hthread *thr,
  function DUK_INTERNAL (line 54172) | DUK_INTERNAL void duk_hobject_resize_arraypart(duk_hthread *thr,
  function DUK_LOCAL (line 54197) | DUK_LOCAL void duk__grow_props_for_new_entry_item(duk_hthread *thr, duk_...
  function DUK_LOCAL (line 54227) | DUK_LOCAL void duk__grow_props_for_array_item(duk_hthread *thr, duk_hobj...
  function DUK_LOCAL (line 54251) | DUK_LOCAL void duk__abandon_array_checked(duk_hthread *thr, duk_hobject ...
  function DUK_INTERNAL (line 54301) | DUK_INTERNAL void duk_hobject_compact_props(duk_hthread *thr, duk_hobjec...
  function DUK_INTERNAL (line 54364) | DUK_INTERNAL duk_bool_t duk_hobject_find_existing_entry(duk_heap *heap, ...
  function DUK_INTERNAL (line 54448) | DUK_INTERNAL duk_tval *duk_hobject_find_existing_entry_tval_ptr(duk_heap...
  function DUK_INTERNAL (line 54466) | DUK_INTERNAL duk_tval *duk_hobject_find_existing_entry_tval_ptr_and_attr...
  function DUK_INTERNAL (line 54487) | DUK_INTERNAL duk_tval *duk_hobject_find_existing_array_entry_tval_ptr(du...
  function DUK_LOCAL (line 54512) | DUK_LOCAL duk_int_t duk__hobject_alloc_entry_checked(duk_hthread *thr, d...
  function DUK_INTERNAL (line 54590) | DUK_INTERNAL duk_bool_t duk_hobject_get_internal_value(duk_heap *heap, d...
  function DUK_INTERNAL (line 54609) | DUK_INTERNAL duk_hstring *duk_hobject_get_internal_value_string(duk_heap...
  function DUK_LOCAL (line 54644) | DUK_LOCAL
  function DUK_LOCAL (line 54701) | DUK_LOCAL duk_bool_t duk__check_arguments_map_for_get(duk_hthread *thr, ...
  function DUK_LOCAL (line 54738) | DUK_LOCAL void duk__check_arguments_map_for_put(duk_hthread *thr, duk_ho...
  function DUK_LOCAL (line 54781) | DUK_LOCAL void duk__check_arguments_map_for_delete(duk_hthread *thr, duk...
  function DUK_LOCAL (line 54844) | DUK_LOCAL duk_bool_t duk__get_own_propdesc_raw(duk_hthread *thr, duk_hob...
  function DUK_INTERNAL (line 55170) | DUK_INTERNAL duk_bool_t duk_hobject_get_own_propdesc(duk_hthread *thr, d...
  function DUK_LOCAL (line 55199) | DUK_LOCAL duk_bool_t duk__get_propdesc(duk_hthread *thr, duk_hobject *ob...
  function DUK_LOCAL (line 55272) | DUK_LOCAL duk_tval *duk__getprop_shallow_fastpath_array_tval(duk_hthread...
  function DUK_LOCAL (line 55334) | DUK_LOCAL duk_bool_t duk__putprop_shallow_fastpath_array_tval(duk_hthrea...
  function DUK_LOCAL (line 55404) | DUK_LOCAL duk_bool_t duk__getprop_fastpath_bufobj_tval(duk_hthread *thr,...
  function DUK_LOCAL (line 55457) | DUK_LOCAL duk_bool_t duk__putprop_fastpath_bufobj_tval(duk_hthread *thr,...
  function DUK_INTERNAL (line 55522) | DUK_INTERNAL duk_bool_t duk_hobject_getprop(duk_hthread *thr, duk_tval *...
  function DUK_INTERNAL (line 56008) | DUK_INTERNAL duk_bool_t duk_hobject_hasprop(duk_hthread *thr, duk_tval *...
  function DUK_INTERNAL (line 56145) | DUK_INTERNAL duk_bool_t duk_hobject_hasprop_raw(duk_hthread *thr, duk_ho...
  function DUK_LOCAL (line 56169) | DUK_LOCAL duk_uint32_t duk__to_new_array_length_checked(duk_hthread *thr...
  function DUK_LOCAL (line 56226) | DUK_LOCAL
  function DUK_LOCAL (line 56413) | DUK_LOCAL duk_bool_t duk__handle_put_array_length(duk_hthread *thr, duk_...
  function DUK_INTERNAL (line 56513) | DUK_INTERNAL duk_bool_t duk_hobject_putprop(duk_hthread *thr, duk_tval *...
  function DUK_INTERNAL (line 57431) | DUK_INTERNAL duk_bool_t duk_hobject_delprop_raw(duk_hthread *thr, duk_ho...
  function DUK_INTERNAL (line 57590) | DUK_INTERNAL duk_bool_t duk_hobject_delprop(duk_hthread *thr, duk_tval *...
  function DUK_INTERNAL (line 57789) | DUK_INTERNAL void duk_hobject_define_property_internal(duk_hthread *thr,...
  function DUK_INTERNAL (line 57913) | DUK_INTERNAL void duk_hobject_define_property_internal_arridx(duk_hthrea...
  function DUK_INTERNAL (line 57964) | DUK_INTERNAL duk_size_t duk_hobject_get_length(duk_hthread *thr, duk_hob...
  function DUK_INTERNAL (line 58000) | DUK_INTERNAL duk_bool_t duk_hobject_has_finalizer_fast_raw(duk_heap *hea...
  function duk_call_setup_propcall_error (line 63867) | void duk_call_setup_propcall_error(duk_hthread *thr, duk_tval *tv_targ, ...
  type duk__compiler_stkstate (line 64012) | typedef struct {
  function DUK_LOCAL (line 64327) | DUK_LOCAL void duk__comp_recursion_increase(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 64336) | DUK_LOCAL void duk__comp_recursion_decrease(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 64342) | DUK_LOCAL duk_bool_t duk__hstring_is_eval_or_arguments(duk_compiler_ctx ...
  function DUK_LOCAL (line 64348) | DUK_LOCAL duk_bool_t duk__hstring_is_eval_or_arguments_in_strict_mode(du...
  function DUK_LOCAL (line 64362) | DUK_LOCAL void duk__advance_helper(duk_compiler_ctx *comp_ctx, duk_small...
  function DUK_LOCAL (line 64421) | DUK_LOCAL void duk__advance_expect(duk_compiler_ctx *comp_ctx, duk_small...
  function DUK_LOCAL (line 64426) | DUK_LOCAL void duk__advance(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 64435) | DUK_LOCAL void duk__init_func_valstack_slots(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 64498) | DUK_LOCAL void duk__reset_func_for_pass2(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 64525) | DUK_LOCAL duk_int_t duk__cleanup_varmap(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 64575) | DUK_LOCAL void duk__convert_to_func_template(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 65012) | DUK_LOCAL duk_int_t duk__get_current_pc(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 65018) | DUK_LOCAL duk_compiler_instr *duk__get_instr_ptr(duk_compiler_ctx *comp_...
  function DUK_LOCAL (line 65027) | DUK_LOCAL void duk__emit(duk_compiler_ctx *comp_ctx, duk_instr_t ins) {
  function DUK_LOCAL (line 65100) | DUK_LOCAL void duk__update_lineinfo_currtoken(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 65119) | DUK_LOCAL void duk__emit_op_only(duk_compiler_ctx *comp_ctx, duk_small_u...
  function DUK_LOCAL (line 65388) | DUK_LOCAL void duk__emit_a_b(duk_compiler_ctx *comp_ctx, duk_small_uint_...
  function DUK_LOCAL (line 65395) | DUK_LOCAL void duk__emit_b_c(duk_compiler_ctx *comp_ctx, duk_small_uint_...
  function DUK_LOCAL (line 65403) | DUK_LOCAL void duk__emit_a(duk_compiler_ctx *comp_ctx, int op_flags, int...
  function DUK_LOCAL (line 65412) | DUK_LOCAL void duk__emit_b(duk_compiler_ctx *comp_ctx, duk_small_uint_t ...
  function DUK_LOCAL (line 65477) | DUK_LOCAL void duk__emit_bc(duk_compiler_ctx *comp_ctx, duk_small_uint_t...
  function DUK_LOCAL (line 65484) | DUK_LOCAL void duk__emit_abc(duk_compiler_ctx *comp_ctx, duk_small_uint_...
  function DUK_LOCAL (line 65511) | DUK_LOCAL void duk__emit_load_int32_raw(duk_compiler_ctx *comp_ctx, duk_...
  function DUK_LOCAL (line 65532) | DUK_LOCAL void duk__emit_load_int32(duk_compiler_ctx *comp_ctx, duk_regc...
  function DUK_LOCAL (line 65540) | DUK_LOCAL void duk__emit_load_int32_noshuffle(duk_compiler_ctx *comp_ctx...
  function DUK_LOCAL (line 65544) | DUK_LOCAL void duk__emit_load_int32_noshuffle(duk_compiler_ctx *comp_ctx...
  function DUK_LOCAL (line 65553) | DUK_LOCAL void duk__emit_jump(duk_compiler_ctx *comp_ctx, duk_int_t targ...
  function DUK_LOCAL (line 65564) | DUK_LOCAL duk_int_t duk__emit_jump_empty(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 65575) | DUK_LOCAL void duk__insert_jump_entry(duk_compiler_ctx *comp_ctx, duk_in...
  function DUK_LOCAL (line 65611) | DUK_LOCAL void duk__patch_jump(duk_compiler_ctx *comp_ctx, duk_int_t jum...
  function DUK_LOCAL (line 65635) | DUK_LOCAL void duk__patch_jump_here(duk_compiler_ctx *comp_ctx, duk_int_...
  function DUK_LOCAL (line 65639) | DUK_LOCAL void duk__patch_trycatch(duk_compiler_ctx *comp_ctx, duk_int_t...
  function DUK_LOCAL (line 65677) | DUK_LOCAL void duk__emit_if_false_skip(duk_compiler_ctx *comp_ctx, duk_r...
  function DUK_LOCAL (line 65684) | DUK_LOCAL void duk__emit_if_true_skip(duk_compiler_ctx *comp_ctx, duk_re...
  function DUK_LOCAL (line 65691) | DUK_LOCAL void duk__emit_invalid(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 65702) | DUK_LOCAL void duk__peephole_optimize_bytecode(duk_compiler_ctx *comp_ct...
  function DUK_LOCAL (line 65783) | DUK_LOCAL void duk__dump_ispec(duk_compiler_ctx *comp_ctx, duk_ispec *x) {
  function DUK_LOCAL (line 65788) | DUK_LOCAL void duk__dump_ivalue(duk_compiler_ctx *comp_ctx, duk_ivalue *...
  function DUK_LOCAL (line 65803) | DUK_LOCAL void duk__ivalue_regconst(duk_ivalue *x, duk_regconst_t regcon...
  function DUK_LOCAL (line 65809) | DUK_LOCAL void duk__ivalue_plain_fromstack(duk_compiler_ctx *comp_ctx, d...
  function DUK_LOCAL (line 65815) | DUK_LOCAL void duk__ivalue_var_fromstack(duk_compiler_ctx *comp_ctx, duk...
  function DUK_LOCAL_DECL (line 65821) | DUK_LOCAL_DECL void duk__ivalue_var_hstring(duk_compiler_ctx *comp_ctx, ...
  function DUK_LOCAL (line 65827) | DUK_LOCAL void duk__copy_ispec(duk_compiler_ctx *comp_ctx, duk_ispec *sr...
  function DUK_LOCAL (line 65833) | DUK_LOCAL void duk__copy_ivalue(duk_compiler_ctx *comp_ctx, duk_ivalue *...
  function DUK_LOCAL (line 65844) | DUK_LOCAL duk_regconst_t duk__alloctemps(duk_compiler_ctx *comp_ctx, duk...
  function DUK_LOCAL (line 65862) | DUK_LOCAL duk_regconst_t duk__alloctemp(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 65866) | DUK_LOCAL void duk__settemp_checkmax(duk_compiler_ctx *comp_ctx, duk_reg...
  function DUK_LOCAL (line 65874) | DUK_LOCAL duk_regconst_t duk__getconst(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 65919) | DUK_LOCAL duk_bool_t duk__const_needs_refcount(duk_compiler_ctx *comp_ct...
  function DUK_LOCAL (line 65953) | DUK_LOCAL
  function DUK_LOCAL (line 66124) | DUK_LOCAL void duk__ispec_toforcedreg(duk_compiler_ctx *comp_ctx, duk_is...
  function DUK_LOCAL (line 66134) | DUK_LOCAL void duk__ivalue_toplain_raw(duk_compiler_ctx *comp_ctx, duk_i...
  function DUK_LOCAL (line 66323) | DUK_LOCAL void duk__ivalue_toplain(duk_compiler_ctx *comp_ctx, duk_ivalu...
  function DUK_LOCAL (line 66328) | DUK_LOCAL void duk__ivalue_toplain_ignore(duk_compiler_ctx *comp_ctx, du...
  function DUK_LOCAL (line 66345) | DUK_LOCAL
  function DUK_LOCAL (line 66378) | DUK_LOCAL duk_regconst_t duk__ivalue_toreg(duk_compiler_ctx *comp_ctx, d...
  function DUK_LOCAL (line 66383) | DUK_LOCAL duk_regconst_t duk__ivalue_totemp(duk_compiler_ctx *comp_ctx, ...
  function DUK_LOCAL (line 66388) | DUK_LOCAL void duk__ivalue_toforcedreg(duk_compiler_ctx *comp_ctx, duk_i...
  function DUK_LOCAL (line 66393) | DUK_LOCAL duk_regconst_t duk__ivalue_toregconst(duk_compiler_ctx *comp_c...
  function DUK_LOCAL (line 66397) | DUK_LOCAL duk_regconst_t duk__ivalue_totempconst(duk_compiler_ctx *comp_...
  function DUK_LOCAL (line 66413) | DUK_LOCAL duk_regconst_t duk__lookup_active_register_binding(duk_compile...
  function DUK_LOCAL (line 66494) | DUK_LOCAL duk_bool_t duk__lookup_lhs(duk_compiler_ctx *comp_ctx, duk_reg...
  function DUK_LOCAL (line 66525) | DUK_LOCAL void duk__add_label(duk_compiler_ctx *comp_ctx, duk_hstring *h...
  function DUK_LOCAL (line 66588) | DUK_LOCAL void duk__update_label_flags(duk_compiler_ctx *comp_ctx, duk_i...
  function DUK_LOCAL (line 66629) | DUK_LOCAL void duk__lookup_active_label(duk_compiler_ctx *comp_ctx, duk_...
  function DUK_LOCAL (line 66701) | DUK_LOCAL void duk__reset_labels_to_length(duk_compiler_ctx *comp_ctx, d...
  function DUK_LOCAL (line 66721) | DUK_LOCAL void duk__nud_array_literal(duk_compiler_ctx *comp_ctx, duk_iv...
  type duk__objlit_state (line 66880) | typedef struct {
  function DUK_LOCAL (line 66887) | DUK_LOCAL void duk__objlit_flush_keys(duk_compiler_ctx *comp_ctx, duk__o...
  function DUK_LOCAL (line 66911) | DUK_LOCAL duk_bool_t duk__objlit_load_key(duk_compiler_ctx *comp_ctx, du...
  function DUK_LOCAL (line 66930) | DUK_LOCAL void duk__nud_object_literal(duk_compiler_ctx *comp_ctx, duk_i...
  function DUK_LOCAL (line 67167) | DUK_LOCAL duk_int_t duk__parse_arguments(duk_compiler_ctx *comp_ctx, duk...
  function DUK_LOCAL (line 67211) | DUK_LOCAL duk_bool_t duk__expr_is_empty(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 67217) | DUK_LOCAL void duk__expr_nud(duk_compiler_ctx *comp_ctx, duk_ivalue *res) {
  function DUK_LOCAL (line 67750) | DUK_LOCAL void duk__expr_led(duk_compiler_ctx *comp_ctx, duk_ivalue *lef...
  function DUK_LOCAL (line 68724) | DUK_LOCAL duk_small_uint_t duk__expr_lbp(duk_compiler_ctx *comp_ctx) {
  function DUK_LOCAL (line 68769) | DUK_LOCAL void duk__expr(duk_compiler_ctx *comp_ctx, duk_ivalue *res, du...
  function DUK_LOCAL (line 68828) | DUK_LOCAL void duk__exprtop(duk_compiler_ctx *comp_ctx, duk_ivalue *res,...
  function DUK_LOCAL (line 68854) | DUK_LOCAL duk_regconst_t duk__expr_toreg(duk_compiler_ctx *comp_ctx, duk...
  function DUK_LOCAL (line 68861) | DUK_LOCAL duk_regconst_t duk__expr_totemp(duk_compiler_ctx *comp_ctx, du...
  function DUK_LOCAL (line 68867) | DUK_LOCAL void duk__expr_toforcedreg(duk_compiler_ctx *comp_ctx, duk_iva...
  function DUK_LOCAL (line 68873) | DUK_LOCAL duk_regconst_t duk__expr_toregconst(duk_compiler_ctx *comp_ctx...
  function DUK_LOCAL (line 68879) | DUK_LOCAL duk_regconst_t duk__expr_totempconst(duk_compiler_ctx *comp_ct...
  function DUK_LOCAL (line 68885) | DUK_LOCAL void duk__expr_toplain(duk_compiler_ctx *comp_ctx, duk_ivalue ...
  function DUK_LOCAL (line 68890) | DUK_LOCAL void duk__expr_toplain_ignore(duk_compiler_ctx *comp_ctx, duk_...
  function DUK_LOCAL (line 68895) | DUK_LOCAL duk_regconst_t duk__exprtop_toreg(duk_compiler_ctx *comp_ctx, ...
  function DUK_LOCAL (line 68901) | DUK_LOCAL duk_regconst_t duk__exprtop_totemp(duk_compiler_ctx *comp_ctx,...
  function DUK_LOCAL (line 68907) | DUK_LOCAL void duk__exprtop_toforcedreg(duk_compiler_ctx *comp_ctx, duk_...
  function DUK_LOCAL (line 68913) | DUK_LOCAL duk_regconst_t duk__exprtop_toregconst(duk_compiler_ctx *comp_...
  function DUK_LOCAL (line 68919) | DUK_LOCAL void duk__exprtop_toplain_ignore(duk_compiler_ctx *comp_ctx, d...
  function DUK_LOCAL (line 68961) | DUK_LOCAL void duk__parse_var_decl(duk_compiler_ctx *comp_ctx, duk_ivalu...
  function DUK_LOCAL (line 69038) | DUK_LOCAL void duk__parse_var_stmt(duk_compiler_ctx *comp_ctx, duk_ivalu...
  function DUK_LOCAL (line 69055) | DUK_LOCAL void duk__parse_for_stmt(duk_compiler_ctx *comp_ctx, duk_ivalu...
  function DUK_LOCAL (line 69409) | DUK_LOCAL void duk__parse_switch_s
Condensed preview — 245 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,492K chars).
[
  {
    "path": ".clang-format",
    "chars": 1675,
    "preview": "BasedOnStyle: LLVM\nAccessModifierOffset: -4\nAlignAfterOpenBracket: Align\nAlignConsecutiveAssignments: false\nAlignConsecu"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 62,
    "preview": "# These are supported funding model platforms\n\n#github: hogsy\n"
  },
  {
    "path": ".gitignore",
    "chars": 643,
    "preview": "# Object files\n*.o\n*.ko\n#*.obj\n*.elf\n\n# Precompiled Headers\n*.gch\n*.pch\n\n# Libraries\n*.lib\n*.a\n*.la\n*.lo\n\n# Shared objec"
  },
  {
    "path": ".gitmodules",
    "chars": 313,
    "preview": "[submodule \"platform\"]\n\tpath = src/3rdparty/platform\n\turl = https://github.com/TalonBraveInfo/platform\n[submodule \"imgui"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 3621,
    "preview": "#[[\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, us"
  },
  {
    "path": "CONTRIBUTORS",
    "chars": 185,
    "preview": "https://github.com/hogsy\nhttps://github.com/DummkopfOfHachtenduden\nhttps://github.com/solemnwarning\nhttps://github.com/B"
  },
  {
    "path": "LICENSE",
    "chars": 35146,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "README.md",
    "chars": 5658,
    "preview": "Hello! :wave: \n\nThis project has been archived, for now. For those not aware, there is an [official Hogs of War remaster"
  },
  {
    "path": "bin/CREDITS",
    "chars": 72,
    "preview": "OpenHoW Icon\n\tCreated by NAMELESS\n\thttps://www.fiverr.com/s2/088679c4e8\n"
  },
  {
    "path": "bin/gamecontrollerdb.txt",
    "chars": 109405,
    "preview": "# Game Controller DB for SDL in 2.0.6 format\n# Source: https://github.com/gabomdq/SDL_GameControllerDB\n\n# Windows\n030000"
  },
  {
    "path": "bin/icon.ai",
    "chars": 108445,
    "preview": "%PDF-1.5\r%\r\n1 0 obj\r<</Metadata 2 0 R/OCProperties<</D<</ON[6 0 R 41 0 R]/Order 42 0 R/RBGroups[]>>/OCGs[6 0 R 41 0 R]>>"
  },
  {
    "path": "bin/mods/README.md",
    "chars": 333,
    "preview": "This directory exists for any modifications you might want to add to the game.\n\nTo load a different mod, pass it as an a"
  },
  {
    "path": "bin/mods/base/actors/misc.actor",
    "chars": 78,
    "preview": "[\n  {\n    \"identifier\": \"model_static\",\n    \"className\": \"AStaticModel\"\n  }\n]\n"
  },
  {
    "path": "bin/mods/base/chars/primitives/cube.mtl",
    "chars": 124,
    "preview": "# Blender MTL File: 'None'\n# Material Count: 1\n\nnewmtl None\nNs 500\nKa 0.8 0.8 0.8\nKd 0.8 0.8 0.8\nKs 0.8 0.8 0.8\nd 1\nillu"
  },
  {
    "path": "bin/mods/base/chars/primitives/cube.obj",
    "chars": 952,
    "preview": "# Blender v2.80 (sub 75) OBJ File: ''\n# www.blender.org\nmtllib cube.mtl\no Cube_Cube.001\nv -1.000000 -1.000000 1.000000\nv"
  },
  {
    "path": "bin/mods/base/chars/primitives/icosphere.mtl",
    "chars": 124,
    "preview": "# Blender MTL File: 'None'\n# Material Count: 1\n\nnewmtl None\nNs 500\nKa 0.8 0.8 0.8\nKd 0.8 0.8 0.8\nKs 0.8 0.8 0.8\nd 1\nillu"
  },
  {
    "path": "bin/mods/base/chars/primitives/icosphere.obj",
    "chars": 6956,
    "preview": "# Blender v2.80 (sub 75) OBJ File: ''\n# www.blender.org\nmtllib icosphere.mtl\no Icosphere\nv 0.000000 -1.000000 0.000000\nv"
  },
  {
    "path": "bin/mods/base/chars/primitives/sphere.mtl",
    "chars": 124,
    "preview": "# Blender MTL File: 'None'\n# Material Count: 1\n\nnewmtl None\nNs 500\nKa 0.8 0.8 0.8\nKd 0.8 0.8 0.8\nKs 0.8 0.8 0.8\nd 1\nillu"
  },
  {
    "path": "bin/mods/base/chars/primitives/sphere.obj",
    "chars": 63136,
    "preview": "# Blender v2.80 (sub 75) OBJ File: ''\n# www.blender.org\nmtllib sphere.mtl\no Sphere\nv 0.000000 0.980785 -0.195090\nv 0.000"
  },
  {
    "path": "bin/mods/base/chars/primitives/torus.mtl",
    "chars": 124,
    "preview": "# Blender MTL File: 'None'\n# Material Count: 1\n\nnewmtl None\nNs 500\nKa 0.8 0.8 0.8\nKd 0.8 0.8 0.8\nKs 0.8 0.8 0.8\nd 1\nillu"
  },
  {
    "path": "bin/mods/base/chars/primitives/torus.obj",
    "chars": 65432,
    "preview": "# Blender v2.80 (sub 75) OBJ File: ''\n# www.blender.org\nmtllib torus.mtl\no Torus\nv 1.250000 0.000000 0.000000\nv 1.216506"
  },
  {
    "path": "bin/mods/base/effects/test.effect",
    "chars": 412,
    "preview": "{\n  \"version\": 15052020,\n  \"emitters\": [\n    {\n      \"gravity\": 0,\n      \"randomLifeSpanFactor\": 5,\n      \"randomColourF"
  },
  {
    "path": "bin/mods/base/fonts/LICENSE.txt",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "bin/mods/base/languages/eng.language",
    "chars": 8838,
    "preview": "{\n  \"dbt0\": \"Please note that OpenHoW is still heavily under development.\",\n  \"dbt1\": \"\\nBe sure to report any bugs to o"
  },
  {
    "path": "bin/mods/base/languages/fre.language",
    "chars": 8767,
    "preview": "{\n  \"english\": \"ENGLISH\",\n  \"french\": \"FRANÇAIS\",\n  \"german\": \"DEUTSCH\",\n  \"italian\": \"ITALIANO\",\n  \"spanish\": \"ESPAÑOL\""
  },
  {
    "path": "bin/mods/base/languages/ger.language",
    "chars": 8526,
    "preview": "{\n  \"english\": \"ENGLISH\",\n  \"french\": \"FRANÇAIS\",\n  \"german\": \"DEUTSCH\",\n  \"italian\": \"ITALIANO\",\n  \"spanish\": \"ESPAÑOL\""
  },
  {
    "path": "bin/mods/base/languages/ita.language",
    "chars": 8787,
    "preview": "{\n  \"english\": \"ENGLISH\",\n  \"french\": \"FRANÇAIS\",\n  \"german\": \"DEUTSCH\",\n  \"italian\": \"ITALIANO\",\n  \"spanish\": \"ESPAÑOL\""
  },
  {
    "path": "bin/mods/base/languages/rus.language",
    "chars": 8629,
    "preview": "{\n  \"english\": \"ENGLISH\",\n  \"french\": \"FRANÇAIS\",\n  \"german\": \"DEUTSCH\",\n  \"italian\": \"ITALIANO\",\n  \"spanish\": \"ESPAÑOL\""
  },
  {
    "path": "bin/mods/base/languages/spa.language",
    "chars": 8751,
    "preview": "{\n  \"english\": \"ENGLISH\",\n  \"french\": \"FRANÇAIS\",\n  \"german\": \"DEUTSCH\",\n  \"italian\": \"ITALIANO\",\n  \"spanish\": \"ESPAÑOL\""
  },
  {
    "path": "bin/mods/base/languages.manifest",
    "chars": 298,
    "preview": "[\n  {\n    \"key\": \"eng\",\n    \"name\": \"ENGLISH\"\n  },\n  {\n    \"key\": \"ger\",\n    \"name\": \"DEUTSCH\"\n  },\n  {\n    \"key\": \"fre\""
  },
  {
    "path": "bin/mods/base/scripts/classes.json",
    "chars": 1189,
    "preview": "{\n\t\"defaultClass\": \"gr_me\",\n\t\"classes\": [\n\t\t{\n\t\t\t\"identifier\": \"ac_me\",\n\t\t\t\"label\": \"$aceClass\",\n\t\t\t\"model\": \"pigs/pcace"
  },
  {
    "path": "bin/mods/base/scripts/postprocess.json",
    "chars": 543,
    "preview": "{\n  \"effects\": [\n    {\n      \"name\": \"effect_base\",\n      \"frag\": \"shaders/texture.frag\",\n      \"properties\": []\n    },\n"
  },
  {
    "path": "bin/mods/base/scripts/teams.json",
    "chars": 4048,
    "preview": "[\n  {\n    \"name\": \"$team_british\",\n    \"colour\": \"9 155 46\",\n    \"pigTextures\": \"chars/pigs/british\",\n    \"paperTextures"
  },
  {
    "path": "bin/mods/base/shaders/alpha_test.program",
    "chars": 116,
    "preview": "{\n  \"gl3\": {\n    \"vertPath\": \"shaders/gl3/generic.vert\",\n    \"fragPath\": \"shaders/gl3/alpha_test_texture.frag\"\n  }\n}"
  },
  {
    "path": "bin/mods/base/shaders/debug_normals.program",
    "chars": 111,
    "preview": "{\n  \"gl3\": {\n    \"vertPath\": \"shaders/gl3/generic.vert\",\n    \"fragPath\": \"shaders/gl3/debug_normals.frag\"\n  }\n}"
  },
  {
    "path": "bin/mods/base/shaders/debug_test.program",
    "chars": 103,
    "preview": "{\n  \"gl3\": {\n    \"vertPath\": \"shaders/gl3/generic.vert\",\n    \"fragPath\": \"shaders/gl3/debug.frag\"\n  }\n}"
  },
  {
    "path": "bin/mods/base/shaders/generic_textured.program",
    "chars": 105,
    "preview": "{\n  \"gl3\": {\n    \"vertPath\": \"shaders/gl3/generic.vert\",\n    \"fragPath\": \"shaders/gl3/texture.frag\"\n  }\n}"
  },
  {
    "path": "bin/mods/base/shaders/generic_textured_lit.program",
    "chars": 109,
    "preview": "{\n  \"gl3\": {\n    \"vertPath\": \"shaders/gl3/generic.vert\",\n    \"fragPath\": \"shaders/gl3/lit_texture.frag\"\n  }\n}"
  },
  {
    "path": "bin/mods/base/shaders/generic_textured_lit_basic.program",
    "chars": 99,
    "preview": "{\n\t\"gl3\": {\n\t\t\"vertPath\": \"shaders/gl3/gouraud.vert\",\n\t\t\"fragPath\": \"shaders/gl3/texture.frag\"\n\t}\n}"
  },
  {
    "path": "bin/mods/base/shaders/generic_untextured.program",
    "chars": 111,
    "preview": "{\n  \"gl3\": {\n    \"vertPath\": \"shaders/gl3/generic.vert\",\n    \"fragPath\": \"shaders/gl3/vertex_colour.frag\"\n  }\n}"
  },
  {
    "path": "bin/mods/base/shaders/gl3/alpha_test_texture.frag",
    "chars": 953,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/debug.frag",
    "chars": 794,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/debug_normals.frag",
    "chars": 843,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/generic.vert",
    "chars": 1101,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/global.glsl",
    "chars": 850,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/gouraud.vert",
    "chars": 1471,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/lit_texture.frag",
    "chars": 2048,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/shadow.frag",
    "chars": 806,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/texture.frag",
    "chars": 884,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/vertex_colour.frag",
    "chars": 807,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/gl3/water.frag",
    "chars": 925,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "bin/mods/base/shaders/shadow.program",
    "chars": 98,
    "preview": "{\n\t\"gl3\": {\n\t\t\"vertPath\": \"shaders/gl3/generic.vert\",\n\t\t\"fragPath\": \"shaders/gl3/shadow.frag\"\n\t}\n}"
  },
  {
    "path": "bin/mods/base/shaders/water.program",
    "chars": 103,
    "preview": "{\n  \"gl3\": {\n    \"vertPath\": \"shaders/gl3/generic.vert\",\n    \"fragPath\": \"shaders/gl3/water.frag\"\n  }\n}"
  },
  {
    "path": "bin/mods/base.mod",
    "chars": 90,
    "preview": "{\n\t\"name\": \"Base\",\n\t\"author\": \"TalonBrave.info\",\n\t\"version\": \"v1.0\",\n\t\"isVisible\": false\n}"
  },
  {
    "path": "bin/mods/feralwarfare/README.md",
    "chars": 635,
    "preview": "This is a **work-in-progress** free replacement dataset. The eventual goal is to allow players to download and play\nOpen"
  },
  {
    "path": "bin/mods/feralwarfare.mod",
    "chars": 132,
    "preview": "{\n\t\"name\": \"Feral Warfare\",\n\t\"author\": \"TalonBrave.info\",\n\t\"version\": \"v0.0.1\",\n\t\"isVisible\": true,\n\t\"dependencies\": [\n\t"
  },
  {
    "path": "bin/mods/how/actors/pigs.actor",
    "chars": 699,
    "preview": "[\n  {\n    \"identifier\": \"ac_me\",\n    \"className\": \"APig\",\n    \"properties\": {\n      \"modelPath\": \"chars/pigs/pcace_hi.vt"
  },
  {
    "path": "bin/mods/how/actors/vehicles.actor",
    "chars": 77,
    "preview": "[\n  {\n    \"identifier\": \"vehicle_airship\",\n    \"className\": \"AAirship\"\n  }\n]\n"
  },
  {
    "path": "bin/mods/how/actors/weapons.actor",
    "chars": 86,
    "preview": "[\n  {\n    \"identifier\": \"weapon_parachute\",\n    \"className\": \"AParachuteWeapon\"\n  }\n]\n"
  },
  {
    "path": "bin/mods/how/maps/cold.template",
    "chars": 436,
    "preview": "{\n    \"name\": \"$map_how_\",\n    \"author\": \"none\",\n    \"description\": \"none\",\n    \"ambientColour\": \"188 188 188\",\n    \"sky"
  },
  {
    "path": "bin/mods/how/maps/desert.template",
    "chars": 434,
    "preview": "{\n    \"name\": \"$map_how_\",\n    \"author\": \"none\",\n    \"description\": \"none\",\n    \"ambientColour\": \"229 193 128\",\n    \"sky"
  },
  {
    "path": "bin/mods/how/maps/night.template",
    "chars": 425,
    "preview": "{\n    \"name\": \"$map_how_\",\n    \"author\": \"none\",\n    \"description\": \"none\",\n    \"ambientColour\": \"18 19 100\",\n    \"skyCo"
  },
  {
    "path": "bin/mods/how/maps/ominous.template",
    "chars": 432,
    "preview": "{\n    \"name\": \"$map_how_\",\n    \"author\": \"none\",\n    \"description\": \"none\",\n    \"ambientColour\": \"158 158 158\",\n    \"sky"
  },
  {
    "path": "bin/mods/how/maps/space.template",
    "chars": 417,
    "preview": "{\n    \"name\": \"$map_how_\",\n    \"author\": \"none\",\n    \"description\": \"none\",\n    \"ambientColour\": \"20 20 20\",\n    \"skyCol"
  },
  {
    "path": "bin/mods/how/maps/sunny.template",
    "chars": 437,
    "preview": "{\n    \"name\": \"$map_how_\",\n    \"author\": \"none\",\n    \"description\": \"none\",\n    \"ambientColour\": \"168 168 168\",\n    \"sky"
  },
  {
    "path": "bin/mods/how/maps/sunrise.template",
    "chars": 440,
    "preview": "{\n    \"name\": \"$map_how_\",\n    \"author\": \"none\",\n    \"description\": \"none\",\n    \"ambientColour\": \"206 206 206\",\n    \"sky"
  },
  {
    "path": "bin/mods/how/maps/sunset.template",
    "chars": 431,
    "preview": "{\n    \"name\": \"$map_how_\",\n    \"author\": \"none\",\n    \"description\": \"none\",\n    \"ambientColour\": \"146 143 150\",\n    \"sky"
  },
  {
    "path": "bin/mods/how.mod",
    "chars": 536,
    "preview": "{\n\t\"name\": \"HoW Campaign\",\n\t\"author\": \"Gremlin Interactive\",\n\t\"version\": \"v1.0\",\n\t\"isVisible\": true,\n\t\"dependencies\": [\n"
  },
  {
    "path": "doc/Maps.md",
    "chars": 5747,
    "preview": "# Singleplayer \n## Saustralasia\n| Idx | File     | Name                    | Sky (PC) | Sky (PSX) | Weather\n| --- | ----"
  },
  {
    "path": "doc/README.md",
    "chars": 271,
    "preview": " # Documentation\n\nThe following is a collection of documents we've written outlining the specifications for all of the f"
  },
  {
    "path": "doc/Scenario.md",
    "chars": 8581,
    "preview": "# Saustralasia\nSaustralasia is the world's name in the default scenario. \n\n## Tutorial(s)\nSaustralasia contains a tutori"
  },
  {
    "path": "doc/Speech.md",
    "chars": 5142,
    "preview": "# Pigs\nSpeech file names for pigs are formatted as follows: `WWXXYYZZ.wav`\n\n`WW` = PigIndex (`01` - `09`)  \n\n`XX` = Team"
  },
  {
    "path": "doc/coding_style.md",
    "chars": 1632,
    "preview": "# C/C++ Style Guide\n\n```c++\n\nstruct ThisThing {\n\tint someVar, someOtherVar;\n};\n\nclass ThatThing {\npublic:\n\n\tunsigned int"
  },
  {
    "path": "doc/file-formats/FAC.md",
    "chars": 2425,
    "preview": "# FAC - Model faces\n\n```c\n16  char[]  reserved                    // reserved for name?\n4   int     triangleCount\nforeac"
  },
  {
    "path": "doc/file-formats/HIR.md",
    "chars": 796,
    "preview": "# HIR - Model skeleton\n\nSkeleton used for pigs\n\n```c\nforeach(bone) //sizeof = 20\n{\n    4   int     bone.ParentIndex\n\n   "
  },
  {
    "path": "doc/file-formats/MAD_MTD.md",
    "chars": 439,
    "preview": "# MAD & MTD \n\n### Most MAD & MTD packages follow the \"named structure\"\n```c\nforeach(namedFileInfo) //sizeof = 24\n{\n    1"
  },
  {
    "path": "doc/file-formats/MCAP.md",
    "chars": 1040,
    "preview": "# MCAP - Motion capture\n\n.mcap are extracted from mcap.mad\n\n```c\nforeach(keyframe) //sizeof = 272\n{\n    // World space t"
  },
  {
    "path": "doc/file-formats/MIN.md",
    "chars": 559,
    "preview": "# MIN - Model data\n\n**!!This page is still WIP!!<br> \nMost of this has been deduced by observation thus far as it's not "
  },
  {
    "path": "doc/file-formats/NO2.md",
    "chars": 180,
    "preview": "# NO2 - Model normals\n\n```c\nforeach(normal) //sizeof = 16\n{\n    4   float   normal.X\n    4   float   normal.Y\n    4   fl"
  },
  {
    "path": "doc/file-formats/OFS.md",
    "chars": 116,
    "preview": "# OFS - Text offset data\n\n```c\nforeach(text) // sizeof = 2\n{   \n    2   ushort  text.offset // index from .BIN\n}\n```"
  },
  {
    "path": "doc/file-formats/PMG.md",
    "chars": 3031,
    "preview": "# PMG - Map mesh data\n\nA map is 32768 x 32768 units and consists of 16 x 16 blocks.  \nA block is 2048 x 2048 units and c"
  },
  {
    "path": "doc/file-formats/POG.md",
    "chars": 2158,
    "preview": "# POG - Map object data\n\n```c\n\n2   ushort  objectCount\nfor(int iObject = 0; iObject < objectCount; iObject++) // sizeof "
  },
  {
    "path": "doc/file-formats/PTG.md",
    "chars": 224,
    "preview": "# PTG\n\nContains the terrain tile textures (.tim). \nAll files have to be the same size in bytes.\n\n```c\n4   int    texture"
  },
  {
    "path": "doc/file-formats/README.md",
    "chars": 855,
    "preview": "# File formats\n\n| Extension         | Description\n| ---------         | -----------\n| [MAD](MAD_MTD.md) | Model package\n"
  },
  {
    "path": "doc/file-formats/TAB.md",
    "chars": 243,
    "preview": "# TAB - Text art block\n\nDescribes a section within a font tim used for a letter.\n\n```c\nforeach(block) //sizeof = 8\n{\n   "
  },
  {
    "path": "doc/file-formats/VTX.md",
    "chars": 199,
    "preview": "# VTX - Model vertices\n\n```c\nforeach(vertex) // sizeof = 8\n{\n    2   short   vertex.XOffset\n    2   short   vertex.YOffs"
  },
  {
    "path": "doc/game/pig_faces.md",
    "chars": 3016,
    "preview": "# Pig Facial Animations\n\n## Frontend\n\nThis part of the implementation is specific to the frontend, which is basically th"
  },
  {
    "path": "setup_cmake.bat",
    "chars": 80,
    "preview": "echo off\ncls\nif not exist .\\build\\ mkdir .\\build\\\ncd .\\build\\\ncmake .\\..\\\npause\n"
  },
  {
    "path": "setup_libraries.bat",
    "chars": 1202,
    "preview": "echo off\ncls\nrem Ugly ugly script to download sdl2 and setup project on Windows, wheee\nrem Ensure SDL2 is setup, if not "
  },
  {
    "path": "src/engine/App.cpp",
    "chars": 13481,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/App.h",
    "chars": 3868,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/CMakeLists.txt",
    "chars": 3509,
    "preview": "#[[\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, us"
  },
  {
    "path": "src/engine/Console.cpp",
    "chars": 8383,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/Console.h",
    "chars": 2128,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/InputManager.cpp",
    "chars": 5532,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/InputManager.h",
    "chars": 4474,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/Language.cpp",
    "chars": 2480,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/Language.h",
    "chars": 1651,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/Map.cpp",
    "chars": 8568,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/Map.h",
    "chars": 1678,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/MathUtilities.h",
    "chars": 738,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/Menu.cpp",
    "chars": 13351,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/Menu.h",
    "chars": 2855,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/ModManager.cpp",
    "chars": 4525,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/ModManager.h",
    "chars": 1416,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/ModelResource.cpp",
    "chars": 14928,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/ModelResource.h",
    "chars": 2126,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/Physics.h",
    "chars": 990,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/Property.cpp",
    "chars": 2044,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2019 Daniel Collins <solemnwarning@solemnwarning.net>\n *\n * This program is free softwa"
  },
  {
    "path": "src/engine/Property.h",
    "chars": 10033,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/Resource.cpp",
    "chars": 2017,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/Resource.h",
    "chars": 1582,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/ResourceManager.cpp",
    "chars": 6320,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/ResourceManager.h",
    "chars": 1474,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/Terrain.cpp",
    "chars": 17751,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/Terrain.h",
    "chars": 2999,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/TextureResource.cpp",
    "chars": 2632,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/TextureResource.h",
    "chars": 1024,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/Timer.h",
    "chars": 3522,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/Utilities.cpp",
    "chars": 1494,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/Utilities.h",
    "chars": 1073,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/audio/AudioManager.cpp",
    "chars": 20159,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/audio/AudioManager.h",
    "chars": 5255,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/audio/stb_vorbis.c",
    "chars": 189234,
    "preview": "// Ogg Vorbis audio decoder - v1.16 - public domain\n// http://nothings.org/stb_vorbis/\n//\n// Original version written by"
  },
  {
    "path": "src/engine/config.cpp",
    "chars": 2436,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/config.h",
    "chars": 911,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/ActorTreeWindow.cpp",
    "chars": 3947,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/editor/ActorTreeWindow.h",
    "chars": 1005,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/BaseWindow.cpp",
    "chars": 1476,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/editor/BaseWindow.h",
    "chars": 1186,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/editor/ConsoleWindow.cpp",
    "chars": 2380,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/editor/ConsoleWindow.h",
    "chars": 592,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/editor/MapConfigEditor.cpp",
    "chars": 7237,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/editor/MapConfigEditor.h",
    "chars": 1295,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/ModelViewer.cpp",
    "chars": 9642,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/editor/ModelViewer.h",
    "chars": 898,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/editor/NewGameWindow.cpp",
    "chars": 3206,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/NewGameWindow.h",
    "chars": 968,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/NewMapWindow.cpp",
    "chars": 1420,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/NewMapWindow.h",
    "chars": 945,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/ParticleEditor.cpp",
    "chars": 4030,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/editor/ParticleEditor.h",
    "chars": 902,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/editor/TerrainImportWindow.cpp",
    "chars": 1686,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/TerrainImportWindow.h",
    "chars": 401,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/editor/TexturePicker.cpp",
    "chars": 2306,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/editor/TexturePicker.h",
    "chars": 985,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/editor/TextureViewer.h",
    "chars": 2674,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/AAirship.cpp",
    "chars": 2467,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/AAirship.h",
    "chars": 661,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/game/AAnimatedModel.cpp",
    "chars": 980,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AAnimatedModel.h",
    "chars": 1011,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AHealthPickup.cpp",
    "chars": 1227,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/AItemPickup.cpp",
    "chars": 3830,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/AModel.cpp",
    "chars": 1080,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/AModel.h",
    "chars": 1113,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AParachuteWeapon.cpp",
    "chars": 1371,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AParachuteWeapon.h",
    "chars": 1064,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AParticle.cpp",
    "chars": 1704,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/APig.cpp",
    "chars": 8586,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/APig.h",
    "chars": 2540,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/ASprite.cpp",
    "chars": 1047,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/AStaticModel.cpp",
    "chars": 708,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/AStaticModel.h",
    "chars": 1027,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/ATrotterWeapon.cpp",
    "chars": 1048,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/ATrotterWeapon.h",
    "chars": 1032,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AVehicle.cpp",
    "chars": 2071,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AVehicle.h",
    "chars": 1377,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AWeapon.cpp",
    "chars": 1317,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/AWeapon.h",
    "chars": 1138,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/Actor.cpp",
    "chars": 6882,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/Actor.h",
    "chars": 5440,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/game/ActorManager.cpp",
    "chars": 5102,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/ActorManager.h",
    "chars": 2383,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/GameManager.cpp",
    "chars": 20213,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/GameManager.h",
    "chars": 8508,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/game/GameMode.cpp",
    "chars": 4964,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/GameMode.h",
    "chars": 1687,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/GameModeInterface.h",
    "chars": 2332,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/Inventory.cpp",
    "chars": 887,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/game/Inventory.h",
    "chars": 2385,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/game/Player.cpp",
    "chars": 2465,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/game/Player.h",
    "chars": 1621,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/graphics/BitmapFont.cpp",
    "chars": 5238,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/graphics/BitmapFont.h",
    "chars": 1345,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/graphics/Camera.cpp",
    "chars": 1305,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/graphics/Camera.h",
    "chars": 1587,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/graphics/Display.cpp",
    "chars": 8616,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/graphics/Display.h",
    "chars": 1341,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/graphics/ParticleEffect.cpp",
    "chars": 1975,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/graphics/ParticleEffect.h",
    "chars": 1300,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/graphics/ParticleEmitter.cpp",
    "chars": 3371,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/graphics/ParticleEmitter.h",
    "chars": 2027,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/graphics/PostProcess.h",
    "chars": 855,
    "preview": "/* OpenHoW\n * Copyright (C) 2017-2020 TalonBrave.info and Others (see CONTRIBUTORS)\n *\n * This program is free software:"
  },
  {
    "path": "src/engine/graphics/ShaderManager.cpp",
    "chars": 6672,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/graphics/ShaderManager.h",
    "chars": 903,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/graphics/Sprite.cpp",
    "chars": 2253,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/graphics/Sprite.h",
    "chars": 1340,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/graphics/TextureAtlas.cpp",
    "chars": 5588,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  },
  {
    "path": "src/engine/graphics/TextureAtlas.h",
    "chars": 945,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#pr"
  },
  {
    "path": "src/engine/graphics/mesh.cpp",
    "chars": 1756,
    "preview": "// SPDX-License-Identifier: GPL-3.0-or-later\n// Copyright © 2017-2022 TalonBrave.info and Others (see CONTRIBUTORS)\n\n#in"
  }
]

// ... and 45 more files (download for full content)

About this extraction

This page contains the full source code of the TalonBraveInfo/OpenHoW GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 245 files (4.9 MB), approximately 1.3M tokens, and a symbol index with 2312 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!