Showing preview only (7,967K chars total). Download the full file or copy to clipboard to get everything.
Repository: PDModdingCommunity/PD-Loader
Branch: dev
Commit: becac44e1683
Files: 336
Total size: 7.5 MB
Directory structure:
gitextract_k_mgt9p3/
├── .gitattributes
├── .gitignore
├── .gitmodules
├── READ ME.txt.rtf
├── README.txt
├── appveyor.yml
└── source-code/
├── LICENSE
├── PD-Loader.sln
├── README.md
├── data/
│ ├── Download .NET Framework Runtime.url
│ ├── Download QuickSFV.url
│ ├── Download Visual C++ Runtime.url
│ ├── README - PD Loader.url
│ ├── patches/
│ │ └── custom_freeplay_text_example.p
│ ├── plugins/
│ │ ├── Novidia Shaders/
│ │ │ └── e6d9187b.vcdiff
│ │ └── ShaderPatch.ini
│ ├── verify_base_game.sfv
│ └── verify_mount_data.sfv
├── dependencies/
│ ├── GPUModel/
│ │ └── GPUModel.h
│ ├── PluginConfigApi/
│ │ └── PluginConfigApi.h
│ ├── WineVer/
│ │ └── WineVer.h
│ ├── detours/
│ │ ├── include/
│ │ │ ├── detours.h
│ │ │ ├── detver.h
│ │ │ └── syelog.h
│ │ └── lib/
│ │ ├── detours.lib
│ │ └── syelog.lib
│ ├── freeglut/
│ │ ├── include/
│ │ │ └── GL/
│ │ │ ├── freeglut.h
│ │ │ ├── freeglut_ext.h
│ │ │ ├── freeglut_std.h
│ │ │ ├── freeglut_ucall.h
│ │ │ └── glut.h
│ │ └── lib/
│ │ ├── freeglut.exp
│ │ ├── freeglut.lib
│ │ ├── freeglutd.exp
│ │ └── freeglutd.lib
│ ├── simpleini/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── ConvertUTF.c
│ │ ├── ConvertUTF.h
│ │ ├── LICENCE.txt
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── SimpleIni.h
│ │ ├── other/
│ │ │ ├── package.cmd
│ │ │ └── simpleini.doxy
│ │ └── vcproj/
│ │ ├── SimpleIni.sln
│ │ ├── SimpleIni.vcxproj
│ │ └── SimpleIni.vcxproj.filters
│ └── xdelta3/
│ ├── LICENSE
│ ├── Makefile.am
│ ├── README.md
│ ├── badcopy.c
│ ├── configure.ac
│ ├── cpp-btree/
│ │ ├── CMakeLists.txt
│ │ ├── COPYING
│ │ ├── README
│ │ ├── btree.h
│ │ ├── btree_bench.cc
│ │ ├── btree_container.h
│ │ ├── btree_map.h
│ │ ├── btree_set.h
│ │ ├── btree_test.cc
│ │ ├── btree_test.h
│ │ ├── btree_test_flags.cc
│ │ ├── safe_btree.h
│ │ ├── safe_btree_map.h
│ │ ├── safe_btree_set.h
│ │ └── safe_btree_test.cc
│ ├── draft-korn-vcdiff.txt
│ ├── examples/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── compare_test.c
│ │ ├── encode_decode_test.c
│ │ ├── iOS/
│ │ │ └── xdelta3-ios-test/
│ │ │ ├── xdelta3-ios-test/
│ │ │ │ ├── Xd3iOSAppDelegate.h
│ │ │ │ ├── Xd3iOSAppDelegate.m
│ │ │ │ ├── Xd3iOSViewController.h
│ │ │ │ ├── Xd3iOSViewController.m
│ │ │ │ ├── en.lproj/
│ │ │ │ │ ├── InfoPlist.strings
│ │ │ │ │ ├── MainStoryboard_iPad.storyboard
│ │ │ │ │ └── MainStoryboard_iPhone.storyboard
│ │ │ │ ├── main.m
│ │ │ │ └── xdelta3-ios-test-Info.plist
│ │ │ └── xdelta3-ios-test.xcodeproj/
│ │ │ └── project.pbxproj
│ │ ├── small_page_test.c
│ │ ├── speed_test.c
│ │ └── test.h
│ ├── generate_build_files.sh
│ ├── go/
│ │ └── src/
│ │ ├── regtest.go
│ │ └── xdelta/
│ │ ├── rstream.go
│ │ ├── run.go
│ │ ├── test.go
│ │ └── tgroup.go
│ ├── linkxd3lib.c
│ ├── m4/
│ │ ├── ax_check_aligned_access_required.m4
│ │ ├── ax_pkg_swig.m4
│ │ ├── ax_python_devel.m4
│ │ └── ax_swig_python.m4
│ ├── plot.sh
│ ├── rcs_junk.cc
│ ├── run_release.sh
│ ├── testing/
│ │ ├── Makefile
│ │ ├── checksum_test.cc
│ │ ├── checksum_test_c.c
│ │ ├── cmp.h
│ │ ├── delta.h
│ │ ├── file.h
│ │ ├── modify.h
│ │ ├── random.h
│ │ ├── regtest.cc
│ │ ├── regtest_c.c
│ │ ├── run_release.sh
│ │ ├── segment.h
│ │ ├── sizes.h
│ │ ├── test.h
│ │ ├── xdelta3-regtest.py
│ │ └── xdelta3-test.py
│ ├── xdelta3-blkcache.h
│ ├── xdelta3-cfgs.h
│ ├── xdelta3-decode.h
│ ├── xdelta3-djw.h
│ ├── xdelta3-fgk.h
│ ├── xdelta3-hash.h
│ ├── xdelta3-internal.h
│ ├── xdelta3-list.h
│ ├── xdelta3-lzma.h
│ ├── xdelta3-main.h
│ ├── xdelta3-merge.h
│ ├── xdelta3-second.h
│ ├── xdelta3-test.h
│ ├── xdelta3.1
│ ├── xdelta3.c
│ ├── xdelta3.h
│ ├── xdelta3.i
│ ├── xdelta3.vcxproj
│ ├── xdelta3.wxi
│ └── xdelta3.wxs
└── source/
├── PD-Loader/
│ ├── ModuleList.h
│ ├── PD-Loader.vcxproj
│ ├── PD-Loader.vcxproj.filters
│ ├── dllmain.cpp
│ ├── exception.hpp
│ ├── framework.h
│ └── x64.def
├── fakedll/
│ ├── ModuleList.h
│ ├── dllmain.cpp
│ ├── exception.hpp
│ ├── fakedll.vcxproj
│ ├── fakedll.vcxproj.filters
│ ├── framework.h
│ └── x64.def
└── plugins/
├── DSCRemote/
│ ├── DSCRemote.vcxproj
│ ├── DSCRemote.vcxproj.filters
│ ├── PluginConfigApi.h
│ ├── dllmain.cpp
│ └── framework.h
├── DivaMovie/
│ ├── DivaMovie.vcxproj
│ ├── DivaMovie.vcxproj.filters
│ ├── PluginConfigApi.h
│ ├── dllmain.cpp
│ └── framework.h
├── DivaSound/
│ ├── DivaSound.vcxproj
│ ├── DivaSound.vcxproj.filters
│ ├── bassasio/
│ │ ├── bassasio.h
│ │ └── bassasio.lib
│ ├── miniaudio/
│ │ └── miniaudio.h
│ └── src/
│ ├── dllmain.cpp
│ └── framework.h
├── DivaWig/
│ ├── DivaWig.vcxproj
│ ├── DivaWig.vcxproj.filters
│ ├── PluginConfigApi.h
│ ├── dllmain.cpp
│ └── framework.h
├── Launcher/
│ ├── ConfigOption.h
│ ├── IniReader.h
│ ├── Launcher.filters
│ ├── Launcher.vcxproj
│ ├── PluginConfig.h
│ ├── SkinnedMessageBox.h
│ ├── SkinnedMessageBox.resx
│ ├── TabPadding.cpp
│ ├── TabPadding.h
│ ├── composition.h
│ ├── dllmain.cpp
│ ├── framework.h
│ ├── ui.h
│ └── ui.resx
├── Novidia/
│ ├── Novidia.vcxproj
│ ├── Novidia.vcxproj.filters
│ └── src/
│ ├── crc/
│ │ ├── crc.h
│ │ ├── crc_32.c
│ │ └── sniptype.h
│ ├── dllmain.cpp
│ ├── framework.h
│ └── glStuff.h
├── Patches/
│ ├── PatchApplier.h
│ ├── PatchApplier600.h
│ ├── PatchApplier710.h
│ ├── Patches.vcxproj
│ ├── Patches.vcxproj.filters
│ ├── databank.cpp
│ ├── databank.h
│ ├── dllmain.cpp
│ ├── framework.h
│ ├── storage.h
│ └── urlutil.h
├── Render/
│ ├── Render.vcxproj
│ ├── Render.vcxproj.filters
│ ├── dllmain.cpp
│ └── framework.h
├── ShaderPatch/
│ ├── ShaderPatch.vcxproj
│ ├── ShaderPatch.vcxproj.filters
│ └── src/
│ ├── dllmain.cpp
│ └── framework.h
└── TLAC/
├── Components/
│ ├── CameraController.cpp
│ ├── CameraController.h
│ ├── ComponentsManager.cpp
│ ├── ComponentsManager.h
│ ├── CustomPlayerData.h
│ ├── DebugComponent.cpp
│ ├── DebugComponent.h
│ ├── EmulatorComponent.cpp
│ ├── EmulatorComponent.h
│ ├── FastLoader.cpp
│ ├── FastLoader.h
│ ├── FrameRateManager.cpp
│ ├── FrameRateManager.h
│ ├── GameState.h
│ ├── GameTargets/
│ │ ├── HoldState.h
│ │ ├── TargetHitStates.h
│ │ ├── TargetInspector.cpp
│ │ ├── TargetInspector.h
│ │ ├── TargetState.h
│ │ └── TargetTypes.h
│ ├── Input/
│ │ ├── InputBufferType.h
│ │ ├── InputEmulator.cpp
│ │ ├── InputEmulator.h
│ │ ├── InputState.cpp
│ │ ├── InputState.h
│ │ ├── JvsButtons.h
│ │ ├── TouchPanelEmulator.cpp
│ │ ├── TouchPanelEmulator.h
│ │ ├── TouchPanelState.h
│ │ ├── TouchSliderEmulator.cpp
│ │ ├── TouchSliderEmulator.h
│ │ ├── TouchSliderState.cpp
│ │ └── TouchSliderState.h
│ ├── Pause.cpp
│ ├── Pause.h
│ ├── PlayerData.h
│ ├── PlayerDataManager.cpp
│ ├── PlayerDataManager.h
│ ├── ScaleComponent.cpp
│ ├── ScaleComponent.h
│ ├── ScoreSaver.cpp
│ └── ScoreSaver.h
├── Constants.h
├── FileSystem/
│ ├── ConfigFile.cpp
│ ├── ConfigFile.h
│ ├── TextFile.cpp
│ └── TextFile.h
├── Input/
│ ├── Bindings/
│ │ ├── Binding.cpp
│ │ ├── Binding.h
│ │ ├── DVLBinding.cpp
│ │ ├── DVLBinding.h
│ │ ├── Ds4Binding.cpp
│ │ ├── Ds4Binding.h
│ │ ├── GuBinding.cpp
│ │ ├── GuBinding.h
│ │ ├── IInputBinding.h
│ │ ├── KeyboardBinding.cpp
│ │ ├── KeyboardBinding.h
│ │ ├── MouseBinding.cpp
│ │ ├── MouseBinding.h
│ │ ├── XinputBinding.cpp
│ │ └── XinputBinding.h
│ ├── DirectInput/
│ │ ├── Controller.cpp
│ │ ├── Controller.h
│ │ ├── DirectInput.cpp
│ │ ├── DirectInput.h
│ │ ├── DirectInputDevice.cpp
│ │ ├── DirectInputDevice.h
│ │ ├── DirectInputMouse.cpp
│ │ ├── DirectInputMouse.h
│ │ ├── Ds4/
│ │ │ ├── Ds4Button.h
│ │ │ ├── Ds4State.cpp
│ │ │ ├── Ds4State.h
│ │ │ ├── DualShock4.cpp
│ │ │ └── DualShock4.h
│ │ └── GenericUsb/
│ │ ├── GenericUsbInput.cpp
│ │ ├── GenericUsbInput.h
│ │ ├── GuButton.h
│ │ ├── GuState.cpp
│ │ └── GuState.h
│ ├── Divaller/
│ │ ├── Divaller.cpp
│ │ ├── Divaller.h
│ │ ├── DivallerButton.h
│ │ └── DivallerState.h
│ ├── IInputDevice.h
│ ├── KeyConfig/
│ │ ├── Config.cpp
│ │ ├── Config.h
│ │ ├── KeyString.cpp
│ │ ├── KeyString.h
│ │ ├── KeyStringHash.cpp
│ │ └── KeyStringHash.h
│ ├── Keyboard/
│ │ ├── Keyboard.cpp
│ │ ├── Keyboard.h
│ │ ├── KeyboardState.cpp
│ │ └── KeyboardState.h
│ ├── Mouse/
│ │ ├── Mouse.cpp
│ │ ├── Mouse.h
│ │ └── MouseState.h
│ └── Xinput/
│ ├── Xinput.cpp
│ ├── Xinput.h
│ ├── XinputState.cpp
│ └── XinputState.h
├── TLAC.vcxproj
├── TLAC.vcxproj.filters
├── Utilities/
│ ├── Drawing.cpp
│ ├── Drawing.h
│ ├── EnumBitwiseOperations.h
│ ├── Math.cpp
│ ├── Math.h
│ ├── Operations.cpp
│ ├── Operations.h
│ ├── Stopwatch.cpp
│ ├── Stopwatch.h
│ ├── Vec2.cpp
│ ├── Vec2.h
│ ├── Vec3.cpp
│ └── Vec3.h
├── Utils.cpp
├── Utils.h
├── dllmain.cpp
├── framework.cpp
├── framework.h
└── pluginconfig.h
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* binary
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
================================================
FILE: .gitignore
================================================
._*
.DS_Store
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- Backup*.rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Exclude data folder
!data/*
!data/debug/*
================================================
FILE: .gitmodules
================================================
[submodule "source-code/dependencies/MemoryModule"]
path = source-code/dependencies/MemoryModule
url = https://github.com/fancycode/MemoryModule
================================================
FILE: READ ME.txt.rtf
================================================
{\rtf1\ansi\deff3\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\froman\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\froman\fprq2\fcharset0 Calibri;}{\f6\fnil\fprq2\fcharset0 Arial;}{\f7\fnil\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f8\fnil\fprq2\fcharset0 Calibri;}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}
{\stylesheet{\s0\snext0\dbch\af6\langfe1081\dbch\af7\afs24\alang1081\ql\nowidctlpar\hyphpar0\ltrpar\cf0\loch\f3\fs24\lang1040\kerning1 Normal;}
{\*\cs15\snext15\langfe255\cf9\lang255\ul\ulc0 Collegamento Internet;}
{\s17\sbasedon0\snext18\dbch\af6\langfe1081\dbch\af7\afs28\ql\nowidctlpar\hyphpar0\sb240\sa120\keepn\ltrpar\cf0\loch\f4\fs28\lang1040\kerning1 Titolo;}
{\s18\sbasedon0\snext18\dbch\af6\langfe1081\dbch\af7\afs24\ql\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\ltrpar\cf0\loch\f3\fs24\lang1040\kerning1 Corpo del testo;}
{\s19\sbasedon18\snext19\dbch\af6\langfe1081\dbch\af7\afs24\ql\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\ltrpar\cf0\loch\f3\fs24\lang1040\kerning1 Elenco;}
{\s20\sbasedon0\snext20\dbch\af6\langfe1081\dbch\af7\afs24\ai\ql\nowidctlpar\hyphpar0\sb120\sa120\ltrpar\cf0\loch\f3\fs24\lang1040\kerning1 Didascalia;}
{\s21\sbasedon0\snext21\dbch\af6\langfe1081\dbch\af7\afs24\ql\nowidctlpar\hyphpar0\ltrpar\cf0\loch\f3\fs24\lang1040\kerning1 Indice;}
}{\*\generator LibreOffice/6.3.0.4$Windows_X86_64 LibreOffice_project/057fc023c990d676a43019934386b85b21a9ee99}{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr2020\mo6\dy2\hr22\min29}{\printim\yr0\mo0\dy0\hr0\min0}}{\*\userprops}\deftab720
\hyphauto0\viewscale100
{\*\pgdsctbl
{\pgdsc0\pgdscuse451\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Stile predefinito;}}
\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\dbch\af6\langfe1081\dbch\af7\afs24\alang1081\ql\nowidctlpar\hyphpar0\ltrpar\cf0\loch\f3\fs24\lang1040\kerning1\sl240\slmult1\ql\sb0\sa200{
{\pict{\*\picprop{\sp{\sn wzDescription}{\sv }}{\sp{\sn wzName}{\sv }}}\picscalex1125\picscaley1130\piccropl0\piccropr0\piccropt0\piccropb0\picw73\pich23\picwgoal735\pichgoal225\wmetafile8
010009000003f44e07000000cb4e070000000400000003010800050000000b0200000000050000000c023901fc03030000001e00040000000701040004000000
07010400cb4e0700410b2000cc003901fc03000000003901fc030000000028000000fc030000390100000100180000000000549d0e0000000000000000000000
000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c6ff00
00ffbdbdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5ff6363ff1010ff0000ff0000ff0000ff5252ffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c6ff0000ffc6c6ffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffff8484ff1818ff0000ff0000ff0000ff0000ff0000ff0000ff0000ffd6d6ffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbdbdff0000ffc6c6ffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9494ff1818
ff0000ff0000ff0000ff0000ff0000ff0000ff3939ff0000ff0000ff9c9cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffc6c6ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7373ff0000ff0000ff0000ff0000ff0000ff4a4a
ffa5a5ffefefffffffff5252ff0000ff8484ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffc6c6ff0000ff9494ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffe7e7ff0000ffa5a5ffffffffffffffffffffffffff0808ff0000ff0000ff0000ff6363ffe7e7ffffffffffffffffffffffffffcece
ff0000ff8484ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ceceff0000ff7b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84
84ff0000ff5a5afff7f7ffffffffffffffc6c6ff0000ff0000ff4a4affe7e7ffffffffffffffffffffffffffffffffffffffffffff0000ff6363ffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdedeff0000ff5a5affffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdedeff0000ff0000ff0000ffbdbdffff
ffffffffffa5a5ff0000ff3939ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0808ff4a4affffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff3939ffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ff0000ff0000ffc6c6ffffffffffffff8484ff0000ffa5
a5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff2121ff2121ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2121ff2121ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffff8484ff0000ff0808ff0000ffc6c6ffffffffffffff8484ff0000ffd6d6ffffffffffffffffffffff
ffffffffffffffffffffffffffffffffff2929ff0000ffdedeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffff4242ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffe7e7ff0000ff0000ff9494ff0000ffc6c6ffffffffffffff8484ff0000ffd6d6ffffffffffffffffffffffffffffffffffffffffffffff
ffffffffff5252ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffff6363ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c9cff
0000ff0000ff8c8cff0000ffbdbdffffffffffffff8484ff0000ff2929ffb5b5ffffffffffffffffffffffffffffffffffffffffffffffffff7373ff0000ffc6
c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7b7bff0000
ffe7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9494ff0000ff0000ff4a4affdedeff0000ff
c6c6ffffffffffffffa5a5ff0000ff0000ff0000ff2121ff9c9cffffffffa5a5ff4a4aff1818ff0000ff0000ff0000ff0000ffc6c6ffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8c8cff0000ffe7e7ffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1818ff0000ff0000ffa5a5ffdedeff0000ffc6c6ffffffffffffffdedeff
0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa5a5ff0000ffd6d6ffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffceceff2929ff0000ff0000ff4a4affe7e7ffc6c6ff0000ffc6c6ffffffffffffffffffffc6c6ff4242ff0000ff0000ff
0000ff0000ff0000ff0000ff0000ff0000ff0000ff3939ff4242ffd6d6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffadadff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff9494ff0808ff0000ff0000ff1010fff7f7ffffffffc6c6ff0000ff5a5afff7f7ffffffffffffffffffffffffffceceff6363ff4242ff4242ff4242ff5a5aff
adadffefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffc6c6ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b6bff0000ff0000ff0000ff0000
ff9c9cffffffffffffffc6c6ff0000ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6
c6ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffefefff3939ff0000ff0000ff0000ff1818ffb5b5ffffffffffffffffffffc6c6
ff0000ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffceceff0000ffc6c6ffffffffff
ffffffffffffffffffffffffffffffffffceceff1010ff0000ff0000ff0000ff3939ffefefffffffffffffffffffffffffffffffff6b6bff0000ffc6c6ffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffffffff
ffffadadff0808ff0000ff0000ff0000ff5a5afff7f7ffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffffff8484ff0000ff0000ff0000ff08
08ff9494ffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffff6b6bff0000ff0000ff0000ff1010ffc6c6ffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffe7e7ff0000ffc6c6ffffffffffffffffffff5a5aff0000ff0000ff0000ff2121ffdedeffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ff
f7f7ffa5a5ff1818ff0000ff0000ff0000ff3131fff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6
c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffbdbdff2929ff0000ff0000ff0000ff
0000ff5252ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ff3939ffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff6b6bffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ff0000ff4242fff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffe7e7ff0000ff0000ff0000ff0000ff0000ff5252ffceceffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffe7e7ff0000ff0000ff0000ffbdbdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffe7e7ff3939ff0000ff3131ff4242ff9c9cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffff7b7bff0000ff0000ff2121fff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefff4242
ffd6d6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff
0000ffc6c6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484ff0000ff00
00ff3939ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7ff0000ffc6c6ffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefff0808ff0000ff0000ff4a4affffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5ff0000ffc6c6ff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefff4242ffd6d6ffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c9cff0000ff0000ff0000ff3131fff7f7ffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7b7bff0000ffc6c6ffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffff
gitextract_k_mgt9p3/
├── .gitattributes
├── .gitignore
├── .gitmodules
├── READ ME.txt.rtf
├── README.txt
├── appveyor.yml
└── source-code/
├── LICENSE
├── PD-Loader.sln
├── README.md
├── data/
│ ├── Download .NET Framework Runtime.url
│ ├── Download QuickSFV.url
│ ├── Download Visual C++ Runtime.url
│ ├── README - PD Loader.url
│ ├── patches/
│ │ └── custom_freeplay_text_example.p
│ ├── plugins/
│ │ ├── Novidia Shaders/
│ │ │ └── e6d9187b.vcdiff
│ │ └── ShaderPatch.ini
│ ├── verify_base_game.sfv
│ └── verify_mount_data.sfv
├── dependencies/
│ ├── GPUModel/
│ │ └── GPUModel.h
│ ├── PluginConfigApi/
│ │ └── PluginConfigApi.h
│ ├── WineVer/
│ │ └── WineVer.h
│ ├── detours/
│ │ ├── include/
│ │ │ ├── detours.h
│ │ │ ├── detver.h
│ │ │ └── syelog.h
│ │ └── lib/
│ │ ├── detours.lib
│ │ └── syelog.lib
│ ├── freeglut/
│ │ ├── include/
│ │ │ └── GL/
│ │ │ ├── freeglut.h
│ │ │ ├── freeglut_ext.h
│ │ │ ├── freeglut_std.h
│ │ │ ├── freeglut_ucall.h
│ │ │ └── glut.h
│ │ └── lib/
│ │ ├── freeglut.exp
│ │ ├── freeglut.lib
│ │ ├── freeglutd.exp
│ │ └── freeglutd.lib
│ ├── simpleini/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── ConvertUTF.c
│ │ ├── ConvertUTF.h
│ │ ├── LICENCE.txt
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── SimpleIni.h
│ │ ├── other/
│ │ │ ├── package.cmd
│ │ │ └── simpleini.doxy
│ │ └── vcproj/
│ │ ├── SimpleIni.sln
│ │ ├── SimpleIni.vcxproj
│ │ └── SimpleIni.vcxproj.filters
│ └── xdelta3/
│ ├── LICENSE
│ ├── Makefile.am
│ ├── README.md
│ ├── badcopy.c
│ ├── configure.ac
│ ├── cpp-btree/
│ │ ├── CMakeLists.txt
│ │ ├── COPYING
│ │ ├── README
│ │ ├── btree.h
│ │ ├── btree_bench.cc
│ │ ├── btree_container.h
│ │ ├── btree_map.h
│ │ ├── btree_set.h
│ │ ├── btree_test.cc
│ │ ├── btree_test.h
│ │ ├── btree_test_flags.cc
│ │ ├── safe_btree.h
│ │ ├── safe_btree_map.h
│ │ ├── safe_btree_set.h
│ │ └── safe_btree_test.cc
│ ├── draft-korn-vcdiff.txt
│ ├── examples/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── compare_test.c
│ │ ├── encode_decode_test.c
│ │ ├── iOS/
│ │ │ └── xdelta3-ios-test/
│ │ │ ├── xdelta3-ios-test/
│ │ │ │ ├── Xd3iOSAppDelegate.h
│ │ │ │ ├── Xd3iOSAppDelegate.m
│ │ │ │ ├── Xd3iOSViewController.h
│ │ │ │ ├── Xd3iOSViewController.m
│ │ │ │ ├── en.lproj/
│ │ │ │ │ ├── InfoPlist.strings
│ │ │ │ │ ├── MainStoryboard_iPad.storyboard
│ │ │ │ │ └── MainStoryboard_iPhone.storyboard
│ │ │ │ ├── main.m
│ │ │ │ └── xdelta3-ios-test-Info.plist
│ │ │ └── xdelta3-ios-test.xcodeproj/
│ │ │ └── project.pbxproj
│ │ ├── small_page_test.c
│ │ ├── speed_test.c
│ │ └── test.h
│ ├── generate_build_files.sh
│ ├── go/
│ │ └── src/
│ │ ├── regtest.go
│ │ └── xdelta/
│ │ ├── rstream.go
│ │ ├── run.go
│ │ ├── test.go
│ │ └── tgroup.go
│ ├── linkxd3lib.c
│ ├── m4/
│ │ ├── ax_check_aligned_access_required.m4
│ │ ├── ax_pkg_swig.m4
│ │ ├── ax_python_devel.m4
│ │ └── ax_swig_python.m4
│ ├── plot.sh
│ ├── rcs_junk.cc
│ ├── run_release.sh
│ ├── testing/
│ │ ├── Makefile
│ │ ├── checksum_test.cc
│ │ ├── checksum_test_c.c
│ │ ├── cmp.h
│ │ ├── delta.h
│ │ ├── file.h
│ │ ├── modify.h
│ │ ├── random.h
│ │ ├── regtest.cc
│ │ ├── regtest_c.c
│ │ ├── run_release.sh
│ │ ├── segment.h
│ │ ├── sizes.h
│ │ ├── test.h
│ │ ├── xdelta3-regtest.py
│ │ └── xdelta3-test.py
│ ├── xdelta3-blkcache.h
│ ├── xdelta3-cfgs.h
│ ├── xdelta3-decode.h
│ ├── xdelta3-djw.h
│ ├── xdelta3-fgk.h
│ ├── xdelta3-hash.h
│ ├── xdelta3-internal.h
│ ├── xdelta3-list.h
│ ├── xdelta3-lzma.h
│ ├── xdelta3-main.h
│ ├── xdelta3-merge.h
│ ├── xdelta3-second.h
│ ├── xdelta3-test.h
│ ├── xdelta3.1
│ ├── xdelta3.c
│ ├── xdelta3.h
│ ├── xdelta3.i
│ ├── xdelta3.vcxproj
│ ├── xdelta3.wxi
│ └── xdelta3.wxs
└── source/
├── PD-Loader/
│ ├── ModuleList.h
│ ├── PD-Loader.vcxproj
│ ├── PD-Loader.vcxproj.filters
│ ├── dllmain.cpp
│ ├── exception.hpp
│ ├── framework.h
│ └── x64.def
├── fakedll/
│ ├── ModuleList.h
│ ├── dllmain.cpp
│ ├── exception.hpp
│ ├── fakedll.vcxproj
│ ├── fakedll.vcxproj.filters
│ ├── framework.h
│ └── x64.def
└── plugins/
├── DSCRemote/
│ ├── DSCRemote.vcxproj
│ ├── DSCRemote.vcxproj.filters
│ ├── PluginConfigApi.h
│ ├── dllmain.cpp
│ └── framework.h
├── DivaMovie/
│ ├── DivaMovie.vcxproj
│ ├── DivaMovie.vcxproj.filters
│ ├── PluginConfigApi.h
│ ├── dllmain.cpp
│ └── framework.h
├── DivaSound/
│ ├── DivaSound.vcxproj
│ ├── DivaSound.vcxproj.filters
│ ├── bassasio/
│ │ ├── bassasio.h
│ │ └── bassasio.lib
│ ├── miniaudio/
│ │ └── miniaudio.h
│ └── src/
│ ├── dllmain.cpp
│ └── framework.h
├── DivaWig/
│ ├── DivaWig.vcxproj
│ ├── DivaWig.vcxproj.filters
│ ├── PluginConfigApi.h
│ ├── dllmain.cpp
│ └── framework.h
├── Launcher/
│ ├── ConfigOption.h
│ ├── IniReader.h
│ ├── Launcher.filters
│ ├── Launcher.vcxproj
│ ├── PluginConfig.h
│ ├── SkinnedMessageBox.h
│ ├── SkinnedMessageBox.resx
│ ├── TabPadding.cpp
│ ├── TabPadding.h
│ ├── composition.h
│ ├── dllmain.cpp
│ ├── framework.h
│ ├── ui.h
│ └── ui.resx
├── Novidia/
│ ├── Novidia.vcxproj
│ ├── Novidia.vcxproj.filters
│ └── src/
│ ├── crc/
│ │ ├── crc.h
│ │ ├── crc_32.c
│ │ └── sniptype.h
│ ├── dllmain.cpp
│ ├── framework.h
│ └── glStuff.h
├── Patches/
│ ├── PatchApplier.h
│ ├── PatchApplier600.h
│ ├── PatchApplier710.h
│ ├── Patches.vcxproj
│ ├── Patches.vcxproj.filters
│ ├── databank.cpp
│ ├── databank.h
│ ├── dllmain.cpp
│ ├── framework.h
│ ├── storage.h
│ └── urlutil.h
├── Render/
│ ├── Render.vcxproj
│ ├── Render.vcxproj.filters
│ ├── dllmain.cpp
│ └── framework.h
├── ShaderPatch/
│ ├── ShaderPatch.vcxproj
│ ├── ShaderPatch.vcxproj.filters
│ └── src/
│ ├── dllmain.cpp
│ └── framework.h
└── TLAC/
├── Components/
│ ├── CameraController.cpp
│ ├── CameraController.h
│ ├── ComponentsManager.cpp
│ ├── ComponentsManager.h
│ ├── CustomPlayerData.h
│ ├── DebugComponent.cpp
│ ├── DebugComponent.h
│ ├── EmulatorComponent.cpp
│ ├── EmulatorComponent.h
│ ├── FastLoader.cpp
│ ├── FastLoader.h
│ ├── FrameRateManager.cpp
│ ├── FrameRateManager.h
│ ├── GameState.h
│ ├── GameTargets/
│ │ ├── HoldState.h
│ │ ├── TargetHitStates.h
│ │ ├── TargetInspector.cpp
│ │ ├── TargetInspector.h
│ │ ├── TargetState.h
│ │ └── TargetTypes.h
│ ├── Input/
│ │ ├── InputBufferType.h
│ │ ├── InputEmulator.cpp
│ │ ├── InputEmulator.h
│ │ ├── InputState.cpp
│ │ ├── InputState.h
│ │ ├── JvsButtons.h
│ │ ├── TouchPanelEmulator.cpp
│ │ ├── TouchPanelEmulator.h
│ │ ├── TouchPanelState.h
│ │ ├── TouchSliderEmulator.cpp
│ │ ├── TouchSliderEmulator.h
│ │ ├── TouchSliderState.cpp
│ │ └── TouchSliderState.h
│ ├── Pause.cpp
│ ├── Pause.h
│ ├── PlayerData.h
│ ├── PlayerDataManager.cpp
│ ├── PlayerDataManager.h
│ ├── ScaleComponent.cpp
│ ├── ScaleComponent.h
│ ├── ScoreSaver.cpp
│ └── ScoreSaver.h
├── Constants.h
├── FileSystem/
│ ├── ConfigFile.cpp
│ ├── ConfigFile.h
│ ├── TextFile.cpp
│ └── TextFile.h
├── Input/
│ ├── Bindings/
│ │ ├── Binding.cpp
│ │ ├── Binding.h
│ │ ├── DVLBinding.cpp
│ │ ├── DVLBinding.h
│ │ ├── Ds4Binding.cpp
│ │ ├── Ds4Binding.h
│ │ ├── GuBinding.cpp
│ │ ├── GuBinding.h
│ │ ├── IInputBinding.h
│ │ ├── KeyboardBinding.cpp
│ │ ├── KeyboardBinding.h
│ │ ├── MouseBinding.cpp
│ │ ├── MouseBinding.h
│ │ ├── XinputBinding.cpp
│ │ └── XinputBinding.h
│ ├── DirectInput/
│ │ ├── Controller.cpp
│ │ ├── Controller.h
│ │ ├── DirectInput.cpp
│ │ ├── DirectInput.h
│ │ ├── DirectInputDevice.cpp
│ │ ├── DirectInputDevice.h
│ │ ├── DirectInputMouse.cpp
│ │ ├── DirectInputMouse.h
│ │ ├── Ds4/
│ │ │ ├── Ds4Button.h
│ │ │ ├── Ds4State.cpp
│ │ │ ├── Ds4State.h
│ │ │ ├── DualShock4.cpp
│ │ │ └── DualShock4.h
│ │ └── GenericUsb/
│ │ ├── GenericUsbInput.cpp
│ │ ├── GenericUsbInput.h
│ │ ├── GuButton.h
│ │ ├── GuState.cpp
│ │ └── GuState.h
│ ├── Divaller/
│ │ ├── Divaller.cpp
│ │ ├── Divaller.h
│ │ ├── DivallerButton.h
│ │ └── DivallerState.h
│ ├── IInputDevice.h
│ ├── KeyConfig/
│ │ ├── Config.cpp
│ │ ├── Config.h
│ │ ├── KeyString.cpp
│ │ ├── KeyString.h
│ │ ├── KeyStringHash.cpp
│ │ └── KeyStringHash.h
│ ├── Keyboard/
│ │ ├── Keyboard.cpp
│ │ ├── Keyboard.h
│ │ ├── KeyboardState.cpp
│ │ └── KeyboardState.h
│ ├── Mouse/
│ │ ├── Mouse.cpp
│ │ ├── Mouse.h
│ │ └── MouseState.h
│ └── Xinput/
│ ├── Xinput.cpp
│ ├── Xinput.h
│ ├── XinputState.cpp
│ └── XinputState.h
├── TLAC.vcxproj
├── TLAC.vcxproj.filters
├── Utilities/
│ ├── Drawing.cpp
│ ├── Drawing.h
│ ├── EnumBitwiseOperations.h
│ ├── Math.cpp
│ ├── Math.h
│ ├── Operations.cpp
│ ├── Operations.h
│ ├── Stopwatch.cpp
│ ├── Stopwatch.h
│ ├── Vec2.cpp
│ ├── Vec2.h
│ ├── Vec3.cpp
│ └── Vec3.h
├── Utils.cpp
├── Utils.h
├── dllmain.cpp
├── framework.cpp
├── framework.h
└── pluginconfig.h
Showing preview only (300K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3359 symbols across 220 files)
FILE: source-code/dependencies/GPUModel/GPUModel.h
function namespace (line 10) | namespace GPUModel
FILE: source-code/dependencies/PluginConfigApi/PluginConfigApi.h
function class (line 11) | class resolution
function namespace (line 51) | namespace PluginConfig
FILE: source-code/dependencies/WineVer/WineVer.h
function namespace (line 5) | namespace WineVer
FILE: source-code/dependencies/detours/include/detours.h
type LONG (line 98) | typedef LONG LONG_PTR;
type ULONG (line 99) | typedef ULONG ULONG_PTR;
type GUID (line 293) | typedef struct _GUID
type DETOUR_TRAMPOLINE (line 344) | typedef struct _DETOUR_TRAMPOLINE DETOUR_TRAMPOLINE, *PDETOUR_TRAMPOLINE;
type DETOUR_SECTION_HEADER (line 349) | typedef struct _DETOUR_SECTION_HEADER
type DETOUR_SECTION_RECORD (line 374) | typedef struct _DETOUR_SECTION_RECORD
type DETOUR_CLR_HEADER (line 381) | typedef struct _DETOUR_CLR_HEADER
type DETOUR_EXE_RESTORE (line 395) | typedef struct _DETOUR_EXE_RESTORE
type DETOUR_EXE_HELPER (line 437) | typedef struct _DETOUR_EXE_HELPER
type VOID (line 515) | typedef VOID * PDETOUR_BINARY;
type VOID (line 516) | typedef VOID * PDETOUR_LOADED_BINARY;
type IMAGEHLP_MODULE (line 827) | typedef IMAGEHLP_MODULE IMAGEHLP_MODULE64;
type PIMAGEHLP_MODULE (line 828) | typedef PIMAGEHLP_MODULE PIMAGEHLP_MODULE64;
type IMAGEHLP_SYMBOL (line 829) | typedef IMAGEHLP_SYMBOL SYMBOL_INFO;
type PIMAGEHLP_SYMBOL (line 830) | typedef PIMAGEHLP_SYMBOL PSYMBOL_INFO;
function LONG (line 832) | static inline
type DETOUR_SYM_INFO (line 865) | typedef struct _DETOUR_SYM_INFO
type DETOUR_IA64_BUNDLE (line 917) | struct DETOUR_IA64_BUNDLE
FILE: source-code/dependencies/detours/include/syelog.h
type SYELOG_MESSAGE (line 33) | typedef struct _SYELOG_MESSAGE
FILE: source-code/dependencies/freeglut/include/GL/freeglut_std.h
function FGUNUSED (line 638) | FGUNUSED glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithE...
function FGUNUSED (line 640) | FGUNUSED glutCreateWindow_ATEXIT_HACK(const char *title) { return __glut...
function FGUNUSED (line 642) | FGUNUSED glutCreateMenu_ATEXIT_HACK(void (* func)(int)) { return __glutC...
FILE: source-code/dependencies/freeglut/include/GL/freeglut_ucall.h
function FGUNUSED (line 101) | FGUNUSED glutCreateMenuUcall_ATEXIT_HACK(void(*func)(int, void*), void* ...
FILE: source-code/dependencies/simpleini/ConvertUTF.c
function ConversionResult (line 61) | ConversionResult ConvertUTF32toUTF16 (
function ConversionResult (line 110) | ConversionResult ConvertUTF16toUTF32 (
function ConversionResult (line 214) | ConversionResult ConvertUTF16toUTF8 (
function Boolean (line 295) | static Boolean isLegalUTF8(const UTF8 *source, int length) {
function Boolean (line 326) | Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd) {
function ConversionResult (line 336) | ConversionResult ConvertUTF8toUTF16 (
function ConversionResult (line 409) | ConversionResult ConvertUTF32toUTF8 (
function ConversionResult (line 462) | ConversionResult ConvertUTF8toUTF32 (
FILE: source-code/dependencies/simpleini/ConvertUTF.h
type UTF32 (line 90) | typedef unsigned int UTF32;
type UTF16 (line 91) | typedef unsigned short UTF16;
type UTF8 (line 92) | typedef unsigned char UTF8;
type Boolean (line 93) | typedef unsigned char Boolean;
type ConversionResult (line 102) | typedef enum {
type ConversionFlags (line 109) | typedef enum {
FILE: source-code/dependencies/simpleini/SimpleIni.h
type SI_Error (line 237) | enum SI_Error {
type Entry (line 301) | struct Entry {
function operator (line 326) | bool operator<(const Entry & rhs) const { return LoadOrder()(*this, rhs); }
function operator (line 327) | bool operator>(const Entry & rhs) const { return LoadOrder()(rhs, *this); }
type KeyOrder (line 331) | struct KeyOrder {
type std (line 350) | typedef std::multimap<Entry,const
type std (line 353) | typedef std::map<Entry,TKeyVal,typename
type std (line 358) | typedef std::list<Entry> TNamesDepend;
function class (line 363) | class OutputWriter {
function class (line 374) | class FileWriter : public OutputWriter {
function class (line 387) | class StringWriter : public OutputWriter {
function class (line 401) | class StreamWriter : public OutputWriter {
function class (line 417) | class Converter : private SI_CONVERTER {
function ConvertToStore (line 427) | bool ConvertToStore(const SI_CHAR * a_pszString) {
function SI_Error (line 602) | SI_Error LoadData(const std::string & a_strData) {
function IsSpace (line 1188) | inline bool IsSpace(SI_CHAR ch) const {
function IsComment (line 1193) | inline bool IsComment(SI_CHAR ch) const {
function SkipNewLine (line 1199) | inline void SkipNewLine(SI_CHAR *& a_pData) const {
function IsLess (line 1210) | bool IsLess(const SI_CHAR * a_pLeft, const SI_CHAR * a_pRight) const {
type typename (line 1927) | typedef typename TSection::iterator SectionIterator;
function const (line 2715) | bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const {
function SI_CHAR (line 2735) | inline SI_CHAR locase(SI_CHAR ch) const {
function const (line 2738) | bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const {
function SizeFromStore (line 2781) | size_t SizeFromStore(
function ConvertFromStore (line 2805) | bool ConvertFromStore(
function SizeToStore (line 2829) | size_t SizeToStore(
function ConvertToStore (line 2849) | bool ConvertToStore(
function SizeFromStore (line 2910) | size_t SizeFromStore(
function ConvertFromStore (line 2947) | bool ConvertFromStore(
function SizeToStore (line 2994) | size_t SizeToStore(
function ConvertToStore (line 3027) | bool ConvertToStore(
function SizeFromStore (line 3121) | size_t SizeFromStore(
function ConvertFromStore (line 3160) | bool ConvertFromStore(
function SizeToStore (line 3197) | size_t SizeToStore(
function ConvertToStore (line 3233) | bool ConvertToStore(
function const (line 3292) | bool operator()(const SI_CHAR * pLeft, const SI_CHAR * pRight) const {
function SizeFromStore (line 3342) | size_t SizeFromStore(
function ConvertFromStore (line 3368) | bool ConvertFromStore(
function SizeToStore (line 3391) | size_t SizeToStore(
function ConvertToStore (line 3414) | bool ConvertToStore(
type CSimpleIniTempl (line 3434) | typedef CSimpleIniTempl<char,
type CSimpleIniTempl (line 3436) | typedef CSimpleIniTempl<char,
type CSimpleIniTempl (line 3447) | typedef CSimpleIniTempl<UChar,
type CSimpleIniTempl (line 3449) | typedef CSimpleIniTempl<UChar,
type CSimpleIniTempl (line 3452) | typedef CSimpleIniTempl<wchar_t,
type CSimpleIniTempl (line 3454) | typedef CSimpleIniTempl<wchar_t,
FILE: source-code/dependencies/xdelta3/badcopy.c
function drand48 (line 9) | static
function lrand48 (line 14) | long lrand48() {
function usize_t (line 45) | static usize_t
function modify (line 55) | void modify (char *buf, usize_t size)
function main (line 102) | int main(int argc, char **argv)
FILE: source-code/dependencies/xdelta3/cpp-btree/btree.h
function namespace (line 122) | namespace btree {
type small_ (line 149) | typedef char small_;
type big_ (line 151) | struct big_ {
type btree_key_compare_to_tag (line 175) | struct btree_key_compare_to_tag {
function btree_key_compare_to_tag (line 215) | struct btree_key_compare_to_adapter<std::greater<std::string> >
function comp (line 232) | btree_key_comparer(Compare c) : comp(c) {}
function bool_compare (line 233) | static bool bool_compare(const Compare &comp, const Key &x, const Key &y) {
function const (line 236) | bool operator()(const Key &x, const Key &y) const {
function comp (line 248) | comp(c) {}
function bool_compare (line 249) | static bool bool_compare(const Compare &comp, const Key &x, const Key &y) {
function const (line 252) | bool operator()(const Key &x, const Key &y) const {
function btree_compare_keys (line 263) | bool btree_compare_keys(
type typename (line 276) | typedef typename if_<
type btree_is_key_compare_to (line 281) | typedef btree_is_key_compare_to<key_compare> is_key_compare_to;
type Alloc (line 283) | typedef Alloc allocator_type;
type Key (line 284) | typedef Key key_type;
type size_type (line 285) | typedef ssize_t size_type;
type difference_type (line 286) | typedef ptrdiff_t difference_type;
type typename (line 298) | typedef typename if_<
type Data (line 310) | typedef Data data_type;
type Data (line 311) | typedef Data mapped_type;
type std (line 312) | typedef std::pair<const Key, data_type> value_type;
type std (line 313) | typedef std::pair<Key, data_type> mutable_value_type;
type value_type (line 314) | typedef value_type* pointer;
type value_type (line 315) | typedef const value_type* const_pointer;
type value_type (line 316) | typedef value_type& reference;
type value_type (line 317) | typedef const value_type& const_reference;
function Key (line 323) | static const Key& key(const value_type &x) { return x.first; }
function Key (line 324) | static const Key& key(const mutable_value_type &x) { return x.first; }
function swap (line 325) | static void swap(mutable_value_type *a, mutable_value_type *b) {
type Key (line 338) | typedef Key value_type;
type value_type (line 339) | typedef value_type mutable_value_type;
type value_type (line 340) | typedef value_type* pointer;
type value_type (line 341) | typedef const value_type* const_pointer;
type value_type (line 342) | typedef value_type& reference;
type value_type (line 343) | typedef const value_type& const_reference;
function Key (line 349) | static const Key& key(const value_type &x) { return x; }
function swap (line 350) | static void swap(mutable_value_type *a, mutable_value_type *b) {
function const (line 360) | bool operator()(const Key &a, const Key &b) const {
function const (line 368) | int operator()(const Key &a, const Key &b) const {
function lower_bound (line 376) | static int lower_bound(const K &k, const N &n, Compare comp) {
function upper_bound (line 379) | static int upper_bound(const K &k, const N &n, Compare comp) {
function lower_bound (line 388) | static int lower_bound(const K &k, const N &n, CompareTo comp) {
function upper_bound (line 391) | static int upper_bound(const K &k, const N &n, CompareTo comp) {
function lower_bound (line 401) | static int lower_bound(const K &k, const N &n, Compare comp) {
function upper_bound (line 404) | static int upper_bound(const K &k, const N &n, Compare comp) {
function lower_bound (line 413) | static int lower_bound(const K &k, const N &n, CompareTo comp) {
function upper_bound (line 416) | static int upper_bound(const K &k, const N &n, CompareTo comp) {
type btree_node (line 430) | typedef btree_node<Params> self_type;
type typename (line 431) | typedef typename Params::key_type key_type;
type typename (line 432) | typedef typename Params::data_type data_type;
type typename (line 433) | typedef typename Params::value_type value_type;
type typename (line 434) | typedef typename Params::mutable_value_type mutable_value_type;
type typename (line 435) | typedef typename Params::pointer pointer;
type typename (line 436) | typedef typename Params::const_pointer const_pointer;
type typename (line 437) | typedef typename Params::reference reference;
type typename (line 438) | typedef typename Params::const_reference const_reference;
type typename (line 439) | typedef typename Params::key_compare key_compare;
type typename (line 440) | typedef typename Params::size_type size_type;
type typename (line 441) | typedef typename Params::difference_type difference_type;
type btree_linear_search_plain_compare (line 443) | typedef btree_linear_search_plain_compare<
type btree_linear_search_compare_to (line 445) | typedef btree_linear_search_compare_to<
type btree_binary_search_plain_compare (line 447) | typedef btree_binary_search_plain_compare<
type btree_binary_search_compare_to (line 449) | typedef btree_binary_search_compare_to<
type typename (line 453) | typedef typename if_<
type typename (line 459) | typedef typename if_<
type typename (line 466) | typedef typename if_<
type base_fields (line 471) | struct base_fields {
function base_fields (line 501) | struct leaf_fields : public base_fields {
function leaf_fields (line 507) | struct internal_fields : public leaf_fields {
function internal_fields (line 514) | struct root_fields : public internal_fields {
function set_position (line 526) | void set_position(int v) { fields_.position = v; }
function set_count (line 530) | void set_count(int v) { fields_.count = v; }
function btree_node (line 534) | btree_node* parent() const { return fields_.parent; }
function make_root (line 539) | void make_root() {
function btree_node (line 545) | btree_node* rightmost() const { return fields_.rightmost; }
function btree_node (line 546) | btree_node** mutable_rightmost() { return &fields_.rightmost; }
function size_type (line 550) | size_type* mutable_size() { return &fields_.size; }
function key_type (line 553) | const key_type& key(int i) const {
function reference (line 556) | reference value(int i) {
function const_reference (line 559) | const_reference value(int i) const {
function mutable_value_type (line 562) | mutable_value_type* mutable_value(int i) {
function value_swap (line 567) | void value_swap(int i, btree_node *x, int j) {
function btree_node (line 572) | btree_node* child(int i) const { return fields_.children[i]; }
function btree_node (line 573) | btree_node** mutable_child(int i) { return &fields_.children[i]; }
function set_child (line 574) | void set_child(int i, btree_node *c) {
function btree_node (line 685) | static btree_node* init_leaf(
function btree_node (line 698) | static btree_node* init_internal(internal_fields *f, btree_node *parent) {
function btree_node (line 706) | static btree_node* init_root(root_fields *f, btree_node *parent) {
function destroy (line 712) | void destroy() {
function value_init (line 722) | void value_init(int i, const value_type &x) {
function value_destroy (line 725) | void value_destroy(int i) {
type typename (line 739) | typedef typename Node::key_type key_type;
type typename (line 740) | typedef typename Node::size_type size_type;
type typename (line 741) | typedef typename Node::difference_type difference_type;
type typename (line 742) | typedef typename Node::params_type params_type;
type Node (line 744) | typedef Node node_type;
type typename (line 745) | typedef typename std::remove_const<Node>::type normal_node;
type Node (line 746) | typedef const Node const_node;
type typename (line 747) | typedef typename params_type::value_type value_type;
type typename (line 748) | typedef typename params_type::pointer normal_pointer;
type typename (line 749) | typedef typename params_type::reference normal_reference;
type typename (line 750) | typedef typename params_type::const_pointer const_pointer;
type typename (line 751) | typedef typename params_type::const_reference const_reference;
type Pointer (line 753) | typedef Pointer pointer;
type Reference (line 754) | typedef Reference reference;
type std (line 755) | typedef std::bidirectional_iterator_tag iterator_category;
type btree_iterator (line 757) | typedef btree_iterator<
type btree_iterator (line 759) | typedef btree_iterator<
type btree_iterator (line 761) | typedef btree_iterator<Node, Reference, Pointer> self_type;
function increment (line 777) | void increment() {
function decrement (line 786) | void decrement() {
function reference (line 805) | reference operator*() const {
function pointer (line 808) | pointer operator->() const {
type btree_internal_locate_plain_compare (line 838) | struct btree_internal_locate_plain_compare {
type btree_internal_locate_compare_to (line 846) | struct btree_internal_locate_compare_to {
type btree_node (line 856) | typedef btree_node<Params> node_type;
type typename (line 857) | typedef typename node_type::base_fields base_fields;
type typename (line 858) | typedef typename node_type::leaf_fields leaf_fields;
type typename (line 859) | typedef typename node_type::internal_fields internal_fields;
type typename (line 860) | typedef typename node_type::root_fields root_fields;
type typename (line 861) | typedef typename Params::is_key_compare_to is_key_compare_to;
type typename (line 865) | typedef typename if_<
type node_stats (line 893) | struct node_stats {
type typename (line 911) | typedef typename Params::key_type key_type;
type typename (line 912) | typedef typename Params::data_type data_type;
type typename (line 913) | typedef typename Params::mapped_type mapped_type;
type typename (line 914) | typedef typename Params::value_type value_type;
type typename (line 915) | typedef typename Params::key_compare key_compare;
type typename (line 916) | typedef typename Params::pointer pointer;
type typename (line 917) | typedef typename Params::const_pointer const_pointer;
type typename (line 918) | typedef typename Params::reference reference;
type typename (line 919) | typedef typename Params::const_reference const_reference;
type typename (line 920) | typedef typename Params::size_type size_type;
type typename (line 921) | typedef typename Params::difference_type difference_type;
type btree_iterator (line 922) | typedef btree_iterator<node_type, reference, pointer> iterator;
type typename (line 923) | typedef typename iterator::const_iterator const_iterator;
type std (line 924) | typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
type std (line 925) | typedef std::reverse_iterator<iterator> reverse_iterator;
type typename (line 927) | typedef typename Params::allocator_type allocator_type;
type typename (line 928) | typedef typename allocator_type::template rebind<char>::other
function iterator (line 944) | iterator begin() {
function iterator (line 950) | iterator end() {
function reverse_iterator (line 956) | reverse_iterator rbegin() {
function reverse_iterator (line 962) | reverse_iterator rend() {
function iterator (line 970) | iterator lower_bound(const key_type &key) {
function const_iterator (line 974) | const_iterator lower_bound(const key_type &key) const {
function iterator (line 980) | iterator upper_bound(const key_type &key) {
function const_iterator (line 984) | const_iterator upper_bound(const key_type &key) const {
function iterator (line 1031) | iterator insert_multi(const value_type &v) {
function iterator (line 1065) | iterator find_unique(const key_type &key) {
function const_iterator (line 1069) | const_iterator find_unique(const key_type &key) const {
function iterator (line 1073) | iterator find_multi(const key_type &key) {
function const_iterator (line 1077) | const_iterator find_multi(const key_type &key) const {
function size_type (line 1083) | size_type count_unique(const key_type &key) const {
function size_type (line 1093) | size_type count_multi(const key_type &key) const {
function key_compare (line 1113) | key_compare* mutable_key_comp() {
function compare_keys (line 1119) | bool compare_keys(const key_type &x, const key_type &y) const {
function dump (line 1125) | void dump(std::ostream &os) const {
function verify (line 1132) | void verify() const;
function size_type (line 1144) | size_type height() const {
function size_type (line 1167) | size_type nodes() const {
function average_bytes_per_value (line 1187) | static double average_bytes_per_value() {
function node_type (line 1214) | const node_type* root() const { return root_.data; }
function node_type (line 1215) | node_type** mutable_root() { return &root_.data; }
function node_type (line 1218) | node_type* rightmost() {
function node_type (line 1221) | const node_type* rightmost() const {
function node_type (line 1224) | node_type** mutable_rightmost() { return root()->mutable_rightmost(); }
function node_type (line 1227) | node_type* leftmost() { return root() ? root()->parent() : NULL; }
function node_type (line 1228) | const node_type* leftmost() const { return root() ? root()->parent() : N...
function size_type (line 1231) | size_type* mutable_size() { return root()->mutable_size(); }
function internal_allocator_type (line 1234) | internal_allocator_type* mutable_internal_allocator() {
function node_type (line 1242) | node_type* new_internal_node(node_type *parent) {
function node_type (line 1247) | node_type* new_internal_root_node() {
function node_type (line 1252) | node_type* new_leaf_node(node_type *parent) {
function node_type (line 1257) | node_type* new_leaf_root_node(int max_count) {
function delete_internal_node (line 1263) | void delete_internal_node(node_type *node) {
function delete_internal_root_node (line 1269) | void delete_internal_root_node() {
function delete_leaf_node (line 1274) | void delete_leaf_node(node_type *node) {
function iterator (line 1297) | iterator internal_end(iterator iter) {
function const_iterator (line 1300) | const_iterator internal_end(const_iterator iter) const {
function node_stats (line 1364) | node_stats internal_stats(const node_type *node) const {
FILE: source-code/dependencies/xdelta3/cpp-btree/btree_bench.cc
type btree (line 48) | namespace btree {
type RandGen (line 51) | struct RandGen {
method RandGen (line 53) | RandGen(result_type seed) {
method result_type (line 56) | result_type operator()(result_type l) {
type BenchmarkRun (line 61) | struct BenchmarkRun {
function get_micros (line 78) | int64_t get_micros () {
function StopBenchmarkTiming (line 100) | void StopBenchmarkTiming() {
function StartBenchmarkTiming (line 104) | void StartBenchmarkTiming() {
function RunBenchmarks (line 108) | void RunBenchmarks() {
function sink (line 161) | void sink(const T& t0) {
function BM_Insert (line 167) | void BM_Insert(int n) {
function BM_Lookup (line 204) | void BM_Lookup(int n) {
function BM_FullLookup (line 236) | void BM_FullLookup(int n) {
function BM_Delete (line 268) | void BM_Delete(int n) {
function BM_QueueAddRem (line 310) | void BM_QueueAddRem(int n) {
function BM_MixedAddRem (line 370) | void BM_MixedAddRem(int n) {
function BM_Fifo (line 422) | void BM_Fifo(int n) {
function BM_FwdIter (line 447) | void BM_FwdIter(int n) {
function main (line 590) | int main(int argc, char **argv) {
FILE: source-code/dependencies/xdelta3/cpp-btree/btree_container.h
function namespace (line 23) | namespace btree {
function iterator (line 182) | iterator find(const key_type &key) {
function const_iterator (line 185) | const_iterator find(const key_type &key) const {
function size_type (line 188) | size_type count(const key_type &key) const {
function iterator (line 196) | iterator insert(iterator position, const value_type &x) {
function erase (line 205) | int erase(const key_type &key) {
function iterator (line 211) | iterator erase(const iterator &iter) {
function erase (line 214) | void erase(const iterator &first, const iterator &last) {
type btree_unique_container (line 223) | typedef btree_unique_container<Tree> super_type;
type typename (line 227) | typedef typename Tree::data_type data_type;
type typename (line 228) | typedef typename Tree::value_type value_type;
type typename (line 229) | typedef typename Tree::mapped_type mapped_type;
type typename (line 230) | typedef typename Tree::key_compare key_compare;
type typename (line 231) | typedef typename Tree::allocator_type allocator_type;
type generate_value (line 237) | struct generate_value {
function super_type (line 255) | btree_map_container(const self_type &x)
type btree_container (line 277) | typedef btree_container<Tree> super_type;
type typename (line 281) | typedef typename Tree::value_type value_type;
type typename (line 282) | typedef typename Tree::size_type size_type;
type typename (line 283) | typedef typename Tree::key_compare key_compare;
type typename (line 284) | typedef typename Tree::allocator_type allocator_type;
type typename (line 285) | typedef typename Tree::iterator iterator;
type typename (line 286) | typedef typename Tree::const_iterator const_iterator;
function super_type (line 296) | btree_multi_container(const self_type &x)
function iterator (line 310) | iterator find(const key_type &key) {
function const_iterator (line 313) | const_iterator find(const key_type &key) const {
function size_type (line 316) | size_type count(const key_type &key) const {
function iterator (line 321) | iterator insert(const value_type &x) {
function iterator (line 324) | iterator insert(iterator position, const value_type &x) {
function erase (line 333) | int erase(const key_type &key) {
function iterator (line 339) | iterator erase(const iterator &iter) {
function erase (line 342) | void erase(const iterator &first, const iterator &last) {
FILE: source-code/dependencies/xdelta3/cpp-btree/btree_map.h
function namespace (line 34) | namespace btree {
type btree_map_params (line 90) | typedef btree_map_params<
type btree (line 92) | typedef btree<params_type> btree_type;
type btree_multi_container (line 93) | typedef btree_multi_container<btree_type> super_type;
type typename (line 97) | typedef typename btree_type::allocator_type allocator_type;
type typename (line 98) | typedef typename btree_type::data_type data_type;
type typename (line 99) | typedef typename btree_type::mapped_type mapped_type;
function super_type (line 109) | btree_multimap(const self_type &x)
FILE: source-code/dependencies/xdelta3/cpp-btree/btree_set.h
function namespace (line 30) | namespace btree {
type btree_set_params (line 84) | typedef btree_set_params<Key, Compare, Alloc, TargetNodeSize> params_type;
type btree (line 85) | typedef btree<params_type> btree_type;
type btree_multi_container (line 86) | typedef btree_multi_container<btree_type> super_type;
type typename (line 90) | typedef typename btree_type::allocator_type allocator_type;
function super_type (line 100) | btree_multiset(const self_type &x)
FILE: source-code/dependencies/xdelta3/cpp-btree/btree_test.cc
type btree (line 20) | namespace btree {
function SetTest (line 24) | void SetTest() {
function MapTest (line 32) | void MapTest() {
function TEST (line 40) | TEST(Btree, set_int32_32) { SetTest<int32_t, 32>(); }
function TEST (line 41) | TEST(Btree, set_int32_64) { SetTest<int32_t, 64>(); }
function TEST (line 42) | TEST(Btree, set_int32_128) { SetTest<int32_t, 128>(); }
function TEST (line 43) | TEST(Btree, set_int32_256) { SetTest<int32_t, 256>(); }
function TEST (line 44) | TEST(Btree, set_int64_256) { SetTest<int64_t, 256>(); }
function TEST (line 45) | TEST(Btree, set_string_256) { SetTest<std::string, 256>(); }
function TEST (line 46) | TEST(Btree, set_pair_256) { SetTest<std::pair<int, int>, 256>(); }
function TEST (line 47) | TEST(Btree, map_int32_256) { MapTest<int32_t, 256>(); }
function TEST (line 48) | TEST(Btree, map_int64_256) { MapTest<int64_t, 256>(); }
function TEST (line 49) | TEST(Btree, map_string_256) { MapTest<std::string, 256>(); }
function TEST (line 50) | TEST(Btree, map_pair_256) { MapTest<std::pair<int, int>, 256>(); }
function TEST (line 53) | TEST(Btree, map_int32_1024) { MapTest<int32_t, 1024>(); }
function TEST (line 54) | TEST(Btree, map_int32_1032) { MapTest<int32_t, 1032>(); }
function TEST (line 55) | TEST(Btree, map_int32_1040) { MapTest<int32_t, 1040>(); }
function TEST (line 56) | TEST(Btree, map_int32_1048) { MapTest<int32_t, 1048>(); }
function TEST (line 57) | TEST(Btree, map_int32_1056) { MapTest<int32_t, 1056>(); }
function TEST (line 59) | TEST(Btree, map_int32_2048) { MapTest<int32_t, 2048>(); }
function TEST (line 60) | TEST(Btree, map_int32_4096) { MapTest<int32_t, 4096>(); }
function TEST (line 61) | TEST(Btree, set_int32_1024) { SetTest<int32_t, 1024>(); }
function TEST (line 62) | TEST(Btree, set_int32_2048) { SetTest<int32_t, 2048>(); }
function TEST (line 63) | TEST(Btree, set_int32_4096) { SetTest<int32_t, 4096>(); }
function TEST (line 64) | TEST(Btree, map_string_1024) { MapTest<std::string, 1024>(); }
function TEST (line 65) | TEST(Btree, map_string_2048) { MapTest<std::string, 2048>(); }
function TEST (line 66) | TEST(Btree, map_string_4096) { MapTest<std::string, 4096>(); }
function TEST (line 67) | TEST(Btree, set_string_1024) { SetTest<std::string, 1024>(); }
function TEST (line 68) | TEST(Btree, set_string_2048) { SetTest<std::string, 2048>(); }
function TEST (line 69) | TEST(Btree, set_string_4096) { SetTest<std::string, 4096>(); }
function MultiSetTest (line 72) | void MultiSetTest() {
function MultiMapTest (line 81) | void MultiMapTest() {
function TEST (line 90) | TEST(Btree, multiset_int32_256) { MultiSetTest<int32_t, 256>(); }
function TEST (line 91) | TEST(Btree, multiset_int64_256) { MultiSetTest<int64_t, 256>(); }
function TEST (line 92) | TEST(Btree, multiset_string_256) { MultiSetTest<std::string, 256>(); }
function TEST (line 93) | TEST(Btree, multiset_pair_256) { MultiSetTest<std::pair<int, int>, 2...
function TEST (line 94) | TEST(Btree, multimap_int32_256) { MultiMapTest<int32_t, 256>(); }
function TEST (line 95) | TEST(Btree, multimap_int64_256) { MultiMapTest<int64_t, 256>(); }
function TEST (line 96) | TEST(Btree, multimap_string_256) { MultiMapTest<std::string, 256>(); }
function TEST (line 97) | TEST(Btree, multimap_pair_256) { MultiMapTest<std::pair<int, int>, 2...
function TEST (line 100) | TEST(Btree, multimap_int32_1024) { MultiMapTest<int32_t, 1024>(); }
function TEST (line 101) | TEST(Btree, multimap_int32_2048) { MultiMapTest<int32_t, 2048>(); }
function TEST (line 102) | TEST(Btree, multimap_int32_4096) { MultiMapTest<int32_t, 4096>(); }
function TEST (line 103) | TEST(Btree, multiset_int32_1024) { MultiSetTest<int32_t, 1024>(); }
function TEST (line 104) | TEST(Btree, multiset_int32_2048) { MultiSetTest<int32_t, 2048>(); }
function TEST (line 105) | TEST(Btree, multiset_int32_4096) { MultiSetTest<int32_t, 4096>(); }
function TEST (line 106) | TEST(Btree, multimap_string_1024) { MultiMapTest<std::string, 1024>(...
function TEST (line 107) | TEST(Btree, multimap_string_2048) { MultiMapTest<std::string, 2048>(...
function TEST (line 108) | TEST(Btree, multimap_string_4096) { MultiMapTest<std::string, 4096>(...
function TEST (line 109) | TEST(Btree, multiset_string_1024) { MultiSetTest<std::string, 1024>(...
function TEST (line 110) | TEST(Btree, multiset_string_2048) { MultiSetTest<std::string, 2048>(...
function TEST (line 111) | TEST(Btree, multiset_string_4096) { MultiSetTest<std::string, 4096>(...
type SubstringLess (line 114) | struct SubstringLess {
method SubstringLess (line 115) | SubstringLess() : n(2) {}
method SubstringLess (line 116) | SubstringLess(size_t length)
function TEST (line 127) | TEST(Btree, SwapKeyCompare) {
function TEST (line 149) | TEST(Btree, UpperBoundRegression) {
function TEST (line 166) | TEST(Btree, IteratorIncrementBy) {
function TEST (line 193) | TEST(Btree, Comparison) {
function TEST (line 247) | TEST(Btree, RangeCtorSanity) {
FILE: source-code/dependencies/xdelta3/cpp-btree/btree_test.h
function namespace (line 37) | namespace std {
function namespace (line 64) | namespace btree {
function strcount (line 94) | inline ptrdiff_t strcount(const char* buf_begin, const char* buf_end, ch...
function strcount (line 108) | inline ptrdiff_t strcount(const char* buf, size_t len, char c) {
function strcount (line 112) | inline ptrdiff_t strcount(const std::string& buf, char c) {
type base_checker (line 122) | typedef base_checker<TreeType, CheckerType> self_type;
type typename (line 126) | typedef typename TreeType::value_type value_type;
type typename (line 127) | typedef typename TreeType::key_compare key_compare;
type typename (line 128) | typedef typename TreeType::pointer pointer;
type typename (line 129) | typedef typename TreeType::const_pointer const_pointer;
type typename (line 130) | typedef typename TreeType::reference reference;
type typename (line 131) | typedef typename TreeType::const_reference const_reference;
type typename (line 132) | typedef typename TreeType::size_type size_type;
type typename (line 133) | typedef typename TreeType::difference_type difference_type;
type typename (line 134) | typedef typename TreeType::iterator iterator;
type typename (line 135) | typedef typename TreeType::const_iterator const_iterator;
type typename (line 136) | typedef typename TreeType::reverse_iterator reverse_iterator;
type typename (line 137) | typedef typename TreeType::const_reverse_iterator const_reverse_iterator;
function iterator (line 161) | iterator end() { return tree_.end(); }
function reverse_iterator (line 163) | reverse_iterator rbegin() { return tree_.rbegin(); }
function reverse_iterator (line 165) | reverse_iterator rend() { return tree_.rend(); }
function value_check (line 189) | void value_check(const value_type &x) {
function erase_check (line 199) | void erase_check(const key_type &key) {
function iterator (line 207) | iterator lower_bound(const key_type &key) {
function const_iterator (line 210) | const_iterator lower_bound(const key_type &key) const {
function iterator (line 213) | iterator upper_bound(const key_type &key) {
function const_iterator (line 216) | const_iterator upper_bound(const key_type &key) const {
function iterator (line 237) | iterator find(const key_type &key) {
function const_iterator (line 240) | const_iterator find(const key_type &key) const {
function size_type (line 243) | size_type count(const key_type &key) const {
function erase (line 257) | int erase(const key_type &key) {
function iterator (line 267) | iterator erase(iterator iter) {
function erase (line 288) | void erase(iterator begin, iterator end) {
function clear (line 309) | void clear() {
function swap (line 313) | void swap(self_type &x) {
type unique_checker (line 391) | typedef unique_checker<TreeType, CheckerType> self_type;
type typename (line 395) | typedef typename super_type::value_type value_type;
function super_type (line 403) | unique_checker(const self_type &x)
function iterator (line 424) | iterator insert(iterator position, const value_type &x) {
type multi_checker (line 448) | typedef multi_checker<TreeType, CheckerType> self_type;
type typename (line 452) | typedef typename super_type::value_type value_type;
function super_type (line 460) | multi_checker(const self_type &x)
function iterator (line 470) | iterator insert(const value_type &x) {
function iterator (line 479) | iterator insert(iterator position, const value_type &x) {
function maxval (line 511) | Generator(int m)
function K (line 514) | K operator()(int i) const {
function string (line 521) | struct Generator<std::string> {
function std (line 547) | const std::vector<int>& GenerateNumbers(int n, int maxval) {
type typename (line 736) | typedef typename T::value_type value_type;
type typename (line 794) | typedef typename std::remove_const<typename
type typename (line 816) | typedef typename std::remove_const<typename
type typename (line 849) | typedef typename Alloc::size_type size_type;
function bytes_used_ (line 851) | bytes_used_(NULL) { }
function bytes_used_ (line 852) | bytes_used_(bytes_used) { }
function deallocate (line 867) | void deallocate(pointer p, size_type n) {
type TestAllocator (line 875) | typedef TestAllocator<U, typename
type typename (line 886) | typedef typename T::value_type value_type;
type typename (line 907) | typedef typename T::value_type value_type;
type typename (line 908) | typedef typename T::mapped_type mapped_type;
type typename (line 933) | typedef typename T::mapped_type mapped_type;
FILE: source-code/dependencies/xdelta3/cpp-btree/safe_btree.h
function namespace (line 37) | namespace btree {
function reference (line 124) | reference operator*() const {
function pointer (line 130) | pointer operator->() const {
type safe_btree (line 170) | typedef safe_btree<Params> self_type;
type btree (line 172) | typedef btree<Params> btree_type;
type typename (line 173) | typedef typename btree_type::iterator tree_iterator;
type typename (line 174) | typedef typename btree_type::const_iterator tree_const_iterator;
type typename (line 178) | typedef typename btree_type::key_type key_type;
type typename (line 179) | typedef typename btree_type::data_type data_type;
type typename (line 180) | typedef typename btree_type::mapped_type mapped_type;
type typename (line 181) | typedef typename btree_type::value_type value_type;
type typename (line 182) | typedef typename btree_type::key_compare key_compare;
type typename (line 183) | typedef typename btree_type::allocator_type allocator_type;
type typename (line 184) | typedef typename btree_type::pointer pointer;
type typename (line 185) | typedef typename btree_type::const_pointer const_pointer;
type typename (line 186) | typedef typename btree_type::reference reference;
type typename (line 187) | typedef typename btree_type::const_reference const_reference;
type typename (line 188) | typedef typename btree_type::size_type size_type;
type typename (line 189) | typedef typename btree_type::difference_type difference_type;
type safe_btree_iterator (line 190) | typedef safe_btree_iterator<self_type, tree_iterator> iterator;
type safe_btree_iterator (line 191) | typedef safe_btree_iterator<
type std (line 193) | typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
type std (line 194) | typedef std::reverse_iterator<iterator> reverse_iterator;
function iterator (line 209) | iterator begin() {
function iterator (line 215) | iterator end() {
function reverse_iterator (line 221) | reverse_iterator rbegin() {
function reverse_iterator (line 227) | reverse_iterator rend() {
function iterator (line 235) | iterator lower_bound(const key_type &key) {
function const_iterator (line 238) | const_iterator lower_bound(const key_type &key) const {
function iterator (line 241) | iterator upper_bound(const key_type &key) {
function const_iterator (line 244) | const_iterator upper_bound(const key_type &key) const {
function iterator (line 257) | iterator find_unique(const key_type &key) {
function const_iterator (line 260) | const_iterator find_unique(const key_type &key) const {
function iterator (line 263) | iterator find_multi(const key_type &key) {
function const_iterator (line 266) | const_iterator find_multi(const key_type &key) const {
function size_type (line 269) | size_type count_unique(const key_type &key) const {
function size_type (line 272) | size_type count_multi(const key_type &key) const {
function iterator (line 288) | iterator insert_unique(iterator position, const value_type &v) {
function iterator (line 299) | iterator insert_multi(const value_type &v) {
function iterator (line 303) | iterator insert_multi(iterator position, const value_type &v) {
function erase (line 325) | void erase(const iterator &begin, const iterator &end) {
function iterator (line 332) | iterator erase(iterator iter) {
function erase_unique (line 337) | int erase_unique(const key_type &key) {
function erase_multi (line 342) | int erase_multi(const key_type &key) {
function btree_type (line 349) | btree_type* internal_btree() { return &tree_; }
function btree_type (line 350) | const btree_type* internal_btree() const { return &tree_; }
function clear (line 353) | void clear() {
function swap (line 357) | void swap(self_type &x) {
function dump (line 362) | void dump(std::ostream &os) const {
function average_bytes_per_value (line 382) | static double average_bytes_per_value() {
FILE: source-code/dependencies/xdelta3/cpp-btree/safe_btree_map.h
function namespace (line 40) | namespace btree {
FILE: source-code/dependencies/xdelta3/cpp-btree/safe_btree_set.h
function namespace (line 40) | namespace btree {
FILE: source-code/dependencies/xdelta3/cpp-btree/safe_btree_test.cc
class UnsafeArena (line 29) | class UnsafeArena
type btree (line 31) | namespace btree {
function SetTest (line 35) | void SetTest() {
function MapTest (line 42) | void MapTest() {
function TEST (line 49) | TEST(SafeBtree, set_int32_32) { SetTest<int32_t, 32>(); }
function TEST (line 50) | TEST(SafeBtree, set_int32_64) { SetTest<int32_t, 64>(); }
function TEST (line 51) | TEST(SafeBtree, set_int32_128) { SetTest<int32_t, 128>(); }
function TEST (line 52) | TEST(SafeBtree, set_int32_256) { SetTest<int32_t, 256>(); }
function TEST (line 53) | TEST(SafeBtree, set_int64_256) { SetTest<int64_t, 256>(); }
function TEST (line 54) | TEST(SafeBtree, set_string_256) { SetTest<std::string, 256>(); }
function TEST (line 55) | TEST(SafeBtree, set_pair_256) { SetTest<std::pair<int, int>, 256>(); }
function TEST (line 56) | TEST(SafeBtree, map_int32_256) { MapTest<int32_t, 256>(); }
function TEST (line 57) | TEST(SafeBtree, map_int64_256) { MapTest<int64_t, 256>(); }
function TEST (line 58) | TEST(SafeBtree, map_string_256) { MapTest<std::string, 256>(); }
function TEST (line 59) | TEST(SafeBtree, map_pair_256) { MapTest<std::pair<int, int>, 256>(); }
function TEST (line 61) | TEST(SafeBtree, Comparison) {
FILE: source-code/dependencies/xdelta3/examples/compare_test.c
function rdtsc (line 28) | inline uint64_t rdtsc() {
function run_test (line 36) | void run_test(const char *buf1, const char *buf2,
function memcmp_fake (line 57) | int memcmp_fake(const char *s1, const char *s2, int n) {
function test2 (line 63) | static inline int
function test1 (line 98) | static inline int
function main (line 108) | int main(/*int argc, char **argv*/) {
FILE: source-code/dependencies/xdelta3/examples/encode_decode_test.c
function code (line 15) | int code (
function main (line 151) | int main(int argc, char* argv[])
FILE: source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/Xd3iOSViewController.h
function interface (line 19) | interface Xd3iOSViewController : UIViewController <UITextViewDelegate> {
FILE: source-code/dependencies/xdelta3/examples/small_page_test.c
type context_t (line 32) | typedef struct _context {
function process_free (line 56) | void
function process_page (line 61) | int
function test (line 130) | int test(int stride, int encode_flags)
function main (line 198) | int main()
FILE: source-code/dependencies/xdelta3/examples/speed_test.c
function usize_t (line 19) | usize_t bench_speed(const uint8_t *from_buf, const size_t from_len,
function main (line 33) | int main(int argc, char **argv) {
FILE: source-code/dependencies/xdelta3/examples/test.h
function read_whole_file (line 22) | static int read_whole_file(const char *name,
FILE: source-code/dependencies/xdelta3/go/src/regtest.go
constant xdataset (line 15) | xdataset = "/volume/home/jmacd/src/testdata"
constant xcompare (line 16) | xcompare = "/volume/home/jmacd/src/xdelta-devel/xdelta3/build/x86_64-pc-...
constant xdelta3 (line 17) | xdelta3 = "/volume/home/jmacd/src/xdelta-64bithash/xdelta3/build/x86_64...
constant seed (line 18) | seed = 1422253499919909358
type Config (line 21) | type Config struct
method smokeTest (line 32) | func (c Config) smokeTest(t *xdelta.TestGroup, p xdelta.Program) {
method datasetTest (line 95) | func (cfg Config) datasetTest(t *xdelta.TestGroup, p, q xdelta.Program) {
method offsetTest (line 207) | func (cfg Config) offsetTest(t *xdelta.TestGroup, p xdelta.Program, of...
function NewC (line 27) | func NewC() Config {
type PairTest (line 63) | type PairTest struct
method datasetPairTest (line 168) | func (pt *PairTest) datasetPairTest(t *xdelta.TestGroup, meanSize int6...
type TestOutput (line 73) | type TestOutput struct
method Add (line 81) | func (to *TestOutput) Add(a TestOutput) {
method String (line 89) | func (to *TestOutput) String() string {
function main (line 247) | func main() {
FILE: source-code/dependencies/xdelta3/go/src/xdelta/rstream.go
constant blocksize (line 10) | blocksize = 1<<17
method WriteRstreams (line 13) | func (t *TestGroup) WriteRstreams(desc string, seed, offset, len int64,
function writeOne (line 23) | func writeOne(g *Goroutine, seed, offset, len int64, stream io.WriteClos...
function writeRand (line 46) | func writeRand(g *Goroutine, r *rand.Rand, len int64, s io.Writer) error {
function fillRand (line 62) | func fillRand(r *rand.Rand, blk []byte) {
FILE: source-code/dependencies/xdelta3/go/src/xdelta/run.go
type Program (line 11) | type Program struct
type Run (line 15) | type Run struct
method Wait (line 28) | func (r *Run) Wait() error {
type Runner (line 24) | type Runner struct
method newTestGroup (line 40) | func (r *Runner) newTestGroup(name string) (*TestGroup) {
method Cleanup (line 49) | func (r *Runner) Cleanup() {
method RunTest (line 53) | func (r *Runner) RunTest(name string, f func (t *TestGroup)) {
function NewRunner (line 32) | func NewRunner() (*Runner, error) {
FILE: source-code/dependencies/xdelta3/go/src/xdelta/test.go
method Drain (line 22) | func (t *TestGroup) Drain(f io.ReadCloser, desc string) <-chan []byte {
method Empty (line 35) | func (t *TestGroup) Empty(f io.ReadCloser, desc string) *Goroutine {
method TestWrite (line 50) | func (t *TestGroup) TestWrite(what string, f io.WriteCloser, b []byte) *...
method CopyStreams (line 62) | func (t *TestGroup) CopyStreams(r io.ReadCloser, w io.WriteCloser, writt...
method CompareStreams (line 81) | func (t *TestGroup) CompareStreams(r1 io.ReadCloser, r2 io.ReadCloser, l...
method Exec (line 109) | func (t *TestGroup) Exec(desc string, p Program, srcfifo bool, flags []s...
method Fail (line 144) | func (t *TestGroup) Fail(v ...interface{}) {
method writeFifo (line 148) | func (t *TestGroup) writeFifo(srcfile string, read io.Reader) *Goroutine {
FILE: source-code/dependencies/xdelta3/go/src/xdelta/tgroup.go
type TestGroup (line 9) | type TestGroup struct
method Main (line 66) | func (t *TestGroup) Main() *Goroutine { return t.main }
method Panic (line 68) | func (t *TestGroup) Panic(err error) { t.Main().Panic(err) }
method Go (line 70) | func (t *TestGroup) Go(name string, f func(*Goroutine)) *Goroutine {
method Wait (line 80) | func (t *TestGroup) Wait(procs... *Run) {
type Goroutine (line 19) | type Goroutine struct
method String (line 25) | func (g *Goroutine) String() string {
method finish (line 29) | func (g *Goroutine) finish(err error) {
method OK (line 55) | func (g *Goroutine) OK() {
method Panic (line 59) | func (g *Goroutine) Panic(err error) {
FILE: source-code/dependencies/xdelta3/linkxd3lib.c
function use (line 7) | void use(int r)
function main (line 12) | int main() {
FILE: source-code/dependencies/xdelta3/rcs_junk.cc
type _RcsWalker (line 1) | struct _RcsWalker
type _RcsFile (line 2) | struct _RcsFile
type _RcsVersion (line 3) | struct _RcsVersion
type _RcsStats (line 4) | struct _RcsStats
type _IntStat (line 5) | struct _IntStat
type _DblStat (line 6) | struct _DblStat
type _BinCounter (line 7) | struct _BinCounter
type _ConfigOption (line 8) | struct _ConfigOption
type _RcsWalker (line 10) | struct _RcsWalker {
type _RcsVersion (line 22) | struct _RcsVersion {
type _RcsFile (line 37) | struct _RcsFile {
type _RcsStats (line 58) | struct _RcsStats {
type _IntStat (line 68) | struct _IntStat {
type _DblStat (line 78) | struct _DblStat {
type _BinCounter (line 88) | struct _BinCounter {
type _ConfigArgument (line 93) | enum _ConfigArgument {
type _ConfigArgument (line 99) | enum _ConfigArgument
type _ConfigOptionType (line 101) | enum _ConfigOptionType {
type _ConfigOptionType (line 108) | enum _ConfigOptionType
type _ConfigStyle (line 110) | enum _ConfigStyle {
type _ConfigStyle (line 116) | enum _ConfigStyle
type _ConfigOption (line 118) | struct _ConfigOption {
function rcswalk_free_segment (line 210) | void
function rcswalk_checkout (line 227) | int
function rcswalk_delta_date (line 322) | int
function rcswalk_delta_orig (line 356) | int
function rcswalk_dateorder (line 399) | int
function gboolean (line 424) | gboolean
function rcswalk_find_parent (line 438) | void
function rcswalk_traverse_graph (line 518) | int
function rcswalk_compute_chain_length (line 561) | void
function rcswalk_date_compare (line 581) | int
function rcswalk_build_graph (line 590) | int
function rcswalk_load (line 637) | int
function rcswalk_free (line 752) | void
function rcswalk_one (line 770) | int
function rcswalk_dir (line 845) | int
function rcswalk_init (line 927) | void
function rcswalk (line 933) | int
function rcswalk_report (line 983) | void
function IntStat (line 997) | IntStat*
function stat_int_add_item (line 1008) | void
function stat_int_stddev (line 1021) | double
function ll_comp (line 1041) | int
function stat_int_histogram (line 1049) | void
function stat_int_report (line 1090) | void
function DblStat (line 1115) | DblStat*
function stat_dbl_add_item (line 1126) | void
function stat_dbl_stddev (line 1139) | double
function dbl_comp (line 1159) | int
function stat_dbl_histogram (line 1174) | void
function stat_dbl_report (line 1215) | void
function BinCounter (line 1239) | BinCounter*
function stat_bincount_add_item (line 1250) | void
function stat_bincount_report (line 1275) | void
function config_create_dir (line 1318) | int
function config_clear_dir (line 1343) | int
function config_init (line 1361) | void
function config_register (line 1372) | void
function config_set_string (line 1385) | void
function config_parse (line 1403) | int
function config_compute_output_dir (line 1507) | int
function config_done (line 1580) | int
function config_help (line 1696) | void
function FILE (line 1714) | FILE*
function gboolean (line 1756) | gboolean
function main (line 1848) | int
FILE: source-code/dependencies/xdelta3/testing/checksum_test.cc
function print_header (line 52) | void print_header() {
type true_type (line 60) | struct true_type { }
type false_type (line 61) | struct false_type { }
function usize_t (line 67) | usize_t bitsof<unsigned int>() {
function usize_t (line 72) | usize_t bitsof<unsigned long>() {
function usize_t (line 77) | usize_t bitsof<unsigned long long>() {
type hhash (line 82) | struct hhash { // shift "s" bits leaving the high bits as a hash value for
method Word (line 86) | Word operator()(const Word t, const Word s, const Word mask) {
function MEMBER (line 113) | MEMBER
function MEMBER (line 123) | MEMBER
function MEMBER (line 168) | MEMBER
function MEMBER (line 198) | MEMBER
function MEMBER (line 226) | MEMBER
type file_stats (line 249) | struct file_stats {
method file_stats (line 262) | file_stats(usize_t size, usize_t skip)
method reset (line 270) | void reset() {
method update (line 277) | void update(word_type word, ptr_type ptr) {
method freeze (line 304) | void freeze() {
type test_result_base (line 309) | struct test_result_base
type test_result_base (line 313) | struct test_result_base {
type test_result (line 335) | struct test_result : public test_result_base {
method test_result (line 358) | test_result(const char *name)
method reset (line 376) | void reset() {
method usize_t (line 403) | usize_t count() {
method usize_t (line 411) | usize_t dups() {
method collisions (line 417) | double collisions() {
method usize_t (line 420) | usize_t colls() {
method uniqueness (line 424) | double uniqueness() {
method fullness (line 428) | double fullness() {
method coverage (line 432) | double coverage() {
method compression (line 436) | double compression() {
method time (line 440) | double time() {
method total_time (line 444) | double total_time() {
method usize_t (line 448) | usize_t total_count() {
method usize_t (line 452) | usize_t total_dups() {
method usize_t (line 456) | usize_t total_colls() {
method stat (line 460) | void stat() {
method print (line 468) | void print() {
method usize_t (line 490) | usize_t size_log2 (usize_t slots) {
method new_table (line 503) | void new_table(usize_t entries) {
method get_table_bit (line 516) | int get_table_bit(usize_t i) {
method set_table_bit (line 520) | int set_table_bit(usize_t i) {
method summarize_table (line 524) | void summarize_table() {
method get (line 535) | void get(const uint8_t* buf, const size_t buf_size, usize_t test_iters) {
function read_whole_file (line 623) | static int read_whole_file(const char *name,
function main (line 658) | int main(int argc, char** argv) {
FILE: source-code/dependencies/xdelta3/testing/checksum_test_c.c
function xd3_large64_cksum_old (line 129) | uint64_t
function xd3_large64_cksum_update_old (line 147) | uint64_t
function xd3_large32_cksum_old (line 160) | uint32_t
function xd3_large32_cksum_update_old (line 178) | uint32_t
FILE: source-code/dependencies/xdelta3/testing/cmp.h
function CmpDifferentBlockBytes (line 16) | static size_t CmpDifferentBlockBytes(const Block &a, const Block &b) {
function xoff_t (line 33) | static xoff_t CmpDifferentBytes(const FileSpec &a, const FileSpec &b) {
function CmpDifferentBlockBytesAtOffset (line 56) | static size_t CmpDifferentBlockBytesAtOffset(const Block &a,
FILE: source-code/dependencies/xdelta3/testing/delta.h
function class (line 17) | class Delta {
FILE: source-code/dependencies/xdelta3/testing/file.h
function class (line 20) | class Block {
function class (line 124) | class FileSpec {
function ModifyTo (line 169) | void ModifyTo(const Mutator &mutator,
function Reset (line 187) | void Reset() {
function PrintData (line 201) | void PrintData() const {
function Get (line 217) | void Get(Block *block, xoff_t offset, size_t size) const {
type BlockIterator (line 249) | typedef BlockIterator iterator;
function class (line 258) | class BlockIterator {
function class (line 326) | class ExtFile {
function class (line 373) | class TmpFile : public ExtFile {
FILE: source-code/dependencies/xdelta3/testing/modify.h
function class (line 17) | class Mutator {
function class (line 25) | class Change {
type list (line 76) | typedef list<Change> ChangeList;
type typename (line 77) | typedef typename ChangeList::const_iterator ConstChangeListIterator;
type typename (line 78) | typedef typename ChangeList::iterator ChangeListIterator;
function class (line 80) | class ChangeListMutator : public Mutator {
function class (line 392) | class Modify1stByte : public Mutator {
FILE: source-code/dependencies/xdelta3/testing/random.h
function class (line 19) | class MTRandom {
function class (line 142) | class MTRandom8 {
FILE: source-code/dependencies/xdelta3/testing/regtest.cc
class Regtest (line 22) | class Regtest {
type Options (line 26) | struct Options {
method Options (line 27) | Options()
method InMemoryEncodeDecode (line 49) | void InMemoryEncodeDecode(const FileSpec &source_file,
method MainEncodeDecode (line 245) | void MainEncodeDecode(const TmpFile &source_file,
method TestProcessMemory (line 283) | int TestProcessMemory (int is_encode,
method EncodeDecodeAPI (line 349) | void EncodeDecodeAPI(const FileSpec &spec0, const FileSpec &spec1,
method TestPrintf (line 388) | void TestPrintf() {
method TestRandomNumbers (line 397) | void TestRandomNumbers() {
method TestRandomFile (line 429) | void TestRandomFile() {
method TestFirstByte (line 476) | void TestFirstByte() {
method TestModifyMutator (line 509) | void TestModifyMutator() {
method TestAddMutator (line 545) | void TestAddMutator() {
method TestDeleteMutator (line 582) | void TestDeleteMutator() {
method TestCopyMutator (line 618) | void TestCopyMutator() {
method TestMoveMutator (line 653) | void TestMoveMutator() {
method TestOverwriteMutator (line 695) | void TestOverwriteMutator() {
method TestNonBlocking (line 732) | void TestNonBlocking() {
method TestEmptyInMemory (line 774) | void TestEmptyInMemory() {
method TestBlockInMemory (line 790) | void TestBlockInMemory() {
method TestSmallStride (line 805) | void TestSmallStride() {
method TestCopyWindow (line 841) | void TestCopyWindow() {
method TestCopyFromEnd (line 894) | void TestCopyFromEnd() {
method TestHalfBlockCopy (line 949) | void TestHalfBlockCopy() {
method FourWayMergeTest (line 1019) | void FourWayMergeTest(const FileSpec &spec0,
method TestMergeCommand1 (line 1105) | void TestMergeCommand1() {
method TestMergeCommand2 (line 1162) | void TestMergeCommand2() {
method TestLastFrontierBlock (line 1219) | void TestLastFrontierBlock() {
function UnitTest (line 1263) | void UnitTest() {
function MainTest (line 1279) | void MainTest() {
function main (line 1297) | int main(int argc, char **argv)
FILE: source-code/dependencies/xdelta3/testing/segment.h
function class (line 17) | class Segment {
function Segment (line 47) | Segment Subseg(size_t start, size_t size) const {
function Fill (line 56) | void Fill(size_t seg_offset, size_t size, uint8_t *data) const {
function string (line 73) | string ToString() const {
type map (line 110) | typedef map<xoff_t, Segment> SegmentMap;
type typename (line 111) | typedef typename SegmentMap::const_iterator ConstSegmentMapIterator;
type typename (line 112) | typedef typename SegmentMap::iterator SegmentMapIterator;
FILE: source-code/dependencies/xdelta3/testing/sizes.h
function T (line 27) | T Get() {
function Done (line 34) | bool Done() {
function Next (line 38) | void Next() {
function class (line 51) | class SmallSizes {
function class (line 70) | class LargeSizes {
type BaseConstants (line 85) | struct BaseConstants {
function BaseConstants (line 92) | struct SmallBlock : public BaseConstants {
function BaseConstants (line 101) | struct LargeBlock : public BaseConstants {
function BaseConstants (line 110) | struct MixedBlock : public BaseConstants {
function BaseConstants (line 119) | struct OversizeBlock : public BaseConstants {
FILE: source-code/dependencies/xdelta3/testing/test.h
function string (line 57) | inline string CommandToString(const vector<const char*> &v) {
FILE: source-code/dependencies/xdelta3/testing/xdelta3-regtest.py
function INPUT_SPEC (line 85) | def INPUT_SPEC(rand):
function c2str (line 153) | def c2str(c):
function SumList (line 157) | def SumList(l):
class StatList (line 163) | class StatList:
method __init__ (line 164) | def __init__(self,l,desc):
function RunCommand (line 190) | def RunCommand(args, ok = [0]):
function RunCommandIO (line 198) | def RunCommandIO(args,infn,outfn):
class TimedTest (line 213) | class TimedTest:
method __init__ (line 214) | def __init__(self, target, source, runnable,
method DoTest (line 240) | def DoTest(self, fname, func):
function Decimals (line 298) | def Decimals(start, end):
function RunSpeedTest (line 312) | def RunSpeedTest():
function SetFileSize (line 333) | def SetFileSize(F,L):
function ReportSpeed (line 340) | def ReportSpeed(L,tr,desc):
class Xdelta3RunClass (line 348) | class Xdelta3RunClass:
method __init__ (line 349) | def __init__(self, extra):
method __str__ (line 353) | def __str__(self):
method New (line 357) | def New(self):
class Xdelta3Runner (line 362) | class Xdelta3Runner:
method __init__ (line 365) | def __init__(self, extra, forkexec=False):
method Encode (line 370) | def Encode(self, target, source, output):
method Decode (line 382) | def Decode(self, input, source, output):
method Verify (line 393) | def Verify(self, target, recon):
method EncodeSize (line 402) | def EncodeSize(self, output):
method Main (line 406) | def Main(self, args):
class Xdelta3Mod1 (line 418) | class Xdelta3Mod1:
method __init__ (line 419) | def __init__(self, file):
method Encode (line 423) | def Encode(self, ignore1, ignore2, ignore3):
method Decode (line 431) | def Decode(self, ignore1, ignore2, ignore3):
method Verify (line 439) | def Verify(self, ignore1, ignore2):
method EncodeSize (line 445) | def EncodeSize(self, ignore1):
class GzipRun1 (line 450) | class GzipRun1:
method Encode (line 451) | def Encode(self, target, source, output):
method Decode (line 456) | def Decode(self, input, source, output):
method Verify (line 461) | def Verify(self, target, recon):
method EncodeSize (line 465) | def EncodeSize(self, output):
class Xdelta1RunClass (line 470) | class Xdelta1RunClass:
method __str__ (line 471) | def __str__(self):
method New (line 475) | def New(self):
class Xdelta1Runner (line 480) | class Xdelta1Runner:
method Encode (line 481) | def Encode(self, target, source, output):
method Decode (line 487) | def Decode(self, input, source, output):
method Verify (line 494) | def Verify(self, target, recon):
method EncodeSize (line 498) | def EncodeSize(self, output):
class SkipRcsException (line 504) | class SkipRcsException:
method __init__ (line 505) | def __init__(self,reason):
class NotEnoughVersions (line 510) | class NotEnoughVersions:
method __init__ (line 511) | def __init__(self):
class CommandError (line 516) | class CommandError:
method __init__ (line 517) | def __init__(self,cmd,str):
class RcsVersion (line 528) | class RcsVersion:
method __init__ (line 529) | def __init__(self,vstr):
method __cmp__ (line 532) | def __cmp__(self,other):
method __str__ (line 535) | def __str__(self):
class RcsFile (line 540) | class RcsFile:
method __init__ (line 542) | def __init__(self, fname):
method SetTotRev (line 548) | def SetTotRev(self,s):
method Rev (line 552) | def Rev(self,s):
method Date (line 560) | def Date(self,s):
method Match (line 564) | def Match(self, line, state, rx, gp, newstate, f):
method Sum1Rlog (line 578) | def Sum1Rlog(self):
method Sum1 (line 599) | def Sum1(self):
method Checkout (line 609) | def Checkout(self,n):
method Vdate (line 638) | def Vdate(self,n):
method Vstr (line 642) | def Vstr(self,n):
method Verf (line 646) | def Verf(self,n):
method FilePairsByDate (line 650) | def FilePairsByDate(self, runclass):
method AppendVersion (line 683) | def AppendVersion(self, f, n):
class RcsFinder (line 692) | class RcsFinder:
method __init__ (line 693) | def __init__(self):
method Scan1 (line 701) | def Scan1(self,dir):
method Crawl (line 722) | def Crawl(self, dir):
method Summarize (line 730) | def Summarize(self):
method AllPairsByDate (line 747) | def AllPairsByDate(self, runclass):
method ReportPairs (line 765) | def ReportPairs(self, name, results):
method MakeBigFiles (line 778) | def MakeBigFiles(self, rand):
method Generator (line 813) | def Generator(self):
function GetTestRcsFiles (line 819) | def GetTestRcsFiles():
class SampleDataTest (line 836) | class SampleDataTest:
method __init__ (line 837) | def __init__(self, dirs):
method Generator (line 867) | def Generator(self):
function ConfigToArgs (line 874) | def ConfigToArgs(config):
class RandomTest (line 892) | class RandomTest:
method __init__ (line 893) | def __init__(self, tnum, tinput, config, syntuple = None):
method __str__ (line 917) | def __str__(self):
method time (line 928) | def time(self):
method size (line 932) | def size(self):
method config (line 936) | def config(self):
method score (line 940) | def score(self):
method tinput (line 944) | def tinput(self):
function PosInAlist (line 949) | def PosInAlist(l, e):
function RandomTestConfigs (line 960) | def RandomTestConfigs(rand, input_configs, num_results):
function RunOptimizationLoop (line 996) | def RunOptimizationLoop(rand, generator, rounds):
function ScoreTests (line 1029) | def ScoreTests(results):
function GraphResults (line 1080) | def GraphResults(desc, results):
function GraphSummary (line 1089) | def GraphSummary(desc, results_ignore):
function RunRegressionTest (line 1210) | def RunRegressionTest(pairs, rounds):
FILE: source-code/dependencies/xdelta3/xdelta3-blkcache.h
type main_blklru (line 19) | typedef struct _main_blklru main_blklru;
type main_blklru_list (line 20) | typedef struct _main_blklru_list main_blklru_list;
type _main_blklru_list (line 25) | struct _main_blklru_list
type _main_blklru (line 31) | struct _main_blklru
function main_lru_reset (line 50) | static void main_lru_reset (void)
function main_lru_cleanup (line 60) | static void main_lru_cleanup (void)
function main_set_source (line 78) | static int
function main_getblk_lru (line 272) | static int
function main_read_seek_source (line 336) | static int
function main_getblk_func (line 460) | static int
FILE: source-code/dependencies/xdelta3/xdelta3-decode.h
function xd3_decode_byte (line 26) | static inline int
function xd3_decode_bytes (line 41) | static inline int
function xd3_decode_init_window (line 76) | static int
function xd3_decode_setup_buffers (line 91) | static int
function xd3_decode_allocate (line 156) | static int
function xd3_decode_section (line 184) | static int
function xd3_decode_parse_halfinst (line 269) | static int
function xd3_decode_instruction (line 362) | static int
function xd3_decode_output_halfinst (line 400) | static int
function xd3_decode_finish_window (line 597) | static int
function xd3_decode_secondary_sections (line 610) | static int
function xd3_decode_sections (line 632) | static int
function xd3_decode_emit (line 726) | static int
function xd3_decode_input (line 808) | int
FILE: source-code/dependencies/xdelta3/xdelta3-djw.h
type djw_stream (line 101) | typedef struct _djw_stream djw_stream;
type djw_heapen (line 102) | typedef struct _djw_heapen djw_heapen;
type djw_prefix (line 103) | typedef struct _djw_prefix djw_prefix;
type djw_weight (line 104) | typedef uint32_t djw_weight;
type _djw_heapen (line 106) | struct _djw_heapen
type _djw_prefix (line 113) | struct _djw_prefix
type _djw_stream (line 122) | struct _djw_stream
function djw_stream (line 222) | static djw_stream*
function djw_init (line 228) | static int
function djw_destroy (line 235) | static void
function heap_less (line 247) | static inline int
function heap_insert (line 255) | static inline void
function djw_heapen (line 271) | static inline djw_heapen*
function heap_check (line 306) | static void
function usize_t (line 324) | static inline usize_t
function djw_update_1_2 (line 336) | static inline void
function djw_init_clen_mtf_1_2 (line 358) | static void
function usize_t (line 378) | static usize_t
function djw_build_codes (line 506) | static void
function djw_compute_mtf_1_2 (line 552) | static void
function usize_t (line 606) | static usize_t
function djw_compute_multi_prefix (line 639) | static void
function djw_compute_prefix_1_2 (line 663) | static void
function djw_encode_prefix (line 674) | static int
function djw_compute_selector_1_2 (line 735) | static void
function xd3_encode_howmany_groups (line 748) | static int
function xd3_encode_huff (line 855) | static int
function djw_build_decoder (line 1338) | static void
function djw_decode_symbol (line 1410) | static inline int
function djw_decode_clclen (line 1479) | static int
function djw_decode_1_2 (line 1534) | static inline int
function djw_decode_prefix (line 1609) | static inline int
function xd3_decode_huff (line 1629) | static int
FILE: source-code/dependencies/xdelta3/xdelta3-fgk.h
type fgk_stream (line 29) | typedef struct _fgk_stream fgk_stream;
type fgk_node (line 30) | typedef struct _fgk_node fgk_node;
type fgk_block (line 31) | typedef struct _fgk_block fgk_block;
type fgk_bit (line 32) | typedef unsigned int fgk_bit;
type fgk_weight (line 33) | typedef uint32_t fgk_weight;
type _fgk_block (line 35) | struct _fgk_block {
type _fgk_node (line 56) | struct _fgk_node
type _fgk_stream (line 78) | struct _fgk_stream
function fgk_stream (line 159) | static fgk_stream* fgk_alloc (xd3_stream *stream /*, int alphabet_size0 */)
function fgk_init (line 188) | static int fgk_init (xd3_stream *stream, fgk_stream *h, int is_encode)
function fgk_swap_ptrs (line 225) | static void fgk_swap_ptrs(fgk_node **one, fgk_node **two)
function usize_t (line 234) | static usize_t fgk_encode_data (fgk_stream* h, usize_t n)
function fgk_bit (line 294) | static inline fgk_bit fgk_get_encoded_bit (fgk_stream *h)
function fgk_update_tree (line 304) | static void fgk_update_tree (fgk_stream *h, usize_t n)
function fgk_move_right (line 328) | static void fgk_move_right (fgk_stream *h, fgk_node *move_fwd)
function fgk_promote (line 400) | static void fgk_promote (fgk_stream *h, fgk_node *node)
function fgk_node (line 461) | static fgk_node* fgk_increase_zero_weight (fgk_stream *h, usize_t n)
function fgk_find_nth_zero (line 548) | static unsigned int fgk_find_nth_zero (fgk_stream* h, usize_t n)
function fgk_eliminate_zero (line 564) | static void fgk_eliminate_zero (fgk_stream* h, fgk_node *node)
function fgk_init_node (line 589) | static void fgk_init_node (fgk_node *node, usize_t i, usize_t size)
function fgk_block (line 620) | static fgk_block* fgk_make_block (fgk_stream *h, fgk_node* lead)
function fgk_free_block (line 634) | static void fgk_free_block (fgk_stream *h, fgk_block *b)
function fgk_factor_remaining (line 642) | static void fgk_factor_remaining (fgk_stream *h)
function fgk_decode_bit (line 663) | static inline int fgk_decode_bit (fgk_stream* h, fgk_bit b)
function usize_t (line 714) | static usize_t fgk_nth_zero (fgk_stream* h, usize_t n)
function usize_t (line 734) | static usize_t fgk_decode_data (fgk_stream* h)
function fgk_destroy (line 767) | static void fgk_destroy (xd3_stream *stream,
function xd3_encode_fgk (line 783) | static int
function xd3_decode_fgk (line 810) | static int
FILE: source-code/dependencies/xdelta3/xdelta3-hash.h
function xd3_scksum (line 47) | static inline uint32_t
function xd3_small_cksum_update (line 55) | static inline uint32_t
function usize_t (line 65) | inline usize_t
function xd3_large32_cksum (line 72) | inline uint32_t
function xd3_large32_cksum_update (line 82) | inline uint32_t
function xd3_large64_cksum (line 91) | inline uint64_t
function xd3_large64_cksum_update (line 101) | inline uint64_t
function usize_t (line 109) | static usize_t
function xd3_size_hashtable (line 129) | int
FILE: source-code/dependencies/xdelta3/xdelta3-internal.h
type main_file (line 21) | typedef struct _main_file main_file;
type main_extcomp (line 22) | typedef struct _main_extcomp main_extcomp;
type main_file_modes (line 85) | typedef enum
type _main_file (line 110) | struct _main_file
function xd3_sizeof_uint32_t (line 237) | static inline uint32_t
function xd3_decode_uint32_t (line 247) | static inline int
function xd3_read_uint32_t (line 251) | static inline int
function xd3_emit_uint32_t (line 257) | static inline int
function xd3_sizeof_uint64_t (line 264) | static inline uint32_t
function xd3_decode_uint64_t (line 280) | static inline int
function xd3_read_uint64_t (line 284) | static inline int
function xd3_emit_uint64_t (line 290) | static inline int
function xd3_sizeof_size (line 304) | static inline uint32_t xd3_sizeof_size (usize_t num)
function xd3_decode_size (line 306) | static inline int xd3_decode_size (xd3_stream *stream, usize_t *valp)
function xd3_read_size (line 308) | static inline int xd3_read_size (xd3_stream *stream, const uint8_t **inpp,
function xd3_emit_size (line 312) | static inline int xd3_emit_size (xd3_stream *stream, xd3_output **output...
function xd3_sizeof_size (line 324) | static inline uint32_t xd3_sizeof_size (usize_t num)
function xd3_decode_size (line 326) | static inline int xd3_decode_size (xd3_stream *stream, usize_t *valp)
function xd3_read_size (line 328) | static inline int xd3_read_size (xd3_stream *stream, const uint8_t **inpp,
function xd3_emit_size (line 332) | static inline int xd3_emit_size (xd3_stream *stream, xd3_output **output...
function xd3_decode_offset (line 341) | static inline int xd3_decode_offset (xd3_stream *stream, xoff_t *valp)
function xd3_emit_offset (line 344) | static inline int xd3_emit_offset (xd3_stream *stream, xd3_output **outp...
function xd3_decode_offset (line 351) | static inline int xd3_decode_offset (xd3_stream *stream, xoff_t *valp)
function xd3_emit_offset (line 354) | static inline int xd3_emit_offset (xd3_stream *stream, xd3_output **outp...
FILE: source-code/dependencies/xdelta3/xdelta3-lzma.h
type xd3_lzma_stream (line 25) | typedef struct _xd3_lzma_stream xd3_lzma_stream;
type _xd3_lzma_stream (line 27) | struct _xd3_lzma_stream {
function xd3_sec_stream (line 33) | static xd3_sec_stream*
function xd3_lzma_destroy (line 39) | static void
function xd3_lzma_init (line 47) | static int
function xd3_decode_lzma (line 85) | static int xd3_decode_lzma (xd3_stream *stream, xd3_lzma_stream *sec,
function xd3_encode_lzma (line 126) | static int xd3_encode_lzma (xd3_stream *stream,
FILE: source-code/dependencies/xdelta3/xdelta3-main.h
function xsnprintf_func (line 69) | int
type xd3_read_flags (line 151) | typedef enum
type xd3_cmd (line 161) | typedef enum
type main_merge (line 186) | typedef struct _main_merge main_merge;
type main_merge_list (line 187) | typedef struct _main_merge_list main_merge_list;
type _main_extcomp (line 191) | struct _main_extcomp
type _main_merge_list (line 207) | struct _main_merge_list
type _main_merge (line 213) | struct _main_merge
function xprintf (line 322) | void
function main_version (line 344) | static int
function main_config (line 355) | static int
function reset_defaults (line 395) | static void
function main_free1 (line 468) | static void
function main_free (line 474) | void
function main_buffree (line 485) | void main_buffree (void *ptr) {
function get_errno (line 495) | static int
function get_millisecs_now (line 545) | long
function get_millisecs_since (line 565) | static long
function main_strtoxoff (line 659) | static int
function main_atoux (line 698) | static int
function main_atou (line 721) | static int
function main_file_init (line 778) | void
function main_file_isopen (line 791) | int
function main_file_close (line 805) | int
function main_file_cleanup (line 834) | void
function main_file_open (line 857) | int
type stat (line 940) | struct stat
function main_file_exists (line 956) | int
function xd3_posix_io (line 970) | static int
function xd3_win32_io (line 1002) | static int
function main_file_read (line 1037) | int
function main_file_write (line 1081) | int
function main_file_seek (line 1117) | static int
function main_write_output (line 1152) | static int
function main_set_secondary_flags (line 1174) | static int
function main_print_overflow (line 1281) | static int
function main_print_window (line 1289) | static int
function main_print_vcdiff_file (line 1405) | static int
function main_print_func (line 1423) | static int
function main_recode_copy (line 1563) | static int
function main_recode_func (line 1592) | static int
function main_init_recode_stream (line 1694) | static int
function main_merge_arguments (line 1732) | static int
function main_merge_func (line 1836) | static int
function main_merge_output (line 1852) | static int
function main_pipe_write (line 2111) | static int
function main_waitpid_check (line 2126) | static int
function main_external_compression_finish (line 2170) | static int
function main_external_compression_cleanup (line 2192) | static void
function main_pipe_copier (line 2211) | static int
function main_input_decompress_setup (line 2276) | static int
function main_secondary_decompress_check (line 2428) | static int
function main_recompress_output (line 2543) | static int
function main_extcomp (line 2632) | static const main_extcomp*
function main_extcomp (line 2649) | static const main_extcomp*
function main_set_appheader (line 2698) | static int
function main_get_appheader_params (line 2757) | static void
function main_get_appheader (line 2809) | static void
function main_read_primary_input (line 2870) | static int
function main_open_output (line 2890) | static int
function usize_t (line 2953) | static usize_t
function main_input (line 2984) | static int
function main_cleanup (line 3480) | static void
function setup_environment (line 3513) | static void
function main (line 3572) | int main (int argc, char **argv)
function main_help (line 3989) | static int
FILE: source-code/dependencies/xdelta3/xdelta3-merge.h
function xd3_whole_state_init (line 23) | static int
function xd3_swap_whole_state (line 47) | static void
function xd3_realloc_buffer (line 60) | static int
function xd3_whole_alloc_winst (line 105) | static int
function xd3_whole_alloc_adds (line 126) | static int
function xd3_whole_alloc_wininfo (line 138) | static int
function xd3_whole_append_inst (line 159) | static int
function xd3_whole_append_window (line 219) | int
function xd3_merge_input_output (line 258) | static int xd3_merge_input_output (xd3_stream *stream,
function xd3_merge_run (line 282) | static int
function xd3_merge_add (line 311) | static int
function xd3_merge_target_copy (line 343) | static int
function xd3_merge_find_position (line 361) | static int
function xd3_merge_source_copy (line 408) | static int
function xd3_merge_inputs (line 530) | int xd3_merge_inputs (xd3_stream *stream,
FILE: source-code/dependencies/xdelta3/xdelta3-second.h
function xd3_bit_state_encode_init (line 19) | static inline void xd3_bit_state_encode_init (bit_state *bits)
function xd3_decode_bits (line 25) | static inline int xd3_decode_bits (xd3_stream *stream,
function xd3_test_clean_bits (line 78) | static int
function xd3_get_secondary (line 94) | static int
function xd3_decode_secondary (line 117) | static int
function xd3_encode_bit (line 175) | static inline int xd3_encode_bit (xd3_stream *stream,
function xd3_flush_bits (line 206) | static inline int xd3_flush_bits (xd3_stream *stream,
function xd3_encode_bits (line 214) | static inline int xd3_encode_bits (xd3_stream *stream,
function xd3_encode_secondary (line 243) | static int
FILE: source-code/dependencies/xdelta3/xdelta3-test.h
type mtrand (line 28) | typedef struct mtrand mtrand;
type mtrand (line 30) | struct mtrand {
function mt_init (line 43) | void mt_init(mtrand *mt, uint32_t seed) {
function mt_random (line 58) | uint32_t mt_random (mtrand *mt) {
function mt_exp_rand (line 100) | static uint32_t
function DOT (line 153) | static void DOT (void) { XPR(NTR "."); }
function do_cmd (line 154) | static int do_cmd (xd3_stream *stream, const char *buf)
function do_fail (line 173) | static int do_fail (xd3_stream *stream, const char *buf)
function test_random_numbers (line 187) | static int
function test_printf_xoff (line 217) | static int
function test_unlink (line 231) | static void
function test_cleanup (line 242) | static void
function test_setup (line 256) | int test_setup (void)
function test_make_inputs (line 283) | static int
function test_compare_files (line 399) | int
function test_copy_to (line 459) | static int
function test_save_copy (line 475) | static int
function test_file_size (line 481) | static int
function test_read_integer_error (line 514) | static int
function test_decode_integer_overflow (line 558) | static int
function test_decode_integer_end_of_input (line 565) | static int
function test_encode_decode_uint32_t (line 664) | static int
function test_encode_decode_uint64_t (line 670) | static int
function test_usize_t_overflow (line 676) | static int
function test_forward_match (line 695) | static int
function test_address_cache (line 723) | static int
function test_compress_text (line 857) | static int
function test_decompress_text (line 901) | static int
function test_decompress_single_bit_error (line 990) | static int
function sec_dist_func1 (line 1142) | static int
function sec_dist_func2 (line 1154) | static int
function sec_dist_func3 (line 1166) | static int
function sec_dist_func4 (line 1178) | static int
function sec_dist_func5 (line 1191) | static int
function sec_dist_func6 (line 1204) | static int
function sec_dist_func7 (line 1217) | static int
function sec_dist_func8 (line 1231) | static int
function sec_dist_func9 (line 1246) | static int
function sec_dist_func10 (line 1292) | static int
function sec_dist_func11 (line 1307) | static int
function test_secondary_decode (line 1325) | static int
function test_secondary (line 1382) | static int
function IF_DJW (line 1514) | IF_FGK (static int test_secondary_fgk (xd3_stream *stream, usize_t gp)
function test_choose_instruction (line 1529) | static int
function test_checksum_step (line 1583) | static int
function test_streaming (line 1629) | static int
function test_compressed_stream_overflow (line 1689) | static int
function test_command_line_arguments (line 1753) | static int
function check_vcdiff_header (line 1863) | static int
function test_recode_command2 (line 1906) | static int
function test_recode_command (line 2058) | static int
function test_secondary_lzma_default (line 2094) | static int test_secondary_lzma_default (xd3_stream *stream, int ignore)
function test_compressed_pipe (line 2142) | static int
function test_externally_compressed_io (line 2200) | static int
function test_source_decompression (line 2250) | static int
function test_force_behavior (line 2343) | static int
function test_stdout_behavior (line 2375) | static int
function test_no_output (line 2409) | static int
function test_appheader (line 2447) | static int
function test_identical_behavior (line 2525) | static int
type string_match_test (line 2649) | typedef struct _string_match_test string_match_test;
type string_match_flags (line 2651) | typedef enum
type _string_match_test (line 2657) | struct _string_match_test
function test_string_matching (line 2714) | static int
function test_iopt_flush_instructions (line 2795) | static int
function test_source_cksum_offset (line 2858) | static int
function test_in_memory (line 2905) | static int
function xd3_selftest (line 2946) | int xd3_selftest (void)
FILE: source-code/dependencies/xdelta3/xdelta3.c
type xd3_secondary_ids (line 323) | typedef enum {
type xd3_secondary_flags (line 329) | typedef enum {
type xd3_section_type (line 336) | typedef enum {
type xd3_rtype (line 344) | typedef unsigned int xd3_rtype;
type _xd3_sec_type (line 546) | struct _xd3_sec_type
type bit_state (line 577) | typedef struct _bit_state bit_state;
type _bit_state (line 578) | struct _bit_state
type _xd3_code_table_sizes (line 769) | struct _xd3_code_table_sizes {
type _xd3_code_table_desc (line 776) | struct _xd3_code_table_desc
function xd3_build_code_table (line 836) | static void
function xd3_dinst (line 905) | static const xd3_dinst*
function xd3_choose_instruction (line 921) | static void
function xd3_swap_uint8p (line 991) | static inline void
function xd3_swap_usize_t (line 999) | static inline void
function xd3_check_pow2 (line 1008) | static int
function usize_t (line 1030) | usize_t
function xoff_t (line 1040) | static xoff_t
function usize_t (line 1050) | static usize_t
function adler32 (line 1084) | static uint32_t adler32 (uint32_t adler, const uint8_t *buf, usize_t len)
function usize_t (line 1124) | static usize_t
function xd3_emit_byte (line 1147) | inline int
function xd3_emit_bytes (line 1171) | inline int
function xd3_alloc_cache (line 1213) | static int
function xd3_init_cache (line 1243) | void
function xd3_update_cache (line 1258) | static void
function xd3_encode_address (line 1275) | static int
function xd3_decode_address (line 1354) | static int
function __xd3_free_func (line 1408) | static void
function xd3_free (line 1435) | static void
function xd3_output (line 1465) | xd3_output*
function usize_t (line 1509) | static usize_t
function xd3_freelist_output (line 1522) | static void
function xd3_free_output (line 1539) | static void
function xd3_free_stream (line 1561) | void
function xd3_config_stream (line 1670) | int
function xoff_t (line 1845) | inline
function usize_t (line 1852) | inline
function xd3_getblk (line 1863) | static int
function xd3_set_source (line 1929) | int
function xd3_set_source_and_size (line 1960) | int
function xd3_abort_stream (line 1981) | void
function xd3_close_stream (line 1988) | int
function xd3_get_appheader (line 2042) | int
function xd3_set_appheader (line 2069) | void
function xd3_iopt_check (line 2079) | static int
function xd3_rinst (line 2089) | static xd3_rinst*
function xd3_iopt_free_nonadd (line 2097) | static void
function xd3_iopt_finish_encoding (line 2110) | static int
function xd3_iopt_add (line 2254) | static int
function xd3_iopt_add_encoding (line 2275) | static int
function xd3_iopt_add_finalize (line 2289) | static int
function xd3_iopt_flush_instructions (line 2312) | static int
function xd3_iopt_get_slot (line 2495) | static int
function xd3_iopt_erase (line 2538) | static void
function usize_t (line 2568) | static usize_t
function xd3_emit_single (line 2587) | static int
function xd3_emit_double (line 2615) | static int
function xd3_emit_run (line 2644) | static int
function xd3_found_match (line 2662) | int
function xd3_emit_hdr (line 2680) | static int
function xd3_encode_buffer_leftover (line 2848) | static int
function xd3_alloc_iopt (line 2909) | static int
function xd3_encode_init (line 2934) | static int
function xd3_encode_init_full (line 3012) | int
function xd3_encode_init_partial (line 3018) | int
function xd3_encode_reset (line 3027) | static void
function xd3_encode_input (line 3070) | int
function xd3_process_stream (line 3299) | int
function xd3_process_memory (line 3374) | static int
function xd3_decode_stream (line 3448) | int
function xd3_decode_memory (line 3461) | int
function xd3_encode_stream (line 3479) | int
function xd3_encode_memory (line 3492) | int
function xd3_string_match_init (line 3518) | static int
function xoff_t (line 3579) | static xoff_t
function xoff_t (line 3600) | static xoff_t
function xd3_srcwin_setup (line 3610) | static int
function xd3_source_match_setup (line 3687) | static int
function usize_t (line 3844) | static inline usize_t
function xd3_source_extend_match (line 3888) | static int
function xd3_scksum_insert (line 4120) | static void
function xd3_check_smatch (line 4141) | static int
function usize_t (line 4169) | static usize_t
function xd3_verify_small_state (line 4290) | static void
function xd3_verify_large_state (line 4301) | static void
function xd3_verify_run_state (line 4309) | static void
function xd3_srcwin_move_point (line 4330) | static int
FILE: source-code/dependencies/xdelta3/xdelta3.h
type pid_t (line 139) | typedef int pid_t;
type ULONGLONG (line 144) | typedef ULONGLONG uint64_t;
type xoff_t (line 175) | typedef uint64_t xoff_t;
type xoff_t (line 178) | typedef unsigned long xoff_t;
type xoff_t (line 181) | typedef size_t xoff_t;
type xoff_t (line 184) | typedef unsigned long long xoff_t;
type xoff_t (line 193) | typedef unsigned int xoff_t;
type xoff_t (line 195) | typedef unsigned long xoff_t;
type xoff_t (line 197) | typedef uint32_t xoff_t;
type usize_t (line 209) | typedef uint64_t usize_t;
type usize_t (line 212) | typedef unsigned long usize_t;
type usize_t (line 215) | typedef size_t usize_t;
type usize_t (line 218) | typedef unsigned long long usize_t;
type usize_t (line 227) | typedef unsigned int usize_t;
type usize_t (line 229) | typedef unsigned long usize_t;
type usize_t (line 231) | typedef uint32_t usize_t;
type xd3_stream (line 331) | typedef struct _xd3_stream xd3_stream;
type xd3_source (line 332) | typedef struct _xd3_source xd3_source;
type xd3_hash_cfg (line 333) | typedef struct _xd3_hash_cfg xd3_hash_cfg;
type xd3_smatcher (line 334) | typedef struct _xd3_smatcher xd3_smatcher;
type xd3_rinst (line 335) | typedef struct _xd3_rinst xd3_rinst;
type xd3_dinst (line 336) | typedef struct _xd3_dinst xd3_dinst;
type xd3_hinst (line 337) | typedef struct _xd3_hinst xd3_hinst;
type xd3_winst (line 338) | typedef struct _xd3_winst xd3_winst;
type xd3_rpage (line 339) | typedef struct _xd3_rpage xd3_rpage;
type xd3_addr_cache (line 340) | typedef struct _xd3_addr_cache xd3_addr_cache;
type xd3_output (line 341) | typedef struct _xd3_output xd3_output;
type xd3_desect (line 342) | typedef struct _xd3_desect xd3_desect;
type xd3_iopt_buflist (line 343) | typedef struct _xd3_iopt_buflist xd3_iopt_buflist;
type xd3_rlist (line 344) | typedef struct _xd3_rlist xd3_rlist;
type xd3_sec_type (line 345) | typedef struct _xd3_sec_type xd3_sec_type;
type xd3_sec_cfg (line 346) | typedef struct _xd3_sec_cfg xd3_sec_cfg;
type xd3_sec_stream (line 347) | typedef struct _xd3_sec_stream xd3_sec_stream;
type xd3_config (line 348) | typedef struct _xd3_config xd3_config;
type xd3_code_table_desc (line 349) | typedef struct _xd3_code_table_desc xd3_code_table_desc;
type xd3_code_table_sizes (line 350) | typedef struct _xd3_code_table_sizes xd3_code_table_sizes;
type xd3_slist (line 351) | typedef struct _xd3_slist xd3_slist;
type xd3_whole_state (line 352) | typedef struct _xd3_whole_state xd3_whole_state;
type xd3_wininfo (line 353) | typedef struct _xd3_wininfo xd3_wininfo;
type xd3_dinst (line 369) | typedef const xd3_dinst* (xd3_code_table_func) (void);
type shortbuf (line 383) | typedef struct {
type xd3_rvalues (line 428) | typedef enum {
type xd3_flags (line 459) | typedef enum
type xd3_smatch_cfg (line 518) | typedef enum
type xd3_match_state (line 542) | typedef enum {
type xd3_encode_state (line 561) | typedef enum {
type xd3_decode_state (line 585) | typedef enum {
type _xd3_rlist (line 631) | struct _xd3_rlist
type _xd3_rinst (line 638) | struct _xd3_rinst
type _xd3_dinst (line 651) | struct _xd3_dinst
type _xd3_hinst (line 660) | struct _xd3_hinst
type _xd3_winst (line 668) | struct _xd3_winst
type _xd3_output (line 678) | struct _xd3_output
type _xd3_desect (line 687) | struct _xd3_desect
type _xd3_addr_cache (line 704) | struct _xd3_addr_cache
type _xd3_iopt_buflist (line 715) | struct _xd3_iopt_buflist
type _xd3_smatcher (line 723) | struct _xd3_smatcher
type _xd3_hash_cfg (line 737) | struct _xd3_hash_cfg
type _xd3_slist (line 749) | struct _xd3_slist
type _xd3_wininfo (line 755) | struct _xd3_wininfo {
type _xd3_whole_state (line 762) | struct _xd3_whole_state {
type _xd3_sec_cfg (line 783) | struct _xd3_sec_cfg
type _xd3_config (line 792) | struct _xd3_config
type _xd3_source (line 826) | struct _xd3_source
type _xd3_stream (line 868) | struct _xd3_stream
function xd3_init_config (line 1332) | static inline
function xd3_avail_input (line 1356) | static inline
function xd3_consume_output (line 1375) | static inline
function xd3_encoder_used_source (line 1382) | static inline
function xoff_t (line 1386) | static inline
function usize_t (line 1390) | static inline
function xd3_set_flags (line 1396) | static inline
function xd3_blksize_div (line 1417) | static inline
function xd3_blksize_add (line 1427) | static inline
FILE: source-code/source/PD-Loader/ModuleList.h
function class (line 38) | class ModuleList
function Clear (line 116) | void Clear()
function HMODULE (line 122) | HMODULE Get(const wchar_t* moduleName) const
FILE: source-code/source/PD-Loader/dllmain.cpp
function iequals (line 16) | bool iequals(std::wstring_view s1, std::wstring_view s2)
function to_wstring (line 25) | std::wstring to_wstring(std::string_view cstr)
function SHGetKnownFolderPath (line 34) | std::wstring SHGetKnownFolderPath(REFKNOWNFOLDERID rfid, DWORD dwFlags, ...
function HMODULE (line 46) | HMODULE LoadLibraryW(const std::wstring& lpLibFileName)
function GetCurrentDirectoryW (line 51) | std::wstring GetCurrentDirectoryW()
function UINT (line 74) | UINT GetPrivateProfileIntW(LPCWSTR lpAppName, LPCWSTR lpKeyName, INT nDe...
function GetSelfName (line 83) | std::wstring GetSelfName()
function GetSections (line 90) | void GetSections(T&& h, Args... args)
type Kernel32ExportsNames (line 109) | enum Kernel32ExportsNames
type Kernel32ExportsData (line 131) | enum Kernel32ExportsData
function LoadOriginalLibrary (line 142) | void LoadOriginalLibrary()
function LoadDVA (line 158) | void LoadDVA(std::wstring &path, LPCWSTR dir, LPCWSTR fileName)
function FindFiles (line 208) | void FindFiles(WIN32_FIND_DATAW* fd)
function LoadPlugins (line 238) | void LoadPlugins()
function LoadEverything (line 271) | void LoadEverything()
function LoadPluginsAndRestoreIAT (line 280) | void LoadPluginsAndRestoreIAT(uintptr_t retaddr)
function CustomGetStartupInfoA (line 311) | void WINAPI CustomGetStartupInfoA(LPSTARTUPINFOA lpStartupInfo)
function CustomGetStartupInfoW (line 317) | void WINAPI CustomGetStartupInfoW(LPSTARTUPINFOW lpStartupInfo)
function HMODULE (line 323) | HMODULE WINAPI CustomGetModuleHandleA(LPCSTR lpModuleName)
function HMODULE (line 329) | HMODULE WINAPI CustomGetModuleHandleW(LPCWSTR lpModuleName)
function FARPROC (line 335) | FARPROC WINAPI CustomGetProcAddress(HMODULE hModule, LPCSTR lpProcName)
function DWORD (line 341) | DWORD WINAPI CustomGetShortPathNameA(LPCSTR lpszLongPath, LPSTR lpszShor...
function BOOL (line 347) | BOOL WINAPI CustomFindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA lpF...
function BOOL (line 353) | BOOL WINAPI CustomFindNextFileW(HANDLE hFindFile, LPWIN32_FIND_DATAW lpF...
function HMODULE (line 359) | HMODULE WINAPI CustomLoadLibraryA(LPCSTR lpLibFileName)
function HMODULE (line 366) | HMODULE WINAPI CustomLoadLibraryW(LPCWSTR lpLibFileName)
function BOOL (line 373) | BOOL WINAPI CustomFreeLibrary(HMODULE hLibModule)
function HANDLE (line 381) | HANDLE WINAPI CustomCreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes...
function HANDLE (line 387) | HANDLE WINAPI CustomCreateEventW(LPSECURITY_ATTRIBUTES lpEventAttributes...
function CustomGetSystemInfo (line 393) | void WINAPI CustomGetSystemInfo(LPSYSTEM_INFO lpSystemInfo)
function LONG (line 399) | LONG WINAPI CustomInterlockedCompareExchange(LONG volatile* Destination,...
function CustomSleep (line 405) | void WINAPI CustomSleep(DWORD dwMilliseconds)
function HookKernel32IAT (line 411) | bool HookKernel32IAT(HMODULE mod, bool exe)
function LONG (line 642) | LONG WINAPI CustomUnhandledExceptionFilter(LPEXCEPTION_POINTERS Exceptio...
function Init (line 730) | void Init()
function BOOL (line 895) | BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID /*lpReserved*/)
FILE: source-code/source/PD-Loader/exception.hpp
class ExceptionTracer (line 56) | class ExceptionTracer
method NewLine (line 84) | void NewLine() { Print("\n%s", spc); }
class StackTrace (line 57) | class StackTrace
class ExceptionTracer (line 72) | class ExceptionTracer
method NewLine (line 84) | void NewLine() { Print("\n%s", spc); }
class StackTracer (line 104) | class StackTracer
type Trace (line 107) | struct Trace
function LONG (line 131) | static LONG CALLBACK TheUnhandledExceptionFilter(LPEXCEPTION_POINTERS pE...
function InstallExceptionCatcher (line 164) | int InstallExceptionCatcher(void(*cb)(const char* log))
function LogException (line 175) | static int LogException(char* buffer, size_t max, LPEXCEPTION_POINTERS p...
function HMODULE (line 623) | static HMODULE GetModuleFromAddress(LPVOID address)
FILE: source-code/source/PD-Loader/framework.h
type shared (line 14) | struct shared
type dnsapi_dll (line 32) | struct dnsapi_dll
function WINAPI (line 270) | WINAPI DnsCancelQueryStub()
function LoadOriginalLibrary (line 275) | void LoadOriginalLibrary(HMODULE module)
type dinput8_dll (line 509) | struct dinput8_dll
function _BreakRecordsIntoBlob (line 530) | void _BreakRecordsIntoBlob() { dnsapi.BreakRecordsIntoBlob(); }
function _CombineRecordsInBlob (line 531) | void _CombineRecordsInBlob() { dnsapi.CombineRecordsInBlob(); }
function _DnsAcquireContextHandle_A (line 532) | void _DnsAcquireContextHandle_A() { dnsapi.DnsAcquireContextHandle_A(); }
function _DnsAcquireContextHandle_W (line 533) | void _DnsAcquireContextHandle_W() { dnsapi.DnsAcquireContextHandle_W(); }
function _DnsAllocateRecord (line 534) | void _DnsAllocateRecord() { dnsapi.DnsAllocateRecord(); }
function _DnsApiAlloc (line 535) | void _DnsApiAlloc() { dnsapi.DnsApiAlloc(); }
function _DnsApiAllocZero (line 536) | void _DnsApiAllocZero() { dnsapi.DnsApiAllocZero(); }
function _DnsApiFree (line 537) | void _DnsApiFree() { dnsapi.DnsApiFree(); }
function _DnsApiHeapReset (line 538) | void _DnsApiHeapReset() { dnsapi.DnsApiHeapReset(); }
function _DnsApiRealloc (line 539) | void _DnsApiRealloc() { dnsapi.DnsApiRealloc(); }
function _DnsApiSetDebugGlobals (line 540) | void _DnsApiSetDebugGlobals() { dnsapi.DnsApiSetDebugGlobals(); }
function _DnsAsyncRegisterHostAddrs (line 541) | void _DnsAsyncRegisterHostAddrs() { dnsapi.DnsAsyncRegisterHostAddrs(); }
function _DnsAsyncRegisterInit (line 542) | void _DnsAsyncRegisterInit() { dnsapi.DnsAsyncRegisterInit(); }
function _DnsAsyncRegisterTerm (line 543) | void _DnsAsyncRegisterTerm() { dnsapi.DnsAsyncRegisterTerm(); }
function _DnsCancelQuery (line 544) | void _DnsCancelQuery() { dnsapi.DnsCancelQuery(); }
function _DnsCopyStringEx (line 545) | void _DnsCopyStringEx() { dnsapi.DnsCopyStringEx(); }
function _DnsCreateReverseNameStringForIpAddress (line 546) | void _DnsCreateReverseNameStringForIpAddress() { dnsapi.DnsCreateReverse...
function _DnsCreateStandardDnsNameCopy (line 547) | void _DnsCreateStandardDnsNameCopy() { dnsapi.DnsCreateStandardDnsNameCo...
function _DnsCreateStringCopy (line 548) | void _DnsCreateStringCopy() { dnsapi.DnsCreateStringCopy(); }
function _DnsDhcpRegisterAddrs (line 549) | void _DnsDhcpRegisterAddrs() { dnsapi.DnsDhcpRegisterAddrs(); }
function _DnsDhcpRegisterHostAddrs (line 550) | void _DnsDhcpRegisterHostAddrs() { dnsapi.DnsDhcpRegisterHostAddrs(); }
function _DnsDhcpRegisterInit (line 551) | void _DnsDhcpRegisterInit() { dnsapi.DnsDhcpRegisterInit(); }
function _DnsDhcpRegisterTerm (line 552) | void _DnsDhcpRegisterTerm() { dnsapi.DnsDhcpRegisterTerm(); }
function _DnsDhcpRemoveRegistrations (line 553) | void _DnsDhcpRemoveRegistrations() { dnsapi.DnsDhcpRemoveRegistrations(); }
function _DnsDhcpSrvRegisterHostAddr (line 554) | void _DnsDhcpSrvRegisterHostAddr() { dnsapi.DnsDhcpSrvRegisterHostAddr(); }
function _DnsDhcpSrvRegisterHostName (line 556) | void _DnsDhcpSrvRegisterHostName() { dnsapi.DnsDhcpSrvRegisterHostName(); }
function _DnsDhcpSrvRegisterInit (line 558) | void _DnsDhcpSrvRegisterInit() { dnsapi.DnsDhcpSrvRegisterInit(); }
function _DnsDhcpSrvRegisterInitialize (line 559) | void _DnsDhcpSrvRegisterInitialize() { dnsapi.DnsDhcpSrvRegisterInitiali...
function _DnsDhcpSrvRegisterTerm (line 560) | void _DnsDhcpSrvRegisterTerm() { dnsapi.DnsDhcpSrvRegisterTerm(); }
function _DnsDowncaseDnsNameLabel (line 561) | void _DnsDowncaseDnsNameLabel() { dnsapi.DnsDowncaseDnsNameLabel(); }
function _DnsExtractRecordsFromMessage_UTF8 (line 562) | void _DnsExtractRecordsFromMessage_UTF8() { dnsapi.DnsExtractRecordsFrom...
function _DnsExtractRecordsFromMessage_W (line 563) | void _DnsExtractRecordsFromMessage_W() { dnsapi.DnsExtractRecordsFromMes...
function _DnsFindAuthoritativeZone (line 564) | void _DnsFindAuthoritativeZone() { dnsapi.DnsFindAuthoritativeZone(); }
function _DnsFlushResolverCache (line 565) | void _DnsFlushResolverCache() { dnsapi.DnsFlushResolverCache(); }
function _DnsFlushResolverCacheEntry_A (line 566) | void _DnsFlushResolverCacheEntry_A() { dnsapi.DnsFlushResolverCacheEntry...
function _DnsFlushResolverCacheEntry_UTF8 (line 567) | void _DnsFlushResolverCacheEntry_UTF8() { dnsapi.DnsFlushResolverCacheEn...
function _DnsFlushResolverCacheEntry_W (line 568) | void _DnsFlushResolverCacheEntry_W() { dnsapi.DnsFlushResolverCacheEntry...
function _DnsFree (line 569) | void _DnsFree() { dnsapi.DnsFree(); }
function _DnsFreeConfigStructure (line 570) | void _DnsFreeConfigStructure() { dnsapi.DnsFreeConfigStructure(); }
function _DnsGetBufferLengthForStringCopy (line 573) | void _DnsGetBufferLengthForStringCopy() { dnsapi.DnsGetBufferLengthForSt...
function _DnsGetCacheDataTable (line 574) | void _DnsGetCacheDataTable() { dnsapi.DnsGetCacheDataTable(); }
function _DnsGetDnsServerList (line 575) | void _DnsGetDnsServerList() { dnsapi.DnsGetDnsServerList(); }
function _DnsGetDomainName (line 576) | void _DnsGetDomainName() { dnsapi.DnsGetDomainName(); }
function _DnsGetLastFailedUpdateInfo (line 577) | void _DnsGetLastFailedUpdateInfo() { dnsapi.DnsGetLastFailedUpdateInfo(); }
function _DnsGetPrimaryDomainName_A (line 580) | void _DnsGetPrimaryDomainName_A() { dnsapi.DnsGetPrimaryDomainName_A(); }
function _DnsGlobals (line 583) | void _DnsGlobals() { dnsapi.DnsGlobals(); }
function _DnsIpv6AddressToString (line 584) | void _DnsIpv6AddressToString() { dnsapi.DnsIpv6AddressToString(); }
function _DnsIpv6StringToAddress (line 585) | void _DnsIpv6StringToAddress() { dnsapi.DnsIpv6StringToAddress(); }
function _DnsIsAMailboxType (line 586) | void _DnsIsAMailboxType() { dnsapi.DnsIsAMailboxType(); }
function _DnsIsStatusRcode (line 587) | void _DnsIsStatusRcode() { dnsapi.DnsIsStatusRcode(); }
function _DnsIsStringCountValidForTextType (line 588) | void _DnsIsStringCountValidForTextType() { dnsapi.DnsIsStringCountValidF...
function _DnsLogEvent (line 589) | void _DnsLogEvent() { dnsapi.DnsLogEvent(); }
function _DnsLogIn (line 590) | void _DnsLogIn() { dnsapi.DnsLogIn(); }
function _DnsLogInit (line 591) | void _DnsLogInit() { dnsapi.DnsLogInit(); }
function _DnsLogIt (line 592) | void _DnsLogIt() { dnsapi.DnsLogIt(); }
function _DnsLogOut (line 593) | void _DnsLogOut() { dnsapi.DnsLogOut(); }
function _DnsLogTime (line 594) | void _DnsLogTime() { dnsapi.DnsLogTime(); }
function _DnsMapRcodeToStatus (line 595) | void _DnsMapRcodeToStatus() { dnsapi.DnsMapRcodeToStatus(); }
function _DnsModifyRecordsInSet_A (line 596) | void _DnsModifyRecordsInSet_A() { dnsapi.DnsModifyRecordsInSet_A(); }
function _DnsModifyRecordsInSet_UTF8 (line 597) | void _DnsModifyRecordsInSet_UTF8() { dnsapi.DnsModifyRecordsInSet_UTF8(); }
function _DnsModifyRecordsInSet_W (line 598) | void _DnsModifyRecordsInSet_W() { dnsapi.DnsModifyRecordsInSet_W(); }
function _DnsNameCompareEx_A (line 599) | void _DnsNameCompareEx_A() { dnsapi.DnsNameCompareEx_A(); }
function _DnsNameCompareEx_UTF8 (line 600) | void _DnsNameCompareEx_UTF8() { dnsapi.DnsNameCompareEx_UTF8(); }
function _DnsNameCompareEx_W (line 601) | void _DnsNameCompareEx_W() { dnsapi.DnsNameCompareEx_W(); }
function _DnsNameCompare_A (line 602) | void _DnsNameCompare_A() { dnsapi.DnsNameCompare_A(); }
function _DnsNameCompare_UTF8 (line 603) | void _DnsNameCompare_UTF8() { dnsapi.DnsNameCompare_UTF8(); }
function _DnsNameCompare_W (line 604) | void _DnsNameCompare_W() { dnsapi.DnsNameCompare_W(); }
function _DnsNameCopy (line 605) | void _DnsNameCopy() { dnsapi.DnsNameCopy(); }
function _DnsNameCopyAllocate (line 606) | void _DnsNameCopyAllocate() { dnsapi.DnsNameCopyAllocate(); }
function _DnsNetworkInfo_CreateFromFAZ (line 607) | void _DnsNetworkInfo_CreateFromFAZ() { dnsapi.DnsNetworkInfo_CreateFromF...
function _DnsNetworkInformation_CreateFromFAZ (line 608) | void _DnsNetworkInformation_CreateFromFAZ() { dnsapi.DnsNetworkInformati...
function _DnsNotifyResolver (line 609) | void _DnsNotifyResolver() { dnsapi.DnsNotifyResolver(); }
function _DnsNotifyResolverClusterIp (line 610) | void _DnsNotifyResolverClusterIp() { dnsapi.DnsNotifyResolverClusterIp(); }
function _DnsNotifyResolverEx (line 611) | void _DnsNotifyResolverEx() { dnsapi.DnsNotifyResolverEx(); }
function _DnsQueryConfig (line 612) | void _DnsQueryConfig() { dnsapi.DnsQueryConfig(); }
function _DnsQueryConfigAllocEx (line 613) | void _DnsQueryConfigAllocEx() { dnsapi.DnsQueryConfigAllocEx(); }
function _DnsQueryConfigDword (line 614) | void _DnsQueryConfigDword() { dnsapi.DnsQueryConfigDword(); }
function _DnsQueryEx (line 615) | void _DnsQueryEx() { dnsapi.DnsQueryEx(); }
function _DnsQueryExA (line 616) | void _DnsQueryExA() { dnsapi.DnsQueryExA(); }
function _DnsQueryExUTF8 (line 617) | void _DnsQueryExUTF8() { dnsapi.DnsQueryExUTF8(); }
function _DnsQueryExW (line 618) | void _DnsQueryExW() { dnsapi.DnsQueryExW(); }
function _DnsQuery_A (line 619) | void _DnsQuery_A() { dnsapi.DnsQuery_A(); }
function _DnsQuery_UTF8 (line 620) | void _DnsQuery_UTF8() { dnsapi.DnsQuery_UTF8(); }
function _DnsQuery_W (line 621) | void _DnsQuery_W() { dnsapi.DnsQuery_W(); }
function _DnsRecordBuild_UTF8 (line 622) | void _DnsRecordBuild_UTF8() { dnsapi.DnsRecordBuild_UTF8(); }
function _DnsRecordBuild_W (line 623) | void _DnsRecordBuild_W() { dnsapi.DnsRecordBuild_W(); }
function _DnsRecordCompare (line 624) | void _DnsRecordCompare() { dnsapi.DnsRecordCompare(); }
function _DnsRecordCopyEx (line 625) | void _DnsRecordCopyEx() { dnsapi.DnsRecordCopyEx(); }
function _DnsRecordListFree (line 626) | void _DnsRecordListFree() { dnsapi.DnsRecordListFree(); }
function _DnsRecordSetCompare (line 627) | void _DnsRecordSetCompare() { dnsapi.DnsRecordSetCompare(); }
function _DnsRecordSetCopyEx (line 628) | void _DnsRecordSetCopyEx() { dnsapi.DnsRecordSetCopyEx(); }
function _DnsRecordSetDetach (line 629) | void _DnsRecordSetDetach() { dnsapi.DnsRecordSetDetach(); }
function _DnsRecordStringForType (line 630) | void _DnsRecordStringForType() { dnsapi.DnsRecordStringForType(); }
function _DnsRecordStringForWritableType (line 631) | void _DnsRecordStringForWritableType() { dnsapi.DnsRecordStringForWritab...
function _DnsRecordTypeForName (line 632) | void _DnsRecordTypeForName() { dnsapi.DnsRecordTypeForName(); }
function _DnsRegisterClusterAddress (line 633) | void _DnsRegisterClusterAddress() { dnsapi.DnsRegisterClusterAddress(); }
function _DnsReleaseContextHandle (line 634) | void _DnsReleaseContextHandle() { dnsapi.DnsReleaseContextHandle(); }
function _DnsRemoveRegistrations (line 635) | void _DnsRemoveRegistrations() { dnsapi.DnsRemoveRegistrations(); }
function _DnsReplaceRecordSetA (line 636) | void _DnsReplaceRecordSetA() { dnsapi.DnsReplaceRecordSetA(); }
function _DnsReplaceRecordSetUTF8 (line 637) | void _DnsReplaceRecordSetUTF8() { dnsapi.DnsReplaceRecordSetUTF8(); }
function _DnsReplaceRecordSetW (line 638) | void _DnsReplaceRecordSetW() { dnsapi.DnsReplaceRecordSetW(); }
function _DnsResolverOp (line 639) | void _DnsResolverOp() { dnsapi.DnsResolverOp(); }
function _DnsScreenLocalAddrsForRegistration (line 640) | void _DnsScreenLocalAddrsForRegistration() { dnsapi.DnsScreenLocalAddrsF...
function _DnsSetConfigDword (line 641) | void _DnsSetConfigDword() { dnsapi.DnsSetConfigDword(); }
function _DnsStatusString (line 642) | void _DnsStatusString() { dnsapi.DnsStatusString(); }
function _DnsStringCopyAllocateEx (line 643) | void _DnsStringCopyAllocateEx() { dnsapi.DnsStringCopyAllocateEx(); }
function _DnsUnicodeToUtf8 (line 645) | void _DnsUnicodeToUtf8() { dnsapi.DnsUnicodeToUtf8(); }
function _DnsUpdate (line 646) | void _DnsUpdate() { dnsapi.DnsUpdate(); }
function _DnsUpdateTest_A (line 648) | void _DnsUpdateTest_A() { dnsapi.DnsUpdateTest_A(); }
function _DnsUpdateTest_UTF8 (line 649) | void _DnsUpdateTest_UTF8() { dnsapi.DnsUpdateTest_UTF8(); }
function _DnsUpdateTest_W (line 650) | void _DnsUpdateTest_W() { dnsapi.DnsUpdateTest_W(); }
function _DnsUtf8ToUnicode (line 651) | void _DnsUtf8ToUnicode() { dnsapi.DnsUtf8ToUnicode(); }
function _DnsValidateNameOrIp_TempW (line 652) | void _DnsValidateNameOrIp_TempW() { dnsapi.DnsValidateNameOrIp_TempW(); }
function _DnsValidateName_A (line 653) | void _DnsValidateName_A() { dnsapi.DnsValidateName_A(); }
function _DnsValidateName_UTF8 (line 654) | void _DnsValidateName_UTF8() { dnsapi.DnsValidateName_UTF8(); }
function _DnsValidateName_W (line 655) | void _DnsValidateName_W() { dnsapi.DnsValidateName_W(); }
function _DnsValidateUtf8Byte (line 661) | void _DnsValidateUtf8Byte() { dnsapi.DnsValidateUtf8Byte(); }
function _DnsWriteQuestionToBuffer_UTF8 (line 662) | void _DnsWriteQuestionToBuffer_UTF8() { dnsapi.DnsWriteQuestionToBuffer_...
function _DnsWriteQuestionToBuffer_W (line 663) | void _DnsWriteQuestionToBuffer_W() { dnsapi.DnsWriteQuestionToBuffer_W(); }
function _DnsWriteReverseNameStringForIpAddress (line 664) | void _DnsWriteReverseNameStringForIpAddress() { dnsapi.DnsWriteReverseNa...
function _Dns_AddRecordsToMessage (line 665) | void _Dns_AddRecordsToMessage() { dnsapi.Dns_AddRecordsToMessage(); }
function _Dns_AllocateMsgBuf (line 666) | void _Dns_AllocateMsgBuf() { dnsapi.Dns_AllocateMsgBuf(); }
function _Dns_BuildPacket (line 667) | void _Dns_BuildPacket() { dnsapi.Dns_BuildPacket(); }
function _Dns_CleanupWinsock (line 668) | void _Dns_CleanupWinsock() { dnsapi.Dns_CleanupWinsock(); }
function _Dns_CloseConnection (line 669) | void _Dns_CloseConnection() { dnsapi.Dns_CloseConnection(); }
function _Dns_CloseSocket (line 670) | void _Dns_CloseSocket() { dnsapi.Dns_CloseSocket(); }
function _Dns_CreateMulticastSocket (line 671) | void _Dns_CreateMulticastSocket() { dnsapi.Dns_CreateMulticastSocket(); }
function _Dns_CreateSocket (line 672) | void _Dns_CreateSocket() { dnsapi.Dns_CreateSocket(); }
function _Dns_CreateSocketEx (line 673) | void _Dns_CreateSocketEx() { dnsapi.Dns_CreateSocketEx(); }
function _Dns_ExtractRecordsFromMessage (line 674) | void _Dns_ExtractRecordsFromMessage() { dnsapi.Dns_ExtractRecordsFromMes...
function _Dns_FindAuthoritativeZoneLib (line 675) | void _Dns_FindAuthoritativeZoneLib() { dnsapi.Dns_FindAuthoritativeZoneL...
function _Dns_FreeMsgBuf (line 676) | void _Dns_FreeMsgBuf() { dnsapi.Dns_FreeMsgBuf(); }
function _Dns_GetRandomXid (line 677) | void _Dns_GetRandomXid() { dnsapi.Dns_GetRandomXid(); }
function _Dns_InitializeMsgBuf (line 678) | void _Dns_InitializeMsgBuf() { dnsapi.Dns_InitializeMsgBuf(); }
function _Dns_InitializeMsgRemoteSockaddr (line 679) | void _Dns_InitializeMsgRemoteSockaddr() { dnsapi.Dns_InitializeMsgRemote...
function _Dns_InitializeWinsock (line 680) | void _Dns_InitializeWinsock() { dnsapi.Dns_InitializeWinsock(); }
function _Dns_OpenTcpConnectionAndSend (line 681) | void _Dns_OpenTcpConnectionAndSend() { dnsapi.Dns_OpenTcpConnectionAndSe...
function _Dns_ParseMessage (line 682) | void _Dns_ParseMessage() { dnsapi.Dns_ParseMessage(); }
function _Dns_ParsePacketRecord (line 683) | void _Dns_ParsePacketRecord() { dnsapi.Dns_ParsePacketRecord(); }
function _Dns_PingAdapterServers (line 684) | void _Dns_PingAdapterServers() { dnsapi.Dns_PingAdapterServers(); }
function _Dns_ReadPacketName (line 685) | void _Dns_ReadPacketName() { dnsapi.Dns_ReadPacketName(); }
function _Dns_ReadPacketNameAllocate (line 686) | void _Dns_ReadPacketNameAllocate() { dnsapi.Dns_ReadPacketNameAllocate(); }
function _Dns_ReadRecordStructureFromPacket (line 687) | void _Dns_ReadRecordStructureFromPacket() { dnsapi.Dns_ReadRecordStructu...
function _Dns_RecvTcp (line 688) | void _Dns_RecvTcp() { dnsapi.Dns_RecvTcp(); }
function _Dns_ResetNetworkInfo (line 689) | void _Dns_ResetNetworkInfo() { dnsapi.Dns_ResetNetworkInfo(); }
function _Dns_SendAndRecvUdp (line 690) | void _Dns_SendAndRecvUdp() { dnsapi.Dns_SendAndRecvUdp(); }
function _Dns_SendEx (line 691) | void _Dns_SendEx() { dnsapi.Dns_SendEx(); }
function _Dns_SetRecordDatalength (line 692) | void _Dns_SetRecordDatalength() { dnsapi.Dns_SetRecordDatalength(); }
function _Dns_SetRecordsSection (line 693) | void _Dns_SetRecordsSection() { dnsapi.Dns_SetRecordsSection(); }
function _Dns_SetRecordsTtl (line 694) | void _Dns_SetRecordsTtl() { dnsapi.Dns_SetRecordsTtl(); }
function _Dns_SkipPacketName (line 695) | void _Dns_SkipPacketName() { dnsapi.Dns_SkipPacketName(); }
function _Dns_SkipToRecord (line 696) | void _Dns_SkipToRecord() { dnsapi.Dns_SkipToRecord(); }
function _Dns_UpdateLib (line 697) | void _Dns_UpdateLib() { dnsapi.Dns_UpdateLib(); }
function _Dns_UpdateLibEx (line 698) | void _Dns_UpdateLibEx() { dnsapi.Dns_UpdateLibEx(); }
function _Dns_WriteDottedNameToPacket (line 699) | void _Dns_WriteDottedNameToPacket() { dnsapi.Dns_WriteDottedNameToPacket...
function _Dns_WriteQuestionToMessage (line 700) | void _Dns_WriteQuestionToMessage() { dnsapi.Dns_WriteQuestionToMessage(); }
function _Dns_WriteRecordStructureToPacketEx (line 701) | void _Dns_WriteRecordStructureToPacketEx() { dnsapi.Dns_WriteRecordStruc...
function _ExtraInfo_Init (line 702) | void _ExtraInfo_Init() { dnsapi.ExtraInfo_Init(); }
function _Faz_AreServerListsInSameNameSpace (line 703) | void _Faz_AreServerListsInSameNameSpace() { dnsapi.Faz_AreServerListsInS...
function _GetCurrentTimeInSeconds (line 705) | void _GetCurrentTimeInSeconds() { dnsapi.GetCurrentTimeInSeconds(); }
function _HostsFile_Close (line 706) | void _HostsFile_Close() { dnsapi.HostsFile_Close(); }
function _HostsFile_Open (line 707) | void _HostsFile_Open() { dnsapi.HostsFile_Open(); }
function _HostsFile_ReadLine (line 708) | void _HostsFile_ReadLine() { dnsapi.HostsFile_ReadLine(); }
function _IpHelp_IsAddrOnLink (line 709) | void _IpHelp_IsAddrOnLink() { dnsapi.IpHelp_IsAddrOnLink(); }
function _Local_GetRecordsForLocalName (line 710) | void _Local_GetRecordsForLocalName() { dnsapi.Local_GetRecordsForLocalNa...
function _Local_GetRecordsForLocalNameEx (line 711) | void _Local_GetRecordsForLocalNameEx() { dnsapi.Local_GetRecordsForLocal...
function _NetInfo_Build (line 712) | void _NetInfo_Build() { dnsapi.NetInfo_Build(); }
function _NetInfo_Clean (line 713) | void _NetInfo_Clean() { dnsapi.NetInfo_Clean(); }
function _NetInfo_Copy (line 714) | void _NetInfo_Copy() { dnsapi.NetInfo_Copy(); }
function _NetInfo_Free (line 715) | void _NetInfo_Free() { dnsapi.NetInfo_Free(); }
function _NetInfo_GetAdapterByAddress (line 716) | void _NetInfo_GetAdapterByAddress() { dnsapi.NetInfo_GetAdapterByAddress...
function _NetInfo_GetAdapterByInterfaceIndex (line 717) | void _NetInfo_GetAdapterByInterfaceIndex() { dnsapi.NetInfo_GetAdapterBy...
function _NetInfo_GetAdapterByName (line 718) | void _NetInfo_GetAdapterByName() { dnsapi.NetInfo_GetAdapterByName(); }
function _NetInfo_IsAddrConfig (line 719) | void _NetInfo_IsAddrConfig() { dnsapi.NetInfo_IsAddrConfig(); }
function _NetInfo_IsForUpdate (line 720) | void _NetInfo_IsForUpdate() { dnsapi.NetInfo_IsForUpdate(); }
function _NetInfo_ResetServerPriorities (line 721) | void _NetInfo_ResetServerPriorities() { dnsapi.NetInfo_ResetServerPriori...
function _QueryDirectEx (line 723) | void _QueryDirectEx() { dnsapi.QueryDirectEx(); }
function _Query_Main (line 724) | void _Query_Main() { dnsapi.Query_Main(); }
function _Reg_FreeUpdateInfo (line 725) | void _Reg_FreeUpdateInfo() { dnsapi.Reg_FreeUpdateInfo(); }
function _Reg_GetValueEx (line 726) | void _Reg_GetValueEx() { dnsapi.Reg_GetValueEx(); }
function _Reg_ReadGlobalsEx (line 727) | void _Reg_ReadGlobalsEx() { dnsapi.Reg_ReadGlobalsEx(); }
function _Reg_ReadUpdateInfo (line 728) | void _Reg_ReadUpdateInfo() { dnsapi.Reg_ReadUpdateInfo(); }
function _Security_ContextListTimeout (line 729) | void _Security_ContextListTimeout() { dnsapi.Security_ContextListTimeout...
function _Send_AndRecvUdpWithParam (line 730) | void _Send_AndRecvUdpWithParam() { dnsapi.Send_AndRecvUdpWithParam(); }
function _Send_MessagePrivate (line 731) | void _Send_MessagePrivate() { dnsapi.Send_MessagePrivate(); }
function _Send_OpenTcpConnectionAndSend (line 732) | void _Send_OpenTcpConnectionAndSend() { dnsapi.Send_OpenTcpConnectionAnd...
function _Socket_CacheCleanup (line 733) | void _Socket_CacheCleanup() { dnsapi.Socket_CacheCleanup(); }
function _Socket_CacheInit (line 734) | void _Socket_CacheInit() { dnsapi.Socket_CacheInit(); }
function _Socket_CleanupWinsock (line 735) | void _Socket_CleanupWinsock() { dnsapi.Socket_CleanupWinsock(); }
function _Socket_ClearMessageSockets (line 736) | void _Socket_ClearMessageSockets() { dnsapi.Socket_ClearMessageSockets(); }
function _Socket_CloseEx (line 737) | void _Socket_CloseEx() { dnsapi.Socket_CloseEx(); }
function _Socket_CloseMessageSockets (line 738) | void _Socket_CloseMessageSockets() { dnsapi.Socket_CloseMessageSockets(); }
function _Socket_Create (line 739) | void _Socket_Create() { dnsapi.Socket_Create(); }
function _Socket_CreateMulticast (line 740) | void _Socket_CreateMulticast() { dnsapi.Socket_CreateMulticast(); }
function _Socket_InitWinsock (line 741) | void _Socket_InitWinsock() { dnsapi.Socket_InitWinsock(); }
function _Socket_JoinMulticast (line 742) | void _Socket_JoinMulticast() { dnsapi.Socket_JoinMulticast(); }
function _Socket_RecvFrom (line 743) | void _Socket_RecvFrom() { dnsapi.Socket_RecvFrom(); }
function _Socket_SetMulticastInterface (line 744) | void _Socket_SetMulticastInterface() { dnsapi.Socket_SetMulticastInterfa...
function _Socket_SetMulticastLoopBack (line 745) | void _Socket_SetMulticastLoopBack() { dnsapi.Socket_SetMulticastLoopBack...
function _Socket_SetTtl (line 746) | void _Socket_SetTtl() { dnsapi.Socket_SetTtl(); }
function _Socket_TcpListen (line 747) | void _Socket_TcpListen() { dnsapi.Socket_TcpListen(); }
function _Update_ReplaceAddressRecordsW (line 749) | void _Update_ReplaceAddressRecordsW() { dnsapi.Update_ReplaceAddressReco...
function _Util_IsIp6Running (line 750) | void _Util_IsIp6Running() { dnsapi.Util_IsIp6Running(); }
type HRESULT (line 752) | typedef HRESULT(*fn_DirectInput8Create)(HINSTANCE hinst, DWORD dwVersion...
function _DirectInput8Create (line 753) | void _DirectInput8Create() { (fn_DirectInput8Create)dinput8.DirectInput8...
function _DllRegisterServer (line 755) | void _DllRegisterServer() { shared.DllRegisterServer(); }
function _DllUnregisterServer (line 756) | void _DllUnregisterServer() { shared.DllUnregisterServer(); }
function _DllCanUnloadNow (line 757) | void _DllCanUnloadNow() { shared.DllCanUnloadNow(); }
function _DllGetClassObject (line 758) | void _DllGetClassObject() { shared.DllGetClassObject(); }
FILE: source-code/source/fakedll/ModuleList.h
function class (line 38) | class ModuleList
function Clear (line 116) | void Clear()
function HMODULE (line 122) | HMODULE Get(const wchar_t* moduleName) const
FILE: source-code/source/fakedll/dllmain.cpp
function iequals (line 7) | bool iequals(std::wstring_view s1, std::wstring_view s2)
function to_wstring (line 16) | std::wstring to_wstring(std::string_view cstr)
function SHGetKnownFolderPath (line 25) | std::wstring SHGetKnownFolderPath(REFKNOWNFOLDERID rfid, DWORD dwFlags, ...
function HMODULE (line 37) | HMODULE LoadLibraryW(const std::wstring& lpLibFileName)
function GetCurrentDirectoryW (line 42) | std::wstring GetCurrentDirectoryW()
function UINT (line 65) | UINT GetPrivateProfileIntW(LPCWSTR lpAppName, LPCWSTR lpKeyName, INT nDe...
function GetSelfName (line 74) | std::wstring GetSelfName()
function GetSections (line 81) | void GetSections(T&& h, Args... args)
type Kernel32ExportsNames (line 100) | enum Kernel32ExportsNames
type Kernel32ExportsData (line 122) | enum Kernel32ExportsData
function LoadOriginalLibrary (line 133) | void LoadOriginalLibrary()
function FindFiles (line 146) | void FindFiles(WIN32_FIND_DATAW* fd)
function LoadPlugins (line 196) | void LoadPlugins()
function InjectCode (line 218) | void InjectCode(void* address, const std::vector<uint8_t> data)
function LoadEverything (line 229) | void LoadEverything()
function LoadPluginsAndRestoreIAT (line 240) | void LoadPluginsAndRestoreIAT(uintptr_t retaddr)
function CustomGetStartupInfoA (line 271) | void WINAPI CustomGetStartupInfoA(LPSTARTUPINFOA lpStartupInfo)
function CustomGetStartupInfoW (line 277) | void WINAPI CustomGetStartupInfoW(LPSTARTUPINFOW lpStartupInfo)
function HMODULE (line 283) | HMODULE WINAPI CustomGetModuleHandleA(LPCSTR lpModuleName)
function HMODULE (line 289) | HMODULE WINAPI CustomGetModuleHandleW(LPCWSTR lpModuleName)
function FARPROC (line 295) | FARPROC WINAPI CustomGetProcAddress(HMODULE hModule, LPCSTR lpProcName)
function DWORD (line 301) | DWORD WINAPI CustomGetShortPathNameA(LPCSTR lpszLongPath, LPSTR lpszShor...
function BOOL (line 307) | BOOL WINAPI CustomFindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA lpF...
function BOOL (line 313) | BOOL WINAPI CustomFindNextFileW(HANDLE hFindFile, LPWIN32_FIND_DATAW lpF...
function HMODULE (line 319) | HMODULE WINAPI CustomLoadLibraryA(LPCSTR lpLibFileName)
function HMODULE (line 326) | HMODULE WINAPI CustomLoadLibraryW(LPCWSTR lpLibFileName)
function BOOL (line 333) | BOOL WINAPI CustomFreeLibrary(HMODULE hLibModule)
function HANDLE (line 341) | HANDLE WINAPI CustomCreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes...
function HANDLE (line 347) | HANDLE WINAPI CustomCreateEventW(LPSECURITY_ATTRIBUTES lpEventAttributes...
function CustomGetSystemInfo (line 353) | void WINAPI CustomGetSystemInfo(LPSYSTEM_INFO lpSystemInfo)
function LONG (line 359) | LONG WINAPI CustomInterlockedCompareExchange(LONG volatile* Destination,...
function CustomSleep (line 365) | void WINAPI CustomSleep(DWORD dwMilliseconds)
function HookKernel32IAT (line 371) | bool HookKernel32IAT(HMODULE mod, bool exe)
function LONG (line 593) | LONG WINAPI CustomUnhandledExceptionFilter(LPEXCEPTION_POINTERS Exceptio...
function Init (line 681) | void Init()
function BOOL (line 714) | BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID /*lpReserved*/)
FILE: source-code/source/fakedll/exception.hpp
class ExceptionTracer (line 56) | class ExceptionTracer
method NewLine (line 84) | void NewLine() { Print("\n%s", spc); }
class StackTrace (line 57) | class StackTrace
class ExceptionTracer (line 72) | class ExceptionTracer
method NewLine (line 84) | void NewLine() { Print("\n%s", spc); }
class StackTracer (line 104) | class StackTracer
type Trace (line 107) | struct Trace
function LONG (line 131) | static LONG CALLBACK TheUnhandledExceptionFilter(LPEXCEPTION_POINTERS pE...
function InstallExceptionCatcher (line 164) | int InstallExceptionCatcher(void(*cb)(const char* log))
function LogException (line 175) | static int LogException(char* buffer, size_t max, LPEXCEPTION_POINTERS p...
function HMODULE (line 623) | static HMODULE GetModuleFromAddress(LPVOID address)
FILE: source-code/source/fakedll/framework.h
type shared (line 14) | struct shared
type dnsapi_dll (line 32) | struct dnsapi_dll
function WINAPI (line 58) | WINAPI DnsCancelQueryStub()
function LoadOriginalLibrary (line 91) | void LoadOriginalLibrary(HMODULE module)
function _DnsFree (line 122) | void _DnsFree() { dnsapi.DnsFree(); }
function _DnsQuery_A (line 123) | void _DnsQuery_A() { dnsapi.DnsQuery_A(); }
function _DnsQueryEx (line 124) | void _DnsQueryEx() { dnsapi.DnsQueryEx(); }
function _DnsCancelQuery (line 125) | void _DnsCancelQuery() { dnsapi.DnsCancelQuery(); }
function _DnsDhcpRegisterTerm (line 126) | void _DnsDhcpRegisterTerm() { dnsapi.DnsDhcpRegisterTerm(); }
function _DnsNotifyResolver (line 127) | void _DnsNotifyResolver() { dnsapi.DnsNotifyResolver(); }
function _DnsDhcpRegisterHostAddrs (line 128) | void _DnsDhcpRegisterHostAddrs() { dnsapi.DnsDhcpRegisterHostAddrs(); }
function _DnsQueryConfigDword (line 129) | void _DnsQueryConfigDword() { dnsapi.DnsQueryConfigDword(); }
function _DnsDhcpRemoveRegistrations (line 130) | void _DnsDhcpRemoveRegistrations() { dnsapi.DnsDhcpRemoveRegistrations(); }
function _DnsDhcpRegisterInit (line 131) | void _DnsDhcpRegisterInit() { dnsapi.DnsDhcpRegisterInit(); }
function _DnsDhcpRegisterAddrs (line 132) | void _DnsDhcpRegisterAddrs() { dnsapi.DnsDhcpRegisterAddrs(); }
function _DllRegisterServer (line 140) | void _DllRegisterServer() { shared.DllRegisterServer(); }
function _DllUnregisterServer (line 141) | void _DllUnregisterServer() { shared.DllUnregisterServer(); }
function _DllCanUnloadNow (line 142) | void _DllCanUnloadNow() { shared.DllCanUnloadNow(); }
function _DllGetClassObject (line 143) | void _DllGetClassObject() { shared.DllGetClassObject(); }
FILE: source-code/source/plugins/DSCRemote/PluginConfigApi.h
function class (line 7) | class resolution
function namespace (line 47) | namespace PluginConfig
FILE: source-code/source/plugins/DSCRemote/dllmain.cpp
function loadConfig (line 19) | void loadConfig()
function hookedDSC_EXECUTE_COMMAND (line 34) | bool hookedDSC_EXECUTE_COMMAND(__int64 dsc_address, float delta_time, __...
function serve (line 46) | void serve()
function BOOL (line 161) | BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID ...
function LPCWSTR (line 188) | __declspec(dllexport) LPCWSTR GetPluginName(void)
function LPCWSTR (line 193) | __declspec(dllexport) LPCWSTR GetPluginDescription(void)
function GetPluginOptions (line 198) | __declspec(dllexport) PluginConfig::PluginConfigArray GetPluginOptions(v...
FILE: source-code/source/plugins/DivaMovie/PluginConfigApi.h
function class (line 7) | class resolution
function namespace (line 47) | namespace PluginConfig
FILE: source-code/source/plugins/DivaMovie/dllmain.cpp
function HRESULT (line 30) | HRESULT initialize(IMFTransform* transform)
function VTABLE_HOOK (line 86) | VTABLE_HOOK(HRESULT, IMFTransform, ProcessOutput, DWORD dwFlags, DWORD c...
function VTABLE_HOOK (line 129) | VTABLE_HOOK(HRESULT, IMFTransform, ProcessMessage, MFT_MESSAGE_TYPE eMes...
function HOOK (line 171) | HOOK(void*, IMFTransformInitializer, 0x140420B90, void* a1, void* a2, IM...
function loadConfig (line 195) | void loadConfig() {
function BOOL (line 201) | BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID ...
function LPCWSTR (line 219) | __declspec(dllexport) LPCWSTR GetPluginName(void)
function LPCWSTR (line 224) | __declspec(dllexport) LPCWSTR GetPluginDescription(void)
function GetPluginOptions (line 229) | __declspec(dllexport) PluginConfig::PluginConfigArray GetPluginOptions(v...
FILE: source-code/source/plugins/DivaSound/bassasio/bassasio.h
type BASS_ASIO_DEVICEINFO (line 46) | typedef struct {
type BASS_ASIO_INFO (line 51) | typedef struct {
type BASS_ASIO_CHANNELINFO (line 63) | typedef struct {
FILE: source-code/source/plugins/DivaSound/miniaudio/miniaudio.h
type ma_int8 (line 501) | typedef signed __int8 ma_int8;
type ma_uint8 (line 502) | typedef unsigned __int8 ma_uint8;
type ma_int16 (line 503) | typedef signed __int16 ma_int16;
type ma_uint16 (line 504) | typedef unsigned __int16 ma_uint16;
type ma_int32 (line 505) | typedef signed __int32 ma_int32;
type ma_uint32 (line 506) | typedef unsigned __int32 ma_uint32;
type ma_int64 (line 507) | typedef signed __int64 ma_int64;
type ma_uint64 (line 508) | typedef unsigned __int64 ma_uint64;
type ma_int8 (line 515) | typedef int8_t ma_int8;
type ma_uint8 (line 516) | typedef uint8_t ma_uint8;
type ma_int16 (line 517) | typedef int16_t ma_int16;
type ma_uint16 (line 518) | typedef uint16_t ma_uint16;
type ma_int32 (line 519) | typedef int32_t ma_int32;
type ma_uint32 (line 520) | typedef uint32_t ma_uint32;
type ma_int64 (line 521) | typedef int64_t ma_int64;
type ma_uint64 (line 522) | typedef uint64_t ma_uint64;
type ma_uintptr (line 526) | typedef uintptr_t ma_uintptr;
type ma_uint64 (line 530) | typedef ma_uint64 ma_uintptr;
type ma_uint32 (line 532) | typedef ma_uint32 ma_uintptr;
type ma_uint64 (line 536) | typedef ma_uint64 ma_uintptr;
type ma_uint32 (line 538) | typedef ma_uint32 ma_uintptr;
type ma_uint64 (line 541) | typedef ma_uint64 ma_uintptr;
type ma_uint8 (line 545) | typedef ma_uint8 ma_bool8;
type ma_uint32 (line 546) | typedef ma_uint32 ma_bool32;
type ma_uint16 (line 555) | typedef ma_uint16 wchar_t;
type ma_context (line 611) | typedef struct ma_context ma_context;
type ma_device (line 612) | typedef struct ma_device ma_device;
type ma_uint8 (line 614) | typedef ma_uint8 ma_channel;
type ma_result (line 672) | typedef int ma_result;
type ma_stream_format (line 744) | typedef enum
type ma_stream_layout (line 749) | typedef enum
type ma_dither_mode (line 755) | typedef enum
type ma_format (line 762) | typedef enum
type ma_channel_mix_mode (line 777) | typedef enum
type ma_standard_channel_map (line 786) | typedef enum
type ma_performance_profile (line 799) | typedef enum
type ma_format_converter (line 806) | typedef struct ma_format_converter ma_format_converter;
type ma_uint32 (line 807) | typedef ma_uint32 (* ma_format_converter_read_proc) (ma_for...
type ma_uint32 (line 808) | typedef ma_uint32 (* ma_format_converter_read_deinterleaved_proc)(ma_for...
type ma_format_converter_config (line 810) | typedef struct
type ma_format_converter (line 827) | struct ma_format_converter
type ma_channel_router (line 841) | typedef struct ma_channel_router ma_channel_router;
type ma_uint32 (line 842) | typedef ma_uint32 (* ma_channel_router_read_deinterleaved_proc)(ma_chann...
type ma_channel_router_config (line 844) | typedef struct
type ma_channel_router (line 860) | struct ma_channel_router
type ma_src (line 874) | typedef struct ma_src ma_src;
type ma_uint32 (line 875) | typedef ma_uint32 (* ma_src_read_deinterleaved_proc)(ma_src* pSRC, ma_ui...
type ma_src_algorithm (line 877) | typedef enum
type ma_src_sinc_window_function (line 885) | typedef enum
type ma_src_config_sinc (line 892) | typedef struct
type ma_src_config (line 898) | typedef struct
function ma_src (line 917) | MA_ALIGNED_STRUCT(MA_SIMD_ALIGNMENT) ma_src
type ma_pcm_converter (line 946) | typedef struct ma_pcm_converter ma_pcm_converter;
type ma_uint32 (line 947) | typedef ma_uint32 (* ma_pcm_converter_read_proc)(ma_pcm_converter* pDSP,...
type ma_pcm_converter_config (line 949) | typedef struct
function ma_pcm_converter (line 976) | MA_ALIGNED_STRUCT(MA_SIMD_ALIGNMENT) ma_pcm_converter
type ma_rb (line 1405) | typedef struct
type ma_pcm_rb (line 1433) | typedef struct
function MA_INLINE (line 1506) | static MA_INLINE ma_uint32 ma_get_bytes_per_frame(ma_format format, ma_u...
type ma_IMMNotificationClient (line 1654) | typedef struct
type ma_backend (line 1663) | typedef enum
type ma_thread_priority (line 1682) | typedef enum
type ma_thread (line 1694) | typedef struct
type ma_mutex (line 1716) | typedef struct
type ma_event (line 1738) | typedef struct
type ma_device_type (line 1804) | typedef enum
type ma_share_mode (line 1811) | typedef enum
type ma_device_id (line 1817) | typedef union
type ma_device_info (line 1863) | typedef struct
type ma_timer (line 1885) | typedef union
type ma_device_config (line 1891) | typedef struct
type ma_context_config (line 1930) | typedef struct
type ma_bool32 (line 1953) | typedef ma_bool32 (* ma_enum_devices_callback_proc)(ma_context* pContext...
type ma_context (line 1955) | struct ma_context
function ma_device (line 2327) | MA_ALIGNED_STRUCT(MA_SIMD_ALIGNMENT) ma_device
type ma_decoder (line 2992) | typedef struct ma_decoder ma_decoder;
type ma_seek_origin (line 2994) | typedef enum
type ma_bool32 (line 3001) | typedef ma_bool32 (* ma_decoder_seek_proc) (ma_decode...
type ma_result (line 3002) | typedef ma_result (* ma_decoder_seek_to_pcm_frame_proc) (ma_decode...
type ma_result (line 3003) | typedef ma_result (* ma_decoder_uninit_proc) (ma_decode...
type ma_uint64 (line 3004) | typedef ma_uint64 (* ma_decoder_get_length_in_pcm_frames_proc)(ma_decode...
type ma_decoder_config (line 3006) | typedef struct
type ma_decoder (line 3021) | struct ma_decoder
type ma_sine_wave (line 3105) | typedef struct
function MA_INLINE (line 3291) | static MA_INLINE void ma_cpuid(int info[4], int fid)
function ma_xgetbv (line 3300) | static MA_INLINE unsigned __int64 ma_xgetbv(int reg)
function MA_INLINE (line 3308) | static MA_INLINE void ma_cpuid(int info[4], int fid)
function MA_INLINE (line 3331) | static MA_INLINE ma_uint64 ma_xgetbv(int reg)
function MA_INLINE (line 3351) | static MA_INLINE ma_bool32 ma_has_sse2()
function MA_INLINE (line 3377) | static MA_INLINE ma_bool32 ma_has_avx()
function MA_INLINE (line 3411) | static MA_INLINE ma_bool32 ma_has_avx2()
function MA_INLINE (line 3446) | static MA_INLINE ma_bool32 ma_has_avx512f()
function MA_INLINE (line 3481) | static MA_INLINE ma_bool32 ma_has_neon()
function MA_INLINE (line 3500) | static MA_INLINE ma_bool32 ma_is_little_endian()
function MA_INLINE (line 3510) | static MA_INLINE ma_bool32 ma_is_big_endian()
function ma_strcpy_s (line 3677) | int ma_strcpy_s(char* dst, size_t dstSizeInBytes, const char* src)
function ma_strncpy_s (line 3705) | int ma_strncpy_s(char* dst, size_t dstSizeInBytes, const char* src, size...
function ma_strcat_s (line 3739) | int ma_strcat_s(char* dst, size_t dstSizeInBytes, const char* src)
function ma_strncat_s (line 3781) | int ma_strncat_s(char* dst, size_t dstSizeInBytes, const char* src, size...
function ma_itoa_s (line 3827) | int ma_itoa_s(int value, char* dst, size_t dstSizeInBytes, int radix)
function ma_strcmp (line 3896) | int ma_strcmp(const char* str1, const char* str2)
function ma_strappend (line 3919) | int ma_strappend(char* dst, size_t dstSize, const char* srcA, const char...
function ma_next_power_of_2 (line 3951) | static MA_INLINE unsigned int ma_next_power_of_2(unsigned int x)
function ma_prev_power_of_2 (line 3964) | static MA_INLINE unsigned int ma_prev_power_of_2(unsigned int x)
function ma_round_to_power_of_2 (line 3969) | static MA_INLINE unsigned int ma_round_to_power_of_2(unsigned int x)
function ma_count_set_bits (line 3980) | static MA_INLINE unsigned int ma_count_set_bits(unsigned int x)
function MA_INLINE (line 3997) | static MA_INLINE float ma_clip_f32(float x)
function MA_INLINE (line 4004) | static MA_INLINE float ma_mix_f32(float x, float y, float a)
function MA_INLINE (line 4008) | static MA_INLINE float ma_mix_f32_fast(float x, float y, float a)
function MA_INLINE (line 4017) | static MA_INLINE __m128 ma_mix_f32_fast__sse2(__m128 x, __m128 y, __m128 a)
function MA_INLINE (line 4023) | static MA_INLINE __m256 ma_mix_f32_fast__avx2(__m256 x, __m256 y, __m256 a)
function MA_INLINE (line 4029) | static MA_INLINE __m512 ma_mix_f32_fast__avx512(__m512 x, __m512 y, __m5...
function MA_INLINE (line 4035) | static MA_INLINE float32x4_t ma_mix_f32_fast__neon(float32x4_t x, float3...
function MA_INLINE (line 4042) | static MA_INLINE double ma_mix_f64(double x, double y, double a)
function MA_INLINE (line 4046) | static MA_INLINE double ma_mix_f64_fast(double x, double y, double a)
function MA_INLINE (line 4051) | static MA_INLINE float ma_scale_to_range_f32(float x, float lo, float hi)
function ma_seed (line 4071) | void ma_seed(ma_int32 seed)
function ma_int32 (line 4076) | ma_int32 ma_rand_s32()
function ma_rand_f64 (line 4084) | double ma_rand_f64()
function ma_rand_f32 (line 4089) | float ma_rand_f32()
function MA_INLINE (line 4094) | static MA_INLINE float ma_rand_range_f32(float lo, float hi)
function MA_INLINE (line 4099) | static MA_INLINE ma_int32 ma_rand_range_s32(ma_int32 lo, ma_int32 hi)
function MA_INLINE (line 4106) | static MA_INLINE float ma_dither_f32_rectangle(float ditherMin, float di...
function MA_INLINE (line 4111) | static MA_INLINE float ma_dither_f32_triangle(float ditherMin, float dit...
function MA_INLINE (line 4118) | static MA_INLINE float ma_dither_f32(ma_dither_mode ditherMode, float di...
function MA_INLINE (line 4130) | static MA_INLINE ma_int32 ma_dither_s32(ma_dither_mode ditherMode, ma_in...
function ma_split_buffer (line 4150) | void ma_split_buffer(void* pBuffer, size_t bufferSize, size_t splitCount...
function ma_uint32 (line 4219) | ma_uint32 ma_get_standard_sample_rate_priority_index(ma_uint32 sampleRat...
function ma_uint64 (line 4231) | ma_uint64 ma_calculate_frame_count_after_src(ma_uint32 sampleRateOut, ma...
type ma_thread_result (line 4365) | typedef unsigned long ma_thread_result;
function ma_log (line 4413) | void ma_log(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel...
function ma_result (line 4438) | ma_result ma_context_post_error(ma_context* pContext, ma_device* pDevice...
function ma_result (line 4451) | ma_result ma_post_error(ma_device* pDevice, ma_uint32 logLevel, const ch...
function ma_timer_init (line 4464) | void ma_timer_init(ma_timer* pTimer)
function ma_timer_get_time_in_seconds (line 4476) | double ma_timer_get_time_in_seconds(ma_timer* pTimer)
function ma_timer_init (line 4487) | void ma_timer_init(ma_timer* pTimer)
function ma_timer_get_time_in_seconds (line 4496) | double ma_timer_get_time_in_seconds(ma_timer* pTimer)
function ma_timer_init (line 4504) | void ma_timer_init(ma_timer* pTimer)
function ma_timer_get_time_in_seconds (line 4509) | double ma_timer_get_time_in_seconds(ma_timer* pTimer)
function ma_timer_init (line 4521) | void ma_timer_init(ma_timer* pTimer)
function ma_timer_get_time_in_seconds (line 4529) | double ma_timer_get_time_in_seconds(ma_timer* pTimer)
function ma_timer_init (line 4543) | void ma_timer_init(ma_timer* pTimer)
function ma_timer_get_time_in_seconds (line 4551) | double ma_timer_get_time_in_seconds(ma_timer* pTimer)
function ma_handle (line 4573) | ma_handle ma_dlopen(ma_context* pContext, const char* filename)
function ma_dlclose (line 4617) | void ma_dlclose(ma_context* pContext, ma_handle handle)
function ma_proc (line 4628) | ma_proc ma_dlsym(ma_context* pContext, ma_handle handle, const char* sym...
function ma_thread_priority_to_win32 (line 4672) | int ma_thread_priority_to_win32(ma_thread_priority priority)
function ma_result (line 4686) | ma_result ma_thread_create__win32(ma_context* pContext, ma_thread* pThre...
function ma_thread_wait__win32 (line 4698) | void ma_thread_wait__win32(ma_thread* pThread)
function ma_sleep__win32 (line 4703) | void ma_sleep__win32(ma_uint32 milliseconds)
function ma_result (line 4709) | ma_result ma_mutex_init__win32(ma_context* pContext, ma_mutex* pMutex)
function ma_mutex_uninit__win32 (line 4721) | void ma_mutex_uninit__win32(ma_mutex* pMutex)
function ma_mutex_lock__win32 (line 4726) | void ma_mutex_lock__win32(ma_mutex* pMutex)
function ma_mutex_unlock__win32 (line 4731) | void ma_mutex_unlock__win32(ma_mutex* pMutex)
function ma_result (line 4737) | ma_result ma_event_init__win32(ma_context* pContext, ma_event* pEvent)
function ma_event_uninit__win32 (line 4749) | void ma_event_uninit__win32(ma_event* pEvent)
function ma_bool32 (line 4754) | ma_bool32 ma_event_wait__win32(ma_event* pEvent)
function ma_bool32 (line 4759) | ma_bool32 ma_event_signal__win32(ma_event* pEvent)
type sched_param (line 4782) | struct sched_param
type sched_param (line 4783) | struct sched_param
function ma_result (line 4785) | ma_result ma_thread_create__posix(ma_context* pContext, ma_thread* pThre...
function ma_thread_wait__posix (line 4852) | void ma_thread_wait__posix(ma_thread* pThread)
function ma_sleep__posix (line 4857) | void ma_sleep__posix(ma_uint32 milliseconds)
function ma_result (line 4878) | ma_result ma_mutex_init__posix(ma_context* pContext, ma_mutex* pMutex)
function ma_mutex_uninit__posix (line 4888) | void ma_mutex_uninit__posix(ma_mutex* pMutex)
function ma_mutex_lock__posix (line 4893) | void ma_mutex_lock__posix(ma_mutex* pMutex)
function ma_mutex_unlock__posix (line 4898) | void ma_mutex_unlock__posix(ma_mutex* pMutex)
function ma_result (line 4904) | ma_result ma_event_init__posix(ma_context* pContext, ma_event* pEvent)
function ma_event_uninit__posix (line 4918) | void ma_event_uninit__posix(ma_event* pEvent)
function ma_bool32 (line 4924) | ma_bool32 ma_event_wait__posix(ma_event* pEvent)
function ma_bool32 (line 4938) | ma_bool32 ma_event_signal__posix(ma_event* pEvent)
function ma_result (line 4951) | ma_result ma_thread_create(ma_context* pContext, ma_thread* pThread, ma_...
function ma_thread_wait (line 4967) | void ma_thread_wait(ma_thread* pThread)
function ma_sleep (line 4981) | void ma_sleep(ma_uint32 milliseconds)
function ma_result (line 4992) | ma_result ma_mutex_init(ma_context* pContext, ma_mutex* pMutex)
function ma_mutex_uninit (line 5008) | void ma_mutex_uninit(ma_mutex* pMutex)
function ma_mutex_lock (line 5022) | void ma_mutex_lock(ma_mutex* pMutex)
function ma_mutex_unlock (line 5036) | void ma_mutex_unlock(ma_mutex* pMutex)
function ma_result (line 5051) | ma_result ma_event_init(ma_context* pContext, ma_event* pEvent)
function ma_event_uninit (line 5067) | void ma_event_uninit(ma_event* pEvent)
function ma_bool32 (line 5081) | ma_bool32 ma_event_wait(ma_event* pEvent)
function ma_bool32 (line 5095) | ma_bool32 ma_event_signal(ma_event* pEvent)
function ma_uint32 (line 5110) | ma_uint32 ma_get_best_sample_rate_within_range(ma_uint32 sampleRateMin, ...
function ma_uint32 (line 5140) | ma_uint32 ma_get_closest_standard_sample_rate(ma_uint32 sampleRateIn)
function ma_uint32 (line 5170) | ma_uint32 ma_scale_buffer_size(ma_uint32 baseBufferSize, float scale)
function ma_uint32 (line 5175) | ma_uint32 ma_calculate_buffer_size_in_milliseconds_from_frames(ma_uint32...
function ma_uint32 (line 5180) | ma_uint32 ma_calculate_buffer_size_in_frames_from_milliseconds(ma_uint32...
function ma_uint32 (line 5185) | ma_uint32 ma_get_default_buffer_size_in_milliseconds(ma_performance_prof...
function ma_uint32 (line 5194) | ma_uint32 ma_get_default_buffer_size_in_frames(ma_performance_profile pe...
function ma_uint32 (line 5212) | ma_uint32 ma_get_fragment_size_in_bytes(ma_uint32 bufferSizeInFrames, ma...
function ma_zero_pcm_frames (line 5218) | void ma_zero_pcm_frames(void* p, ma_uint32 frameCount, ma_format format,...
function ma_uint32 (line 5226) | ma_uint32 ma_device__on_read_from_client(ma_pcm_converter* pDSP, void* p...
function ma_uint32 (line 5246) | ma_uint32 ma_device__pcm_converter__on_read_from_buffer_capture(ma_pcm_c...
function ma_uint32 (line 5271) | ma_uint32 ma_device__pcm_converter__on_read_from_buffer_playback(ma_pcm_...
function MA_INLINE (line 5299) | static MA_INLINE void ma_device__read_frames_from_client(ma_device* pDev...
function MA_INLINE (line 5319) | static MA_INLINE void ma_device__send_frames_to_client(ma_device* pDevic...
function MA_INLINE (line 5356) | static MA_INLINE ma_result ma_device__handle_duplex_callback_capture(ma_...
function MA_INLINE (line 5403) | static MA_INLINE ma_result ma_device__handle_duplex_callback_playback(ma...
function MA_INLINE (line 5478) | static MA_INLINE void ma_device__set_state(ma_device* pDevice, ma_uint32...
function MA_INLINE (line 5484) | static MA_INLINE ma_uint32 ma_device__get_state(ma_device* pDevice)
function MA_INLINE (line 5490) | static MA_INLINE ma_bool32 ma_device__is_async(ma_device* pDevice)
function ma_bool32 (line 5504) | ma_bool32 ma_context__device_id_equal(ma_context* pContext, const ma_dev...
type ma_context__try_get_device_name_by_id__enum_callback_data (line 5523) | typedef struct
function ma_bool32 (line 5532) | ma_bool32 ma_context__try_get_device_name_by_id__enum_callback(ma_contex...
function ma_result (line 5552) | ma_result ma_context__try_get_device_name_by_id(ma_context* pContext, ma...
function ma_uint32 (line 5582) | ma_uint32 ma_get_format_priority_index(ma_format format) /* Lower = bett...
function ma_thread_result (line 5610) | ma_thread_result MA_THREADCALL ma_device_thread__null(void* pData)
function ma_result (line 5673) | ma_result ma_device_do_operation__null(ma_device* pDevice, ma_uint32 ope...
function ma_uint64 (line 5687) | ma_uint64 ma_device_get_total_run_time_in_frames__null(ma_device* pDevice)
function ma_bool32 (line 5700) | ma_bool32 ma_context_is_device_id_equal__null(ma_context* pContext, cons...
function ma_result (line 5710) | ma_result ma_context_enumerate_devices__null(ma_context* pContext, ma_en...
function ma_result (line 5736) | ma_result ma_context_get_device_info__null(ma_context* pContext, ma_devi...
function ma_device_uninit__null (line 5770) | void ma_device_uninit__null(ma_device* pDevice)
function ma_result (line 5782) | ma_result ma_device_init__null(ma_context* pContext, const ma_device_con...
function ma_result (line 5835) | ma_result ma_device_start__null(ma_device* pDevice)
function ma_result (line 5845) | ma_result ma_device_stop__null(ma_device* pDevice)
function ma_result (line 5855) | ma_result ma_device_write__null(ma_device* pDevice, const void* pPCMFram...
function ma_result (line 5927) | ma_result ma_device_read__null(ma_device* pDevice, void* pPCMFrames, ma_...
function ma_result (line 5998) | ma_result ma_context_uninit__null(ma_context* pContext)
function ma_result (line 6007) | ma_result ma_context_init__null(const ma_context_config* pConfig, ma_con...
type DWORD_PTR (line 6051) | typedef size_t DWORD_PTR;
type WAVEFORMATEXTENSIBLE (line 6095) | typedef struct
function ma_uint8 (line 6120) | ma_uint8 ma_channel_id_to_ma__win32(DWORD id)
function DWORD (line 6147) | DWORD ma_channel_id_to_win32(DWORD id)
function DWORD (line 6175) | DWORD ma_channel_map_to_channel_mask__win32(const ma_channel channelMap[...
function ma_channel_mask_to_channel_map__win32 (line 6188) | void ma_channel_mask_to_channel_map__win32(DWORD dwChannelMask, ma_uint3...
function ma_bool32 (line 6216) | ma_bool32 ma_is_guid_equal(const void* a, const void* b)
function ma_format (line 6224) | ma_format ma_format_from_WAVEFORMATEX(const WAVEFORMATEX* pWF)
type ma_OSVERSIONINFOEXW (line 6315) | typedef struct {
type PROPERTYKEY (line 6335) | typedef struct
function MA_INLINE (line 6343) | static MA_INLINE void ma_PropVariantInit(PROPVARIANT* pProp)
type ma_IUnknown (line 6377) | typedef struct ma_IUnknown ma_IUnknown;
type ma_IMMDeviceEnumerator (line 6384) | typedef struct ma_IMMDeviceEnumerator ma_IMMDeviceE...
type ma_IMMDeviceCollection (line 6385) | typedef struct ma_IMMDeviceCollection ma_IMMDeviceC...
type ma_IMMDevice (line 6386) | typedef struct ma_IMMDevice ma_IMMDevice;
type ma_IActivateAudioInterfaceCompletionHandler (line 6388) | typedef struct ma_IActivateAudioInterfaceCompletionHandler ma_IActivateA...
type ma_IActivateAudioInterfaceAsyncOperation (line 6389) | typedef struct ma_IActivateAudioInterfaceAsyncOperation ma_IActivateA...
type ma_IPropertyStore (line 6391) | typedef struct ma_IPropertyStore ma_IPropertyS...
type ma_IAudioClient (line 6392) | typedef struct ma_IAudioClient ma_IAudioClient;
type ma_IAudioClient2 (line 6393) | typedef struct ma_IAudioClient2 ma_IAudioClie...
type ma_IAudioClient3 (line 6394) | typedef struct ma_IAudioClient3 ma_IAudioClie...
type ma_IAudioRenderClient (line 6395) | typedef struct ma_IAudioRenderClient ma_IAudioRend...
type ma_IAudioCaptureClient (line 6396) | typedef struct ma_IAudioCaptureClient ma_IAudioCapt...
type ma_int64 (line 6398) | typedef ma_int64 MA_REFERENCE_...
type ma_EDataFlow (line 6417) | typedef enum
type ma_ERole (line 6424) | typedef enum
type MA_AUDCLNT_SHAREMODE (line 6431) | typedef enum
type MA_AUDIO_STREAM_CATEGORY (line 6437) | typedef enum
type ma_AudioClientProperties (line 6442) | typedef struct
type ma_IUnknownVtbl (line 6450) | typedef struct
type ma_IUnknown (line 6457) | struct ma_IUnknown
function HRESULT (line 6461) | HRESULT ma_IUnknown_QueryInterface(ma_IUnknown* pThis, const IID* const ...
function ULONG (line 6462) | ULONG ma_IUnknown_AddRef(ma_IUnknown* pThis) ...
function ULONG (line 6463) | ULONG ma_IUnknown_Release(ma_IUnknown* pThis) ...
type ma_IMMNotificationClientVtbl (line 6467) | typedef struct
type ma_IMMDeviceEnumeratorVtbl (line 6483) | typedef struct
type ma_IMMDeviceEnumerator (line 6497) | struct ma_IMMDeviceEnumerator
function HRESULT (line 6501) | HRESULT ma_IMMDeviceEnumerator_QueryInterface(ma_IMMDeviceEnumerator* pT...
function ULONG (line 6502) | ULONG ma_IMMDeviceEnumerator_AddRef(ma_IMMDeviceEnumerator* pThis) ...
function ULONG (line 6503) | ULONG ma_IMMDeviceEnumerator_Release(ma_IMMDeviceEnumerator* pThis) ...
function HRESULT (line 6504) | HRESULT ma_IMMDeviceEnumerator_EnumAudioEndpoints(ma_IMMDeviceEnumerator...
function HRESULT (line 6505) | HRESULT ma_IMMDeviceEnumerator_GetDefaultAudioEndpoint(ma_IMMDeviceEnume...
function HRESULT (line 6506) | HRESULT ma_IMMDeviceEnumerator_GetDevice(ma_IMMDeviceEnumerator* pThis, ...
function HRESULT (line 6507) | HRESULT ma_IMMDeviceEnumerator_RegisterEndpointNotificationCallback(ma_I...
function HRESULT (line 6508) | HRESULT ma_IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(ma...
type ma_IMMDeviceCollectionVtbl (line 6512) | typedef struct
type ma_IMMDeviceCollection (line 6523) | struct ma_IMMDeviceCollection
function HRESULT (line 6527) | HRESULT ma_IMMDeviceCollection_QueryInterface(ma_IMMDeviceCollection* pT...
function ULONG (line 6528) | ULONG ma_IMMDeviceCollection_AddRef(ma_IMMDeviceCollection* pThis) ...
function ULONG (line 6529) | ULONG ma_IMMDeviceCollection_Release(ma_IMMDeviceCollection* pThis) ...
function HRESULT (line 6530) | HRESULT ma_IMMDeviceCollection_GetCount(ma_IMMDeviceCollection* pThis, U...
function HRESULT (line 6531) | HRESULT ma_IMMDeviceCollection_Item(ma_IMMDeviceCollection* pThis, UINT ...
type ma_IMMDeviceVtbl (line 6535) | typedef struct
type ma_IMMDevice (line 6548) | struct ma_IMMDevice
function HRESULT (line 6552) | HRESULT ma_IMMDevice_QueryInterface(ma_IMMDevice* pThis, const IID* cons...
function ULONG (line 6553) | ULONG ma_IMMDevice_AddRef(ma_IMMDevice* pThis) ...
function ULONG (line 6554) | ULONG ma_IMMDevice_Release(ma_IMMDevice* pThis) ...
function HRESULT (line 6555) | HRESULT ma_IMMDevice_Activate(ma_IMMDevice* pThis, const IID* const iid,...
function HRESULT (line 6556) | HRESULT ma_IMMDevice_OpenPropertyStore(ma_IMMDevice* pThis, DWORD stgmAc...
function HRESULT (line 6557) | HRESULT ma_IMMDevice_GetId(ma_IMMDevice* pThis, LPWSTR *pID) ...
function HRESULT (line 6558) | HRESULT ma_IMMDevice_GetState(ma_IMMDevice* pThis, DWORD *pState) ...
type ma_IActivateAudioInterfaceAsyncOperationVtbl (line 6561) | typedef struct
type ma_IActivateAudioInterfaceAsyncOperation (line 6571) | struct ma_IActivateAudioInterfaceAsyncOperation
function HRESULT (line 6575) | HRESULT ma_IActivateAudioInterfaceAsyncOperation_QueryInterface(ma_IActi...
function ULONG (line 6576) | ULONG ma_IActivateAudioInterfaceAsyncOperation_AddRef(ma_IActivateAudi...
function ULONG (line 6577) | ULONG ma_IActivateAudioInterfaceAsyncOperation_Release(ma_IActivateAud...
function HRESULT (line 6578) | HRESULT ma_IActivateAudioInterfaceAsyncOperation_GetActivateResult(ma_IA...
type ma_IPropertyStoreVtbl (line 6582) | typedef struct
type ma_IPropertyStore (line 6596) | struct ma_IPropertyStore
function HRESULT (line 6600) | HRESULT ma_IPropertyStore_QueryInterface(ma_IPropertyStore* pThis, const...
function ULONG (line 6601) | ULONG ma_IPropertyStore_AddRef(ma_IPropertyStore* pThis) ...
function ULONG (line 6602) | ULONG ma_IPropertyStore_Release(ma_IPropertyStore* pThis) ...
function HRESULT (line 6603) | HRESULT ma_IPropertyStore_GetCount(ma_IPropertyStore* pThis, DWORD* pPro...
function HRESULT (line 6604) | HRESULT ma_IPropertyStore_GetAt(ma_IPropertyStore* pThis, DWORD propInde...
function HRESULT (line 6605) | HRESULT ma_IPropertyStore_GetValue(ma_IPropertyStore* pThis, const PROPE...
function HRESULT (line 6606) | HRESULT ma_IPropertyStore_SetValue(ma_IPropertyStore* pThis, const PROPE...
function HRESULT (line 6607) | HRESULT ma_IPropertyStore_Commit(ma_IPropertyStore* pThis) ...
type ma_IAudioClientVtbl (line 6611) | typedef struct
type ma_IAudioClient (line 6632) | struct ma_IAudioClient
function HRESULT (line 6636) | HRESULT ma_IAudioClient_QueryInterface(ma_IAudioClient* pThis, const IID...
function ULONG (line 6637) | ULONG ma_IAudioClient_AddRef(ma_IAudioClient* pThis) ...
function ULONG (line 6638) | ULONG ma_IAudioClient_Release(ma_IAudioClient* pThis) ...
function HRESULT (line 6639) | HRESULT ma_IAudioClient_Initialize(ma_IAudioClient* pThis, MA_AUDCLNT_SH...
function HRESULT (line 6640) | HRESULT ma_IAudioClient_GetBufferSize(ma_IAudioClient* pThis, ma_uint32*...
function HRESULT (line 6641) | HRESULT ma_IAudioClient_GetStreamLatency(ma_IAudioClient* pThis, MA_REFE...
function HRESULT (line 6642) | HRESULT ma_IAudioClient_GetCurrentPadding(ma_IAudioClient* pThis, ma_uin...
function HRESULT (line 6643) | HRESULT ma_IAudioClient_IsFormatSupported(ma_IAudioClient* pThis, MA_AUD...
function HRESULT (line 6644) | HRESULT ma_IAudioClient_GetMixFormat(ma_IAudioClient* pThis, WAVEFORMATE...
function HRESULT (line 6645) | HRESULT ma_IAudioClient_GetDevicePeriod(ma_IAudioClient* pThis, MA_REFER...
function HRESULT (line 6646) | HRESULT ma_IAudioClient_Start(ma_IAudioClient* pThis) ...
function HRESULT (line 6647) | HRESULT ma_IAudioClient_Stop(ma_IAudioClient* pThis) ...
function HRESULT (line 6648) | HRESULT ma_IAudioClient_Reset(ma_IAudioClient* pThis) ...
function HRESULT (line 6649) | HRESULT ma_IAudioClient_SetEventHandle(ma_IAudioClient* pThis, HANDLE ev...
function HRESULT (line 6650) | HRESULT ma_IAudioClient_GetService(ma_IAudioClient* pThis, const IID* co...
type ma_IAudioClient2Vtbl (line 6653) | typedef struct
type ma_IAudioClient2 (line 6679) | struct ma_IAudioClient2
function HRESULT (line 6683) | HRESULT ma_IAudioClient2_QueryInterface(ma_IAudioClient2* pThis, const I...
function ULONG (line 6684) | ULONG ma_IAudioClient2_AddRef(ma_IAudioClient2* pThis) ...
function ULONG (line 6685) | ULONG ma_IAudioClient2_Release(ma_IAudioClient2* pThis) ...
function HRESULT (line 6686) | HRESULT ma_IAudioClient2_Initialize(ma_IAudioClient2* pThis, MA_AUDCLNT_...
function HRESULT (line 6687) | HRESULT ma_IAudioClient2_GetBufferSize(ma_IAudioClient2* pThis, ma_uint3...
function HRESULT (line 6688) | HRESULT ma_IAudioClient2_GetStreamLatency(ma_IAudioClient2* pThis, MA_RE...
function HRESULT (line 6689) | HRESULT ma_IAudioClient2_GetCurrentPadding(ma_IAudioClient2* pThis, ma_u...
function HRESULT (line 6690) | HRESULT ma_IAudioClient2_IsFormatSupported(ma_IAudioClient2* pThis, MA_A...
function HRESULT (line 6691) | HRESULT ma_IAudioClient2_GetMixFormat(ma_IAudioClient2* pThis, WAVEFORMA...
function HRESULT (line 6692) | HRESULT ma_IAudioClient2_GetDevicePeriod(ma_IAudioClient2* pThis, MA_REF...
function HRESULT (line 6693) | HRESULT ma_IAudioClient2_Start(ma_IAudioClient2* pThis) ...
function HRESULT (line 6694) | HRESULT ma_IAudioClient2_Stop(ma_IAudioClient2* pThis) ...
function HRESULT (line 6695) | HRESULT ma_IAudioClient2_Reset(ma_IAudioClient2* pThis) ...
function HRESULT (line 6696) | HRESULT ma_IAudioClient2_SetEventHandle(ma_IAudioClient2* pThis, HANDLE ...
function HRESULT (line 6697) | HRESULT ma_IAudioClient2_GetService(ma_IAudioClient2* pThis, const IID* ...
function HRESULT (line 6698) | HRESULT ma_IAudioClient2_IsOffloadCapable(ma_IAudioClient2* pThis, MA_AU...
function HRESULT (line 6699) | HRESULT ma_IAudioClient2_SetClientProperties(ma_IAudioClient2* pThis, co...
function HRESULT (line 6700) | HRESULT ma_IAudioClient2_GetBufferSizeLimits(ma_IAudioClient2* pThis, co...
type ma_IAudioClient3Vtbl (line 6704) | typedef struct
type ma_IAudioClient3 (line 6735) | struct ma_IAudioClient3
function HRESULT (line 6739) | HRESULT ma_IAudioClient3_QueryInterface(ma_IAudioClient3* pThis, const I...
function ULONG (line 6740) | ULONG ma_IAudioClient3_AddRef(ma_IAudioClient3* pThis) ...
function ULONG (line 6741) | ULONG ma_IAudioClient3_Release(ma_IAudioClient3* pThis) ...
function HRESULT (line 6742) | HRESULT ma_IAudioClient3_Initialize(ma_IAudioClient3* pThis, MA_AUDCLNT_...
function HRESULT (line 6743) | HRESULT ma_IAudioClient3_GetBufferSize(ma_IAudioClient3* pThis, ma_uint3...
function HRESULT (line 6744) | HRESULT ma_IAudioClient3_GetStreamLatency(ma_IAudioClient3* pThis, MA_RE...
function HRESULT (line 6745) | HRESULT ma_IAudioClient3_GetCurrentPadding(ma_IAudioClient3* pThis, ma_u...
function HRESULT (line 6746) | HRESULT ma_IAudioClient3_IsFormatSupported(ma_IAudioClient3* pThis, MA_A...
function HRESULT (line 6747) | HRESULT ma_IAudioClient3_GetMixFormat(ma_IAudioClient3* pThis, WAVEFORMA...
function HRESULT (line 6748) | HRESULT ma_IAudioClient3_GetDevicePeriod(ma_IAudioClient3* pThis, MA_REF...
function HRESULT (line 6749) | HRESULT ma_IAudioClient3_Start(ma_IAudioClient3* pThis) ...
function HRESULT (line 6750) | HRESULT ma_IAudioClient3_Stop(ma_IAudioClient3* pThis) ...
function HRESULT (line 6751) | HRESULT ma_IAudioClient3_Reset(ma_IAudioClient3* pThis) ...
function HRESULT (line 6752) | HRESULT ma_IAudioClient3_SetEventHandle(ma_IAudioClient3* pThis, HANDLE ...
function HRESULT (line 6753) | HRESULT ma_IAudioClient3_GetService(ma_IAudioClient3* pThis, const IID* ...
function HRESULT (line 6754) | HRESULT ma_IAudioClient3_IsOffloadCapable(ma_IAudioClient3* pThis, MA_AU...
function HRESULT (line 6755) | HRESULT ma_IAudioClient3_SetClientProperties(ma_IAudioClient3* pThis, co...
function HRESULT (line 6756) | HRESULT ma_IAudioClient3_GetBufferSizeLimits(ma_IAudioClient3* pThis, co...
function HRESULT (line 6757) | HRESULT ma_IAudioClient3_GetSharedModeEnginePeriod(ma_IAudioClient3* pTh...
function HRESULT (line 6758) | HRESULT ma_IAudioClient3_GetCurrentSharedModeEnginePeriod(ma_IAudioClien...
function HRESULT (line 6759) | HRESULT ma_IAudioClient3_InitializeSharedAudioStream(ma_IAudioClient3* p...
type ma_IAudioRenderClientVtbl (line 6763) | typedef struct
type ma_IAudioRenderClient (line 6774) | struct ma_IAudioRenderClient
function HRESULT (line 6778) | HRESULT ma_IAudioRenderClient_QueryInterface(ma_IAudioRenderClient* pThi...
function ULONG (line 6779) | ULONG ma_IAudioRenderClient_AddRef(ma_IAudioRenderClient* pThis) ...
function ULONG (line 6780) | ULONG ma_IAudioRenderClient_Release(ma_IAudioRenderClient* pThis) ...
function HRESULT (line 6781) | HRESULT ma_IAudioRenderClient_GetBuffer(ma_IAudioRenderClient* pThis, ma...
function HRESULT (line 6782) | HRESULT ma_IAudioRenderClient_ReleaseBuffer(ma_IAudioRenderClient* pThis...
type ma_IAudioCaptureClientVtbl (line 6786) | typedef struct
type ma_IAudioCaptureClient (line 6798) | struct ma_IAudioCaptureClient
function HRESULT (line 6802) | HRESULT ma_IAudioCaptureClient_QueryInterface(ma_IAudioCaptureClient* pT...
function ULONG (line 6803) | ULONG ma_IAudioCaptureClient_AddRef(ma_IAudioCaptureClient* pThis) ...
function ULONG (line 6804) | ULONG ma_IAudioCaptureClient_Release(ma_IAudioCaptureClient* pThis) ...
function HRESULT (line 6805) | HRESULT ma_IAudioCaptureClient_GetBuffer(ma_IAudioCaptureClient* pThis, ...
function HRESULT (line 6806) | HRESULT ma_IAudioCaptureClient_ReleaseBuffer(ma_IAudioCaptureClient* pTh...
function HRESULT (line 6807) | HRESULT ma_IAudioCaptureClient_GetNextPacketSize(ma_IAudioCaptureClient*...
type ma_completion_handler_uwp (line 6811) | typedef struct ma_completion_handler_uwp ma_completion_handler_uwp;
type ma_completion_handler_uwp_vtbl (line 6813) | typedef struct
type ma_completion_handler_uwp (line 6823) | struct ma_completion_handler_uwp
function HRESULT (line 6830) | HRESULT STDMETHODCALLTYPE ma_completion_handler_uwp_QueryInterface(ma_co...
function ULONG (line 6847) | ULONG STDMETHODCALLTYPE ma_completion_handler_uwp_AddRef(ma_completion_h...
function ULONG (line 6852) | ULONG STDMETHODCALLTYPE ma_completion_handler_uwp_Release(ma_completion_...
function HRESULT (line 6862) | HRESULT STDMETHODCALLTYPE ma_completion_handler_uwp_ActivateCompleted(ma...
function ma_result (line 6877) | ma_result ma_completion_handler_uwp_init(ma_completion_handler_uwp* pHan...
function ma_completion_handler_uwp_uninit (line 6892) | void ma_completion_handler_uwp_uninit(ma_completion_handler_uwp* pHandler)
function ma_completion_handler_uwp_wait (line 6899) | void ma_completion_handler_uwp_wait(ma_completion_handler_uwp* pHandler)
function HRESULT (line 6907) | HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_QueryInterface(ma_IMM...
function ULONG (line 6924) | ULONG STDMETHODCALLTYPE ma_IMMNotificationClient_AddRef(ma_IMMNotificati...
function ULONG (line 6929) | ULONG STDMETHODCALLTYPE ma_IMMNotificationClient_Release(ma_IMMNotificat...
function HRESULT (line 6940) | HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceStateChanged(...
function HRESULT (line 6952) | HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceAdded(ma_IMMN...
function HRESULT (line 6964) | HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceRemoved(ma_IM...
function HRESULT (line 6976) | HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDefaultDeviceChange...
function HRESULT (line 7018) | HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnPropertyValueChange...
type ma_IMMDevice (line 7043) | typedef ma_IMMDevice ma_WASAPIDeviceInterface;
type ma_IUnknown (line 7045) | typedef ma_IUnknown ma_WASAPIDeviceInterface;
function ma_bool32 (line 7050) | ma_bool32 ma_context_is_device_id_equal__wasapi(ma_context* pContext, co...
function ma_set_device_info_from_WAVEFORMATEX (line 7060) | void ma_set_device_info_from_WAVEFORMATEX(const WAVEFORMATEX* pWF, ma_de...
function ma_result (line 7073) | ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_contex...
function ma_result (line 7194) | ma_result ma_context_get_MMDevice__wasapi(ma_context* pContext, ma_devic...
function ma_result (line 7221) | ma_result ma_context_get_device_info_from_MMDevice__wasapi(ma_context* p...
function ma_result (line 7281) | ma_result ma_context_enumerate_device_collection__wasapi(ma_context* pCo...
function ma_result (line 7320) | ma_result ma_context_get_IAudioClient_Desktop__wasapi(ma_context* pConte...
function ma_result (line 7342) | ma_result ma_context_get_IAudioClient_UWP__wasapi(ma_context* pContext, ...
function ma_result (line 7421) | ma_result ma_context_get_IAudioClient__wasapi(ma_context* pContext, ma_d...
function ma_result (line 7431) | ma_result ma_context_enumerate_devices__wasapi(ma_context* pContext, ma_...
function ma_result (line 7493) | ma_result ma_context_get_device_info__wasapi(ma_context* pContext, ma_de...
function ma_device_uninit__wasapi (line 7536) | void ma_device_uninit__wasapi(ma_device* pDevice)
type ma_device_init_internal_data__wasapi (line 7570) | typedef struct
function ma_result (line 7600) | ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_devic...
function ma_result (line 7915) | ma_result ma_device_reinit__wasapi(ma_device* pDevice, ma_device_type de...
function ma_result (line 8031) | ma_result ma_device_init__wasapi(ma_context* pContext, const ma_device_c...
function ma_result (line 8216) | ma_result ma_device__get_available_frames__wasapi(ma_device* pDevice, ma...
function ma_bool32 (line 8251) | ma_bool32 ma_device_is_reroute_required__wasapi(ma_device* pDevice, ma_d...
function ma_result (line 8266) | ma_result ma_device_reroute__wasapi(ma_device* pDevice, ma_device_type d...
function ma_result (line 8297) | ma_result ma_device_main_loop__wasapi(ma_device* pDevice)
function ma_result (line 8794) | ma_result ma_context_uninit__wasapi(ma_context* pContext)
function ma_result (line 8803) | ma_result ma_context_init__wasapi(const ma_context_config* pConfig, ma_c...
type MA_DSBUFFERDESC (line 8925) | typedef struct
type MA_DSCBUFFERDESC (line 8935) | typedef struct
type MA_DSCAPS (line 8946) | typedef struct
type MA_DSBCAPS (line 8974) | typedef struct
type MA_DSCCAPS (line 8983) | typedef struct
type MA_DSCBCAPS (line 8991) | typedef struct
type MA_DSBPOSITIONNOTIFY (line 8999) | typedef struct
type ma_IDirectSound (line 9005) | typedef struct ma_IDirectSound ma_IDirectSound;
type ma_IDirectSoundBuffer (line 9006) | typedef struct ma_IDirectSoundBuffer ma_IDirectSoundBuffer;
type ma_IDirectSoundCapture (line 9007) | typedef struct ma_IDirectSoundCapture ma_IDirectSoundCapture;
type ma_IDirectSoundCaptureBuffer (line 9008) | typedef struct ma_IDirectSoundCaptureBuffer ma_IDirectSoundCaptureBuffer;
type ma_IDirectSoundNotify (line 9009) | typedef struct ma_IDirectSoundNotify ma_IDirectSoundNotify;
type ma_IDirectSoundVtbl (line 9020) | typedef struct
type ma_IDirectSound (line 9037) | struct ma_IDirectSound
function HRESULT (line 9041) | HRESULT ma_IDirectSound_QueryInterface(ma_IDirectSound* pThis, const IID...
function ULONG (line 9042) | ULONG ma_IDirectSound_AddRef(ma_IDirectSound* pThis) ...
function ULONG (line 9043) | ULONG ma_IDirectSound_Release(ma_IDirectSound* pThis) ...
function HRESULT (line 9044) | HRESULT ma_IDirectSound_CreateSoundBuffer(ma_IDirectSound* pThis, const ...
function HRESULT (line 9045) | HRESULT ma_IDirectSound_GetCaps(ma_IDirectSound* pThis, MA_DSCAPS* pDSCa...
function HRESULT (line 9046) | HRESULT ma_IDirectSound_DuplicateSoundBuffer(ma_IDirectSound* pThis, ma_...
function HRESULT (line 9047) | HRESULT ma_IDirectSound_SetCooperativeLevel(ma_IDirectSound* pThis, HWND...
function HRESULT (line 9048) | HRESULT ma_IDirectSound_Compact(ma_IDirectSound* pThis) ...
function HRESULT (line 9049) | HRESULT ma_IDirectSound_GetSpeakerConfig(ma_IDirectSound* pThis, DWORD* ...
function HRESULT (line 9050) | HRESULT ma_IDirectSound_SetSpeakerConfig(ma_IDirectSound* pThis, DWORD d...
function HRESULT (line 9051) | HRESULT ma_IDirectSound_Initialize(ma_IDirectSound* pThis, const GUID* p...
type ma_IDirectSoundBufferVtbl (line 9055) | typedef struct
type ma_IDirectSoundBuffer (line 9082) | struct ma_IDirectSoundBuffer
function HRESULT (line 9086) | HRESULT ma_IDirectSoundBuffer_QueryInterface(ma_IDirectSoundBuffer* pThi...
function ULONG (line 9087) | ULONG ma_IDirectSoundBuffer_AddRef(ma_IDirectSoundBuffer* pThis) ...
function ULONG (line 9088) | ULONG ma_IDirectSoundBuffer_Release(ma_IDirectSoundBuffer* pThis) ...
function HRESULT (line 9089) | HRESULT ma_IDirectSoundBuffer_GetCaps(ma_IDirectSoundBuffer* pThis, MA_D...
function HRESULT (line 9090) | HRESULT ma_IDirectSoundBuffer_GetCurrentPosition(ma_IDirectSoundBuffer* ...
function HRESULT (line 9091) | HRESULT ma_IDirectSoundBuffer_GetFormat(ma_IDirectSoundBuffer* pThis, WA...
function HRESULT (line 9092) | HRESULT ma_IDirectSoundBuffer_GetVolume(ma_IDirectSoundBuffer* pThis, LO...
function HRESULT (line 9093) | HRESULT ma_IDirectSoundBuffer_GetPan(ma_IDirectSoundBuffer* pThis, LONG*...
function HRESULT (line 9094) | HRESULT ma_IDirectSoundBuffer_GetFrequency(ma_IDirectSoundBuffer* pThis,...
function HRESULT (line 9095) | HRESULT ma_IDirectSoundBuffer_GetStatus(ma_IDirectSoundBuffer* pThis, DW...
function HRESULT (line 9096) | HRESULT ma_IDirectSoundBuffer_Initialize(ma_IDirectSoundBuffer* pThis, m...
function HRESULT (line 9097) | HRESULT ma_IDirectSoundBuffer_Lock(ma_IDirectSoundBuffer* pThis, DWORD d...
function HRESULT (line 9098) | HRESULT ma_IDirectSoundBuffer_Play(ma_IDirectSoundBuffer* pThis, DWORD d...
function HRESULT (line 9099) | HRESULT ma_IDirectSoundBuffer_SetCurrentPosition(ma_IDirectSoundBuffer* ...
function HRESULT (line 9100) | HRESULT ma_IDirectSoundBuffer_SetFormat(ma_IDirectSoundBuffer* pThis, co...
function HRESULT (line 9101) | HRESULT ma_IDirectSoundBuffer_SetVolume(ma_IDirectSoundBuffer* pThis, LO...
function HRESULT (line 9102) | HRESULT ma_IDirectSoundBuffer_SetPan(ma_IDirectSoundBuffer* pThis, LONG ...
function HRESULT (line 9103) | HRESULT ma_IDirectSoundBuffer_SetFrequency(ma_IDirectSoundBuffer* pThis,...
function HRESULT (line 9104) | HRESULT ma_IDirectSoundBuffer_Stop(ma_IDirectSoundBuffer* pThis) ...
function HRESULT (line 9105) | HRESULT ma_IDirectSoundBuffer_Unlock(ma_IDirectSoundBuffer* pThis, void*...
function HRESULT (line 9106) | HRESULT ma_IDirectSoundBuffer_Restore(ma_IDirectSoundBuffer* pThis) ...
type ma_IDirectSoundCaptureVtbl (line 9110) | typedef struct
type ma_IDirectSoundCapture (line 9122) | struct ma_IDirectSoundCapture
function HRESULT (line 9126) | HRESULT ma_IDirectSoundCapture_QueryInterface(ma_IDirectSoundCapture* pT...
function ULONG (line 9127) | ULONG ma_IDirectSoundCapture_AddRef(ma_IDirectSoundCapture* pThis) ...
function ULONG (line 9128) | ULONG ma_IDirectSoundCapture_Release(ma_IDirectSoundCapture* pThis) ...
function HRESULT (line 9129) | HRESULT ma_IDirectSoundCapture_CreateCaptureBuffer(ma_IDirectSoundCaptur...
function HRESULT (line 9130) | HRESULT ma_IDirectSoundCapture_GetCaps (ma_IDirectSoundCaptur...
function HRESULT (line 9131) | HRESULT ma_IDirectSoundCapture_Initialize (ma_IDirectSoundCaptur...
type ma_IDirectSoundCaptureBufferVtbl (line 9135) | typedef struct
type ma_IDirectSoundCaptureBuffer (line 9153) | struct ma_IDirectSoundCaptureBuffer
function HRESULT (line 9157) | HRESULT ma_IDirectSoundCaptureBuffer_QueryInterface(ma_IDirectSoundCaptu...
function ULONG (line 9158) | ULONG ma_IDirectSoundCaptureBuffer_AddRef(ma_IDirectSoundCaptureBuffer...
function ULONG (line 9159) | ULONG ma_IDirectSoundCaptureBuffer_Release(ma_IDirectSoundCaptureBuffe...
function HRESULT (line 9160) | HRESULT ma_IDirectSoundCaptureBuffer_GetCaps(ma_IDirectSoundCaptureBuffe...
function HRESULT (line 9161) | HRESULT ma_IDirectSoundCaptureBuffer_GetCurrentPosition(ma_IDirectSoundC...
function HRESULT (line 9162) | HRESULT ma_IDirectSoundCaptureBuffer_GetFormat(ma_IDirectSoundCaptureBuf...
function HRESULT (line 9163) | HRESULT ma_IDirectSoundCaptureBuffer_GetStatus(ma_IDirectSoundCaptureBuf...
function HRESULT (line 9164) | HRESULT ma_IDirectSoundCaptureBuffer_Initialize(ma_IDirectSoundCaptureBu...
function HRESULT (line 9165) | HRESULT ma_IDirectSoundCaptureBuffer_Lock(ma_IDirectSoundCaptureBuffer* ...
function HRESULT (line 9166) | HRESULT ma_IDirectSoundCaptureBuffer_Start(ma_IDirectSoundCaptureBuffer*...
function HRESULT (line 9167) | HRESULT ma_IDirectSoundCaptureBuffer_Stop(ma_IDirectSoundCaptureBuffer* ...
function HRESULT (line 9168) | HRESULT ma_IDirectSoundCaptureBuffer_Unlock(ma_IDirectSoundCaptureBuffer...
type ma_IDirectSoundNotifyVtbl (line 9172) | typedef struct
type ma_IDirectSoundNotify (line 9182) | struct ma_IDirectSoundNotify
function HRESULT (line 9186) | HRESULT ma_IDirectSoundNotify_QueryInterface(ma_IDirectSoundNotify* pThi...
function ULONG (line 9187) | ULONG ma_IDirectSoundNotify_AddRef(ma_IDirectSoundNotify* pThis) ...
function ULONG (line 9188) | ULONG ma_IDirectSoundNotify_Release(ma_IDirectSoundNotify* pThis) ...
function HRESULT (line 9189) | HRESULT ma_IDirectSoundNotify_SetNotificationPositions(ma_IDirectSoundNo...
function ma_get_channels_from_speaker_config__dsound (line 9203) | void ma_get_channels_from_speaker_config__dsound(DWORD speakerConfig, WO...
function ma_result (line 9245) | ma_result ma_context_create_IDirectSound__dsound(ma_context* pContext, m...
function ma_result (line 9273) | ma_result ma_context_create_IDirectSoundCapture__dsound(ma_context* pCon...
function ma_result (line 9296) | ma_result ma_context_get_format_info_for_IDirectSoundCapture__dsound(ma_...
function ma_bool32 (line 9395) | ma_bool32 ma_context_is_device_id_equal__dsound(ma_context* pContext, co...
type ma_context_enumerate_devices_callback_data__dsound (line 9406) | typedef struct
function BOOL (line 9415) | BOOL CALLBACK ma_context_enumerate_devices_callback__dsound(LPGUID lpGui...
function ma_result (line 9445) | ma_result ma_context_enumerate_devices__dsound(ma_context* pContext, ma_...
type ma_context_get_device_info_callback_data__dsound (line 9473) | typedef struct
function BOOL (line 9480) | BOOL CALLBACK ma_context_get_device_info_callback__dsound(LPGUID lpGuid,...
function ma_result (line 9505) | ma_result ma_context_get_device_info__dsound(ma_context* pContext, ma_de...
type ma_device_enum_data__dsound (line 9658) | typedef struct
function BOOL (line 9665) | BOOL CALLBACK ma_enum_devices_callback__dsound(LPGUID lpGuid, LPCSTR lpc...
function ma_device_uninit__dsound (line 9693) | void ma_device_uninit__dsound(ma_device* pDevice)
function ma_result (line 9715) | ma_result ma_config_to_WAVEFORMATEXTENSIBLE(ma_format format, ma_uint32 ...
function ma_result (line 9754) | ma_result ma_device_init__dsound(ma_context* pContext, const ma_device_c...
function ma_result (line 9999) | ma_result ma_device_main_loop__dsound(ma_device* pDevice)
function ma_result (line 10495) | ma_result ma_context_uninit__dsound(ma_context* pContext)
function ma_result (line 10505) | ma_result ma_context_init__dsound(const ma_context_config* pConfig, ma_c...
type MA_WAVEOUTCAPS2A (line 10551) | typedef struct
type MA_WAVEINCAPS2A (line 10565) | typedef struct
function ma_result (line 10597) | ma_result ma_result_from_MMRESULT(MMRESULT resultMM)
type MA_WAVECAPSA (line 10637) | typedef struct
function ma_result (line 10645) | ma_result ma_get_best_info_from_formats_flags__winmm(DWORD dwFormats, WO...
function ma_result (line 10725) | ma_result ma_formats_flags_to_WAVEFORMATEX__winmm(DWORD dwFormats, WORD ...
function ma_result (line 10801) | ma_result ma_context_get_device_info_from_WAVECAPS(ma_context* pContext,...
function ma_result (line 10898) | ma_result ma_context_get_device_info_from_WAVEOUTCAPS2(ma_context* pCont...
function ma_result (line 10913) | ma_result ma_context_get_device_info_from_WAVEINCAPS2(ma_context* pConte...
function ma_bool32 (line 10929) | ma_bool32 ma_context_is_device_id_equal__winmm(ma_context* pContext, con...
function ma_result (line 10939) | ma_result ma_context_enumerate_devices__winmm(ma_context* pContext, ma_e...
function ma_result (line 11000) | ma_result ma_context_get_device_info__winmm(ma_context* pContext, ma_dev...
function ma_device_uninit__winmm (line 11043) | void ma_device_uninit__winmm(ma_device* pDevice)
function ma_result (line 11063) | ma_result ma_device_init__winmm(ma_context* pContext, const ma_device_co...
function ma_result (line 11288) | ma_result ma_device_stop__winmm(ma_device* pDevice)
function ma_result (line 11320) | ma_result ma_device_write__winmm(ma_device* pDevice, const void* pPCMFra...
function ma_result (line 11405) | ma_result ma_device_read__winmm(ma_device* pDevice, void* pPCMFrames, ma...
function ma_result (line 11513) | ma_result ma_context_uninit__winmm(ma_context* pContext)
function ma_result (line 11522) | ma_result ma_context_init__winmm(const ma_context_config* pConfig, ma_co...
type snd_pcm_uframes_t (line 11578) | typedef snd_pcm_uframes_t ma_snd_pcm_uframes_t;
type snd_pcm_sframes_t (line 11579) | typedef snd_pcm_sframes_t ma_snd_pcm_sframes_t;
type snd_pcm_stream_t (line 11580) | typedef snd_pcm_stream_t ma_snd_pcm_stream_t;
type snd_pcm_format_t (line 11581) | typedef snd_pcm_format_t ma_snd_pcm_format_t;
type snd_pcm_access_t (line 11582) | typedef snd_pcm_access_t ma_snd_pcm_access_t;
type snd_pcm_t (line 11583) | typedef snd_pcm_t ma_snd_pcm_t;
type snd_pcm_hw_params_t (line 11584) | typedef snd_pcm_hw_params_t ma_snd_pcm_hw_params_t;
type snd_pcm_sw_params_t (line 11585) | typedef snd_pcm_sw_params_t ma_snd_pcm_sw_params_t;
type snd_pcm_format_mask_t (line 11586) | typedef snd_pcm_format_mask_t ma_snd_pcm_format_mask_t;
type snd_pcm_info_t (line 11587) | typedef snd_pcm_info_t ma_snd_pcm_info_t;
type snd_pcm_channel_area_t (line 11588) | typedef snd_pcm_channel_area_t ma_snd_pcm_channel_area_t;
type snd_pcm_chmap_t (line 11589) | typedef snd_pcm_chmap_t ma_snd_pcm_chmap_t;
type ma_snd_pcm_uframes_t (line 11665) | typedef unsigned long ma_snd_pcm_uframes_t;
type ma_snd_pcm_sframes_t (line 11666) | typedef long ma_snd_pcm_sframes_t;
type ma_snd_pcm_stream_t (line 11667) | typedef int ma_snd_pcm_stream_t;
type ma_snd_pcm_format_t (line 11668) | typedef int ma_snd_pcm_format_t;
type ma_snd_pcm_access_t (line 11669) | typedef int ma_snd_pcm_access_t;
type ma_snd_pcm_t (line 11670) | typedef struct ma_snd_pcm_t ma_snd_pcm_t;
type ma_snd_pcm_hw_params_t (line 11671) | typedef struct ma_snd_pcm_hw_params_t ma_snd_pcm_hw_params_t;
type ma_snd_pcm_sw_params_t (line 11672) | typedef struct ma_snd_pcm_sw_params_t ma_snd_pcm_sw_params_t;
type ma_snd_pcm_format_mask_t (line 11673) | typedef struct ma_snd_pcm_format_mask_t ma_snd_pcm_format_mask_t;
type ma_snd_pcm_info_t (line 11674) | typedef struct ma_snd_pcm_info_t ma_snd_pcm_info_t;
type ma_snd_pcm_channel_area_t (line 11675) | typedef struct
type ma_snd_pcm_chmap_t (line 11681) | typedef struct
type ma_snd_pcm_chmap_t (line 11805) | typedef ma_snd_pcm_chmap_t * (* ma_snd_pcm_get_chmap_proc) ...
type ma_snd_pcm_sframes_t (line 11816) | typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_mmap_commit_proc) ...
type ma_snd_pcm_sframes_t (line 11818) | typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_readi_proc) ...
type ma_snd_pcm_sframes_t (line 11819) | typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_writei_proc) ...
type ma_snd_pcm_sframes_t (line 11820) | typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_avail_proc) ...
type ma_snd_pcm_sframes_t (line 11821) | typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_avail_update_proc) ...
function ma_find_default_buffer_size_scale__alsa (line 11860) | float ma_find_default_buffer_size_scale__alsa(const char* deviceName)
function ma_snd_pcm_format_t (line 11877) | ma_snd_pcm_format_t ma_convert_ma_format_to_alsa_format(ma_format format)
function ma_format (line 11900) | ma_format ma_format_from_alsa(ma_snd_pcm_format_t formatALSA)
function ma_channel (line 11927) | ma_channel ma_convert_alsa_channel_position_to_ma_channel(unsigned int a...
function ma_bool32 (line 11963) | ma_bool32 ma_is_common_device_name__alsa(const char* name)
function ma_bool32 (line 11976) | ma_bool32 ma_is_playback_device_blacklisted__alsa(const char* name)
function ma_bool32 (line 11988) | ma_bool32 ma_is_capture_device_blacklisted__alsa(const char* name)
function ma_bool32 (line 12000) | ma_bool32 ma_is_device_blacklisted__alsa(ma_device_type deviceType, cons...
function ma_bool32 (line 12032) | ma_bool32 ma_is_device_name_in_hw_format__alsa(const char* hwid)
function ma_convert_device_name_to_hw_format__alsa (line 12076) | int ma_convert_device_name_to_hw_format__alsa(ma_context* pContext, char...
function ma_bool32 (line 12140) | ma_bool32 ma_does_id_exist_in_list__alsa(ma_device_id* pUniqueIDs, ma_ui...
function ma_result (line 12156) | ma_result ma_context_open_pcm__alsa(ma_context* pContext, ma_share_mode ...
function ma_bool32 (line 12282) | ma_bool32 ma_context_is_device_id_equal__alsa(ma_context* pContext, cons...
function ma_result (line 12292) | ma_result ma_context_enumerate_devices__alsa(ma_context* pContext, ma_en...
type ma_context_get_device_info_enum_callback_data__alsa (line 12449) | typedef struct
function ma_bool32 (line 12458) | ma_bool32 ma_context_get_device_info_enum_callback__alsa(ma_context* pCo...
function ma_result (line 12477) | ma_result ma_context_get_device_info__alsa(ma_context* pContext, ma_devi...
function ma_uint32 (line 12564) | ma_uint32 ma_device__wait_for_frames__alsa(ma_device* pDevice, ma_bool32...
function ma_bool32 (line 12624) | ma_bool32 ma_device_read_from_client_and_write__alsa(ma_device* pDevice)
function ma_bool32 (line 12725) | ma_bool32 ma_device_read_and_send_to_client__alsa(ma_device* pDevice)
function ma_device_uninit__alsa (line 12824) | void ma_device_uninit__alsa(ma_device* pDevice)
function ma_result (line 12837) | ma_result ma_device_init_by_type__alsa(ma_context* pContext, const ma_de...
function ma_result (line 13261) | ma_result ma_device_init__alsa(ma_context* pContext, const ma_device_con...
function ma_result (line 13285) | ma_result ma_device_start__alsa(ma_device* pDevice)
function ma_result (line 13319) | ma_result ma_device_stop__alsa(ma_device* pDevice)
function ma_result (line 13351) | ma_result ma_device_write__alsa(ma_device* pDevice, const void* pPCMFram...
function ma_result (line 13405) | ma_result ma_device_read__alsa(ma_device* pDevice, void* pPCMFrames, ma_...
function ma_result (line 13458) | ma_result ma_device_break_main_loop__alsa(ma_device* pDevice)
function ma_result (line 13466) | ma_result ma_device_main_loop__alsa(ma_device* pDevice)
function ma_result (line 13485) | ma_result ma_context_uninit__alsa(ma_context* pContext)
function ma_result (line 13502) | ma_result ma_context_init__alsa(const ma_context_config* pConfig, ma_con...
type pa_context_flags_t (line 13740) | typedef pa_context_flags_t ma_pa_context_flags_t;
type pa_stream_flags_t (line 13745) | typedef pa_stream_flags_t ma_pa_stream_flags_t;
type pa_sink_flags_t (line 13768) | typedef pa_sink_flags_t ma_pa_sink_flags_t;
type pa_source_flags_t (line 13780) | typedef pa_source_flags_t ma_pa_source_flags_t;
type pa_context_state_t (line 13791) | typedef pa_context_state_t ma_pa_context_state_t;
type pa_stream_state_t (line 13800) | typedef pa_stream_state_t ma_pa_stream_state_t;
type pa_operation_state_t (line 13807) | typedef pa_operation_state_t ma_pa_operation_state_t;
type pa_sink_state_t (line 13812) | typedef pa_sink_state_t ma_pa_sink_state_t;
type pa_source_state_t (line 13818) | typedef pa_source_state_t ma_pa_source_state_t;
type pa_seek_mode_t (line 13824) | typedef pa_seek_mode_t ma_pa_seek_mode_t;
type pa_channel_position_t (line 13830) | typedef pa_channel_position_t ma_pa_channel_position_t;
type pa_channel_map_def_t (line 13888) | typedef pa_channel_map_def_t ma_pa_channel_map_def_t;
type pa_sample_format_t (line 13896) | typedef pa_sample_format_t ma_pa_sample_format_t;
type pa_mainloop (line 13912) | typedef pa_mainloop ma_pa_mainloop;
type pa_mainloop_api (line 13913) | typedef pa_mainloop_api ma_pa_mainloop_api;
type pa_context (line 13914) | typedef pa_context ma_pa_context;
type pa_operation (line 13915) | typedef pa_operation ma_pa_operation;
type pa_stream (line 13916) | typedef pa_stream ma_pa_stream;
type pa_spawn_api (line 13917) | typedef pa_spawn_api ma_pa_spawn_api;
type pa_buffer_attr (line 13918) | typedef pa_buffer_attr ma_pa_buffer_attr;
type pa_channel_map (line 13919) | typedef pa_channel_map ma_pa_channel_map;
type pa_cvolume (line 13920) | typedef pa_cvolume ma_pa_cvolume;
type pa_sample_spec (line 13921) | typedef pa_sample_spec ma_pa_sample_spec;
type pa_sink_info (line 13922) | typedef pa_sink_info ma_pa_sink_info;
type pa_source_info (line 13923) | typedef pa_source_info ma_pa_source_info;
type pa_context_notify_cb_t (line 13925) | typedef pa_context_notify_cb_t ma_pa_context_notify_cb_t;
type pa_sink_info_cb_t (line 13926) | typedef pa_sink_info_cb_t ma_pa_sink_info_cb_t;
type pa_source_info_cb_t (line 13927) | typedef pa_source_info_cb_t ma_pa_source_info_cb_t;
type pa_stream_success_cb_t (line 13928) | typedef pa_stream_success_cb_t ma_pa_stream_success_cb_t;
type pa_stream_request_cb_t (line 13929) | typedef pa_stream_request_cb_t ma_pa_stream_request_cb_t;
type pa_free_cb_t (line 13930) | typedef pa_free_cb_t ma_pa_free_cb_t;
type ma_pa_context_flags_t (line 13940) | typedef int ma_pa_context_flags_t;
type ma_pa_stream_flags_t (line 13945) | typedef int ma_pa_stream_flags_t;
type ma_pa_sink_flags_t (line 13968) | typedef int ma_pa_sink_flags_t;
type ma_pa_source_flags_t (line 13980) | typedef int ma_pa_source_flags_t;
type ma_pa_context_state_t (line 13991) | typedef int ma_pa_context_state_t;
type ma_pa_stream_state_t (line 14000) | typedef int ma_pa_stream_state_t;
type ma_pa_operation_state_t (line 14007) | typedef int ma_pa_operation_state_t;
type ma_pa_sink_state_t (line 14012) | typedef int ma_pa_sink_state_t;
type ma_pa_source_state_t (line 14018) | typedef int ma_pa_source_state_t;
type ma_pa_seek_mode_t (line 14024) | typedef int ma_pa_seek_mode_t;
type ma_pa_channel_position_t (line 14030) | typedef int ma_pa_channel_position_t;
type ma_pa_channel_map_def_t (line 14088) | typedef int ma_pa_channel_map_def_t;
type ma_pa_sample_format_t (line 14096) | typedef int ma_pa_sample_format_t;
type ma_pa_mainloop (line 14112) | typedef struct ma_pa_mainloop ma_pa_mainloop;
type ma_pa_mainloop_api (line 14113) | typedef struct ma_pa_mainloop_api ma_pa_mainloop_api;
type ma_pa_context (line 14114) | typedef struct ma_pa_context ma_pa_context;
type ma_pa_operation (line 14115) | typedef struct ma_pa_operation ma_pa_operation;
type ma_pa_stream (line 14116) | typedef struct ma_pa_stream ma_pa_stream;
type ma_pa_spawn_api (line 14117) | typedef struct ma_pa_spawn_api ma_pa_spawn_api;
type ma_pa_buffer_attr (line 14119) | typedef struct
type ma_pa_channel_map (line 14128) | typedef struct
type ma_pa_cvolume (line 14134) | typedef struct
type ma_pa_sample_spec (line 14140) | typedef struct
type ma_pa_sink_info (line 14147) | typedef struct
type ma_pa_source_info (line 14175) | typedef struct
type ma_pa_mainloop (line 14212) | typedef ma_pa_mainloop* (* ma_pa_mainloop_new_proc) ...
type ma_pa_mainloop_api (line 14214) | typedef ma_pa_mainloop_api* (* ma_pa_mainloop_get_api_proc) ...
type ma_pa_context (line 14217) | typedef ma_pa_context* (* ma_pa_context_new_proc) ...
type ma_pa_context_state_t (line 14222) | typedef ma_pa_context_state_t (* ma_pa_context_get_state_proc) ...
type ma_pa_operation (line 14223) | typedef ma_pa_operation* (* ma_pa_context_get_sink_info_list_pro...
type ma_pa_operation (line 14224) | typedef ma_pa_operation* (* ma_pa_context_get_source_info_list_p...
type ma_pa_operation (line 14225) | typedef ma_pa_operation* (* ma_pa_context_get_sink_info_by_name_...
type ma_pa_operation (line 14226) | typedef ma_pa_operation* (* ma_pa_context_get_source_info_by_nam...
type ma_pa_operation_state_t (line 14228) | typedef ma_pa_operation_state_t (* ma_pa_operation_get_state_proc) ...
type ma_pa_channel_map (line 14229) | typedef ma_pa_channel_map* (* ma_pa_channel_map_init_extend_proc) ...
type ma_pa_stream (line 14232) | typedef ma_pa_stream* (* ma_pa_stream_new_proc) ...
type ma_pa_stream_state_t (line 14237) | typedef ma_pa_stream_state_t (* ma_pa_stream_get_state_proc) ...
type ma_pa_sample_spec (line 14238) | typedef const ma_pa_sample_spec* (* ma_pa_stream_get_sample_spec_proc) ...
type ma_pa_channel_map (line 14239) | typedef const ma_pa_channel_map* (* ma_pa_stream_get_channel_map_proc) ...
type ma_pa_buffer_attr (line 14240) | typedef const ma_pa_buffer_attr* (* ma_pa_stream_get_buffer_attr_proc) ...
type ma_pa_operation (line 14241) | typedef ma_pa_operation* (* ma_pa_stream_set_buffer_attr_proc) ...
type ma_pa_operation (line 14245) | typedef ma_pa_operation* (* ma_pa_stream_flush_proc) ...
type ma_pa_operation (line 14246) | typedef ma_pa_operation* (* ma_pa_stream_drain_proc) ...
type ma_pa_operation (line 14248) | typedef ma_pa_operation* (* ma_pa_stream_cork_proc) ...
type ma_pa_operation (line 14249) | typedef ma_pa_operation* (* ma_pa_stream_trigger_proc) ...
type ma_pulse_device_enum_data (line 14257) | typedef struct
function ma_result (line 14264) | ma_result ma_result_from_pulse(int result)
function ma_pa_sample_format_t (line 14276) | ma_pa_sample_format_t ma_format_to_pulse(ma_format format)
function ma_format (line 14304) | ma_format ma_format_from_pulse(ma_pa_sample_format_t format)
function ma_channel (line 14331) | ma_channel ma_channel_position_from_pulse(ma_pa_channel_position_t posit...
function ma_pa_channel_position_t (line 14392) | ma_pa_channel_position_t ma_channel_position_to_pulse(ma_channel position)
function ma_result (line 14434) | ma_result ma_wait_for_operation__pulse(ma_context* pContext, ma_pa_mainl...
function ma_result (line 14450) | ma_result ma_device__wait_for_operation__pulse(ma_device* pDevice, ma_pa...
function ma_bool32 (line 14459) | ma_bool32 ma_context_is_device_id_equal__pulse(ma_context* pContext, con...
type ma_context_enumerate_devices_callback_data__pulse (line 14470) | typedef struct
function ma_context_enumerate_devices_sink_callback__pulse (line 14478) | void ma_context_enumerate_devices_sink_callback__pulse(ma_pa_context* pP...
function ma_context_enumerate_devices_source_callback__pulse (line 14506) | void ma_context_enumerate_devices_source_callback__pulse(ma_pa_context* ...
function ma_result (line 14534) | ma_result ma_context_enumerate_devices__pulse(ma_context* pContext, ma_e...
type ma_context_get_device_info_callback_data__pulse (line 14641) | typedef struct
function ma_context_get_device_info_sink_callback__pulse (line 14647) | void ma_context_get_device_info_sink_callback__pulse(ma_pa_context* pPul...
function ma_context_get_device_info_source_callback__pulse (line 14676) | void ma_context_get_device_info_source_callback__pulse(ma_pa_context* pP...
function ma_result (line 14705) | ma_result ma_context_get_device_info__pulse(ma_context* pContext, ma_dev...
function ma_pulse_device_state_callback (line 14802) | void ma_pulse_device_state_callback(ma_pa_context* pPulseContext, void* ...
function ma_device_sink_info_callback (line 14816) | void ma_device_sink_info_callback(ma_pa_context* pPulseContext, const ma...
function ma_device_source_info_callback (line 14832) | void ma_device_source_info_callback(ma_pa_context* pPulseContext, const ...
function ma_device_sink_name_callback (line 14848) | void ma_device_sink_name_callback(ma_pa_context* pPulseContext, const ma...
function ma_device_source_name_callback (line 14864) | void ma_device_source_name_callback(ma_pa_context* pPulseContext, const ...
function ma_device_uninit__pulse (line 14880) | void ma_device_uninit__pulse(ma_device* pDevice)
function ma_pa_buffer_attr (line 14903) | ma_pa_buffer_attr ma_device__pa_buffer_attr_new(ma_uint32 bufferSizeInFr...
function ma_pa_stream (line 14915) | ma_pa_stream* ma_device__pa_stream_new__pulse(ma_device* pDevice, const ...
function ma_result (line 14931) | ma_result ma_device_init__pulse(ma_context* pContext, const ma_device_co...
function ma_pulse_operation_complete_callback (line 15241) | void ma_pulse_operation_complete_callback(ma_pa_stream* pStream, int suc...
function ma_result (line 15251) | ma_result ma_device__cork_stream__pulse(ma_device* pDevice, ma_device_ty...
function ma_result (line 15292) | ma_result ma_device_stop__pulse(ma_device* pDevice)
function ma_result (line 15324) | ma_result ma_device_write__pulse(ma_device* pDevice, const void* pPCMFra...
function ma_result (line 15420) | ma_result ma_device_read__pulse(ma_device* pDevice, void* pPCMFrames, ma...
function ma_result (line 15548) | ma_result ma_context_uninit__pulse(ma_context* pContext)
function ma_result (line 15566) | ma_result ma_context_init__pulse(const ma_context_config* pConfig, ma_co...
type jack_nframes_t (line 15817) | typedef jack_nframes_t ma_jack_nframes_t;
type jack_options_t (line 15818) | typedef jack_options_t ma_jack_options_t;
type jack_status_t (line 15819) | typedef jack_status_t ma_jack_status_t;
type jack_client_t (line 15820) | typedef jack_client_t ma_jack_client_t;
type jack_port_t (line 15821) | typedef jack_port_t ma_jack_port_t;
type JackProcessCallback (line 15822) | typedef JackProcessCallback ma_JackProcessCallback;
type JackBufferSizeCallback (line 15823) | typedef JackBufferSizeCallback ma_JackBufferSizeCallback;
type JackShutdownCallback (line 15824) | typedef JackShutdownCallback ma_JackShutdownCallback;
type ma_uint32 (line 15831) | typedef ma_uint32 ma_jack_nframes_t;
type ma_jack_options_t (line 15832) | typedef int ma_jack_options_t;
type ma_jack_status_t (line 15833) | typedef int ma_jack_status_t;
type ma_jack_client_t (line 15834) | typedef struct ma_jack_client_t ma_jack_client_t;
type ma_jack_port_t (line 15835) | typedef struct ma_jack_port_t ma_jack_port_t;
type ma_jack_client_t (line 15846) | typedef ma_jack_client_t* (* ma_jack_client_open_proc) (cons...
type ma_jack_nframes_t (line 15852) | typedef ma_jack_nframes_t (* ma_jack_get_sample_rate_proc) (ma_j...
type ma_jack_nframes_t (line 15853) | typedef ma_jack_nframes_t (* ma_jack_get_buffer_size_proc) (ma_j...
type ma_jack_port_t (line 15858) | typedef ma_jack_port_t* (* ma_jack_port_register_proc) (ma_j...
function ma_result (line 15863) | ma_result ma_context_open_client__jack(ma_context* pContext, ma_jack_cli...
function ma_bool32 (line 15892) | ma_bool32 ma_context_is_device_id_equal__jack(ma_context* pContext, cons...
function ma_result (line 15902) | ma_result ma_context_enumerate_devices__jack(ma_context* pContext, ma_en...
function ma_result (line 15928) | ma_result ma_context_get_device_info__jack(ma_context* pContext, ma_devi...
function ma_device_uninit__jack (line 15987) | void ma_device_uninit__jack(ma_device* pDevice)
function ma_device__jack_shutdown_callback (line 16013) | void ma_device__jack_shutdown_callback(void* pUserData)
function ma_device__jack_buffer_size_callback (line 16022) | int ma_device__jack_buffer_size_callback(ma_jack_nframes_t frameCount, v...
function ma_device__jack_process_callback (line 16050) | int ma_device__jack_process_callback(ma_jack_nframes_t frameCount, void*...
function ma_result (line 16111) | ma_result ma_device_init__jack(ma_context* pContext, const ma_device_con...
function ma_result (line 16247) | ma_result ma_device_start__jack(ma_device* pDevice)
function ma_result (line 16305) | ma_result ma_device_stop__jack(ma_device* pDevice)
function ma_result (line 16323) | ma_result ma_context_uninit__jack(ma_context* pContext)
function ma_result (line 16338) | ma_result ma_context_init__jack(const ma_context_config* pConfig, ma_con...
type Boolean (line 16481) | typedef Boolean (* ma_CFStringGetCString_proc)(CFStringRef theString, ch...
type OSStatus (line 16485) | typedef OSStatus (* ma_AudioObjectGetPropertyData_proc)(AudioObjectID in...
type OSStatus (line 16486) | typedef OSStatus (* ma_AudioObjectGetPropertyDataSize_proc)(AudioObjectI...
type OSStatus (line 16487) | typedef OSStatus (* ma_AudioObjectSetPropertyData_proc)(AudioObjectID in...
type OSStatus (line 16488) | typedef OSStatus (* ma_AudioObjectAddPropertyListener_proc)(AudioObjectI...
type AudioComponent (line 16492) | typedef AudioComponent (* ma_AudioComponentFindNext_proc)(AudioComponent...
type OSStatus (line 16493) | typedef OSStatus (* ma_AudioComponentInstanceDispose_proc)(AudioComponen...
type OSStatus (line 16494) | typedef OSStatus (* ma_AudioComponentInstanceNew_proc)(AudioComponent in...
type OSStatus (line 16495) | typedef OSStatus (* ma_AudioOutputUnitStart_proc)(AudioUnit inUnit);
type OSStatus (line 16496) | typedef OSStatus (* ma_AudioOutputUnitStop_proc)(AudioUnit inUnit);
type OSStatus (line 16497) | typedef OSStatus (* ma_AudioUnitAddPropertyListener_proc)(AudioUnit inUn...
type OSStatus (line 16498) | typedef OSStatus (* ma_AudioUnitGetPropertyInfo_proc)(AudioUnit inUnit, ...
type OSStatus (line 16499) | typedef OSStatus (* ma_AudioUnitGetProperty_proc)(AudioUnit inUnit, Audi...
type
Condensed preview — 336 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,169K chars).
[
{
"path": ".gitattributes",
"chars": 2578,
"preview": "###############################################################################\r\n# Set default behavior to automatically"
},
{
"path": ".gitignore",
"chars": 5806,
"preview": "._*\n.DS_Store\n\n## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio a"
},
{
"path": ".gitmodules",
"chars": 147,
"preview": "[submodule \"source-code/dependencies/MemoryModule\"]\n\tpath = source-code/dependencies/MemoryModule\n\turl = https://github."
},
{
"path": "READ ME.txt.rtf",
"chars": 1936909,
"preview": "{\\rtf1\\ansi\\deff3\\adeflang1025\n{\\fonttbl{\\f0\\froman\\fprq2\\fcharset0 Times New Roman;}{\\f1\\froman\\fprq2\\fcharset2 Symbol;"
},
{
"path": "README.txt",
"chars": 495,
"preview": "This is the source code! It can NOT be used to play PDAFT!\nIf you just wanted to play the game, you downloaded the wrong"
},
{
"path": "appveyor.yml",
"chars": 1389,
"preview": "version: '{build}'\nimage: Visual Studio 2019\nconfiguration:\n- Release\nplatform: x64\nbuild:\n project: source-code/PD-Loa"
},
{
"path": "source-code/LICENSE",
"chars": 5280,
"preview": "PD Loader and the included plugins are distributed under MIT License:\n \n Copyright (c) Project DIVA Modding 2nd Commun"
},
{
"path": "source-code/PD-Loader.sln",
"chars": 6154,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 17\r\nVisualStudioVersion = 17.12."
},
{
"path": "source-code/README.md",
"chars": 5072,
"preview": "# PD Loader\n\n**PD Loader** lets you load plugins into **PDAFT** by placing them into a **\"plugins\"** folder, it includes"
},
{
"path": "source-code/data/Download .NET Framework Runtime.url",
"chars": 86,
"preview": "[InternetShortcut]\r\nURL=https://dotnet.microsoft.com/download/dotnet-framework/net48\r\n"
},
{
"path": "source-code/data/Download QuickSFV.url",
"chars": 65,
"preview": "[InternetShortcut]\r\nURL=https://www.quicksfv.org/qsfv236x64.exe\r\n"
},
{
"path": "source-code/data/Download Visual C++ Runtime.url",
"chars": 72,
"preview": "[InternetShortcut]\r\nURL=https://aka.ms/vs/16/release/vc_redist.x64.exe\r\n"
},
{
"path": "source-code/data/README - PD Loader.url",
"chars": 146,
"preview": "[{000214A0-0000-0000-C000-000000000046}]\nProp3=19,11\n[InternetShortcut]\nIDList=\nURL=https://github.com/PDModdingCommunit"
},
{
"path": "source-code/data/patches/custom_freeplay_text_example.p",
"chars": 413,
"preview": "# Enable FREE PLAY\n// Just in case it's disabled...\n@1403BABEA:75 // ...enable it.\n\n# Custom FREE PLAY text\n1409F61F0:!M"
},
{
"path": "source-code/data/plugins/ShaderPatch.ini",
"chars": 4000,
"preview": "[Config]\n# As of 1 November 2019, this is just data about config, to be used for UI generation and default values.\n# Use"
},
{
"path": "source-code/data/verify_base_game.sfv",
"chars": 1788333,
"preview": "; Generated by QuickSFV 3.00 on 2020-01-04 at 14:24:56\n; http://www.QuickSFV.org\n;\n; 140616748778912 23:14.30 1988-08-0"
},
{
"path": "source-code/data/verify_mount_data.sfv",
"chars": 144225,
"preview": "; Generated by QuickSFV v2.36 on 2021-10-27 at 17:56:21\r\n; http://www.QuickSFV.org\r\n;\r\n; 45 15:58.08 2016-10-"
},
{
"path": "source-code/dependencies/GPUModel/GPUModel.h",
"chars": 3289,
"preview": "/*\nSimple header for detecting Nvidia GPU models\n*/\n#pragma once\n#define WIN32_LEAN_AND_MEAN // Exclude rare"
},
{
"path": "source-code/dependencies/PluginConfigApi/PluginConfigApi.h",
"chars": 3500,
"preview": "/*\nPD Loader Launcher Plugin Information Structs\n*/\n\n#pragma once\n#define WIN32_LEAN_AND_MEAN // Exclude rar"
},
{
"path": "source-code/dependencies/WineVer/WineVer.h",
"chars": 658,
"preview": "/*\nSimple header for detecting version of Wine\n*/\n\nnamespace WineVer\n{\n\t#define WIN32_LEAN_AND_MEAN // Exclu"
},
{
"path": "source-code/dependencies/detours/include/detours.h",
"chars": 38990,
"preview": "/////////////////////////////////////////////////////////////////////////////\n//\n// Core Detours Functionality (detours"
},
{
"path": "source-code/dependencies/detours/include/detver.h",
"chars": 720,
"preview": "//////////////////////////////////////////////////////////////////////////////\n//\n// Common version parameters.\n//\n// "
},
{
"path": "source-code/dependencies/detours/include/syelog.h",
"chars": 3534,
"preview": "//////////////////////////////////////////////////////////////////////////////\n//\n// Detours Test Program (syelog.h of "
},
{
"path": "source-code/dependencies/freeglut/include/GL/freeglut.h",
"chars": 681,
"preview": "#ifndef __FREEGLUT_H__\n#define __FREEGLUT_H__\n\n/*\n * freeglut.h\n *\n * The freeglut library include file\n *\n * THE SOFT"
},
{
"path": "source-code/dependencies/freeglut/include/GL/freeglut_ext.h",
"chars": 11008,
"preview": "#ifndef __FREEGLUT_EXT_H__\n#define __FREEGLUT_EXT_H__\n\n/*\n * freeglut_ext.h\n *\n * The non-GLUT-compatible extensions t"
},
{
"path": "source-code/dependencies/freeglut/include/GL/freeglut_std.h",
"chars": 27173,
"preview": "#ifndef __FREEGLUT_STD_H__\n#define __FREEGLUT_STD_H__\n\n/*\n * freeglut_std.h\n *\n * The GLUT-compatible part of the free"
},
{
"path": "source-code/dependencies/freeglut/include/GL/freeglut_ucall.h",
"chars": 5871,
"preview": "#ifndef __FREEGLUT_UCALL_H__\n#define __FREEGLUT_UCALL_H__\n\n/*\n * freeglut_ucall.h\n *\n * Callbacks with user data argum"
},
{
"path": "source-code/dependencies/freeglut/include/GL/glut.h",
"chars": 639,
"preview": "#ifndef __GLUT_H__\n#define __GLUT_H__\n\n/*\n * glut.h\n *\n * The freeglut library include file\n *\n * THE SOFTWARE IS PROV"
},
{
"path": "source-code/dependencies/simpleini/.gitignore",
"chars": 6202,
"preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n##\n## G"
},
{
"path": "source-code/dependencies/simpleini/.travis.yml",
"chars": 102,
"preview": "language: cpp\n\nos:\n - linux\n - osx\n\ncompiler:\n - gcc\n - clang\n\nscript:\n - make all\n - make test\n"
},
{
"path": "source-code/dependencies/simpleini/ConvertUTF.c",
"chars": 19067,
"preview": "/*\n * Copyright 2001-2004 Unicode, Inc.\n * \n * Disclaimer\n * \n * This source code is provided as is by Unicode, Inc. No "
},
{
"path": "source-code/dependencies/simpleini/ConvertUTF.h",
"chars": 5940,
"preview": "/*\n * Copyright 2001-2004 Unicode, Inc.\n * \n * Disclaimer\n * \n * This source code is provided as is by Unicode, Inc. No "
},
{
"path": "source-code/dependencies/simpleini/LICENCE.txt",
"chars": 1089,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2006-2013 Brodie Thiesfield\n\nPermission is hereby granted, free of charge, to any p"
},
{
"path": "source-code/dependencies/simpleini/Makefile",
"chars": 389,
"preview": "help:\n\t@echo This makefile is just for the test program \\(use \\\"make clean all test\\\"\\)\n\t@echo Just include the SimpleIn"
},
{
"path": "source-code/dependencies/simpleini/README.md",
"chars": 5883,
"preview": "simpleini\n=========\n\n[](https://travis-ci"
},
{
"path": "source-code/dependencies/simpleini/SimpleIni.h",
"chars": 124611,
"preview": "/** @mainpage\n\n <table>\n <tr><th>Library <td>SimpleIni\n <tr><th>File <td>SimpleIni.h\n "
},
{
"path": "source-code/dependencies/simpleini/other/package.cmd",
"chars": 713,
"preview": "set VERSION=4.15\n\nset SEVENZIP=\"C:\\Program Files\\7-Zip\\7z.exe\"\n\nFOR /F \"tokens=*\" %%G IN ('DIR /AD /B /S Debug*') DO (\n "
},
{
"path": "source-code/dependencies/simpleini/other/simpleini.doxy",
"chars": 55340,
"preview": "# Doxyfile 1.5.4\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "source-code/dependencies/simpleini/vcproj/SimpleIni.sln",
"chars": 2367,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 16\nVisualStudioVersion = 16.0.3020"
},
{
"path": "source-code/dependencies/simpleini/vcproj/SimpleIni.vcxproj",
"chars": 7107,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msb"
},
{
"path": "source-code/dependencies/simpleini/vcproj/SimpleIni.vcxproj.filters",
"chars": 508,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/dependencies/xdelta3/LICENSE",
"chars": 9156,
"preview": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AN"
},
{
"path": "source-code/dependencies/xdelta3/Makefile.am",
"chars": 5451,
"preview": "ACLOCAL_AMFLAGS = -I m4\nAUTOMAKE_OPTIONS = subdir-objects\n\nbin_PROGRAMS = xdelta3\nnoinst_PROGRAMS = xdelta3regtest xdelt"
},
{
"path": "source-code/dependencies/xdelta3/README.md",
"chars": 1156,
"preview": "Xdelta 3.x readme.txt\nCopyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,\n2009, 2010, 2011, 2012, 2013, 2014, "
},
{
"path": "source-code/dependencies/xdelta3/badcopy.c",
"chars": 3600,
"preview": "#include <stdio.h>\n#include <stdlib.h>\n#include <math.h>\n\n#define BUFSZ (1 << 22)\n\n#ifdef WIN32\n// whatever\nstatic \ndoub"
},
{
"path": "source-code/dependencies/xdelta3/configure.ac",
"chars": 1436,
"preview": "AC_INIT([Xdelta3], [3.1.1], [josh.macdonald@gmail.com], \n\t[xdelta3], [http://xdelta.org/])\nAC_PREREQ([2.68])\nAC_CONFIG_M"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/CMakeLists.txt",
"chars": 1594,
"preview": "# Copyright 2013 Google Inc. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/COPYING",
"chars": 11358,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/README",
"chars": 976,
"preview": "This library is a C++ template library and, as such, there is no\nlibrary to build and install. Copy the .h files and us"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/btree.h",
"chars": 82081,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/btree_bench.cc",
"chars": 16888,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/btree_container.h",
"chars": 10972,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/btree_map.h",
"chars": 4424,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/btree_set.h",
"chars": 4000,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/btree_test.cc",
"chars": 10140,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/btree_test.h",
"chars": 30150,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/btree_test_flags.cc",
"chars": 828,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/safe_btree.h",
"chars": 12569,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/safe_btree_map.h",
"chars": 3101,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/safe_btree_set.h",
"chars": 2996,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/cpp-btree/safe_btree_test.cc",
"chars": 3942,
"preview": "// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "source-code/dependencies/xdelta3/draft-korn-vcdiff.txt",
"chars": 60706,
"preview": " David G. Korn, AT&T Labs\n\t\t\t\t Joshua P. MacDonald, UC B"
},
{
"path": "source-code/dependencies/xdelta3/examples/Makefile",
"chars": 1052,
"preview": "CFLAGS = -g -Wall -I.. -DXD3_DEBUG=1 -DNDEBUG=0 -DSIZEOF_SIZE_T=8 -DSIZEOF_UNSIGNED_LONG_LONG=8\n#CFLAGS = -O3 -Wall -I.."
},
{
"path": "source-code/dependencies/xdelta3/examples/README.md",
"chars": 347,
"preview": "Files in this directory demonstrate how to use the Xdelta3 API. Copyrights\nare held by the respective authors.\n\nsmall_p"
},
{
"path": "source-code/dependencies/xdelta3/examples/compare_test.c",
"chars": 3065,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/examples/encode_decode_test.c",
"chars": 4068,
"preview": "// Permission to distribute this example by\n// Copyright (C) 2007 Ralf Junker\n// Ralf Junker <delphi@yunqa.de>\n// http:/"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/Xd3iOSAppDelegate.h",
"chars": 802,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: objc *-*\n Copyright 2016 Joshua MacDonald\n\n Licensed unde"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/Xd3iOSAppDelegate.m",
"chars": 2640,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: objc *-*\n Copyright 2016 Joshua MacDonald\n\n Licensed unde"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/Xd3iOSViewController.h",
"chars": 1028,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: objc *-*\n Copyright 2016 Joshua MacDonald\n\n Licensed unde"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/Xd3iOSViewController.m",
"chars": 5623,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: objc *-*\n Copyright 2016 Joshua MacDonald\n\n Licensed unde"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/en.lproj/InfoPlist.strings",
"chars": 45,
"preview": "/* Localized versions of Info.plist keys */\n\n"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/en.lproj/MainStoryboard_iPad.storyboard",
"chars": 5773,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/en.lproj/MainStoryboard_iPhone.storyboard",
"chars": 1570,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/main.m",
"chars": 873,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: objc *-*\n Copyright 2016 Joshua MacDonald\n\n Licensed unde"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test/xdelta3-ios-test-Info.plist",
"chars": 1712,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "source-code/dependencies/xdelta3/examples/iOS/xdelta3-ios-test/xdelta3-ios-test.xcodeproj/project.pbxproj",
"chars": 19374,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "source-code/dependencies/xdelta3/examples/small_page_test.c",
"chars": 4992,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/examples/speed_test.c",
"chars": 2429,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/examples/test.h",
"chars": 1481,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/generate_build_files.sh",
"chars": 127,
"preview": "#!/bin/sh\n\naclocal &&\n autoreconf --install &&\n libtoolize &&\n autoconf &&\n automake --add-missing &&\n au"
},
{
"path": "source-code/dependencies/xdelta3/go/src/regtest.go",
"chars": 7526,
"preview": "package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"os\"\n\t\"sort\"\n\t\"time\"\n\n\t\"xdelta\"\n)\n\nconst (\n\txdataset = \"/volume/home/jmacd/"
},
{
"path": "source-code/dependencies/xdelta3/go/src/xdelta/rstream.go",
"chars": 1503,
"preview": "package xdelta\n\n\nimport (\n\t\"io\"\n\t\"math/rand\"\n)\n\nconst (\n\tblocksize = 1<<17\n)\n\nfunc (t *TestGroup) WriteRstreams(desc str"
},
{
"path": "source-code/dependencies/xdelta3/go/src/xdelta/run.go",
"chars": 1153,
"preview": "package xdelta\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n)\n\ntype Program struct {\n\tPath string\n}\n\ntype Run st"
},
{
"path": "source-code/dependencies/xdelta3/go/src/xdelta/test.go",
"chars": 3457,
"preview": "package xdelta\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path\"\n\t\"sync/atomic\"\n\n\t\"golang.or"
},
{
"path": "source-code/dependencies/xdelta3/go/src/xdelta/tgroup.go",
"chars": 1711,
"preview": "package xdelta\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n\t\"sync\"\n)\n\ntype TestGroup struct {\n\t*Runner\n\tmain *Goroutine\n\tsync.Mutex\n\tsyn"
},
{
"path": "source-code/dependencies/xdelta3/linkxd3lib.c",
"chars": 936,
"preview": "#include \"xdelta3.h\"\n\nextern int VVV;\n\nint VVV;\n\nvoid use(int r)\n{\n VVV = r;\n}\n\nint main() {\n xd3_config config;\n xd3"
},
{
"path": "source-code/dependencies/xdelta3/m4/ax_check_aligned_access_required.m4",
"chars": 3231,
"preview": "# ====================================================================================\n# http://www.gnu.org/software/au"
},
{
"path": "source-code/dependencies/xdelta3/m4/ax_pkg_swig.m4",
"chars": 6812,
"preview": "# ===========================================================================\n# http://www.gnu.org/software/autoc"
},
{
"path": "source-code/dependencies/xdelta3/m4/ax_python_devel.m4",
"chars": 11354,
"preview": "# ===========================================================================\n# http://www.gnu.org/software/autocon"
},
{
"path": "source-code/dependencies/xdelta3/m4/ax_swig_python.m4",
"chars": 2964,
"preview": "# ===========================================================================\n# http://www.gnu.org/software/autocon"
},
{
"path": "source-code/dependencies/xdelta3/plot.sh",
"chars": 255,
"preview": "#!/bin/sh\n\nG=/usr/bin/gnuplot\n\nD=./output_dir\n\nI=$1\nO=$D/$2\n\n$G > $O <<EOF\n\n#set terminal jpeg\nset terminal png\n\nf(x) = "
},
{
"path": "source-code/dependencies/xdelta3/rcs_junk.cc",
"chars": 36315,
"preview": "typedef struct _RcsWalker RcsWalker;\ntypedef struct _RcsFile RcsFile;\ntypedef struct _RcsV"
},
{
"path": "source-code/dependencies/xdelta3/run_release.sh",
"chars": 6158,
"preview": "#!/bin/bash\n\n# Run from the source dir.\nSRCDIR=${PWD}\n\n# TODO replace w/ wget\nLZMA=\"xz-5.2.1\"\nLZMA_FILE=\"${SRCDIR}/../${"
},
{
"path": "source-code/dependencies/xdelta3/testing/Makefile",
"chars": 126,
"preview": "all:\n\t(cd .. && make all)\n\nxdelta3regtest:\n\t(cd .. && make xdelta3regtest)\n\nxdelta3checksum:\n\t(cd .. && make xdelta3chec"
},
{
"path": "source-code/dependencies/xdelta3/testing/checksum_test.cc",
"chars": 17103,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/checksum_test_c.c",
"chars": 8045,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/cmp.h",
"chars": 1790,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/delta.h",
"chars": 2313,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/file.h",
"chars": 8563,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/modify.h",
"chars": 10750,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/random.h",
"chars": 4079,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/regtest.cc",
"chars": 36544,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/regtest_c.c",
"chars": 660,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/testing/run_release.sh",
"chars": 38,
"preview": "#!/bin/sh\n(cd .. && ./run_release.sh)\n"
},
{
"path": "source-code/dependencies/xdelta3/testing/segment.h",
"chars": 2850,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/sizes.h",
"chars": 2850,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/test.h",
"chars": 2153,
"preview": "/* xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n Copyright 2016 Joshua MacDonald\n\n Licensed under"
},
{
"path": "source-code/dependencies/xdelta3/testing/xdelta3-regtest.py",
"chars": 34675,
"preview": "#!/usr/bin/python2.7\n# xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n# Copyright 2016 Joshua MacDonald"
},
{
"path": "source-code/dependencies/xdelta3/testing/xdelta3-test.py",
"chars": 4648,
"preview": "#!/usr/bin/python2.7\n# xdelta3 - delta compression tools and library -*- Mode: C++ -*-\n# Copyright 2016 Joshua MacDonald"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-blkcache.h",
"chars": 14127,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-cfgs.h",
"chars": 3997,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-decode.h",
"chars": 32926,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-djw.h",
"chars": 47138,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-fgk.h",
"chars": 22256,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-hash.h",
"chars": 4268,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-internal.h",
"chars": 14764,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-list.h",
"chars": 8560,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-lzma.h",
"chars": 4394,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-main.h",
"chars": 103759,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-merge.h",
"chars": 13750,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-second.h",
"chars": 7111,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3-test.h",
"chars": 80389,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3.1",
"chars": 2506,
"preview": ".TH XDELTA3 \"1\" \"August 2009\" \"Xdelta3\"\n.SH NAME\nxdelta3 \\- VCDIFF (RFC 3284) binary diff tool\n.SH SYNOPSIS\n.B xdelta3 \n"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3.c",
"chars": 134799,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3.h",
"chars": 49092,
"preview": "/* xdelta3 - delta compression tools and library\n Copyright 2016 Joshua MacDonald\n\n Licensed under the Apache Licens"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3.i",
"chars": 2103,
"preview": "%module xdelta3\n%import cstring.i\n%import argcargv.i\n%{\n#include \"xdelta3.h\"\n\nint xd3_main_cmdline (int ARGC, char **ARG"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3.vcxproj",
"chars": 21533,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micros"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3.wxi",
"chars": 381,
"preview": "<Include>\n <?define PRODUCT_ID=60131be5-be4d-4975-9108-dd0be735890d ?>\n <?define PACKAGE_ID=82bf21"
},
{
"path": "source-code/dependencies/xdelta3/xdelta3.wxs",
"chars": 4771,
"preview": "<?xml version='1.0'?>\n<?include $(sys.SOURCEFILEDIR)\\xdelta3.wxi ?>\n\n<Wix xmlns='http://schemas.microsoft.com/wix/2003/0"
},
{
"path": "source-code/source/PD-Loader/ModuleList.h",
"chars": 4831,
"preview": "#pragma once\n\n#include <vector>\n#include <algorithm>\n#include <cassert>\n#include <string>\n#include <tuple>\n\nstd::wstring"
},
{
"path": "source-code/source/PD-Loader/PD-Loader.vcxproj",
"chars": 5784,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "source-code/source/PD-Loader/PD-Loader.vcxproj.filters",
"chars": 1351,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/PD-Loader/dllmain.cpp",
"chars": 31872,
"preview": "#include \"framework.h\"\r\n#include \"exception.hpp\"\r\n#include <VersionHelpers.h>\r\n#include <Shlwapi.h>\r\n#pragma comment(lib"
},
{
"path": "source-code/source/PD-Loader/exception.hpp",
"chars": 22791,
"preview": "#pragma once\n/*\n * Unhandled Exception Tracer\n * by LINK/2012 <dma_2012@hotmail.com>\n *\n * This source code is offered "
},
{
"path": "source-code/source/PD-Loader/framework.h",
"chars": 39913,
"preview": "#pragma once\n\n#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers\n// Windows Heade"
},
{
"path": "source-code/source/PD-Loader/x64.def",
"chars": 10530,
"preview": "LIBRARY \"dinput8\"\nEXPORTS\nDirectInput8Create = _DirectInput8Create\nDllCanUnloadNow = _DllCanUnloadNow PRIVATE\nDllGetClas"
},
{
"path": "source-code/source/fakedll/ModuleList.h",
"chars": 4831,
"preview": "#pragma once\n\n#include <vector>\n#include <algorithm>\n#include <cassert>\n#include <string>\n#include <tuple>\n\nstd::wstring"
},
{
"path": "source-code/source/fakedll/dllmain.cpp",
"chars": 23415,
"preview": "#include \"framework.h\"\n#include \"exception.hpp\"\n\nHMODULE hm;\nstd::vector<std::wstring> iniPaths;\n\nbool iequals(std::wstr"
},
{
"path": "source-code/source/fakedll/exception.hpp",
"chars": 22791,
"preview": "#pragma once\n/*\n * Unhandled Exception Tracer\n * by LINK/2012 <dma_2012@hotmail.com>\n *\n * This source code is offered "
},
{
"path": "source-code/source/fakedll/fakedll.vcxproj",
"chars": 5704,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "source-code/source/fakedll/fakedll.vcxproj.filters",
"chars": 1351,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/fakedll/framework.h",
"chars": 5355,
"preview": "#pragma once\n\n#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers\n// Windows Heade"
},
{
"path": "source-code/source/fakedll/x64.def",
"chars": 637,
"preview": "LIBRARY \"dnsapi\"\nEXPORTS\nDnsFree = _DnsFree\nDnsQuery_A = _DnsQuery_A\nDnsQueryEx = _DnsQueryEx\nDnsCancelQuery = _DnsCance"
},
{
"path": "source-code/source/plugins/DSCRemote/DSCRemote.vcxproj",
"chars": 5050,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "source-code/source/plugins/DSCRemote/DSCRemote.vcxproj.filters",
"chars": 323,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/plugins/DSCRemote/PluginConfigApi.h",
"chars": 3165,
"preview": "#pragma once\n#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers\n#include <windows"
},
{
"path": "source-code/source/plugins/DSCRemote/dllmain.cpp",
"chars": 5537,
"preview": "#include <WinSock2.h>\n#pragma comment(lib, \"Ws2_32.lib\")\n#include <detours.h>\n#include <thread>\n#include <string>\n#inclu"
},
{
"path": "source-code/source/plugins/DSCRemote/framework.h",
"chars": 449,
"preview": "#include <windows.h>\n#include <string>\n\nstd::wstring ExePath() {\n\tWCHAR buffer[MAX_PATH];\n\tGetModuleFileNameW(NULL, buff"
},
{
"path": "source-code/source/plugins/DivaMovie/DivaMovie.vcxproj",
"chars": 5163,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/m"
},
{
"path": "source-code/source/plugins/DivaMovie/DivaMovie.vcxproj.filters",
"chars": 323,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/plugins/DivaMovie/PluginConfigApi.h",
"chars": 3165,
"preview": "#pragma once\n#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers\n#include <windows"
},
{
"path": "source-code/source/plugins/DivaMovie/dllmain.cpp",
"chars": 7651,
"preview": "#include \"framework.h\"\r\n#include \"PluginConfigApi.h\"\r\n\r\n#include <evr.h>\r\n\r\n#include <d3d9.h>\r\n#include <dvdmedia.h>\r\n#i"
},
{
"path": "source-code/source/plugins/DivaMovie/framework.h",
"chars": 2479,
"preview": "#pragma once\r\n\r\n#define WIN32_LEAN_AND_MEAN\r\n\r\n#include <cstdio>\r\n#include <windows.h>\r\n#include <detours.h>\r\n#include <"
},
{
"path": "source-code/source/plugins/DivaSound/DivaSound.vcxproj",
"chars": 5078,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
},
{
"path": "source-code/source/plugins/DivaSound/DivaSound.vcxproj.filters",
"chars": 1064,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/plugins/DivaSound/bassasio/bassasio.h",
"chars": 8286,
"preview": "/*\n\tBASSASIO 1.4 C/C++ header file\n\tCopyright (c) 2005-2019 Un4seen Developments Ltd.\n\n\tSee the BASSASIO.CHM file for mo"
},
{
"path": "source-code/source/plugins/DivaSound/miniaudio/miniaudio.h",
"chars": 1457166,
"preview": "/*\nAudio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file."
},
{
"path": "source-code/source/plugins/DivaSound/src/dllmain.cpp",
"chars": 20625,
"preview": "#include \"framework.h\"\n#include \"PluginConfigApi.h\"\n#include <detours.h>\n#pragma comment(lib, \"detours.lib\")\n\n#include <"
},
{
"path": "source-code/source/plugins/DivaSound/src/framework.h",
"chars": 6882,
"preview": "#pragma once\n\n#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers\n// Windows Heade"
},
{
"path": "source-code/source/plugins/DivaWig/DivaWig.vcxproj",
"chars": 5000,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "source-code/source/plugins/DivaWig/DivaWig.vcxproj.filters",
"chars": 323,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/plugins/DivaWig/PluginConfigApi.h",
"chars": 3165,
"preview": "#pragma once\n#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers\n#include <windows"
},
{
"path": "source-code/source/plugins/DivaWig/dllmain.cpp",
"chars": 8617,
"preview": "#include \"framework.h\"\n#include \"PluginConfigApi.h\"\n#include <detours.h>\n#include <string>\n#include <iostream>\n#include "
},
{
"path": "source-code/source/plugins/DivaWig/framework.h",
"chars": 447,
"preview": "#include <windows.h>\n#include <string>\n\nstd::wstring ExePath() {\n\tWCHAR buffer[MAX_PATH];\n\tGetModuleFileNameW(NULL, buff"
},
{
"path": "source-code/source/plugins/Launcher/ConfigOption.h",
"chars": 36846,
"preview": "#pragma once\r\n#pragma warning(push)\r\n#pragma warning(disable: 4947)\r\n\r\n#define WIN32_LEAN_AND_MEAN // Exclud"
},
{
"path": "source-code/source/plugins/Launcher/IniReader.h",
"chars": 2377,
"preview": "#pragma once\n\n// kinda rushed and hacky wrapper around simpleini for use by ConfigOption\n// (has a similar API to window"
},
{
"path": "source-code/source/plugins/Launcher/Launcher.filters",
"chars": 1144,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/plugins/Launcher/Launcher.vcxproj",
"chars": 6605,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "source-code/source/plugins/Launcher/PluginConfig.h",
"chars": 4245,
"preview": "#pragma once\n#include \"ConfigOption.h\"\n#include \"PluginConfigApi.h\"\n\nnamespace PluginConfig\n{\n\tConfigOptionBase* GetConf"
},
{
"path": "source-code/source/plugins/Launcher/SkinnedMessageBox.h",
"chars": 14332,
"preview": "#pragma once\n#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers\n// Windows Header"
},
{
"path": "source-code/source/plugins/Launcher/SkinnedMessageBox.resx",
"chars": 6775,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "source-code/source/plugins/Launcher/TabPadding.cpp",
"chars": 1423,
"preview": "#include \"TabPadding.h\"\n//#include <Windows.h>\n\n// ported from https://stackoverflow.com/a/7785745\n// original code by u"
},
{
"path": "source-code/source/plugins/Launcher/TabPadding.h",
"chars": 463,
"preview": "#pragma once\nusing namespace System::Windows::Forms;\nusing namespace System::Drawing;\n\n// ported from https://stackoverf"
},
{
"path": "source-code/source/plugins/Launcher/composition.h",
"chars": 2751,
"preview": "#pragma once\n#include <windows.h>\n\nenum AccentState {\n\tACCENT_DISABLED = 0,\n\tACCENT_ENABLE_GRADIENT = 1,\n\tACCENT_ENABLE_"
},
{
"path": "source-code/source/plugins/Launcher/dllmain.cpp",
"chars": 922,
"preview": "#include \"ui.h\"\n#include \"framework.h\"\n#include <detours.h>\n#pragma comment(lib, \"detours.lib\")\n\nusing namespace System;"
},
{
"path": "source-code/source/plugins/Launcher/framework.h",
"chars": 31978,
"preview": "#pragma once\r\n\r\n#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers\r\n// Windows H"
},
{
"path": "source-code/source/plugins/Launcher/ui.h",
"chars": 62572,
"preview": "#pragma once\r\n#include \"framework.h\"\r\n#include <msclr\\marshal_cppstd.h>\r\n#include <cstdlib>\r\n#include \"TabPadding.h\"\r\n#"
},
{
"path": "source-code/source/plugins/Launcher/ui.resx",
"chars": 146929,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<root>\r\n <!-- \r\n Microsoft ResX Schema \r\n \r\n Version 2.0\r\n \r\n T"
},
{
"path": "source-code/source/plugins/Novidia/Novidia.vcxproj",
"chars": 5510,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msb"
},
{
"path": "source-code/source/plugins/Novidia/Novidia.vcxproj.filters",
"chars": 1456,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/plugins/Novidia/src/crc/crc.h",
"chars": 942,
"preview": "/*\n** CRC.H - header file for SNIPPETS CRC and checksum functions\n*/\n\n#ifndef CRC__H\n#define CRC__H\n\n#include <stdlib.h"
},
{
"path": "source-code/source/plugins/Novidia/src/crc/crc_32.c",
"chars": 8593,
"preview": "/* Crc - 32 BIT ANSI X3.66 CRC checksum files */\n\n#include <stdio.h>\n#include \"crc.h\"\n\n#ifdef __TURBOC__\n #pragma warn -"
},
{
"path": "source-code/source/plugins/Novidia/src/crc/sniptype.h",
"chars": 1692,
"preview": "/*\n** SNIPTYPE.H - Include file for SNIPPETS data types and commonly used macros\n*/\n\n#ifndef SNIPTYPE__H\n#define SNIPTY"
},
{
"path": "source-code/source/plugins/Novidia/src/dllmain.cpp",
"chars": 13720,
"preview": "#include \"framework.h\"\n#include \"glStuff.h\"\n#include <PluginConfigApi.h>\n#include <GPUModel.h>\n\nextern \"C\" {\n// well, on"
},
{
"path": "source-code/source/plugins/Novidia/src/framework.h",
"chars": 4808,
"preview": "#pragma once\n\n//#define WIN32_LEAN_AND_MEAN\n//#include <windows.h>\n//#include <psapi.h>\n\n#include <vector>\n\n#include \"gl"
},
{
"path": "source-code/source/plugins/Novidia/src/glStuff.h",
"chars": 5139,
"preview": "#pragma once\n\n#include <windows.h>\n#include <iostream>\n#include <detours.h>\n\nHMODULE ogl32 = GetModuleHandle(L\"opengl32."
},
{
"path": "source-code/source/plugins/Patches/PatchApplier.h",
"chars": 168,
"preview": "#pragma once\n\n// PatchApplier provides the stuff for implementing patches for the specific game version\nclass PatchAppli"
},
{
"path": "source-code/source/plugins/Patches/PatchApplier600.h",
"chars": 17009,
"preview": "#pragma once\n#include <vector>\n#include \"PatchApplier.h\"\n#include \"framework.h\"\n\nclass PatchApplier600 : public PatchApp"
},
{
"path": "source-code/source/plugins/Patches/PatchApplier710.h",
"chars": 33890,
"preview": "#pragma once\r\n\r\n#pragma once\r\n#include <vector>\r\n#include \"PatchApplier.h\"\r\n#include \"framework.h\"\r\n\r\nclass PatchApplier"
},
{
"path": "source-code/source/plugins/Patches/Patches.vcxproj",
"chars": 6279,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/m"
},
{
"path": "source-code/source/plugins/Patches/Patches.vcxproj.filters",
"chars": 1755,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "source-code/source/plugins/Patches/databank.cpp",
"chars": 3985,
"preview": "#include <iostream>\r\n#include <fstream>\r\n#include <sstream>\r\n#include <vector>\r\n\r\n#include \"databank.h\"\r\n#include \"urlut"
},
{
"path": "source-code/source/plugins/Patches/databank.h",
"chars": 550,
"preview": "#pragma once\r\n#include <map>\r\n\r\n#include \"databank.h\"\r\n\r\nnamespace Databank\r\n{\r\n struct PvEntry\r\n {\r\n int u"
},
{
"path": "source-code/source/plugins/Patches/dllmain.cpp",
"chars": 8674,
"preview": "#include \"windows.h\"\r\n#include \"vector\"\r\n#include <tchar.h>\r\n#include <GL/freeglut.h>\r\n#include <iostream>\r\n#include <fs"
},
{
"path": "source-code/source/plugins/Patches/framework.h",
"chars": 7628,
"preview": "#pragma once\r\n#include \"windows.h\"\r\n#include <string>\r\n#include <vector>\r\n\r\ntypedef uint16_t(__fastcall* p_crc16_ccitt)("
},
{
"path": "source-code/source/plugins/Patches/storage.h",
"chars": 1313,
"preview": "#pragma once\r\n#include <cstdint>\r\n\r\nnamespace Storage\r\n{\r\n struct FileRecord\r\n {\r\n union\r\n {\r\n "
},
{
"path": "source-code/source/plugins/Patches/urlutil.h",
"chars": 1319,
"preview": "#pragma once\r\n#include <string>\r\n#include <sstream>\r\n#include <iomanip>\r\n\r\nstd::string urlDecode(const std::string& enco"
},
{
"path": "source-code/source/plugins/Render/Render.vcxproj",
"chars": 5792,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "source-code/source/plugins/Render/Render.vcxproj.filters",
"chars": 1060,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "source-code/source/plugins/Render/dllmain.cpp",
"chars": 10480,
"preview": "#include \"framework.h\"\n#include <detours.h>\n#pragma comment(lib, \"detours.lib\")\n#include <GL\\freeglut.h>\n#include <GL\\GL"
}
]
// ... and 136 more files (download for full content)
About this extraction
This page contains the full source code of the PDModdingCommunity/PD-Loader GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 336 files (7.5 MB), approximately 2.0M tokens, and a symbol index with 3359 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.