Full Code of YuriSizuku/Kirikiroid2Yuri for AI

yuri 6e61ce3b8141 cached
685 files
8.5 MB
2.3M tokens
8133 symbols
1 requests
Download .txt
Showing preview only (9,088K chars total). Download the full file or copy to clipboard to get everything.
Repository: YuriSizuku/Kirikiroid2Yuri
Branch: yuri
Commit: 6e61ce3b8141
Files: 685
Total size: 8.5 MB

Directory structure:
gitextract_q549lhv5/

├── .github/
│   └── workflows/
│       └── build_android.yml
├── .gitignore
├── .vscode/
│   └── c_cpp_properties.json
├── CMakeLists.txt
├── LICENSE
├── project/
│   ├── android/
│   │   ├── .gitignore
│   │   ├── .idea/
│   │   │   ├── .gitignore
│   │   │   ├── codeStyles/
│   │   │   │   └── Project.xml
│   │   │   ├── compiler.xml
│   │   │   ├── gradle.xml
│   │   │   ├── jarRepositories.xml
│   │   │   ├── misc.xml
│   │   │   └── vcs.xml
│   │   ├── app/
│   │   │   ├── .gitignore
│   │   │   ├── AndroidManifest.xml
│   │   │   ├── build.gradle
│   │   │   ├── cpp/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── krkr2_android.cpp
│   │   │   ├── java/
│   │   │   │   ├── com/
│   │   │   │   │   └── yuri/
│   │   │   │   │       └── kirikiri2/
│   │   │   │   │           └── MainActivity.java
│   │   │   │   └── org/
│   │   │   │       └── tvp/
│   │   │   │           └── kirikiri2/
│   │   │   │               ├── KR2Activity.java
│   │   │   │               └── MediaStoreHack.java
│   │   │   ├── proguard-rules.pro
│   │   │   ├── res/
│   │   │   │   └── values/
│   │   │   │       └── strings.xml
│   │   │   └── sign.jks
│   │   ├── build.gradle
│   │   ├── gradle/
│   │   │   └── wrapper/
│   │   │       ├── gradle-wrapper.jar
│   │   │       └── gradle-wrapper.properties
│   │   ├── gradle.properties
│   │   ├── gradlew
│   │   ├── gradlew.bat
│   │   └── settings.gradle
│   └── ui/
│       ├── .cocos-project.json
│       ├── Resources/
│       │   └── res/
│       │       └── locale/
│       │           ├── en_us.xml
│       │           ├── ja_jp.xml
│       │           ├── zh_cn.xml
│       │           └── zh_tw.xml
│       ├── cocosstudio/
│       │   └── ui/
│       │       ├── BottomBar.csd
│       │       ├── BottomBarTextInput.csd
│       │       ├── CheckListDialog.csd
│       │       ├── FileItem.csd
│       │       ├── FileManageMenu.csd
│       │       ├── GameMenu.csd
│       │       ├── KeySelect.csd
│       │       ├── ListItem.csd
│       │       ├── ListView.csd
│       │       ├── MainFileSelector.csd
│       │       ├── MediaPlayerBody.csd
│       │       ├── MediaPlayerFoot.csd
│       │       ├── MediaPlayerNavi.csd
│       │       ├── MenuList.csd
│       │       ├── MessageBox.csd
│       │       ├── NaviBar.csd
│       │       ├── NaviBarWithMenu.csd
│       │       ├── ProgressBox.csd
│       │       ├── RecentListItem.csd
│       │       ├── SelectList.csd
│       │       ├── SelectListItem.csd
│       │       ├── TableView.csd
│       │       ├── TextPairInput.csd
│       │       ├── WinMgrOverlay.csd
│       │       ├── comctrl/
│       │       │   ├── CheckBoxItem.csd
│       │       │   ├── SelectListItem.csd
│       │       │   ├── SeperateItem.csd
│       │       │   ├── SliderIconItem.csd
│       │       │   ├── SliderTextItem.csd
│       │       │   └── SubDirItem.csd
│       │       └── help/
│       │           ├── AllTips.csd
│       │           ├── MouseModeTips.csd
│       │           ├── ScreenModeTips.csd
│       │           └── TouchModeTips.csd
│       ├── kr2.ccs
│       └── kr2.cfg
├── readme.md
├── script/
│   ├── _androida64.sh
│   ├── _fetch.sh
│   └── cross_androida64.sh
├── src/
│   ├── core/
│   │   ├── Android.mk
│   │   ├── CMakeLists.txt
│   │   ├── base/
│   │   │   ├── 7zArchive.cpp
│   │   │   ├── BinaryStream.cpp
│   │   │   ├── BinaryStream.h
│   │   │   ├── CharacterSet.cpp
│   │   │   ├── CharacterSet.h
│   │   │   ├── EventIntf.cpp
│   │   │   ├── EventIntf.h
│   │   │   ├── PluginIntf.cpp
│   │   │   ├── PluginIntf.h
│   │   │   ├── ScriptMgnIntf.cpp
│   │   │   ├── ScriptMgnIntf.h
│   │   │   ├── StorageIntf.cpp
│   │   │   ├── StorageIntf.h
│   │   │   ├── SysInitIntf.cpp
│   │   │   ├── SysInitIntf.h
│   │   │   ├── SystemIntf.cpp
│   │   │   ├── SystemIntf.h
│   │   │   ├── TARArchive.cpp
│   │   │   ├── TextStream.cpp
│   │   │   ├── TextStream.h
│   │   │   ├── UserEvent.h
│   │   │   ├── UtilStreams.cpp
│   │   │   ├── UtilStreams.h
│   │   │   ├── XP3Archive.cpp
│   │   │   ├── XP3Archive.h
│   │   │   ├── ZIPArchive.cpp
│   │   │   ├── common.h
│   │   │   ├── tar.h
│   │   │   └── win32/
│   │   │       ├── EventImpl.cpp
│   │   │       ├── EventImpl.h
│   │   │       ├── FileSelector.cpp
│   │   │       ├── FileSelector.h
│   │   │       ├── FuncStubs.cpp
│   │   │       ├── FuncStubs.h
│   │   │       ├── NativeEventQueue.cpp
│   │   │       ├── NativeEventQueue.h
│   │   │       ├── PluginImpl.cpp
│   │   │       ├── PluginImpl.h
│   │   │       ├── ScriptMgnImpl.cpp
│   │   │       ├── ScriptMgnImpl.h
│   │   │       ├── StorageImpl.cpp
│   │   │       ├── StorageImpl.h
│   │   │       ├── SusieArchive.cpp
│   │   │       ├── SusieArchive.h
│   │   │       ├── SysInitImpl.cpp
│   │   │       ├── SysInitImpl.h
│   │   │       ├── SystemImpl.cpp
│   │   │       ├── SystemImpl.h
│   │   │       └── win32io.h
│   │   ├── environ/
│   │   │   ├── Application.cpp
│   │   │   ├── Application.h
│   │   │   ├── ConfigManager/
│   │   │   │   ├── GlobalConfigManager.cpp
│   │   │   │   ├── GlobalConfigManager.h
│   │   │   │   ├── IndividualConfigManager.cpp
│   │   │   │   ├── IndividualConfigManager.h
│   │   │   │   ├── LocaleConfigManager.cpp
│   │   │   │   └── LocaleConfigManager.h
│   │   │   ├── DetectCPU.cpp
│   │   │   ├── DetectCPU.h
│   │   │   ├── DumpSend.cpp
│   │   │   ├── Platform.h
│   │   │   ├── XP3ArchiveRepack.cpp
│   │   │   ├── XP3ArchiveRepack.h
│   │   │   ├── android/
│   │   │   │   ├── AndroidUtils.cpp
│   │   │   │   └── AndroidUtils.h
│   │   │   ├── cocos2d/
│   │   │   │   ├── AppDelegate.cpp
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── CCKeyCodeConv.cpp
│   │   │   │   ├── CCKeyCodeConv.h
│   │   │   │   ├── CustomFileUtils.cpp
│   │   │   │   ├── CustomFileUtils.h
│   │   │   │   ├── CustomFileUtils.mm
│   │   │   │   ├── MainScene.cpp
│   │   │   │   ├── MainScene.h
│   │   │   │   ├── YUVSprite.cpp
│   │   │   │   └── YUVSprite.h
│   │   │   ├── combase.h
│   │   │   ├── cpu_types.h
│   │   │   ├── linux/
│   │   │   │   └── Platform.cpp
│   │   │   ├── sdl/
│   │   │   │   └── tvpsdl.cpp
│   │   │   ├── typedefine.h
│   │   │   ├── ui/
│   │   │   │   ├── BaseForm.cpp
│   │   │   │   ├── BaseForm.h
│   │   │   │   ├── ConsoleWindow.cpp
│   │   │   │   ├── ConsoleWindow.h
│   │   │   │   ├── DebugViewLayerForm.cpp
│   │   │   │   ├── DebugViewLayerForm.h
│   │   │   │   ├── FileSelectorForm.cpp
│   │   │   │   ├── FileSelectorForm.h
│   │   │   │   ├── GameMainMenu.cpp
│   │   │   │   ├── GameMainMenu.h
│   │   │   │   ├── GlobalPreferenceForm.cpp
│   │   │   │   ├── GlobalPreferenceForm.h
│   │   │   │   ├── InGameMenuForm.cpp
│   │   │   │   ├── InGameMenuForm.h
│   │   │   │   ├── IndividualPreferenceForm.cpp
│   │   │   │   ├── IndividualPreferenceForm.h
│   │   │   │   ├── MainFileSelectorForm.cpp
│   │   │   │   ├── MainFileSelectorForm.h
│   │   │   │   ├── MessageBox.cpp
│   │   │   │   ├── MessageBox.h
│   │   │   │   ├── PreferenceConfig.h
│   │   │   │   ├── PreferenceForm.cpp
│   │   │   │   ├── PreferenceForm.h
│   │   │   │   ├── SeletListForm.cpp
│   │   │   │   ├── SeletListForm.h
│   │   │   │   ├── SimpleMediaFilePlayer.cpp
│   │   │   │   ├── SimpleMediaFilePlayer.h
│   │   │   │   ├── TipsHelpForm.cpp
│   │   │   │   ├── TipsHelpForm.h
│   │   │   │   ├── XP3RepackForm.cpp
│   │   │   │   ├── XP3RepackForm.h
│   │   │   │   └── extension/
│   │   │   │       ├── ActionExtension.cpp
│   │   │   │       ├── ActionExtension.h
│   │   │   │       ├── UIExtension.cpp
│   │   │   │       └── UIExtension.h
│   │   │   ├── vkdefine.h
│   │   │   ├── win32/
│   │   │   │   ├── ApplicationSpecialPath.h
│   │   │   │   ├── CompatibleNativeFuncs.cpp
│   │   │   │   ├── CompatibleNativeFuncs.h
│   │   │   │   ├── ConfigFormUnit.cpp
│   │   │   │   ├── ConfigFormUnit.h
│   │   │   │   ├── DetectCPU.cpp
│   │   │   │   ├── DetectCPU.h
│   │   │   │   ├── EmergencyExit.cpp
│   │   │   │   ├── EmergencyExit.h
│   │   │   │   ├── HintWindow.cpp
│   │   │   │   ├── HintWindow.h
│   │   │   │   ├── ImeControl.h
│   │   │   │   ├── MainFormUnit.cpp
│   │   │   │   ├── MainFormUnit.h
│   │   │   │   ├── MouseCursor.cpp
│   │   │   │   ├── MouseCursor.h
│   │   │   │   ├── Platform.cpp
│   │   │   │   ├── SystemControl.cpp
│   │   │   │   ├── SystemControl.h
│   │   │   │   ├── TVPWindow.cpp
│   │   │   │   ├── TVPWindow.h
│   │   │   │   ├── TouchPoint.cpp
│   │   │   │   ├── TouchPoint.h
│   │   │   │   ├── VersionFormUnit.cpp
│   │   │   │   ├── VersionFormUnit.h
│   │   │   │   ├── WindowFormUnit.cpp
│   │   │   │   ├── WindowFormUnit.h
│   │   │   │   ├── WindowsUtil.cpp
│   │   │   │   ├── WindowsUtil.h
│   │   │   │   ├── config.h
│   │   │   │   └── my_HintWindow.cpp
│   │   │   └── win32type.h
│   │   ├── extension/
│   │   │   ├── Extension.cpp
│   │   │   └── Extension.h
│   │   ├── movie/
│   │   │   ├── ffmpeg/
│   │   │   │   ├── AE.h
│   │   │   │   ├── AEAudioFormat.h
│   │   │   │   ├── AEChannelData.h
│   │   │   │   ├── AEChannelInfo.cpp
│   │   │   │   ├── AEChannelInfo.h
│   │   │   │   ├── AEFactory.cpp
│   │   │   │   ├── AEFactory.h
│   │   │   │   ├── AEStream.h
│   │   │   │   ├── AEStreamData.h
│   │   │   │   ├── AEStreamInfo.cpp
│   │   │   │   ├── AEStreamInfo.h
│   │   │   │   ├── AEUtil.cpp
│   │   │   │   ├── AEUtil.h
│   │   │   │   ├── AudioCodec.h
│   │   │   │   ├── AudioCodecFFmpeg.cpp
│   │   │   │   ├── AudioCodecFFmpeg.h
│   │   │   │   ├── AudioCodecPassthrough.cpp
│   │   │   │   ├── AudioCodecPassthrough.h
│   │   │   │   ├── AudioDevice.cpp
│   │   │   │   ├── AudioDevice.h
│   │   │   │   ├── BaseRenderer.cpp
│   │   │   │   ├── BaseRenderer.h
│   │   │   │   ├── BitstreamStats.cpp
│   │   │   │   ├── BitstreamStats.h
│   │   │   │   ├── Clock.cpp
│   │   │   │   ├── Clock.h
│   │   │   │   ├── CodecUtils.cpp
│   │   │   │   ├── CodecUtils.h
│   │   │   │   ├── Codecs.h
│   │   │   │   ├── Demux.cpp
│   │   │   │   ├── Demux.h
│   │   │   │   ├── DemuxFFmpeg.cpp
│   │   │   │   ├── DemuxFFmpeg.h
│   │   │   │   ├── DemuxPacket.cpp
│   │   │   │   ├── DemuxPacket.h
│   │   │   │   ├── FactoryCodec.cpp
│   │   │   │   ├── FactoryCodec.h
│   │   │   │   ├── Geometry.h
│   │   │   │   ├── IAudioCallback.h
│   │   │   │   ├── IVideoPlayer.h
│   │   │   │   ├── InputStream.cpp
│   │   │   │   ├── InputStream.h
│   │   │   │   ├── KRMovieDef.h
│   │   │   │   ├── KRMovieLayer.cpp
│   │   │   │   ├── KRMovieLayer.h
│   │   │   │   ├── KRMoviePlayer.cpp
│   │   │   │   ├── KRMoviePlayer.h
│   │   │   │   ├── MathUtils.h
│   │   │   │   ├── Message.cpp
│   │   │   │   ├── Message.h
│   │   │   │   ├── MessageQueue.cpp
│   │   │   │   ├── MessageQueue.h
│   │   │   │   ├── OptionInfo.h
│   │   │   │   ├── ProcessInfo.cpp
│   │   │   │   ├── ProcessInfo.h
│   │   │   │   ├── Ref.h
│   │   │   │   ├── RenderFlags.cpp
│   │   │   │   ├── RenderFlags.h
│   │   │   │   ├── RenderFormats.h
│   │   │   │   ├── StreamInfo.cpp
│   │   │   │   ├── StreamInfo.h
│   │   │   │   ├── TVPMediaDemux.cpp
│   │   │   │   ├── TVPMediaDemux.h
│   │   │   │   ├── Thread.cpp
│   │   │   │   ├── Thread.h
│   │   │   │   ├── TimeUtils.cpp
│   │   │   │   ├── TimeUtils.h
│   │   │   │   ├── Timer.cpp
│   │   │   │   ├── Timer.h
│   │   │   │   ├── VideoCodec.cpp
│   │   │   │   ├── VideoCodec.h
│   │   │   │   ├── VideoCodecFFmpeg.cpp
│   │   │   │   ├── VideoCodecFFmpeg.h
│   │   │   │   ├── VideoPlayer.cpp
│   │   │   │   ├── VideoPlayer.h
│   │   │   │   ├── VideoPlayerAudio.cpp
│   │   │   │   ├── VideoPlayerAudio.h
│   │   │   │   ├── VideoPlayerVideo.cpp
│   │   │   │   ├── VideoPlayerVideo.h
│   │   │   │   ├── VideoReferenceClock.cpp
│   │   │   │   ├── VideoReferenceClock.h
│   │   │   │   ├── VideoRenderer.cpp
│   │   │   │   ├── VideoRenderer.h
│   │   │   │   ├── config.h
│   │   │   │   └── krffmpeg.cpp
│   │   │   └── krmovie.cpp
│   │   ├── msg/
│   │   │   ├── MsgIntf.cpp
│   │   │   ├── MsgIntf.h
│   │   │   ├── MsgIntfInc.h
│   │   │   └── win32/
│   │   │       ├── MsgImpl.cpp
│   │   │       ├── MsgImpl.h
│   │   │       ├── MsgLoad.cpp
│   │   │       ├── OptionsDesc.cpp
│   │   │       ├── OptionsDesc.h
│   │   │       ├── ReadOptionDesc.cpp
│   │   │       └── ReadOptionDesc.h
│   │   ├── sound/
│   │   │   ├── ARM/
│   │   │   │   ├── WaveFunctionARM.cpp
│   │   │   │   └── wavemix_arm.c
│   │   │   ├── CDDAIntf.cpp
│   │   │   ├── CDDAIntf.h
│   │   │   ├── FFWaveDecoder.cpp
│   │   │   ├── FFWaveDecoder.h
│   │   │   ├── MIDIIntf.cpp
│   │   │   ├── MIDIIntf.h
│   │   │   ├── MathAlgorithms.cpp
│   │   │   ├── MathAlgorithms.h
│   │   │   ├── PhaseVocoderDSP.cpp
│   │   │   ├── PhaseVocoderDSP.h
│   │   │   ├── PhaseVocoderFilter.cpp
│   │   │   ├── PhaseVocoderFilter.h
│   │   │   ├── RingBuffer.h
│   │   │   ├── SoundBufferBaseIntf.cpp
│   │   │   ├── SoundBufferBaseIntf.h
│   │   │   ├── VorbisWaveDecoder.cpp
│   │   │   ├── VorbisWaveDecoder.h
│   │   │   ├── WaveFormatConverter.cpp
│   │   │   ├── WaveFormatConverter_SSE.cpp
│   │   │   ├── WaveIntf.cpp
│   │   │   ├── WaveIntf.h
│   │   │   ├── WaveLoopManager.cpp
│   │   │   ├── WaveLoopManager.h
│   │   │   ├── WaveSegmentQueue.cpp
│   │   │   ├── WaveSegmentQueue.h
│   │   │   ├── win32/
│   │   │   │   ├── CDDAImpl.cpp
│   │   │   │   ├── CDDAImpl.h
│   │   │   │   ├── MIDIImpl.cpp
│   │   │   │   ├── MIDIImpl.h
│   │   │   │   ├── SoundBufferBaseImpl.cpp
│   │   │   │   ├── SoundBufferBaseImpl.h
│   │   │   │   ├── WaveImpl.cpp
│   │   │   │   ├── WaveImpl.h
│   │   │   │   ├── WaveMixer.cpp
│   │   │   │   ├── WaveMixer.h
│   │   │   │   ├── kmp_pi.h
│   │   │   │   ├── oldwaveunpacker.h
│   │   │   │   ├── tvpsnd.c
│   │   │   │   ├── tvpsnd.cpp
│   │   │   │   ├── tvpsnd.h
│   │   │   │   └── tvpsnd.idl
│   │   │   └── xmmlib.h
│   │   ├── tjs2/
│   │   │   ├── tjs.cpp
│   │   │   ├── tjs.h
│   │   │   ├── tjs.tab.cpp
│   │   │   ├── tjs.tab.h
│   │   │   ├── tjs.tab.hpp
│   │   │   ├── tjsArray.cpp
│   │   │   ├── tjsArray.h
│   │   │   ├── tjsBinarySerializer.cpp
│   │   │   ├── tjsBinarySerializer.h
│   │   │   ├── tjsByteCodeLoader.cpp
│   │   │   ├── tjsByteCodeLoader.h
│   │   │   ├── tjsCommHead.h
│   │   │   ├── tjsCompileControl.cpp
│   │   │   ├── tjsCompileControl.h
│   │   │   ├── tjsConfig.cpp
│   │   │   ├── tjsConfig.h
│   │   │   ├── tjsConstArrayData.cpp
│   │   │   ├── tjsConstArrayData.h
│   │   │   ├── tjsDate.cpp
│   │   │   ├── tjsDate.h
│   │   │   ├── tjsDateParser.cpp
│   │   │   ├── tjsDateParser.h
│   │   │   ├── tjsDateWordMap.cc
│   │   │   ├── tjsDebug.cpp
│   │   │   ├── tjsDebug.h
│   │   │   ├── tjsDictionary.cpp
│   │   │   ├── tjsDictionary.h
│   │   │   ├── tjsDisassemble.cpp
│   │   │   ├── tjsError.cpp
│   │   │   ├── tjsError.h
│   │   │   ├── tjsErrorDefs.h
│   │   │   ├── tjsErrorInc.h
│   │   │   ├── tjsError_jp.h
│   │   │   ├── tjsException.cpp
│   │   │   ├── tjsException.h
│   │   │   ├── tjsGlobalStringMap.cpp
│   │   │   ├── tjsGlobalStringMap.h
│   │   │   ├── tjsHashSearch.h
│   │   │   ├── tjsInterCodeExec.cpp
│   │   │   ├── tjsInterCodeExec.h
│   │   │   ├── tjsInterCodeGen.cpp
│   │   │   ├── tjsInterCodeGen.h
│   │   │   ├── tjsInterface.cpp
│   │   │   ├── tjsInterface.h
│   │   │   ├── tjsLex.cpp
│   │   │   ├── tjsLex.h
│   │   │   ├── tjsMT19937ar-cok.cpp
│   │   │   ├── tjsMT19937ar-cok.h
│   │   │   ├── tjsMath.cpp
│   │   │   ├── tjsMath.h
│   │   │   ├── tjsMessage.cpp
│   │   │   ├── tjsMessage.h
│   │   │   ├── tjsNamespace.cpp
│   │   │   ├── tjsNamespace.h
│   │   │   ├── tjsNative.cpp
│   │   │   ├── tjsNative.h
│   │   │   ├── tjsObject.cpp
│   │   │   ├── tjsObject.h
│   │   │   ├── tjsObjectExtendable.cpp
│   │   │   ├── tjsObjectExtendable.h
│   │   │   ├── tjsOctPack.cpp
│   │   │   ├── tjsOctPack.h
│   │   │   ├── tjsRandomGenerator.cpp
│   │   │   ├── tjsRandomGenerator.h
│   │   │   ├── tjsRegExp.cpp
│   │   │   ├── tjsRegExp.h
│   │   │   ├── tjsScriptBlock.cpp
│   │   │   ├── tjsScriptBlock.h
│   │   │   ├── tjsScriptCache.cpp
│   │   │   ├── tjsScriptCache.h
│   │   │   ├── tjsString.cpp
│   │   │   ├── tjsString.h
│   │   │   ├── tjsTypes.h
│   │   │   ├── tjsUtils.cpp
│   │   │   ├── tjsUtils.h
│   │   │   ├── tjsVariant.cpp
│   │   │   ├── tjsVariant.h
│   │   │   ├── tjsVariantString.cpp
│   │   │   ├── tjsVariantString.h
│   │   │   ├── tjsdate.tab.cpp
│   │   │   ├── tjsdate.tab.h
│   │   │   ├── tjsdate.tab.hpp
│   │   │   ├── tjspp.tab.cpp
│   │   │   └── tjspp.tab.hpp
│   │   ├── utils/
│   │   │   ├── ClipboardIntf.cpp
│   │   │   ├── ClipboardIntf.h
│   │   │   ├── DebugIntf.cpp
│   │   │   ├── DebugIntf.h
│   │   │   ├── Debugger.h
│   │   │   ├── Exception.h
│   │   │   ├── FilePathUtil.h
│   │   │   ├── KAGParser.cpp
│   │   │   ├── KAGParser.h
│   │   │   ├── MathAlgorithms.h
│   │   │   ├── MathAlgorithms_Default.cpp
│   │   │   ├── MathAlgorithms_Default.h
│   │   │   ├── MiscUtility.cpp
│   │   │   ├── ObjectList.h
│   │   │   ├── PadIntf.cpp
│   │   │   ├── PadIntf.h
│   │   │   ├── Random.cpp
│   │   │   ├── Random.h
│   │   │   ├── RealFFT.h
│   │   │   ├── RealFFT_Default.cpp
│   │   │   ├── StringUtil.h
│   │   │   ├── ThreadIntf.cpp
│   │   │   ├── ThreadIntf.h
│   │   │   ├── TickCount.cpp
│   │   │   ├── TickCount.h
│   │   │   ├── TimerIntf.cpp
│   │   │   ├── TimerIntf.h
│   │   │   ├── VelocityTracker.cpp
│   │   │   ├── VelocityTracker.h
│   │   │   ├── encoding/
│   │   │   │   ├── gbk2unicode.c
│   │   │   │   └── jis2unicode.c
│   │   │   ├── iconv/
│   │   │   │   ├── iconv.h
│   │   │   │   └── utf8.h
│   │   │   ├── md5.c
│   │   │   ├── md5.h
│   │   │   ├── minizip/
│   │   │   │   ├── crypt.h
│   │   │   │   ├── ioapi.cpp
│   │   │   │   ├── ioapi.h
│   │   │   │   ├── unzip.c
│   │   │   │   ├── unzip.h
│   │   │   │   ├── zip.c
│   │   │   │   └── zip.h
│   │   │   └── win32/
│   │   │       ├── ClipboardImpl.cpp
│   │   │       ├── ClipboardImpl.h
│   │   │       ├── DebugImpl.cpp
│   │   │       ├── DebugImpl.h
│   │   │       ├── PadImpl.cpp
│   │   │       ├── PadImpl.h
│   │   │       ├── TVPTimer.cpp
│   │   │       ├── TVPTimer.h
│   │   │       ├── ThreadImpl.cpp
│   │   │       ├── ThreadImpl.h
│   │   │       ├── TimerImpl.cpp
│   │   │       └── TimerImpl.h
│   │   └── visual/
│   │       ├── ARM/
│   │       │   ├── AlphaMovie_mjpeg.h
│   │       │   ├── tvpgl_arm.cpp
│   │       │   ├── tvpgl_arm_intf.h
│   │       │   └── tvpgl_arm_route.h
│   │       ├── BitmapIntf.cpp
│   │       ├── BitmapIntf.h
│   │       ├── BitmapLayerTreeOwner.cpp
│   │       ├── BitmapLayerTreeOwner.h
│   │       ├── CharacterData.cpp
│   │       ├── CharacterData.h
│   │       ├── ComplexRect.cpp
│   │       ├── ComplexRect.h
│   │       ├── FontImpl.cpp
│   │       ├── FontImpl.h
│   │       ├── FontRasterizer.h
│   │       ├── FontSystem.cpp
│   │       ├── FontSystem.h
│   │       ├── FreeType.cpp
│   │       ├── FreeType.h
│   │       ├── FreeTypeFace.h
│   │       ├── FreeTypeFontRasterizer.cpp
│   │       ├── FreeTypeFontRasterizer.h
│   │       ├── GraphicsLoadThread.cpp
│   │       ├── GraphicsLoadThread.h
│   │       ├── GraphicsLoaderIntf.cpp
│   │       ├── GraphicsLoaderIntf.h
│   │       ├── ImageFunction.cpp
│   │       ├── ImageFunction.h
│   │       ├── LayerBitmapIntf.cpp
│   │       ├── LayerBitmapIntf.h
│   │       ├── LayerIntf.cpp
│   │       ├── LayerIntf.h
│   │       ├── LayerManager.cpp
│   │       ├── LayerManager.h
│   │       ├── LayerTreeOwner.h
│   │       ├── LayerTreeOwnerImpl.cpp
│   │       ├── LayerTreeOwnerImpl.h
│   │       ├── LoadBPG.cpp
│   │       ├── LoadJPEG.cpp
│   │       ├── LoadJXR.cpp
│   │       ├── LoadPNG.cpp
│   │       ├── LoadPVRv3.cpp
│   │       ├── LoadTLG.cpp
│   │       ├── LoadTLG.h
│   │       ├── LoadWEBP.cpp
│   │       ├── MenuItemIntf.cpp
│   │       ├── MenuItemIntf.h
│   │       ├── PrerenderedFont.cpp
│   │       ├── PrerenderedFont.h
│   │       ├── RectItf.cpp
│   │       ├── RectItf.h
│   │       ├── RenderManager.cpp
│   │       ├── RenderManager.h
│   │       ├── RenderManager_software.h
│   │       ├── SaveTLG.h
│   │       ├── SaveTLG5.cpp
│   │       ├── SaveTLG6.cpp
│   │       ├── TransIntf.cpp
│   │       ├── TransIntf.h
│   │       ├── VideoOvlIntf.cpp
│   │       ├── VideoOvlIntf.h
│   │       ├── WindowIntf.cpp
│   │       ├── WindowIntf.h
│   │       ├── argb.cpp
│   │       ├── argb.h
│   │       ├── drawable.h
│   │       ├── gl/
│   │       │   ├── ResampleImage.cpp
│   │       │   ├── ResampleImage.h
│   │       │   ├── ResampleImageInternal.h
│   │       │   ├── WeightFunctor.cpp
│   │       │   ├── WeightFunctor.h
│   │       │   ├── aligned_allocator.h
│   │       │   ├── blend_function.cpp
│   │       │   ├── blend_functor_c.h
│   │       │   ├── blend_util_func.h
│   │       │   ├── blend_variation.h
│   │       │   └── tvpgl_mathutil.h
│   │       ├── ogl/
│   │       │   ├── RenderManager_ogl.cpp
│   │       │   ├── RenderManager_ogl_test.hpp
│   │       │   ├── astcrt.cpp
│   │       │   ├── astcrt.h
│   │       │   ├── etcpak.cpp
│   │       │   ├── etcpak.h
│   │       │   ├── imagepacker.cpp
│   │       │   ├── imagepacker.h
│   │       │   ├── ogl_common.h
│   │       │   ├── pvr.h
│   │       │   ├── pvrtc.cpp
│   │       │   └── pvrtc.h
│   │       ├── transhandler.h
│   │       ├── tvpfontstruc.h
│   │       ├── tvpgl.cpp
│   │       ├── tvpgl.h
│   │       ├── tvpgl_asm_init.h
│   │       ├── tvpgl_route.h
│   │       ├── tvphal.h
│   │       ├── tvpinputdefs.h
│   │       ├── tvpps.inc
│   │       ├── voMode.h
│   │       └── win32/
│   │           ├── BasicDrawDevice.cpp
│   │           ├── BasicDrawDevice.h
│   │           ├── BitmapBitsAlloc.cpp
│   │           ├── BitmapBitsAlloc.h
│   │           ├── BitmapInfomation.cpp
│   │           ├── BitmapInfomation.h
│   │           ├── DInputMgn.cpp
│   │           ├── DInputMgn.h
│   │           ├── DrawDevice.cpp
│   │           ├── DrawDevice.h
│   │           ├── GDIFontRasterizer.cpp
│   │           ├── GDIFontRasterizer.h
│   │           ├── GraphicsLoaderImpl.cpp
│   │           ├── GraphicsLoaderImpl.h
│   │           ├── LayerBitmapImpl.cpp
│   │           ├── LayerBitmapImpl.h
│   │           ├── LayerImpl.cpp
│   │           ├── LayerImpl.h
│   │           ├── MenuItemImpl.cpp
│   │           ├── MenuItemImpl.h
│   │           ├── NativeFreeTypeFace.cpp
│   │           ├── NativeFreeTypeFace.h
│   │           ├── PassThroughDrawDevice.cpp
│   │           ├── PassThroughDrawDevice.h
│   │           ├── TVPColor.h
│   │           ├── TVPScreen.cpp
│   │           ├── TVPScreen.h
│   │           ├── TVPSysFont.cpp
│   │           ├── TVPSysFont.h
│   │           ├── VSyncTimingThread.cpp
│   │           ├── VSyncTimingThread.h
│   │           ├── VideoOvlImpl.cpp
│   │           ├── VideoOvlImpl.h
│   │           ├── WindowImpl.cpp
│   │           ├── WindowImpl.h
│   │           └── krmovie.h
│   └── plugins/
│       ├── Android.mk
│       ├── CMakeLists.txt
│       ├── InternalPlugins.cpp
│       ├── LayerExBase.cpp
│       ├── LayerExBase.h
│       ├── PluginStub.h
│       ├── addFont.cpp
│       ├── csvParser.cpp
│       ├── dirlist.cpp
│       ├── fftgraph.cpp
│       ├── getSample.cpp
│       ├── getabout.cpp
│       ├── layerExBase.hpp
│       ├── layerExMovie.cpp
│       ├── layerExPerspective.cpp
│       ├── ncbind/
│       │   ├── ncb_foreach.h
│       │   ├── ncb_invoke.hpp
│       │   ├── ncbind.cpp
│       │   └── ncbind.hpp
│       ├── saveStruct.cpp
│       ├── tp_stub.h
│       ├── varfile.cpp
│       ├── win32dialog.cpp
│       ├── wutcwf.cpp
│       ├── xp3filter.cpp
│       └── xp3filter.h
└── thirdparty/
    └── patch/
        ├── cocos2d-x/
        │   ├── android_CCFileUtils-android.cpp
        │   ├── android_CCFileUtils-android.h
        │   ├── android_Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
        │   ├── android_Java_org_cocos2dx_lib_Cocos2dxHelper.h
        │   └── android_cocos2dx.cmake
        ├── ffmpeg/
        │   └── android_ffmpeg.diff
        ├── oniguruma/
        │   └── oniguruma.cmake
        ├── opus/
        │   └── opusfile.h
        ├── p7zip/
        │   ├── 7z.h
        │   ├── 7zArcIn.c
        │   ├── 7zBuf.c
        │   ├── 7zDec.c
        │   ├── 7zFile.h
        │   └── android_p7zip.cmake
        ├── sdl2/
        │   ├── android_SDL_android.c
        │   └── android_android_lf.h
        └── unrar/
            └── android_ulinks.cpp

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

================================================
FILE: .github/workflows/build_android.yml
================================================
name: build android
on:
  push: {tags:  ['v*']} #  Push events to matching v*, i.e. v1.0, v20.15.10

permissions:
  contents: write

env:
  BUILD_NAME: krk2yuri_android

jobs:
  fetch_thirdparty_build:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v3
    
    - name: check thirdparty build
      id: check_thirdparty_build
      uses: actions/cache@v3
      with: 
        path: ./thirdparty/build
        key: thirdparty_build
    
    - name: fetch thirdparty build
      if: steps.check_thirdparty_build.outputs.cache-hit != 'true'
      run: |
        wget https://github.com/YuriSizuku/Kirikiroid2Yuri/releases/download/deps/thirdparty_build.tar.gz
        tar xvzf thirdparty_build.tar.gz

  fetch_thirdparty_port:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v3
    
    - name: check thirdparty port
      id: check_thirdparty_port
      uses: actions/cache@v3
      with: 
        path: ./thirdparty/port
        key: thirdparty_port
    
    - name: fetch thirdparty port
      if: steps.check_thirdparty_port.outputs.cache-hit != 'true'
      run: |
        wget https://github.com/YuriSizuku/Kirikiroid2Yuri/releases/download/deps/thirdparty_port.tar.gz
        tar xvzf thirdparty_port.tar.gz

  build_android:
    runs-on: ubuntu-20.04
    needs: 
      - fetch_thirdparty_build
      - fetch_thirdparty_port

    steps:
    - uses: actions/checkout@v3

    - name: get thirdparty build cache
      uses: actions/cache@v3
      with: 
        key: thirdparty_build
        path: ./thirdparty/build

    - name: get thirdparty port cache
      uses: actions/cache@v3
      with: 
        key: thirdparty_port
        path: ./thirdparty/port
   
    - uses: actions/setup-java@v3
      with:
        java-version:  |
            8
            11
        distribution: 'temurin'
        cache: gradle

    - name: build krkr2yuri android
      env:
        SIGN_KEY_ALIAS: ${{ secrets.SIGN_KEY_ALIAS }}
        SIGN_KEY_PASS: ${{ secrets.SIGN_KEY_PASS }}
        SIGN_STORE_PASS: ${{ secrets.SIGN_STORE_PASS }}
      run: |
        wget https://github.com/YuriSizuku/Kirikiroid2Yuri/releases/download/1.3.9_yuri/Kirikiroid2_yuri_1.3.9.apk
        7z x Kirikiroid2_yuri_1.3.9.apk assets
        sudo mkdir /build_android && sudo chmod 777 /build_android 
        cd project/android
        chmod +x ./gradlew 
        ./gradlew assembleDebug --no-daemon
    
    - name: create release
      uses: ncipollo/release-action@v1
      with:
        artifacts: "./build_android/outputs/apk/debug/*.apk"
        allowUpdates: "true"
        prerelease: "true"
        token: ${{ secrets.GITHUB_TOKEN }}

================================================
FILE: .gitignore
================================================
# general
assets/**
build/**
build_*/**
thirdparty/build/**
thirdparty/port/**
.vscode/settings.json

# android
local.properties
sign.properties
project/onsyuri_android/.gradle
project/android/local.properties
project/android/.idea/caches/**
project/android/.idea/modules/**
project/android/.idea/libraries/**
project/android/.idea/modules.xml
project/android/.idea/workspace.xml
project/android/.idea/navEditor.xml
project/android/.idea/assetWizardSettings.xml
project/android/.idea/deploymentTargetDropDown.xml
project/android/.idea/inspectionProfiles
project/android/app/.cxx/**
project/android/app/debug/**
project/android/app/release/**

================================================
FILE: .vscode/c_cpp_properties.json
================================================
{
    "env": { // edit your env here
        "androidsdk": "D:/Software/env/sdk/androidsdk",
        "androidndk": "${androidsdk}/ndk/25.2.9519653"
    },
    "configurations": [
        {
            "name": "Android (win)",
            "includePath": [
                "${workspaceFolder}/src/core/**",
                "${workspaceFolder}/src/core/sound/**",
                "${workspaceFolder}/thirdparty/build/arch_androida64/include/**",
                "${workspaceFolder}/thirdparty/build/arch_androida64/sdk/native/jni/include/**",
                "${workspaceFolder}/thirdparty/port/cocos2d-x/**",
                "${workspaceFolder}/thirdparty/port/cocos2d-x/external/**",
                "${workspaceFolder}/thirdparty/port/cocos2d-x/cocos/**",
                "${env:androidndk}/sources/android/cpufeatures"
            ],
            "defines": [
                "__linux__"
            ],
            "compilerPath": "${androidndk}/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe",
            "intelliSenseMode": "linux-clang-arm64",
            "compilerArgs": ["--target=aarch64-linux-android21"]
        }
    ],
    "version": 4
}

================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.6)
project(krkr2yuri)

set(CMAKE_CXX_STANDARD 11)
set(KRKR2CORE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/core)
set(KRKR2PLUGIN_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/plugins)
set(COCOS2DX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/port/cocos2d-x)

# build library
add_subdirectory(${KRKR2CORE_PATH})
add_subdirectory(${KRKR2PLUGIN_PATH})

# build main
if(CMAKE_SYSTEM_NAME MATCHES "Android")
    add_library(${PROJECT_NAME} SHARED 
        project/android/app/cpp/krkr2_android.cpp
    )
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
    message("${CMAKE_SYSTEM_NAME} not support yet")
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
    message("${CMAKE_SYSTEM_NAME} not support yet")
else()
    message("${CMAKE_SYSTEM_NAME} not support yet")
endif()
target_compile_options(${PROJECT_NAME} PUBLIC
    -fPIE
)
target_include_directories(${PROJECT_NAME} PUBLIC
    src/cocos
    ${KRKR2CORE_PATH}/environ/cocos2d
    ${PORTBUILD_PATH}/include
    ${PORTBUILD_PATH}/include/breakpad
    ${COCOS2DX_PATH}/cocos
    ${COCOS2DX_PATH}/cocos/audio/include
)
target_link_directories(${PROJECT_NAME} PUBLIC
    ${PORTBUILD_PATH}/lib
)
target_link_libraries(${PROJECT_NAME} PUBLIC 
    -Wl,-Bstatic
    -Wl,--whole-archive # cpp_android_spec for jni function, this is important to add whole libraries !
    cpp_android_spec krkr2plugin 
    -Wl,--no-whole-archive
    krkr2core 
)

================================================
FILE: LICENSE
================================================
Copyright (c), W.Dee and contributors All rights reserved.
Contributors
 Go Watanabe, Kenjo, Kiyobee, Kouhei Yanagita, mey, MIK, Takenori Imoto, yun
Kirikiri Z Project Contributors
W.Dee, casper, 有限会社MCF, Biscrat, 青猫, nagai, ルー, 高際 雅之, 永劫,
ゆんゆん探偵, りょうご(今は無きあの星), AZ-UME, 京 秋人, 
Katsumasa Tsuneyoshi, 小池潤, miahmie, サークル獏, アザナシ, はっしぃ, 
棚中製作所, わっふる/waffle, ワムソフト, TYPE-MOON, 有限会社エムツー,
Takenori Imoto
Kirikiri Z 64bit Project Contributors
合資会社ワムソフト, Takenori Imoto, 他
----------------------------------------------------------------------------
ソースコード形式かバイナリ形式か、変更するかしないかを問わず、以下の条件を満
たす場合に限り、再頒布および使用が許可されます。

・ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、および下記免責
  条項を含めること。
・バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の資料に、上記の
  著作権表示、本条件一覧、および下記免責条項を含めること。
・書面による特別の許可なしに、本ソフトウェアから派生した製品の宣伝または販売
  促進に、組織の名前またはコントリビューターの名前を使用してはならない。

本ソフトウェアは、著作権者およびコントリビューターによって「現状のまま」提供
されており、明示黙示を問わず、商業的な使用可能性、および特定の目的に対する適
合性に関する暗黙の保証も含め、またそれに限定されない、いかなる保証もありませ
ん。著作権者もコントリビューターも、事由のいかんを問わず、損害発生の原因いか
んを問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その他の)不法
行為であるかを問わず、仮にそのような損害が発生する可能性を知らされていたとし
ても、本ソフトウェアの使用によって発生した(代替品または代用サービスの調達、
使用の喪失、データの喪失、利益の喪失、業務の中断も含め、またそれに限定されな
い)直接損害、間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
ついて、一切責任を負わないものとします。

------------------------------------------------------------------------------
Thanks for many libraries to contributors and other supporters that were not
listed here.

This software is based in part on the work of Independent JPEG Group.
------------------------------------------------------------------------------
libjpeg-turbo

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

?	Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
?	Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
?	Neither the name of the libjpeg-turbo Project nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
OR PROFITS;  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
------------------------------------------------------------------------------
Using "A C-program for MT19937"

   Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:

     1. Redistributions of source code must retain the above copyright
        notice, this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above copyright
        notice, this list of conditions and the following disclaimer in the
        documentation and/or other materials provided with the distribution.

     3. The names of its contributors may not be used to endorse or promote
        products derived from this software without specific prior written
        permission.

   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
------------------------------------------------------------------------------
libpng LICENSE

This copy of the libpng notices is provided for your convenience.  In case of
any discrepancy between this copy and the notices in the file png.h that is
included in the libpng distribution, the latter shall prevail.

COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:

If you modify libpng you may insert additional notices immediately following
this sentence.

This code is released under the libpng license.

libpng versions 1.2.6, August 15, 2004, through 1.6.1, March 28, 2013, are
Copyright (c) 2004, 2006-2012 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors

   Cosmin Truta

libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are
Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.0.6
with the following individuals added to the list of Contributing Authors

   Simon-Pierre Cadieux
   Eric S. Raymond
   Gilles Vollant

and with the following additions to the disclaimer:

   There is no warranty against interference with your enjoyment of the
   library or against infringement.  There is no warranty that our
   efforts or the library will fulfill any of your particular purposes
   or needs.  This library is provided with all faults, and the entire
   risk of satisfactory quality, performance, accuracy, and effort is with
   the user.

libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-0.96,
with the following individuals added to the list of Contributing Authors:

   Tom Lane
   Glenn Randers-Pehrson
   Willem van Schaik

libpng versions 0.89, June 1996, through 0.96, May 1997, are
Copyright (c) 1996, 1997 Andreas Dilger
Distributed according to the same disclaimer and license as libpng-0.88,
with the following individuals added to the list of Contributing Authors:

   John Bowler
   Kevin Bracey
   Sam Bushell
   Magnus Holmgren
   Greg Roelofs
   Tom Tanner

libpng versions 0.5, May 1995, through 0.88, January 1996, are
Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.

For the purposes of this copyright and license, "Contributing Authors"
is defined as the following set of individuals:

   Andreas Dilger
   Dave Martindale
   Guy Eric Schalnat
   Paul Schmidt
   Tim Wegner

The PNG Reference Library is supplied "AS IS".  The Contributing Authors
and Group 42, Inc. disclaim all warranties, expressed or implied,
including, without limitation, the warranties of merchantability and of
fitness for any purpose.  The Contributing Authors and Group 42, Inc.
assume no liability for direct, indirect, incidental, special, exemplary,
or consequential damages, which may result from the use of the PNG
Reference Library, even if advised of the possibility of such damage.

Permission is hereby granted to use, copy, modify, and distribute this
source code, or portions hereof, for any purpose, without fee, subject
to the following restrictions:

1. The origin of this source code must not be misrepresented.

2. Altered versions must be plainly marked as such and must not
   be misrepresented as being the original source.

3. This Copyright notice may not be removed or altered from any
   source or altered source distribution.

The Contributing Authors and Group 42, Inc. specifically permit, without
fee, and encourage the use of this source code as a component to
supporting the PNG file format in commercial products.  If you use this
source code in a product, acknowledgment is not required but would be
appreciated.


A "png_get_copyright" function is available, for convenient use in "about"
boxes and the like:

   printf("%s",png_get_copyright(NULL));

Also, the PNG logo (in PNG format, of course) is supplied in the
files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).

Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is a
certification mark of the Open Source Initiative.

Glenn Randers-Pehrson
glennrp at users.sourceforge.net
March 28, 2013
------------------------------------------------------------------------------
zlib LICENSE

  The deflate format used by zlib was defined by Phil Katz.  The deflate and
  zlib specifications were written by L.  Peter Deutsch.  Thanks to all the
  people who reported problems and suggested various improvements in zlib; they
  are too numerous to cite here.

Copyright notice:

 (C) 1995-2012 Jean-loup Gailly and Mark Adler

  This software is provided 'as-is', without any express or implied
  warranty.  In no event will the authors be held liable for any damages
  arising from the use of this software.

  Permission is granted to anyone to use this software for any purpose,
  including commercial applications, and to alter it and redistribute it
  freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not
     claim that you wrote the original software. If you use this software
     in a product, an acknowledgment in the product documentation would be
     appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be
     misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

  Jean-loup Gailly        Mark Adler
  jloup@gzip.org          madler@alumni.caltech.edu

If you use the zlib library in a product, we would appreciate *not* receiving
lengthy legal documents to sign.  The sources are provided for free but without
warranty of any kind.  The library has been entirely written by Jean-loup
Gailly and Mark Adler; it does not include third-party code.

If you redistribute modified sources, we would appreciate that you include in
the file ChangeLog history information documenting your changes.  Please read
the FAQ for more information on the distribution of modified source versions.
------------------------------------------------------------------------------

Oniguruma LICENSE
-----------------

/*-
 * Copyright (c) 2002-2007  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */
------------------------------------------------------------------------------
                    The FreeType Project LICENSE
                    ----------------------------

                            2006-Jan-27

                    Copyright 1996-2002, 2006 by
          David Turner, Robert Wilhelm, and Werner Lemberg



Introduction
============

  The FreeType  Project is distributed in  several archive packages;
  some of them may contain, in addition to the FreeType font engine,
  various tools and  contributions which rely on, or  relate to, the
  FreeType Project.

  This  license applies  to all  files found  in such  packages, and
  which do not  fall under their own explicit  license.  The license
  affects  thus  the  FreeType   font  engine,  the  test  programs,
  documentation and makefiles, at the very least.

  This  license   was  inspired  by  the  BSD,   Artistic,  and  IJG
  (Independent JPEG  Group) licenses, which  all encourage inclusion
  and  use of  free  software in  commercial  and freeware  products
  alike.  As a consequence, its main points are that:

    o We don't promise that this software works. However, we will be
      interested in any kind of bug reports. (`as is' distribution)

    o You can  use this software for whatever you  want, in parts or
      full form, without having to pay us. (`royalty-free' usage)

    o You may not pretend that  you wrote this software.  If you use
      it, or  only parts of it,  in a program,  you must acknowledge
      somewhere  in  your  documentation  that  you  have  used  the
      FreeType code. (`credits')

  We  specifically  permit  and  encourage  the  inclusion  of  this
  software, with  or without modifications,  in commercial products.
  We  disclaim  all warranties  covering  The  FreeType Project  and
  assume no liability related to The FreeType Project.


  Finally,  many  people  asked  us  for  a  preferred  form  for  a
  credit/disclaimer to use in compliance with this license.  We thus
  encourage you to use the following text:

   """
    Portions of this software are copyright ゥ <year> The FreeType
    Project (www.freetype.org).  All rights reserved.
   """

  Please replace <year> with the value from the FreeType version you
  actually use.


Legal Terms
===========

0. Definitions
--------------

  Throughout this license,  the terms `package', `FreeType Project',
  and  `FreeType  archive' refer  to  the  set  of files  originally
  distributed  by the  authors  (David Turner,  Robert Wilhelm,  and
  Werner Lemberg) as the `FreeType Project', be they named as alpha,
  beta or final release.

  `You' refers to  the licensee, or person using  the project, where
  `using' is a generic term including compiling the project's source
  code as  well as linking it  to form a  `program' or `executable'.
  This  program is  referred to  as  `a program  using the  FreeType
  engine'.

  This  license applies  to all  files distributed  in  the original
  FreeType  Project,   including  all  source   code,  binaries  and
  documentation,  unless  otherwise  stated   in  the  file  in  its
  original, unmodified form as  distributed in the original archive.
  If you are  unsure whether or not a particular  file is covered by
  this license, you must contact us to verify this.

  The FreeType  Project is copyright (C) 1996-2000  by David Turner,
  Robert Wilhelm, and Werner Lemberg.  All rights reserved except as
  specified below.

1. No Warranty
--------------

  THE FREETYPE PROJECT  IS PROVIDED `AS IS' WITHOUT  WARRANTY OF ANY
  KIND, EITHER  EXPRESS OR IMPLIED,  INCLUDING, BUT NOT  LIMITED TO,
  WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR
  PURPOSE.  IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
  BE LIABLE  FOR ANY DAMAGES CAUSED  BY THE USE OR  THE INABILITY TO
  USE, OF THE FREETYPE PROJECT.

2. Redistribution
-----------------

  This  license  grants  a  worldwide, royalty-free,  perpetual  and
  irrevocable right  and license to use,  execute, perform, compile,
  display,  copy,   create  derivative  works   of,  distribute  and
  sublicense the  FreeType Project (in  both source and  object code
  forms)  and  derivative works  thereof  for  any  purpose; and  to
  authorize others  to exercise  some or all  of the  rights granted
  herein, subject to the following conditions:

    o Redistribution of  source code  must retain this  license file
      (`FTL.TXT') unaltered; any  additions, deletions or changes to
      the original  files must be clearly  indicated in accompanying
      documentation.   The  copyright   notices  of  the  unaltered,
      original  files must  be  preserved in  all  copies of  source
      files.

    o Redistribution in binary form must provide a  disclaimer  that
      states  that  the software is based in part of the work of the
      FreeType Team,  in  the  distribution  documentation.  We also
      encourage you to put an URL to the FreeType web page  in  your
      documentation, though this isn't mandatory.

  These conditions  apply to any  software derived from or  based on
  the FreeType Project,  not just the unmodified files.   If you use
  our work, you  must acknowledge us.  However, no  fee need be paid
  to us.

3. Advertising
--------------

  Neither the  FreeType authors and  contributors nor you  shall use
  the name of the  other for commercial, advertising, or promotional
  purposes without specific prior written permission.

  We suggest,  but do not require, that  you use one or  more of the
  following phrases to refer  to this software in your documentation
  or advertising  materials: `FreeType Project',  `FreeType Engine',
  `FreeType library', or `FreeType Distribution'.

  As  you have  not signed  this license,  you are  not  required to
  accept  it.   However,  as  the FreeType  Project  is  copyrighted
  material, only  this license, or  another one contracted  with the
  authors, grants you  the right to use, distribute,  and modify it.
  Therefore,  by  using,  distributing,  or modifying  the  FreeType
  Project, you indicate that you understand and accept all the terms
  of this license.

4. Contacts
-----------

  There are two mailing lists related to FreeType:

    o freetype@nongnu.org

      Discusses general use and applications of FreeType, as well as
      future and  wanted additions to the  library and distribution.
      If  you are looking  for support,  start in  this list  if you
      haven't found anything to help you in the documentation.

    o freetype-devel@nongnu.org

      Discusses bugs,  as well  as engine internals,  design issues,
      specific licenses, porting, etc.

  Our home page can be found at

    http://www.freetype.org
------------------------------------------------------------------------------
picojson LICENSE

/* Copyright 2009 Cybozu Labs, Inc.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY CYBOZU LABS, INC. ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 * EVENT SHALL CYBOZU LABS, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are
 * those of the authors and should not be interpreted as representing official
 * policies, either expressed or implied, of Cybozu Labs, Inc.
 *
 */
------------------------------------------------------------------------------

   Copyright (c) 2012, The Android Open Source Project

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

------------------------------------------------------------------------------
Microsoft Corporation Technical Documentation License Agreement for the 
specification “JPEG XR Device Porting Kit”
Copyright (c) 2013 Microsoft Corp.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
 are permitted provided that the following conditions are met:
 Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.
 Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THEIMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE
 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BELIABLE
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OFSUBSTITUTE GOODS OR
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY,
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE..
------------------------------------------------------------------------------
------------------------------------------------------------------------
*** vorbis
*** ogg

Copyright (c) 1994-2004 Xiph.org Foundation

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

- Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.

- Neither the name of the Xiph.org Foundation nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 

------------------------------------------------------------------------
*** theora

Copyright (C) 2002-2008 Xiph.org Foundation and contributors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

- Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

------------------------------------------------------------------------
*** libfishsound
*** dsfSeeking

Copyright (C) 2003, 2004 Commonwealth Scientific and Industrial Research
  Organisation (CSIRO) Australia

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

- Neither the name of the CSIRO Australia nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

------------------------------------------------------------------------ 
*** libCMMLParse
*** libCMMLTags
*** libCMMLTagsDotNET
*** libOOOggChef
*** libTemporalURI
*** libWinCMMLParse
*** dsfCMMLDecoder
*** dsfAnxDemux
*** AnxCutter
*** CMMLDump
*** mod_oggchef

Copyright (C) 2003-2005 Zentaro Kavanagh

Copyright (C) 2003-2005 Commonwealth Scientific and Industrial Research
  Organisation (CSIRO) Australia

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

- Neither the name of CSIRO Australia nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

------------------------------------------------------------------------ 
*** dsfOggDemux
*** dsfOggMux
*** dsfSpeexDecoder
*** dsfSpeexEncoder
*** dsfVorbisDecoder
*** dsfVorbisEncoder
*** dsfFLACDecoder
*** dsfFLACEncoder
*** dsfTheoraDecoder
*** dsfTheoraEncoder
*** dsfAbstractAudioDecoder
*** dsfAbstractAudioEncoder
*** dsfAbstractVideoDecoder
*** dsfAbstractVideoEncoder
*** dsfSubtitleVMR9
*** libiWrapper
*** libilliCore
*** libOOTheora
*** libOOOgg
*** libOOOggSeek
*** libVorbisComment
*** libVorbisCommentDotNET
*** OOOggDump
*** OOOggStat
*** OOOggCommentDump
*** CLOgg
*** DNPlay
*** iOCE

Copyright (C) 2008-2010 Cristian Adam
Copyright (C) 2003-2005 Zentaro Kavanagh

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

- Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.

- Neither the name of Zentaro Kavanagh nor the names of contributors 
  may be used to endorse or promote products derived from this software 
  without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
------------------------------------------------------------------------


================================================
FILE: project/android/.gitignore
================================================
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
/.externalNativeBuild


================================================
FILE: project/android/.idea/.gitignore
================================================
# Default ignored files
/shelf/
/workspace.xml


================================================
FILE: project/android/.idea/codeStyles/Project.xml
================================================
<component name="ProjectCodeStyleConfiguration">
  <code_scheme name="Project" version="173">
    <codeStyleSettings language="XML">
      <indentOptions>
        <option name="CONTINUATION_INDENT_SIZE" value="4" />
      </indentOptions>
      <arrangement>
        <rules>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>xmlns:android</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>xmlns:.*</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
              <order>BY_NAME</order>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*:id</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*:name</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>name</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>style</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>^$</XML_NAMESPACE>
                </AND>
              </match>
              <order>BY_NAME</order>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
                </AND>
              </match>
              <order>ANDROID_ATTRIBUTE_ORDER</order>
            </rule>
          </section>
          <section>
            <rule>
              <match>
                <AND>
                  <NAME>.*</NAME>
                  <XML_ATTRIBUTE />
                  <XML_NAMESPACE>.*</XML_NAMESPACE>
                </AND>
              </match>
              <order>BY_NAME</order>
            </rule>
          </section>
        </rules>
      </arrangement>
    </codeStyleSettings>
  </code_scheme>
</component>

================================================
FILE: project/android/.idea/compiler.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    <bytecodeTargetLevel target="11" />
  </component>
</project>

================================================
FILE: project/android/.idea/gradle.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="GradleMigrationSettings" migrationVersion="1" />
  <component name="GradleSettings">
    <option name="linkedExternalProjectsSettings">
      <GradleProjectSettings>
        <option name="testRunner" value="GRADLE" />
        <option name="distributionType" value="DEFAULT_WRAPPED" />
        <option name="externalProjectPath" value="$PROJECT_DIR$" />
        <option name="gradleJvm" value="JDK" />
        <option name="modules">
          <set>
            <option value="$PROJECT_DIR$" />
            <option value="$PROJECT_DIR$/app" />
            <option value="$PROJECT_DIR$/../../thirdparty/port/cocos2d-x/cocos/platform/android/libcocos2dx" />
          </set>
        </option>
      </GradleProjectSettings>
    </option>
  </component>
</project>

================================================
FILE: project/android/.idea/jarRepositories.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RemoteRepositoriesConfiguration">
    <remote-repository>
      <option name="id" value="central" />
      <option name="name" value="Maven Central repository" />
      <option name="url" value="https://repo1.maven.org/maven2" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="jboss.community" />
      <option name="name" value="JBoss Community repository" />
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="BintrayJCenter" />
      <option name="name" value="BintrayJCenter" />
      <option name="url" value="https://jcenter.bintray.com/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="Google" />
      <option name="name" value="Google" />
      <option name="url" value="https://dl.google.com/dl/android/maven2/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="MavenRepo" />
      <option name="name" value="MavenRepo" />
      <option name="url" value="https://repo.maven.apache.org/maven2/" />
    </remote-repository>
  </component>
</project>

================================================
FILE: project/android/.idea/misc.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
    <output url="file://$PROJECT_DIR$/build/classes" />
  </component>
  <component name="ProjectType">
    <option name="id" value="Android" />
  </component>
</project>

================================================
FILE: project/android/.idea/vcs.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="$PROJECT_DIR$/../../thirdparty/port/cocos2d-x" vcs="Git" />
  </component>
</project>

================================================
FILE: project/android/app/.gitignore
================================================
/.externalNativeBuild
/.cxx
/build
/release


================================================
FILE: project/android/app/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Replace org.libsdl.app with the identifier of your game below, e.g.
     com.gamemaker.game
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.yuri.kirikiri2"
      android:versionCode="64"
      android:versionName="1.4.0beta"
      android:installLocation="auto">

    <!-- OpenGL ES 2.0 -->
    <uses-feature android:glEsVersion="0x00020000" />

    <!-- Allow writing to external storage -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        tools:ignore="ScopedStorage" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <application android:label="@string/app_name"
                 android:icon="@mipmap/ic_launcher"
                 android:allowBackup="true" android:resizeableActivity="true"
                 android:requestLegacyExternalStorage="true"
        tools:targetApi="n">
        <meta-data android:name="android.app.lib_name"
                   android:value="krkr2yuri" />
        <activity android:name=".MainActivity"
            android:screenOrientation="sensorLandscape"
                  android:configChanges="keyboardHidden|orientation|screenSize"
                  android:windowSoftInputMode="adjustPan" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest> 


================================================
FILE: project/android/app/build.gradle
================================================
plugins {
    id 'com.android.application'
}

android {
    // compileSdkVersion PROP_TARGET_SDK_VERSION
    ndkVersion '25.2.9519653'
    buildToolsVersion '33.0.2'
    compileSdkVersion PROP_TARGET_SDK_VERSION.toInteger()
    compileOptions {
//        sourceCompatibility JavaVersion.VERSION_11
//        targetCompatibility JavaVersion.VERSION_11
    }

    defaultConfig {
        applicationId "com.yuri.kirikiri2"
        targetSdkVersion PROP_TARGET_SDK_VERSION
        minSdkVersion PROP_MIN_SDK_VERSION

        ndk {
            abiFilters = []
            abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
        }

        externalNativeBuild {
            if (PROP_BUILD_TYPE == 'cmake') {
                cmake {
                    version '3.22.1'
                    targets 'krkr2yuri'
                    arguments "-DCMAKE_FIND_ROOT_PATH=", "-DANDROID_STL=c++_static", "-DANDROID_TOOLCHAIN=clang", "-DANDROID_ARM_NEON=TRUE"
                    cppFlags "-frtti -fexceptions -fsigned-char"
                }
            }
        }
        versionCode 1
        versionName "1.4.0beta"
    }
    signingConfigs {
        release {
            storeFile file('sign.jks')
            def signPropsFile = file('sign.properties')
            if (signPropsFile.exists()) {
                Properties signProps = new Properties()
                signProps.load(new FileInputStream(signPropsFile))
                keyAlias signProps['SIGN_KEY_ALIAS']
                keyPassword signProps['SIGN_KEY_PASS']
                storePassword signProps['SIGN_STORE_PASS']
            }
            else {
                keyAlias System.getenv("SIGN_KEY_ALIAS")
                keyPassword System.getenv("SIGN_KEY_PASS")
                storePassword System.getenv("SIGN_STORE_PASS")
            }
        }
    }
    buildTypes {
        release {
            debuggable false
            renderscriptDebuggable false
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }

        debug {
            debuggable true
            jniDebuggable true
            jniDebuggable true
            renderscriptDebuggable true
            signingConfig signingConfigs.release
        }
    }

    sourceSets{
        main{
            manifest.srcFile "AndroidManifest.xml"
            java.srcDirs = ["java"]
            res.srcDirs = ["res"]
            assets.srcDirs =["../../../assets"]
        }

    }

    externalNativeBuild {
        cmake {
            version '3.22.1'
            path "cpp/CMakeLists.txt"
        }
    }

    android.applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "krkr2yuri_v${defaultConfig.versionName}.apk"
        }
    }
}

dependencies {
    //implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':cocos2dx')

    implementation "androidx.documentfile:documentfile:1.0.1"
    //noinspection GradleDependency
    implementation "androidx.activity:activity:1.2.3"
    //noinspection GradleDependency
    implementation "androidx.fragment:fragment:1.3.4"
}


================================================
FILE: project/android/app/cpp/CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.7)
project(krkr2yuri_android)

set(KRKR2YURI_DIR ${CMAKE_SOURCE_DIR}/../../../..)
if(${ANDROID_ABI} MATCHES "arm64-v8a")
    set(PORTBUILD_PATH ${KRKR2YURI_DIR}/thirdparty/build/arch_androida64)
else()
    set(PORTBUILD_PATH ${KRKR2YURI_DIR}/thirdparty/build/arch_androida64)
endif()

if (CMAKE_BUILD_TYPE STREQUAL "Debug")
    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g")
endif()

add_subdirectory(${KRKR2YURI_DIR} ${KRKR2YURI_DIR}/build_android)

================================================
FILE: project/android/app/cpp/krkr2_android.cpp
================================================
/* Include the SDL main definition header */
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
#include "cocos2d/AppDelegate.h"
#include "cocos2d/MainScene.h"
#include "ConfigManager/GlobalConfigManager.h"
#include "Application.h"

/*******************************************************************************
                 Functions called by JNI
*******************************************************************************/
#include <string.h>
#include <string>
#include <condition_variable>
#include <mutex>
#include "breakpad/client/linux/handler/exception_handler.h"
#include "breakpad/client/linux/handler/minidump_descriptor.h"

//std::string Android_GetDumpStoragePath();

static bool __DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor,
	void* context, bool succeeded)
{
	return succeeded;
}

extern bool TVPSystemUninitCalled;

static bool __DumpFilter(void *data) {
	if(TVPSystemUninitCalled) return false; // if trying exit system, ignore all exception
	return true;
}


//static void __InitAndroidDump() {
//    static google_breakpad::MinidumpDescriptor descriptor(Android_GetDumpStoragePath());
//	static google_breakpad::ExceptionHandler eh(descriptor, __DumpFilter, __DumpCallback,
//		NULL, true, -1);
//}

void cocos_android_app_init (JNIEnv* env) { // for cocos3.10+
//	__InitAndroidDump();
	__android_log_print(ANDROID_LOG_INFO,"## krkr2yuri","in cocos_android_app_init");
	static TVPAppDelegate *pAppDelegate = new TVPAppDelegate();
}

namespace kr2android {
	extern std::condition_variable MessageBoxCond;
	extern std::mutex MessageBoxLock;
	extern int MsgBoxRet;
    extern std::string MessageBoxRetText;
}
void Android_PushEvents(const std::function<void()> &func);
using namespace kr2android;
extern "C" {
	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_initDump(JNIEnv* env, jclass cls, jstring path) {
		const char* pszPath = env->GetStringUTFChars(path, NULL);
		if (pszPath && *pszPath) {
			static google_breakpad::MinidumpDescriptor descriptor(pszPath);
			static google_breakpad::ExceptionHandler eh(descriptor, __DumpFilter, __DumpCallback,
				NULL, true, -1);
		}
		env->ReleaseStringUTFChars(path, pszPath);
	}
	
	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_onMessageBoxOK(JNIEnv* env, jclass cls, jint nButton) {
		MsgBoxRet = nButton;
		MessageBoxCond.notify_one();
	}
    
	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_onMessageBoxText(JNIEnv* env, jclass cls, jstring text) {
		const char* pszText = env->GetStringUTFChars(text, NULL);
		if (pszText && *pszText) {
            MessageBoxRetText = pszText;
		}
		env->ReleaseStringUTFChars(text, pszText);
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeTouchesBegin(JNIEnv * env, jobject thiz, jint id, jfloat x, jfloat y) {
		intptr_t idlong = id;
		Android_PushEvents([idlong, x, y](){
			cocos2d::Director::getInstance()->getOpenGLView()->handleTouchesBegin(1, (intptr_t*)&idlong, (float*)&x, (float*)&y);
		});
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeTouchesEnd(JNIEnv * env, jobject thiz, jint id, jfloat x, jfloat y) {
		intptr_t idlong = id;
		Android_PushEvents([idlong, x, y](){
			cocos2d::Director::getInstance()->getOpenGLView()->handleTouchesEnd(1, (intptr_t*)&idlong, (float*)&x, (float*)&y);
		});
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeTouchesMove(JNIEnv * env, jobject thiz, jintArray ids, jfloatArray xs, jfloatArray ys) {
		int size = env->GetArrayLength(ids);
		if (size == 1) {
			intptr_t idlong;
			jint id;
			jfloat x;
			jfloat y;
			env->GetIntArrayRegion(ids, 0, size, &id);
			env->GetFloatArrayRegion(xs, 0, size, &x);
			env->GetFloatArrayRegion(ys, 0, size, &y);
			idlong = id;
			Android_PushEvents([idlong, x, y](){
				cocos2d::Director::getInstance()->getOpenGLView()->handleTouchesMove(1, (intptr_t*)&idlong, (float*)&x, (float*)&y);
			});
			return;
		}
		
		jint id[size];
		std::vector<jfloat> x; x.resize(size);
		std::vector<jfloat> y; y.resize(size);

		env->GetIntArrayRegion(ids, 0, size, id);
		env->GetFloatArrayRegion(xs, 0, size, &x[0]);
		env->GetFloatArrayRegion(ys, 0, size, &y[0]);

		std::vector<intptr_t> idlong; idlong.resize(size);
		for (int i = 0; i < size; i++)
			idlong[i] = id[i];

		Android_PushEvents([idlong, x, y](){
			cocos2d::Director::getInstance()->getOpenGLView()->handleTouchesMove(idlong.size(), (intptr_t*)&idlong[0], (float*)&x[0], (float*)&y[0]);
		});
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeTouchesCancel(JNIEnv * env, jobject thiz, jintArray ids, jfloatArray xs, jfloatArray ys) {
		int size = env->GetArrayLength(ids);
		if (size == 1) {
			intptr_t idlong;
			jint id;
			jfloat x;
			jfloat y;
			env->GetIntArrayRegion(ids, 0, size, &id);
			env->GetFloatArrayRegion(xs, 0, size, &x);
			env->GetFloatArrayRegion(ys, 0, size, &y);
			idlong = id;
			Android_PushEvents([idlong, x, y](){
				cocos2d::Director::getInstance()->getOpenGLView()->handleTouchesCancel(1, (intptr_t*)&idlong, (float*)&x, (float*)&y);
			});
			return;
		}

		jint id[size];
		std::vector<jfloat> x; x.resize(size);
		std::vector<jfloat> y; y.resize(size);

		env->GetIntArrayRegion(ids, 0, size, id);
		env->GetFloatArrayRegion(xs, 0, size, &x[0]);
		env->GetFloatArrayRegion(ys, 0, size, &y[0]);

		std::vector<intptr_t> idlong; idlong.resize(size);
		for (int i = 0; i < size; i++)
			idlong[i] = id[i];

		Android_PushEvents([idlong, x, y](){
			cocos2d::Director::getInstance()->getOpenGLView()->handleTouchesCancel(idlong.size(), (intptr_t*)&idlong[0], (float*)&x[0], (float*)&y[0]);
		});
	}

#define KEYCODE_BACK 0x04
#define KEYCODE_MENU 0x52
#define KEYCODE_DPAD_UP 0x13
#define KEYCODE_DPAD_DOWN 0x14
#define KEYCODE_DPAD_LEFT 0x15
#define KEYCODE_DPAD_RIGHT 0x16
#define KEYCODE_ENTER 0x42
#define KEYCODE_PLAY  0x7e
#define KEYCODE_DPAD_CENTER  0x17
#define KEYCODE_DEL 0x43

	JNIEXPORT jboolean JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeKeyAction(JNIEnv * env, jclass cls, jint keyCode, jboolean isPress) {
		cocos2d::EventKeyboard::KeyCode pKeyCode;
		switch (keyCode) {
		case KEYCODE_BACK		: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_ESCAPE	; break;
		case KEYCODE_MENU		: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_MENU		; break;
		case KEYCODE_DPAD_UP	: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_DPAD_UP	; break;
		case KEYCODE_DPAD_DOWN	: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_DPAD_DOWN	; break;
		case KEYCODE_DPAD_LEFT	: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_DPAD_LEFT	; break;
		case KEYCODE_DPAD_RIGHT	: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_DPAD_RIGHT; break;
		case KEYCODE_ENTER		: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_ENTER		; break;
		case KEYCODE_PLAY		: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_PLAY		; break;
		case KEYCODE_DPAD_CENTER: pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_DPAD_CENTER; break;
        case KEYCODE_DEL          : pKeyCode = cocos2d::EventKeyboard::KeyCode::KEY_BACKSPACE; break;
		default: return JNI_FALSE;
		}

		Android_PushEvents([pKeyCode, isPress](){
			cocos2d::EventKeyboard event(pKeyCode, isPress);
			cocos2d::Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
		});
		return JNI_TRUE;
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeInsertText(JNIEnv* env, jclass cls, jstring text) {
		const char* pszText = env->GetStringUTFChars(text, NULL);
		if (pszText && *pszText) {
			std::string str = pszText;
			Android_PushEvents([str](){
				cocos2d::IMEDispatcher::sharedDispatcher()->dispatchInsertText(str.c_str(), str.length());
			});
		}
		env->ReleaseStringUTFChars(text, pszText);
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeDeleteBackward(JNIEnv* env, jclass cls) {
		Android_PushEvents(std::bind(&cocos2d::IMEDispatcher::dispatchDeleteBackward,
			cocos2d::IMEDispatcher::sharedDispatcher()));
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeCharInput(JNIEnv* env, jclass cls, jint keyCode) {
		TVPMainScene *pScene = TVPMainScene::GetInstance();
		if (!pScene) return;
		pScene->getScheduler()->performFunctionInCocosThread(std::bind(&TVPMainScene::onCharInput, keyCode));
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeCommitText(
		JNIEnv* env, jclass cls,
		jstring text, jint newCursorPosition)
	{
		TVPMainScene *pScene = TVPMainScene::GetInstance();
		if (!pScene) return;
		const char *utftext = env->GetStringUTFChars(text, NULL);
		std::string str(utftext);
		pScene->getScheduler()->performFunctionInCocosThread(std::bind(&TVPMainScene::onTextInput, str));
		env->ReleaseStringUTFChars(text, utftext);
	}

	JNIEXPORT jboolean JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeGetHideSystemButton(JNIEnv* env, jclass cls)
	{
		return GlobalConfigManager::GetInstance()->GetValue<bool>("hide_android_sys_btn", false);
	}

	static float _mouseX, _mouseY;

	JNIEXPORT jboolean JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeHoverMoved(JNIEnv* env, jclass cls, jfloat x, jfloat y)
	{
		Android_PushEvents([x, y]() {
			cocos2d::GLView *glview = cocos2d::Director::getInstance()->getOpenGLView();
			float _scaleX = glview->getScaleX(), _scaleY = glview->getScaleY();
			_mouseX = x; _mouseY = y;
			const cocos2d::Rect _viewPortRect = glview->getViewPortRect();

			float cursorX = (_mouseX - _viewPortRect.origin.x) / _scaleX;
			float cursorY = (_viewPortRect.origin.y + _viewPortRect.size.height - _mouseY) / _scaleY;

			cocos2d::EventMouse event(cocos2d::EventMouse::MouseEventType::MOUSE_MOVE);
			event.setCursorPosition(cursorX, cursorY);
			cocos2d::Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
		});
		return true;
	}

	JNIEXPORT jboolean JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeMouseScrolled(JNIEnv* env, jclass cls, jfloat v)
	{
		Android_PushEvents([v]() {
			cocos2d::GLView *glview = cocos2d::Director::getInstance()->getOpenGLView();
			float _scaleX = glview->getScaleX(), _scaleY = glview->getScaleY();
			const cocos2d::Rect _viewPortRect = glview->getViewPortRect();

			float cursorX = (_mouseX - _viewPortRect.origin.x) / _scaleX;
			float cursorY = (_viewPortRect.origin.y + _viewPortRect.size.height - _mouseY) / _scaleY;

			cocos2d::EventMouse event(cocos2d::EventMouse::MouseEventType::MOUSE_SCROLL);
			event.setScrollData(0, v);
			event.setCursorPosition(cursorX, cursorY);
			cocos2d::Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
		});
		return true;
	}

	JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeOnLowMemory(JNIEnv* env, jclass cls)
	{
		Android_PushEvents([]() {
			::Application->OnLowMemory();
		});
	}
}


================================================
FILE: project/android/app/java/com/yuri/kirikiri2/MainActivity.java
================================================
package com.yuri.kirikiri2;
import org.tvp.kirikiri2.KR2Activity;

public class MainActivity extends KR2Activity {
	static {
		// System.loadLibrary("krkr2yuri");
	}
	@Override
	public int get_res_sd_operate_step() { return R.drawable.sd_operate_step; }
}


================================================
FILE: project/android/app/java/org/tvp/kirikiri2/KR2Activity.java
================================================
package org.tvp.kirikiri2;

import android.Manifest;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Debug;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.os.storage.StorageManager;
import android.preference.PreferenceManager;
import android.provider.BaseColumns;
import android.provider.MediaStore;
import android.util.AttributeSet;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.BaseInputConnection;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;

import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.documentfile.provider.DocumentFile;

import org.cocos2dx.lib.Cocos2dxActivity;
import org.cocos2dx.lib.Cocos2dxGLSurfaceView;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

/**
 * Utility class for handling the media store.
 */
@SuppressWarnings("ALL")
abstract class MediaStoreUtil {
    public static Uri getUriFromFile(final String path,Context context) {
        ContentResolver resolver = context.getContentResolver();
        Cursor filecursor = resolver.query(MediaStore.Files.getContentUri("external"),
                new String[] { BaseColumns._ID }, MediaStore.MediaColumns.DATA + " = ?",
                new String[] { path }, MediaStore.MediaColumns.DATE_ADDED + " desc");
        filecursor.moveToFirst();

        if (filecursor.isAfterLast()) {
            filecursor.close();
            ContentValues values = new ContentValues();
            values.put(MediaStore.MediaColumns.DATA, path);
            return resolver.insert(MediaStore.Files.getContentUri("external"), values);
        }
        else {
            int imageId = filecursor.getInt(filecursor.getColumnIndex(BaseColumns._ID));
            Uri uri = MediaStore.Files.getContentUri("external").buildUpon().appendPath(
                    Integer.toString(imageId)).build();
            filecursor.close();
            return uri;
        }
    }

    public static void addFileToMediaStore(final String path, Context context) {
        Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        File file = new File(path);
        Uri contentUri = Uri.fromFile(file);
        mediaScanIntent.setData(contentUri);
        context.sendBroadcast(mediaScanIntent);
    }

}

/* This is a fake invisible editor view that receives the input and defines the
 * pan&scan region
 */
class DummyEdit extends View implements View.OnKeyListener {
    InputConnection ic;

    public DummyEdit(Context context) {
        super(context);
        setFocusableInTouchMode(true);
        setFocusable(true);
        setOnKeyListener(this);
    }

    @Override
    public boolean onCheckIsTextEditor() {
        return true;
    }

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {

        // This handles the hardware keyboard input
        if (event.isPrintingKey()) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
                ic.commitText(String.valueOf((char) event.getUnicodeChar()), 1);
            }
            return true;
        }
        return false;
    }
        
    //
    @Override
    public boolean onKeyPreIme (int keyCode, KeyEvent event) {
        // As seen on StackOverflow: http://stackoverflow.com/questions/7634346/keyboard-hide-event
        // FIXME: Discussion at http://bugzilla.libsdl.org/show_bug.cgi?id=1639
        // FIXME: This is not a 100% effective solution to the problem of detecting if the keyboard is showing or not
        // FIXME: A more effective solution would be to change our Layout from AbsoluteLayout to Relative or Linear
        // FIXME: And determine the keyboard presence doing this: http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android
        // FIXME: An even more effective way would be if Android provided this out of the box, but where would the fun be in that :)
        if (event.getAction()==KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
            if (KR2Activity.mTextEdit != null && KR2Activity.mTextEdit.getVisibility() == View.VISIBLE) {
            	KR2Activity.hideTextInput();
            	//KR2Activity.nativeKeyboardFocusLost();
            }
        }
        return super.onKeyPreIme(keyCode, event);
    }

    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
        ic = new SDLInputConnection(this, true);

        outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI
                | 33554432 /* API 11: EditorInfo.IME_FLAG_NO_FULLSCREEN */;

        return ic;
    }
}

class SDLInputConnection extends BaseInputConnection {

    public SDLInputConnection(View targetView, boolean fullEditor) {
        super(targetView, fullEditor);

    }

    @Override
    public boolean sendKeyEvent(KeyEvent event) {
        /*
         * This handles the keycodes from soft keyboard (and IME-translated
         * input from hardkeyboard)
         */
        int keyCode = event.getKeyCode();
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            if (event.isPrintingKey()) {
                commitText(String.valueOf((char) event.getUnicodeChar()), 1);
                KR2Activity.nativeCharInput(keyCode);
            } else if(keyCode == KeyEvent.KEYCODE_DEL) {
            	KR2Activity.nativeKeyAction(keyCode, true);
            }
            return true;
        } else if (event.getAction() == KeyEvent.ACTION_UP) {
        	if(keyCode == KeyEvent.KEYCODE_DEL) {
            	KR2Activity.nativeKeyAction(keyCode, false);
            }
        	//KR2Activity.nativeKeyAction(keyCode, false);
            return true;
        }
        return super.sendKeyEvent(event);
    }

    @Override
    public boolean commitText(CharSequence text, int newCursorPosition) {

    	KR2Activity.nativeCommitText(text.toString(), newCursorPosition);

        return super.commitText(text, newCursorPosition);
    }

    @Override
    public boolean setComposingText(CharSequence text, int newCursorPosition) {

        //nativeSetComposingText(text.toString(), newCursorPosition);

        return super.setComposingText(text, newCursorPosition);
    }

    //public native void nativeSetComposingText(String text, int newCursorPosition);

    @Override
    public boolean deleteSurroundingText(int beforeLength, int afterLength) {       
        // Workaround to capture backspace key. Ref: http://stackoverflow.com/questions/14560344/android-backspace-in-webview-baseinputconnection
        if (beforeLength == 1 && afterLength == 0) {
            // backspace
            return super.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL))
                && super.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DEL));
        }

        return super.deleteSurroundingText(beforeLength, afterLength);
    }
}

@SuppressWarnings("ALL")
public class KR2Activity extends Cocos2dxActivity implements ActivityCompat.OnRequestPermissionsResultCallback {

    public static final int RC_WRITE_EXTERNAL = 1;
    public static final int RC_PHONE_STATE = 2;

	static ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
	static ActivityManager mAcitivityManager = null;
	static Debug.MemoryInfo mDbgMemoryInfo = new Debug.MemoryInfo();
	public static void updateMemoryInfo() {
		if(mAcitivityManager == null) {
			mAcitivityManager =(ActivityManager)sInstance.getSystemService(Activity.ACTIVITY_SERVICE);
		}
		mAcitivityManager.getMemoryInfo(memoryInfo);
		Debug.getMemoryInfo(mDbgMemoryInfo);
	}
	
	public static long getAvailMemory() {
		return memoryInfo.availMem;
	}

	public static long getUsedMemory() {
		return mDbgMemoryInfo.getTotalPss(); // in kB
	}

    private static void requestPhoneState() {
        // Permission has not been granted and must be requested.
        if (ActivityCompat.shouldShowRequestPermissionRationale(sInstance,
                Manifest.permission.READ_PHONE_STATE)) {
            // Provide an additional rationale to the user if the permission was not granted
            // and the user would benefit from additional context for the use of the permission.
            // Display a SnackBar with cda button to request the missing permission.
            ActivityCompat.requestPermissions(sInstance,
                    new String[]{Manifest.permission.READ_PHONE_STATE},
                    RC_PHONE_STATE);

        } else {
            // Request the permission. The result will be received in onRequestPermissionResult().
            ActivityCompat.requestPermissions(sInstance,
                    new String[]{Manifest.permission.READ_PHONE_STATE}, RC_PHONE_STATE);
        }
    }

    private static void requestExternalWrite() {
        // Permission has not been granted and must be requested.
        if (ActivityCompat.shouldShowRequestPermissionRationale(sInstance,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
            // Provide an additional rationale to the user if the permission was not granted
            // and the user would benefit from additional context for the use of the permission.
            // Display a SnackBar with cda button to request the missing permission.
            ActivityCompat.requestPermissions(sInstance,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    RC_WRITE_EXTERNAL);

        } else {
            // Request the permission. The result will be received in onRequestPermissionResult().
            ActivityCompat.requestPermissions(sInstance,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, RC_WRITE_EXTERNAL);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case RC_PHONE_STATE:
                Log.d("Krkr2", "onRequestPermissionsResult: PHONE STATE");
                break;
            case RC_WRITE_EXTERNAL:
                Log.d("Krkr2", "onRequestPermissionsResult: WRITE EXTERNAL");
                break;
        }
    }


    static public String getDeviceId() { // ## fix android.permission.READ_PRIVILEGED_PHONE_STATE
		return "";
	}

	static public KR2Activity sInstance;
	static public KR2Activity GetInstance() {return sInstance;}
    
	@Override
	public void onCreate(Bundle savedInstanceState) {
		sInstance = this;
        Sp = PreferenceManager.getDefaultSharedPreferences(this);
		super.onCreate(savedInstanceState);
	
		if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP) {
			for(String path : getExtSdCardPaths(this)) {
		        if (!isWritableNormalOrSaf(path)) {
		            guideDialogForLEXA(path);
		        }
			}
		}
		
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestExternalWrite();
        }
		initDump(this.getFilesDir().getAbsolutePath() + "/dump");
	}
	
	@Override
	public void onDestroy() {
		super.onDestroy();
		System.exit(0);
	}
	
	@Override
	public void onLowMemory() {
		nativeOnLowMemory();
	}
	
	static class DialogMessage
	{
		public String Title;
		public String Text;
		public String[] Buttons;
		public EditText TextEditor = null;

		public DialogMessage()
		{
		}
		
		public void Init(final String title, final String text, final String[] buttons)
		{
			this.Title = title;
			this.Text = text;
			this.Buttons = buttons;
		}
		
		void onButtonClick(int n) {
			if(TextEditor != null) {
				onMessageBoxText(TextEditor.getText().toString());
			}
        	onMessageBoxOK(n);
		}
		
		public AlertDialog.Builder CreateBuilder() {
		/*	TextView showText = new TextView(sInstance);
			showText.setText(Text);
			if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB)
				showText.setTextIsSelectable(true);*/
			AlertDialog.Builder builder = new AlertDialog.Builder(sInstance).
                setTitle(Title).
                setMessage(Text).
                //setView(showText).
				setCancelable(false);
			if(Buttons.length >= 1) {
                builder = builder.setPositiveButton(Buttons[0], new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    	onButtonClick(0);
                    }
                });
			}
			if(Buttons.length >= 2) {
                builder = builder.setNeutralButton(Buttons[1], new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    	onButtonClick(1);
                    }
                });
    		}
			if(Buttons.length >= 3) {
                builder = builder.setNegativeButton(Buttons[2], new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    	onButtonClick(2);
                    }
                });
    		}
			return builder;
		}
		
		public void ShowMessageBox()
		{
			CreateBuilder().create().show();
		}
		
		public void ShowInputBox(final String text) {
			AlertDialog.Builder builder = CreateBuilder();
			TextEditor = new EditText(sInstance);  
			LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
			                     LinearLayout.LayoutParams.MATCH_PARENT,
			                     LinearLayout.LayoutParams.MATCH_PARENT);
			TextEditor.setLayoutParams(lp);
			TextEditor.setText(text);
			builder.setView(TextEditor);
			AlertDialog ad = builder.create(); 
			ad.show();
			TextEditor.requestFocus();
            InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(TextEditor, 0);
		}
	}
	static DialogMessage mDialogMessage = new DialogMessage();

    protected static View mTextEdit = null;
    SharedPreferences Sp;
	
	static Handler msgHandler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			sInstance.handleMessage(msg);
		}
	};
	
	public void handleMessage(Message msg) {
		
	}
	
	static public void ShowMessageBox(final String title, final String text, final String[] Buttons) {
		mDialogMessage.Init(title, text, Buttons);
		msgHandler.post(new Runnable() {
			@Override
			public void run() {
				mDialogMessage.ShowMessageBox();
			}
		});
	}
	
	static public void ShowInputBox(final String title, final String prompt, final String text, final String[] Buttons) {
		mDialogMessage.Init(title, prompt, Buttons);
		msgHandler.post(new Runnable() {
			@Override
			public void run() {
				mDialogMessage.ShowInputBox(text);
			}
		});
	}
	
    static class ShowTextInputTask implements Runnable {
        /*
         * This is used to regulate the pan&scan method to have some offset from
         * the bottom edge of the input region and the top edge of an input
         * method (soft keyboard)
         */
        static final int HEIGHT_PADDING = 15;

        public int x, y, w, h;

        public ShowTextInputTask(int x, int y, int w, int h) {
            this.x = x;
            this.y = y;
            this.w = w;
            this.h = h;
        }

		@Override
        public void run() {
			FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(w, h + HEIGHT_PADDING);
			params.leftMargin = x;
			params.topMargin = y;

            if (mTextEdit == null) {
                mTextEdit = new DummyEdit(getContext());

                sInstance.mFrameLayout.addView(mTextEdit, params);
            } else {
                mTextEdit.setLayoutParams(params);
            }

            mTextEdit.setVisibility(View.VISIBLE);
            mTextEdit.requestFocus();

            InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(mTextEdit, 0);
        }
    }
    
	static public void showTextInput(int x, int y, int w, int h) {
		msgHandler.post(new ShowTextInputTask(x, y, w, h));
	}
	static public void hideTextInput() {
		msgHandler.post(new Runnable() {
			@Override
			public void run() {
		        if (mTextEdit != null) {
		            mTextEdit.setVisibility(View.GONE);
		            InputMethodManager imm = (InputMethodManager) sInstance.getSystemService(Context.INPUT_METHOD_SERVICE);
		            imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0);
		        }
			}
		});
	}
	
	static private native void onMessageBoxOK(int nButton);
	static private native void onMessageBoxText(String text);
	static private native void onNativeExit();
	static public native void onNativeInit();
	static public native void onBannerSizeChanged(int w, int h);
	static private native void initDump(String path);
	static private native void nativeOnLowMemory();
	
	static public void MessageController(int what, int arg1, int arg2) {
        Message msg = msgHandler.obtainMessage();
        msg.what = what;
        msg.arg1 = arg1;
        msg.arg2 = arg2;
		msgHandler.sendMessage(msg);
	}
	
	static public String GetVersion() {
		String verstr = null;
		try {
			verstr = sInstance.getPackageManager().getPackageInfo(sInstance.getPackageName(), 0).versionName;
		} catch (NameNotFoundException e1) {
		}
		return verstr;
	}
	
	StorageManager mStorageManager = null;
    Method mMethodGetPaths = null;
    Method mGetVolumeState = null;
    
    public String[] getStoragePath() {
    	String[] ret = new String[0];
    	if(mStorageManager == null) {
        	mStorageManager = (StorageManager)getSystemService(STORAGE_SERVICE);
            try {
                mMethodGetPaths = StorageManager.class.getMethod("getVolumePaths");
                mGetVolumeState = StorageManager.class.getMethod("getVolumeState", String.class);
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            }
    	}
    	if(mMethodGetPaths != null) {
            try {
            	ret = (String[])mMethodGetPaths.invoke(mStorageManager);
            } catch (IllegalArgumentException e) {
     
            } catch (IllegalAccessException e) {
     
            } catch (InvocationTargetException e) {
     
            } catch (Exception e) {
     
            }
    	}
        
        if(mGetVolumeState != null) {
            try {
            	for(int i = 0; i < ret.length; ++i) {
            		String status = (String)mGetVolumeState.invoke(mStorageManager, ret[i]);
            		if(Environment.MEDIA_MOUNTED.equals(status) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(status)) {
            			;
            		} else {
            			ret[i] = null;
            		}
            	}
            } catch (IllegalArgumentException e) {
     
            } catch (IllegalAccessException e) {
     
            } catch (InvocationTargetException e) {
     
            } catch (Exception e) {
     
            }
        }
        
		return ret;
    }
    
    private static native void nativeTouchesBegin(final int id, final float x, final float y);
    private static native void nativeTouchesEnd(final int id, final float x, final float y);
    private static native void nativeTouchesMove(final int[] ids, final float[] xs, final float[] ys);
    private static native void nativeTouchesCancel(final int[] ids, final float[] xs, final float[] ys);
    public static native boolean nativeKeyAction(final int keyCode, final boolean isPress);
    public static native void nativeCharInput(final int keyCode);
    public static native void nativeCommitText(String text, int newCursorPosition);
    
    private static native void nativeInsertText(final String text);
    public static native void nativeDeleteBackward();
    private static native String nativeGetContentText();
    private static native void nativeHoverMoved(final float x, final float y);
    private static native void nativeMouseScrolled(final float scroll);
    
    class KR2GLSurfaceView extends Cocos2dxGLSurfaceView {

        public KR2GLSurfaceView(final Context context) {
            super(context);
        }

        public KR2GLSurfaceView(final Context context, final AttributeSet attrs) {
            super(context, attrs);
        }
        
        @Override
        public void insertText(final String pText) {
        	nativeInsertText(pText);
        }

        @Override
        public void deleteBackward() {
        	nativeDeleteBackward();
        }

        @Override
        public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) {
            switch (pKeyCode) {
                case KeyEvent.KEYCODE_BACK:
                case KeyEvent.KEYCODE_MENU:
                case KeyEvent.KEYCODE_DPAD_LEFT:
                case KeyEvent.KEYCODE_DPAD_RIGHT:
                case KeyEvent.KEYCODE_DPAD_UP:
                case KeyEvent.KEYCODE_DPAD_DOWN:
                case KeyEvent.KEYCODE_ENTER:
                case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
                case KeyEvent.KEYCODE_DPAD_CENTER:
                	nativeKeyAction(pKeyCode, true);
                    return true;
                default:
                    return super.onKeyDown(pKeyCode, pKeyEvent);
            }
        }

        @Override
        public boolean onKeyUp(final int pKeyCode, final KeyEvent pKeyEvent) {
            switch (pKeyCode) {
                case KeyEvent.KEYCODE_BACK:
                case KeyEvent.KEYCODE_MENU:
                case KeyEvent.KEYCODE_DPAD_LEFT:
                case KeyEvent.KEYCODE_DPAD_RIGHT:
                case KeyEvent.KEYCODE_DPAD_UP:
                case KeyEvent.KEYCODE_DPAD_DOWN:
                case KeyEvent.KEYCODE_ENTER:
                case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
                case KeyEvent.KEYCODE_DPAD_CENTER:
                	nativeKeyAction(pKeyCode, false);
                    return true;
                default:
                    return super.onKeyUp(pKeyCode, pKeyEvent);
            }
        }
        
        @Override
        public boolean onHoverEvent(final MotionEvent pMotionEvent) {
            final int pointerNumber = pMotionEvent.getPointerCount();
            final float[] xs = new float[pointerNumber];
            final float[] ys = new float[pointerNumber];
            for (int i = 0; i < pointerNumber; i++) {
                xs[i] = pMotionEvent.getX(i);
                ys[i] = pMotionEvent.getY(i);
            }
            
        	switch(pMotionEvent.getActionMasked()) {
        	case MotionEvent.ACTION_HOVER_MOVE:
        		nativeHoverMoved(xs[0], ys[0]);
        		break;
        	}
        	return true;
        }
        
        @Override
        public boolean onTouchEvent(final MotionEvent pMotionEvent) {
        	
            // these data are used in ACTION_MOVE and ACTION_CANCEL
            final int pointerNumber = pMotionEvent.getPointerCount();
            final int[] ids = new int[pointerNumber];
            final float[] xs = new float[pointerNumber];
            final float[] ys = new float[pointerNumber];

            for (int i = 0; i < pointerNumber; i++) {
                ids[i] = pMotionEvent.getPointerId(i);
                xs[i] = pMotionEvent.getX(i);
                ys[i] = pMotionEvent.getY(i);
            }

            switch (pMotionEvent.getAction() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_POINTER_DOWN:
                    final int indexPointerDown = pMotionEvent.getAction() >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
                    final int idPointerDown = pMotionEvent.getPointerId(indexPointerDown);
                    final float xPointerDown = pMotionEvent.getX(indexPointerDown);
                    final float yPointerDown = pMotionEvent.getY(indexPointerDown);
                    nativeTouchesBegin(idPointerDown, xPointerDown, yPointerDown);
                    break;

                case MotionEvent.ACTION_DOWN:
                    // there are only one finger on the screen
                    final int idDown = pMotionEvent.getPointerId(0);
                    final float xDown = xs[0];
                    final float yDown = ys[0];
                    nativeTouchesBegin(idDown, xDown, yDown);
                    break;

                case MotionEvent.ACTION_MOVE:
                	nativeTouchesMove(ids, xs, ys);
                    break;

                case MotionEvent.ACTION_POINTER_UP:
                    final int indexPointUp = pMotionEvent.getAction() >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
                    final int idPointerUp = pMotionEvent.getPointerId(indexPointUp);
                    final float xPointerUp = pMotionEvent.getX(indexPointUp);
                    final float yPointerUp = pMotionEvent.getY(indexPointUp);
                    nativeTouchesEnd(idPointerUp, xPointerUp, yPointerUp);
                    break;

                case MotionEvent.ACTION_UP:
                    // there are only one finger on the screen
                    final int idUp = pMotionEvent.getPointerId(0);
                    final float xUp = xs[0];
                    final float yUp = ys[0];
                    nativeTouchesEnd(idUp, xUp, yUp);
                    break;

                case MotionEvent.ACTION_CANCEL:
                	nativeTouchesCancel(ids, xs, ys);
                    break;
            }

            /*
            if (BuildConfig.DEBUG) {
                Cocos2dxGLSurfaceView.dumpMotionEvent(pMotionEvent);
            }
            */
            return true;
        }
        
		@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) @Override  
        public boolean onGenericMotionEvent(MotionEvent event) {
        	switch (event.getActionMasked()) {
	        case MotionEvent.ACTION_SCROLL:
	        	float v = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
	        	nativeMouseScrolled(-v);
                return true;
            default:
            	break;
        	}
        	return super.onGenericMotionEvent(event);
        }
    }
    
    //@Override
    // ## fix private function
//    public Cocos2dxGLSurfaceView onCreateView() {
//        Cocos2dxGLSurfaceView glSurfaceView = new KR2GLSurfaceView(this);
//    	hideSystemUI();
//
//        // this line is need on some device if we specify an alpha bits
//        if(this.mGLContextAttrs[3] > 0) glSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
//
//        Cocos2dxEGLConfigChooser chooser = new Cocos2dxEGLConfigChooser(this.mGLContextAttrs);
//        glSurfaceView.setEGLConfigChooser(chooser);
//
//        return glSurfaceView;
//    }
    
    public int get_res_sd_operate_step() { return -1; }

    static void requireLEXA(final String path) {
		msgHandler.post(new Runnable() {
			@Override
			public void run() {
				guideDialogForLEXA(path);
			}
		});
    }
    static void guideDialogForLEXA(final String path) {
    	AlertDialog.Builder builder = new AlertDialog.Builder(sInstance);
    	ImageView image = new ImageView(sInstance);
    	image.setImageResource(sInstance.get_res_sd_operate_step());
    	builder
    		.setView(image)
    		.setTitle(path)
    		.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    triggerStorageAccessFramework();
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                	// nothing to do
                }
            })
            .show();
    }
    
    static final boolean isWritable(final File file) {
        if(file==null)
            return false;
        boolean isExisting = file.exists();

        try {
            FileOutputStream output = new FileOutputStream(file, true);
            try {
                output.close();
            }
            catch (IOException e) {
                // do nothing.
            }
        }
        catch (FileNotFoundException e) {
            return false;
        }
        boolean result = file.canWrite();

        // Ensure that file is not created during this process.
        if (!isExisting) {
            file.delete();
        }

        return result;
    }

    static final boolean isWritableNormal(final String path) {
        boolean ret = isWritableNormalOrSaf(path);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestExternalWrite();
            return isWritableNormalOrSaf(path);
        }
        return ret;
    }


    static final boolean isWritableNormalOrSaf(final String path) {

        Log.i("kr2activaty","check path " + path + "permision");

    	Context c = sInstance;
    	File folder = new File(path);
    	folder.mkdir();
    	// Log.d("ke2activate", String.format("%b  and  %b", folder.exists(), folder.isDirectory()));
        if (!folder.exists() || !folder.isDirectory()) {
           return false;
        }

        // Find a non-existing file in this directory.
        int i = 0;
        File file;
        do {
            String fileName = "AugendiagnoseDummyFile" + (++i);
            file = new File(folder, fileName);
        }
        while (file.exists());

        // First check regular writability
        Log.d("ke2activate", String.format("%b  ", isWritable(file)));
        if (isWritable(file)) {
            return true;
        }

        // Next check SAF writability.
        DocumentFile document = getDocumentFile(file, false,c);

        if (document == null) {
            return false;
        }

        // This should have created the file - otherwise something is wrong with access URL.
        boolean result = document.canWrite() && file.exists();

        // Ensure that the dummy file is not remaining.
        document.delete();
        DocumentFile.fromFile(folder).delete();

        return result;
    }
    
    @TargetApi(Build.VERSION_CODES.KITKAT)
    private static String[] getExtSdCardPaths(Context context) {
        List<String> paths = new ArrayList<String>();
        for (File file : context.getExternalFilesDirs("external")) {
            if (file != null && !file.equals(context.getExternalFilesDir("external"))) {
                int index = file.getAbsolutePath().lastIndexOf("/Android/data");
                if (index < 0) {
                    Log.w("FileUtils", "Unexpected external file dir: " + file.getAbsolutePath());
                } else {
                    String path = file.getAbsolutePath().substring(0, index);
                    try {
                        path = new File(path).getCanonicalPath();
                    }
                    catch (IOException e) {
                        // Keep non-canonical path.
                    }
                    paths.add(path);
                }
            }
        }
        //if(paths.isEmpty())paths.add("/storage/sdcard1");
        return paths.toArray(new String[0]);
    }
    static String[] _extSdPaths;

    public static String getExtSdCardFolder(final File file,Context context) {
    	if(_extSdPaths == null)
    		_extSdPaths = getExtSdCardPaths(context);
        try {
            for (int i = 0; i < _extSdPaths.length; i++) {
                if (file.getCanonicalPath().startsWith(_extSdPaths[i])) {
                    return _extSdPaths[i];
                }
            }
        }
        catch (IOException e) {
            return null;
        }
        return null;
    }
    
    public static boolean isOnExtSdCard(final File file,Context c) {
        return getExtSdCardFolder(file,c) != null;
    }
    
    public static DocumentFile getDocumentFile(final File file, final boolean isDirectory,Context context) {
        String baseFolder = getExtSdCardFolder(file,context);
        boolean originalDirectory=false;
        if (baseFolder == null) {
            return null;
        }

        String relativePath = null;
        try {
            String fullPath = file.getCanonicalPath();
            if(!baseFolder.equals(fullPath))
            relativePath = fullPath.substring(baseFolder.length() + 1);
            else originalDirectory=true;
        }
        catch (IOException e) {
            return null;
        }
        catch (Exception f){
            originalDirectory=true;
            //continue
        }
        String as=PreferenceManager.getDefaultSharedPreferences(context).getString("URI",null);

        Uri treeUri =null;
        if(as!=null)treeUri=Uri.parse(as);
        if (treeUri == null) {
            return null;
        }

        // start with root of SD card and then parse through document tree.
        DocumentFile document = DocumentFile.fromTreeUri(context, treeUri);
        if(originalDirectory)return document;
        String[] parts = relativePath.split("\\/");
        for (int i = 0; i < parts.length; i++) {
            DocumentFile nextDocument = document.findFile(parts[i]);
            if (nextDocument == null) {
            	try {
	                if ((i < parts.length - 1) || isDirectory) {
	                    nextDocument = document.createDirectory(parts[i]);
	                } else {
	                    nextDocument = document.createFile("image", parts[i]);
	                }
	            } catch (Exception e) {
	            	return null;
	            }
            }
            document = nextDocument;
        }

        return document;
    }
    
    static public boolean RenameFile(String from, String to) {
    	File file = new File(from);
    	File target = new File(to);
    	if(!file.exists())
    		return false;
    	if(target.exists()) {
    		if(!DeleteFile(target.getAbsolutePath())) return false;
    	}
    	
    	File parent = target.getParentFile();
    	if(!parent.exists()) {
    		if(!CreateFolders(parent.getAbsolutePath())) return false;
    	}
    	// Try the normal way
        if(file.renameTo(target)) return true;
        
        // Try with Storage Access Framework.
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP /*&& isOnExtSdCard(file, sInstance)*/) {
            DocumentFile document = getDocumentFile(file, false, sInstance);
        	if(document.renameTo(to))
        		return true;
        }
        
        // Try Media Store Hack
        if (Build.VERSION.SDK_INT==Build.VERSION_CODES.KITKAT) {
        	try {
				FileInputStream input = new FileInputStream(file);
	        	int filesize = (int) file.length();
				byte []buffer = new byte[filesize];
				input.read(buffer);
				input.close();
            	OutputStream out = MediaStoreHack.getOutputStream(sInstance, target.getAbsolutePath());
                out.write(buffer);
                out.close();
                return MediaStoreHack.delete(sInstance, file);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				return false;
				//e.printStackTrace();
			}
        }
        
    	return false;
    }
    
    public static final boolean deleteFilesInFolder(final File folder,Context context) {
        boolean totalSuccess = true;
        if(folder==null)
            return false;
        if (folder.isDirectory()) {
            for (File child : folder.listFiles()) {
                deleteFilesInFolder(child, context);
            }

            if (!folder.delete())
                totalSuccess = false;
        } else {

            if (!folder.delete())
                totalSuccess = false;
        }
        return totalSuccess;
    }

    static public boolean DeleteFile(String path) {
    	File file = new File(path);
    	// First try the normal deletion.
        boolean fileDelete = deleteFilesInFolder(file, sInstance);
        if (file.delete() || fileDelete)
            return true;

        // Try with Storage Access Framework.
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP && isOnExtSdCard(file, sInstance)) {

            DocumentFile document = getDocumentFile(file, false,sInstance);
            return document.delete();
        }

        // Try the Kitkat workaround.
        if (Build.VERSION.SDK_INT==Build.VERSION_CODES.KITKAT) {
            ContentResolver resolver = sInstance.getContentResolver();

            try {
                Uri uri = MediaStoreHack.getUriFromFile(file.getAbsolutePath(),sInstance);
                resolver.delete(uri, null, null);
                return !file.exists();
            }
            catch (Exception e) {
                Log.e("FileUtils", "Error when deleting file " + file.getAbsolutePath(), e);
                return false;
            }
        }

        return !file.exists();
    }
    
	public static OutputStream getOutputStream(@NonNull final File target,Context context,long s)throws Exception {
	    OutputStream outStream = null;
	    try {
	        // First try the normal way
			if (isWritable(target)) {
			    // standard way
			    outStream = new FileOutputStream(target);
			} else {
			    if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP) {
			        // Storage Access Framework
			    DocumentFile targetDocument = getDocumentFile(target, false,context);
			    outStream = context.getContentResolver().openOutputStream(targetDocument.getUri());
			} else if (Build.VERSION.SDK_INT==Build.VERSION_CODES.KITKAT) {
			    // Workaround for Kitkat ext SD card
		        return MediaStoreHack.getOutputStream(context,target.getPath());
		        }
		    }
		} catch (Exception e) {
		    Log.e("FileUtils",
    			"Error when copying file from " +  target.getAbsolutePath(), e);
	    }
	  return outStream;
    }

    
    static public boolean WriteFile(String path, byte data[]) {
        File target = new File(path);
        if(target.exists()) {
        	DeleteFile(target.getAbsolutePath()); // to avoid number suffix name
        } else {
            File parent = target.getParentFile();
            if(!parent.exists())
            	CreateFolders(parent.getAbsolutePath());
        }
        OutputStream out = null;
        
    	// Try the normal way
    	try {
        	if(isWritable(target)) {
        		OutputStream os = new FileOutputStream(target);
    			os.write(data);
    			os.close();
    			return true;
        	}

            // Try with Storage Access Framework.
            if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP /*&& isOnExtSdCard(file, sInstance)*/) {
                DocumentFile document = getDocumentFile(target, false, sInstance);
                try {
                	Uri docUri = document.getUri();
                    out = sInstance.getContentResolver().openOutputStream(docUri);
                } //catch (FileNotFoundException e) {
                    // e.printStackTrace();}
                catch (IOException e) {
                    // e.printStackTrace();
                }
            } else if (Build.VERSION.SDK_INT==Build.VERSION_CODES.KITKAT) {
                // Workaround for Kitkat ext SD card
                Uri uri = MediaStoreHack.getUriFromFile(target.getAbsolutePath(),sInstance);
                out = sInstance.getContentResolver().openOutputStream(uri);
            } else {
                return false;
            }
            
            if (out != null) {
                out.write(data);
                out.close();
                return true;
            }
		} catch (FileNotFoundException e) {
			//return false;
		} catch (IOException e) {
			//return false;
		}

    	return false;
    }
    
    static public boolean CreateFolders(String path) {
    	File file = new File(path);
    	
        // Try the normal way
    	if(file.mkdirs()) {
    		return true;
    	}

        // Try with Storage Access Framework.
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP /*&& FileUtil.isOnExtSdCard(file, context)*/) {
            DocumentFile document = getDocumentFile(file, true,sInstance);
            // getDocumentFile implicitly creates the directory.

            return document.exists();
        }
        
        // Try the Kitkat workaround.
        if (Build.VERSION.SDK_INT==Build.VERSION_CODES.KITKAT) {
            try {
            	return MediaStoreHack.mkdir(sInstance,file);
            } catch (IOException e) {
                //return false;
            }
        }
        
    	return false;
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);

        //SDLActivity.mHasFocus = hasFocus;
        if (hasFocus) {
        	hideSystemUI();
        }
    }
    
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    void doSetSystemUiVisibility() {
		int uiOpts = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
		        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
		        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
		        | View.SYSTEM_UI_FLAG_FULLSCREEN
		        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
		        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
		getWindow().getDecorView().setSystemUiVisibility(uiOpts);
    }

    private static native boolean nativeGetHideSystemButton();
    void hideSystemUI() {
    	if(nativeGetHideSystemButton() && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
    		doSetSystemUiVisibility();
    	}
    }
    
    static public String getLocaleName() {
    	Locale defloc = Locale.getDefault();
    	String lang = defloc.getLanguage();
    	String country = defloc.getCountry();
    	if(!country.isEmpty()) {
    		lang += "_";
    		lang += country.toLowerCase();
    	}
    	return lang;
    }
    
    static public void exit() {
    	System.exit(0);
    }
    
    static final int ORIENT_VERTICAL = 1;
    static final int ORIENT_HORIZONTAL = 2;
    
    static public void setOrientation(int orient) {
    	if(orient == ORIENT_VERTICAL) {
    		sInstance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    	} else if(orient == ORIENT_HORIZONTAL) {
    		sInstance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    	}
    }
    
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
	static public void triggerStorageAccessFramework() {
        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
        sInstance.startActivityForResult(intent, 3);
    }

    @SuppressLint("WrongConstant")
    @TargetApi(Build.VERSION_CODES.KITKAT)
    protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
        if (requestCode == 3) {
            String p = Sp.getString("URI", null);
            Uri oldUri = null;
            if (p != null) oldUri = Uri.parse(p);
            Uri treeUri = null;
            if (responseCode == Activity.RESULT_OK) {
                // Get Uri from Storage Access Framework.
                treeUri = intent.getData();
                // Persist URI - this is required for verification of writability.
                if (treeUri != null) Sp.edit().putString("URI", treeUri.toString()).commit();
            }

            // If not confirmed SAF, or if still not writable, then revert settings.
            if (responseCode != Activity.RESULT_OK) {
               /* DialogUtil.displayError(getActivity(), R.string.message_dialog_cannot_write_to_folder_saf, false,
                        currentFolder);||!FileUtil.isWritableNormalOrSaf(currentFolder)
*/
                if (treeUri != null) Sp.edit().putString("URI", oldUri.toString()).commit();
                return;
            }

            // After confirmation, update stored value of folder.
            // Persist access permissions.
            final int takeFlags = intent.getFlags()
                    & (Intent.FLAG_GRANT_READ_URI_PERMISSION
                    | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            getContentResolver().takePersistableUriPermission(treeUri, takeFlags);
        }
    }

}


================================================
FILE: project/android/app/java/org/tvp/kirikiri2/MediaStoreHack.java
================================================
package org.tvp.kirikiri2;

/**
 * Created by Arpit on 29-06-2015.
 */
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Locale;

import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
import android.provider.BaseColumns;
import android.provider.MediaStore;
import android.util.Log;

/**
 * Wrapper for manipulating files via the Android Media Content Provider. As of Android 4.4 KitKat,
 * applications can no longer write to the "secondary storage" of a device. Write operations using
 * the java.io.File API will thus fail. This class restores access to those write operations by way
 * of the Media Content Provider.</p>
 *
 * Note that this class relies on the internal operational characteristics of the media content
 * provider API, and as such is not guaranteed to be future-proof. Then again, we did all think the
 * java.io.File API was going to be future-proof for media card access, so all bets are off.</p>
 *
 * If you're forced to use this class, it's because Google/AOSP made a very poor API decision in
 * Android 4.4 KitKat. Read more at https://plus.google.com/+TodLiebeck/posts/gjnmuaDM8sn</p>
 *
 * Your application must declare the permission "android.permission.WRITE_EXTERNAL_STORAGE".</p>
 *
 * Adapted from: http://forum.xda-developers.com/showpost.php?p=52151865&postcount=20</p>
 *
 * @author Jared Rummler <jared.rummler@gmail.com>
 */
public class MediaStoreHack {

    private static final String ALBUM_ART_URI = "content://media/external/audio/albumart";

    private static final String[] ALBUM_PROJECTION = {
            BaseColumns._ID, MediaStore.Audio.AlbumColumns.ALBUM_ID, "media_type"
    };

    /**
     * Deletes the file. Returns true if the file has been successfully deleted or otherwise does
     * not exist. This operation is not recursive.
     */
    public static boolean delete(final Context context, final File file) {
        final String where = MediaStore.MediaColumns.DATA + "=?";
        final String[] selectionArgs = new String[] {
                file.getAbsolutePath()
        };
        final ContentResolver contentResolver = context.getContentResolver();
        final Uri filesUri = MediaStore.Files.getContentUri("external");
        // Delete the entry from the media database. This will actually delete media files.
        contentResolver.delete(filesUri, where, selectionArgs);
        // If the file is not a media file, create a new entry.
        if (file.exists()) {
            final ContentValues values = new ContentValues();
            values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
            contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
            // Delete the created entry, such that content provider will delete the file.
            contentResolver.delete(filesUri, where, selectionArgs);
        }
        return !file.exists();
    }

    private static File getExternalFilesDir(final Context context) {
        return context.getExternalFilesDir(null);
    }

    public static InputStream
    getInputStream(final Context context, final File file, final long size) {
        try {
            final String where = MediaStore.MediaColumns.DATA + "=?";
            final String[] selectionArgs = new String[] {
                    file.getAbsolutePath()
            };
            final ContentResolver contentResolver = context.getContentResolver();
            final Uri filesUri = MediaStore.Files.getContentUri("external");
            contentResolver.delete(filesUri, where, selectionArgs);
            final ContentValues values = new ContentValues();
            values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
            values.put(MediaStore.MediaColumns.SIZE, size);
            final Uri uri = contentResolver.insert(filesUri, values);
            return contentResolver.openInputStream(uri);
        } catch (final Throwable t) {
            return null;
        }
    }
    public static OutputStream getOutputStream(Context context,String str) {
        OutputStream outputStream = null;
        Uri fileUri = getUriFromFile(str,context);
        if (fileUri != null) {
            try {
                outputStream = context.getContentResolver().openOutputStream(fileUri);
            } catch (Throwable th) {
            }
        }
        return outputStream;
    }
    public static Uri getUriFromFile(final String path,Context context) {
        ContentResolver resolver = context.getContentResolver();

        Cursor filecursor = resolver.query(MediaStore.Files.getContentUri("external"),
                new String[] { BaseColumns._ID }, MediaStore.MediaColumns.DATA + " = ?",
                new String[] { path }, MediaStore.MediaColumns.DATE_ADDED + " desc");
        filecursor.moveToFirst();

        if (filecursor.isAfterLast()) {
            filecursor.close();
            ContentValues values = new ContentValues();
            values.put(MediaStore.MediaColumns.DATA, path);
            return resolver.insert(MediaStore.Files.getContentUri("external"), values);
        }
        else {
            @SuppressLint("Range") int imageId = filecursor.getInt(filecursor.getColumnIndex(BaseColumns._ID));
            Uri uri = MediaStore.Files.getContentUri("external").buildUpon().appendPath(
                    Integer.toString(imageId)).build();
            filecursor.close();
            return uri;
        }
    }

    /**
     * Returns an OutputStream to write to the file. The file will be truncated immediately.
     */

    private static int getTemporaryAlbumId(final Context context) {
        final File temporaryTrack;
        try {
            temporaryTrack = installTemporaryTrack(context);
        } catch (final IOException ex) {
            Log.w("MediaFile", "Error installing tempory track.", ex);
            return 0;
        }
        final Uri filesUri = MediaStore.Files.getContentUri("external");
        final String[] selectionArgs = {
                temporaryTrack.getAbsolutePath()
        };
        final ContentResolver contentResolver = context.getContentResolver();
        Cursor cursor = contentResolver.query(filesUri, ALBUM_PROJECTION,
                MediaStore.MediaColumns.DATA + "=?", selectionArgs, null);
        if (cursor == null || !cursor.moveToFirst()) {
            if (cursor != null) {
                cursor.close();
                cursor = null;
            }
            final ContentValues values = new ContentValues();
            values.put(MediaStore.MediaColumns.DATA, temporaryTrack.getAbsolutePath());
            values.put(MediaStore.MediaColumns.TITLE, "{MediaWrite Workaround}");
            values.put(MediaStore.MediaColumns.SIZE, temporaryTrack.length());
            values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mpeg");
            values.put(MediaStore.Audio.AudioColumns.IS_MUSIC, true);
            contentResolver.insert(filesUri, values);
        }
        cursor = contentResolver.query(filesUri, ALBUM_PROJECTION, MediaStore.MediaColumns.DATA
                + "=?", selectionArgs, null);
        if (cursor == null) {
            return 0;
        }
        if (!cursor.moveToFirst()) {
            cursor.close();
            return 0;
        }
        final int id = cursor.getInt(0);
        final int albumId = cursor.getInt(1);
        final int mediaType = cursor.getInt(2);
        cursor.close();
        final ContentValues values = new ContentValues();
        boolean updateRequired = false;
        if (albumId == 0) {
            values.put(MediaStore.Audio.AlbumColumns.ALBUM_ID, 13371337);
            updateRequired = true;
        }
        if (mediaType != 2) {
            values.put("media_type", 2);
            updateRequired = true;
        }
        if (updateRequired) {
            contentResolver.update(filesUri, values, BaseColumns._ID + "=" + id, null);
        }
        cursor = contentResolver.query(filesUri, ALBUM_PROJECTION, MediaStore.MediaColumns.DATA
                + "=?", selectionArgs, null);
        if (cursor == null) {
            return 0;
        }
        try {
            if (!cursor.moveToFirst()) {
                return 0;
            }
            return cursor.getInt(1);
        } finally {
            cursor.close();
        }
    }

    private static final byte [] temptrack_mp3 = new byte [] {
    	73, 68, 51, 4, 0, 0, 0, 0, 8, 65, 84, 80, 69, 49, 0, 0,
    	0, 24, 0, 0, 0, 123, 77, 101, 100, 105, 97, 87, 114, 105, 116, 101,
    	32, 87, 111, 114, 107, 97, 114, 111, 117, 110, 100, 125, 84, 65, 76, 66,
    	0, 0, 0, 24, 0, 0, 0, 123, 77, 101, 100, 105, 97, 87, 114, 105,
    	116, 101, 32, 87, 111, 114, 107, 97, 114, 111, 117, 110, 100, 125, 84, 73,
    	84, 50, 0, 0, 0, 24, 0, 0, 0, 123, 77, 101, 100, 105, 97, 87,
    	114, 105, 116, 101, 32, 87, 111, 114, 107, 97, 114, 111, 117, 110, 100, 125,
    	65, 80, 73, 67, 0, 0, 2, 33, 0, 0, 0, 105, 109, 97, 103, 101,
    	47, 112, 110, 103, 0, 3, 0, -119, 80, 78, 71, 13, 10, 26, 10, 0,
    	0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 32, 0, 0, 0, 32, 8,
    	2, 0, 0, 0, -4, 24, -19, -93, 0, 0, 0, 1, 115, 82, 71, 66,
    	0, -82, -50, 28, -23, 0, 0, 0, -50, 73, 68, 65, 84, 72, -57, -19,
    	85, -55, 10, -128, 64, 8, 77, -1, -1, -97, -19, 48, 36, -30, 62, 83,
    	-76, 64, 30, 66, -59, -52, 124, 79, -35, -74, 95, -34, 38, 68, 68, 68,
    	82, 81, -2, -95, -69, 78, 25, 31, 102, 87, -70, 124, 70, -2, 40, 114,
    	8, 74, 3, 0, -22, 42, 76, 77, 0, -112, 4, -96, -78, 59, -33, -112,
    	1, 101, 60, 90, 0, -72, 34, -42, 71, 22, 78, 20, -107, 92, -2, -51,
    	45, 20, -78, 96, 42, -14, -48, 33, 74, -17, 98, 96, 69, 117, -103, -101,
    	-58, -26, 28, -56, -106, 106, 121, 103, 75, 70, -96, 11, 84, -97, 39, 37,
    	-86, -24, -66, -48, 39, 67, 107, -128, -97, 100, 81, -78, 121, 58, 0, -44,
    	44, 82, -112, 44, -20, 18, -100, 34, -122, 59, -25, 57, 12, 53, -117, -94,
    	-103, 96, 61, 31, -123, -126, 69, 35, -53, -45, 27, 102, -115, 72, -10, -94,
    	37, -121, -56, 61, -126, -2, -70, 118, -69, -100, 0, -93, -100, 54, 12, -49,
    	92, -85, -23, -125, 51, 123, -83, 58, -21, 8, 59, -47, -110, 75, 57, -81,
    	-66, 70, -71, 95, 46, -111, 29, -73, 67, 31, -101, 122, -93, -81, 8, 0,
    	0, 0, 0, 73, 69, 78, 68, -82, 66, 96, -126, 84, 68, 84, 71, 0,
    	0, 0, 20, 0, 0, 0, 50, 48, 49, 52, 45, 48, 52, 45, 48, 49,
    	84, 50, 49, 58, 51, 57, 58, 51, 53, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -6, -112, -64, 95,
    	-85, 0, 0, 0, 0, 1, -92, 24, 0, 0, 0, 0, 0, 52, -125, -128,
    	0, 0, 76, 65, 77, 69, 51, 46, 57, 51, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 76, 65, 77, 69, 51, 46, 57, 51,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, -1, -6, -110, -64,
    	-26, -97, -59, 3, -64, 0, 1, -92, 0, 0, 0, 0, 0, 0, 52, -128,
    	0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 76, 65, 77, 69, 51, 46,
    	57, 51, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, -1, -6,
    	-110, -64, -6, -34, -1, -125, -64, 0, 1, -92, 0, 0, 0, 0, 0, 0,
    	52, -128, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 76, 65, 77, 69,
    	51, 46, 57, 51, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	-1, -6, -110, -64, -6, -34, -1, -125, -64, 0, 1, -92, 0, 0, 0, 0,
    	0, 0, 52, -128, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 76, 65,
    	77, 69, 51, 46, 57, 51, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, -1, -6, -110, -64, -6, -34, -1, -125, -64, 0, 1, -92, 0, 0,
    	0, 0, 0, 0, 52, -128, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	76, 65, 77, 69, 51, 46, 57, 51, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, -1, -6, -110, -64, -6, -34, -1, -125, -64, 0, 1, -92,
    	0, 0, 0, 0, 0, 0, 52, -128, 0, 0, 0, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
    	85, 85, 85, 85, 85, 85
    };
    
    private static File installTemporaryTrack(final Context context) throws IOException {
        final File externalFilesDir = getExternalFilesDir(context);
        if (externalFilesDir == null) {
            return null;
        }
        final File temporaryTrack = new File(externalFilesDir, "temptrack.mp3");
        OutputStream out = null;
        try {
            out = new FileOutputStream(temporaryTrack);
            out.write(temptrack_mp3);
        } finally {
            out.close();
        }
        return temporaryTrack;
    }

    public static boolean mkdir(final Context context, final File file) throws IOException {
        if (file.exists()) {
            return file.isDirectory();
        }
        final File tmpFile = new File(file, ".MediaWriteTemp");
        final int albumId = getTemporaryAlbumId(context);
        if (albumId == 0) {
            throw new IOException("Failed to create temporary album id.");
        }
        final Uri albumUri = Uri.parse(String.format(Locale.US, ALBUM_ART_URI + "/%d", albumId));
        final ContentValues values = new ContentValues();
        values.put(MediaStore.MediaColumns.DATA, tmpFile.getAbsolutePath());
        final ContentResolver contentResolver = context.getContentResolver();
        if (contentResolver.update(albumUri, values, null, null) == 0) {
            values.put(MediaStore.Audio.AlbumColumns.ALBUM_ID, albumId);
            contentResolver.insert(Uri.parse(ALBUM_ART_URI), values);
        }
        try {
            final ParcelFileDescriptor fd = contentResolver.openFileDescriptor(albumUri, "r");
            fd.close();
        } finally {
            delete(context, tmpFile);
        }
        return file.exists();
    }

    public static boolean mkfile(final Context context, final File file) {
        final OutputStream outputStream = getOutputStream(context, file.getPath());
        if (outputStream == null) {
            return false;
        }
        try {
            outputStream.close();
            return true;
        } catch (final IOException e) {
        }
        return false;
    }

}


================================================
FILE: project/android/app/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in E:\developSoftware\Android\SDK/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Proguard Cocos2d-x for release
-keep public class org.cocos2dx.** { *; }
-dontwarn org.cocos2dx.**
-keep public class com.chukong.** { *; }
-dontwarn com.chukong.**
-keep public class com.huawei.android.** { *; }
-dontwarn com.huawei.android.**
-keep public class com.oppo.oiface.engine.** { *; }
-dontwarn com.oppo.oiface.engine.**

# Proguard Apache HTTP for release
-keep class org.apache.http.** { *; }
-dontwarn org.apache.http.**

# Proguard Android Webivew for release. uncomment if you are using a webview in cocos2d-x
#-keep public class android.net.http.SslError
#-keep public class android.webkit.WebViewClient

#-dontwarn android.webkit.WebView
#-dontwarn android.net.http.SslError
#-dontwarn android.webkit.WebViewClient

================================================
FILE: project/android/app/res/values/strings.xml
================================================
<resources>
    <string name="app_name">Kirikiroid2-Yuri</string>
</resources>


================================================
FILE: project/android/build.gradle
================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.

plugins {
    id 'com.android.application' version '7.4.2' apply false
    id 'com.android.library' version '7.4.2' apply false
}

allprojects {
    buildDir = "./../../../build_android"
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

================================================
FILE: project/android/gradle/wrapper/gradle-wrapper.properties
================================================
#Sat Mar 11 01:47:25 JST 2023
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME


================================================
FILE: project/android/gradle.properties
================================================
# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

# Android SDK version that will be used as the compile project
PROP_COMPILE_SDK_VERSION=29
 
# Android SDK version that will be used as the earliest version of android this application can run on
PROP_MIN_SDK_VERSION=22

# Android SDK version that will be used as the latest version of android this application has been tested on
PROP_TARGET_SDK_VERSION=29


# List of CPU Archtexture to build that application with
# Available architextures (armeabi-v7a | arm64-v8a | x86)
# To build for multiple architexture, use the `:` between them
# Example - PROP_APP_ABI=armeabi-v7a:arm64-v8a:x86
PROP_APP_ABI=arm64-v8a

# android native code build type
# none, native code will never be compiled.
# cmake, native code will be compiled by CMakeLists.txt
# ndk-build, native code will be compiled by Android.mk
PROP_BUILD_TYPE=cmake

# uncomment it and fill in sign information for release mode
#RELEASE_STORE_FILE=file path of keystore
#RELEASE_STORE_PASSWORD=password of keystore
#RELEASE_KEY_ALIAS=alias of key
#RELEASE_KEY_PASSWORD=password of key
android.useAndroidX=True

================================================
FILE: project/android/gradlew
================================================
#!/usr/bin/env bash

##############################################################################
##
##  Gradle start up script for UN*X
##
##############################################################################

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""

APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn ( ) {
    echo "$*"
}

die ( ) {
    echo
    echo "$*"
    echo
    exit 1
}

# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
  CYGWIN* )
    cygwin=true
    ;;
  Darwin* )
    darwin=true
    ;;
  MINGW* )
    msys=true
    ;;
esac

# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
        PRG="$link"
    else
        PRG=`dirname "$PRG"`"/$link"
    fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar

# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD="java"
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
    MAX_FD_LIMIT=`ulimit -H -n`
    if [ $? -eq 0 ] ; then
        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
            MAX_FD="$MAX_FD_LIMIT"
        fi
        ulimit -n $MAX_FD
        if [ $? -ne 0 ] ; then
            warn "Could not set maximum file descriptor limit: $MAX_FD"
        fi
    else
        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
    fi
fi

# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi

# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`

    # We build the pattern for arguments to be converted via cygpath
    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
    SEP=""
    for dir in $ROOTDIRSRAW ; do
        ROOTDIRS="$ROOTDIRS$SEP$dir"
        SEP="|"
    done
    OURCYGPATTERN="(^($ROOTDIRS))"
    # Add a user-defined pattern to the cygpath arguments
    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
    fi
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    i=0
    for arg in "$@" ; do
        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option

        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
        else
            eval `echo args$i`="\"$arg\""
        fi
        i=$((i+1))
    done
    case $i in
        (0) set -- ;;
        (1) set -- "$args0" ;;
        (2) set -- "$args0" "$args1" ;;
        (3) set -- "$args0" "$args1" "$args2" ;;
        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
    esac
fi

# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
    JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"

exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"


================================================
FILE: project/android/gradlew.bat
================================================
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
@rem Get command-line arguments, handling Windowz variants

if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*
goto execute

:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega


================================================
FILE: project/android/settings.gradle
================================================
pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

include ':cocos2dx'
project(':cocos2dx').projectDir = new File(settingsDir, '../../thirdparty/port/cocos2d-x/cocos/platform/android/libcocos2dx')
include ':krkr2yuri'
project(':krkr2yuri').projectDir = new File(settingsDir, 'app')


================================================
FILE: project/ui/.cocos-project.json
================================================
{
    "engine_type": "prebuilt", 
    "engine_version": "cocos2d-x-3.6", 
    "project_type": "cpp"
}

================================================
FILE: project/ui/Resources/res/locale/en_us.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Locale lang="en_us">
    <Item id="preference_title" text="Global Preference"/>
    <Item id="preference_title_individual" text="Individual Preference"/>
    <Item id="preference_output_log" text="Output Log"/>
    <Item id="preference_select_renderer" text="Select Renderer"/>
    <Item id="preference_opengl" text="OpenGL(Experimental)"/>
    <Item id="preference_software" text="Software"/>
    <Item id="preference_renderer_opt" text="Advanced Renderer Option"/>
    <Item id="preference_soft_renderer_opt" text="Soft Renderer Option"/>
    <Item id="preference_opengl_renderer_opt" text="OpenGL Renderer Option"/>
    <Item id="preference_multi_draw_thread" text="Draw Thread"/>
    <Item id="preference_draw_thread_auto" text="Auto"/>
    <Item id="preference_draw_thread_1" text="1"/>
    <Item id="preference_draw_thread_2" text="2"/>
    <Item id="preference_draw_thread_3" text="3"/>
    <Item id="preference_draw_thread_4" text="4"/>
    <Item id="preference_draw_thread_5" text="5"/>
    <Item id="preference_draw_thread_6" text="6"/>
    <Item id="preference_draw_thread_7" text="7"/>
    <Item id="preference_draw_thread_8" text="8"/>
    <Item id="preference_software_compress_tex" text="Texture Compression"/>
    <Item id="preference_soft_compress_tex_none" text="None"/>
    <Item id="preference_soft_compress_tex_halfline" text="Half Line"/>
    <Item id="preference_ogl_compress_tex" text="Texture Compression"/>
    <Item id="preference_ogl_compress_tex_none" text="None"/>
    <Item id="preference_ogl_compress_tex_half" text="Quarter Pixel"/>
    <Item id="preference_remember_last_path" text="Remember Last Path"/>
    <Item id="preference_keep_screen_alive" text="Keep Screen Alive"/>
    <Item id="preference_custom_option" text="Custom Option"/>
    <Item id="preference_opengl_dup_target" text="Copy Render Target Texture"/>
    <Item id="preference_ogl_accurate_render" text="Accurate Rendering"/>
    <Item id="preference_ogl_max_texsize" text="Max Texture Size"/>
    <Item id="preference_ogl_texsize_auto" text="Auto"/>
    <Item id="preference_ogl_texsize_1024" text="1024"/>
    <Item id="preference_ogl_texsize_2048" text="2048"/>
    <Item id="preference_ogl_texsize_4096" text="4096"/>
    <Item id="preference_ogl_texsize_8192" text="8192"/>
    <Item id="preference_ogl_texsize_16384" text="16384"/>
    <Item id="preference_mem_limit" text="Attempt to Limit Memory Usage"/>
    <Item id="preference_mem_unlimited" text="Unlimited"/>
    <Item id="preference_mem_high" text="High Memory(<300MB)"/>
    <Item id="preference_mem_medium" text="Medium Memory(<200MB)"/>
    <Item id="preference_mem_low" text="Low Memory(<100MB)"/>
    <Item id="preference_show_fps" text="Show FPS"/>
    <Item id="preference_fps_limit" text="FPS Limit"/>
    <Item id="preference_hide_loading_ad" text="Hide Ads while loading"/>
    <Item id="preference_rotate_screen_180" text="Rotate Game Screen"/>
    <Item id="preference_virtual_cursor_scale" text="Virtual Cursor Scale"/>
    <Item id="preference_menu_handler_opacity" text="Menu Handler Opacity"/>
    <Item id="preference_reset" text="Reset"/>
    <Item id="preference_hide_android_sys_btn" text="Hide System Bar"/>
    <Item id="preference_default_font" text="Default Font(Internal If Empty)"/>
    <Item id="preference_force_def_font" text="Force using default font"/>
    <Item id="ok" text="OK"/>
    <Item id="cancel" text="Cancel"/>
    <Item id="retry" text="Retry"/>
    <Item id="start" text="Start"/>
    <Item id="stop" text="Stop"/>
    <Item id="reactive" text="Reactive"/>
    <Item id="ensure_to_override_file" text="Please ensure to override:"/>
    <Item id="readonly_storage" text="Read-only external storage detected"/>
    <Item id="cannot_create_preference" text="Can not create individual preference file."/>
    <Item id="use_internal_path" text="Cannot access write permission for external storage, please copy/move data into the package paths listed below then try again:"/>
    <Item id="continue_run" text="Continue"/>
    <Item id="get_sdcard_permission" text="Fetch Permission(May Slow)"/>
    <Item id="crash_report" text="Crash Report"/>
    <Item id="crash_report_msg" text="Crash detected, send data (%d files) to help improving this app?"/>
    <Item id="menu_rotate" text="Rotate Screen"/>
    <Item id="menu_global_preference" text="Global Pref."/>
    <Item id="menu_new_local_pref" text="New Individual Pref."/>
    <Item id="menu_local_pref" text="Individual Pref."/>
    <Item id="menu_new_folder" text="New Folder"/>
    <Item id="menu_about" text="About"/>
    <Item id="menu_exit" text="Exit"/>
    <Item id="menu_help" text="View Help"/>
    <Item id="menu_archive_repack" text="Conv/Dec XP3"/>
    <Item id="menu_web_server" text="Web File Server"/>
    <Item id="about_content" text="Find patch here:&#10https://zeas2.github.io/Kirikiroid2_patch/patch&#10Report bugs here:&#10;https://github.com/zeas2/Kirikiroid2/issues"/>
    <Item id="about_content_i" text=""/>
    <Item id="sure_to_exit" text="Sure to exit?"/>
    <Item id="msgbox_yes" text="Yes"/>
    <Item id="msgbox_no" text="No"/>
    <Item id="msgbox_ok" text="OK"/>
    <Item id="msgbox_nerver_notice" text="Don't Notice Again"/>
    <Item id="use_last_path" text="Use last path:"/>
	
    <Item id="notice" text="Notice"/>
    <Item id="err_narrow_to_wide" text="Cannot convert given narrow string to wide string,&#10;Data could be corrupted or encrypted or wrong text encoding.&#10;Maybe you need xp3filter.tjs if data is encrypted,&#10;or use patch.tjs to specify correct encoding if text is not encoded in SHIFT-JIS"/>
	<Item id="err_no_memory" text="Insufficent Memory&#10;If this error occured frequently, you can try limit memory usage in preference."/>
	<Item id="err_occured" text="Error Occured"/>
	<Item id="err_read_error" text="Read Error"/>
	<Item id="err_not_xp3_archive" text="%1 is not valid XP3 archive. The data may be corrupted."/>
	<Item id="err_cannot_suggest_graph_ext" text="%1 Cannot suggest extension name of this graphic. The data may lost or there has error in script."/>
	<Item id="delete" text="Delete"/>
	<Item id="file_operate_menu_title" text="File Operation"/>
	<Item id="file_operate_menu_text" text="Please select opreation:"/>
	<Item id="ensure_to_delete_file" text="Please ensure to delete:"/>
	<Item id="ensure_item_count" text="%d items"/>
	<Item id="device_info" text="Device Info"/>
	<Item id="supported_opengl_extension" text="OpenGL Extensions(Only usable list):"/>
	<Item id="preference_opengl_extension_opt" text="OpenGL Extensions"/>
	<Item id="startup_patch_fail" text="Patch fail, please update patch.tjs"/>
	<Item id="browse_patch_lib" text="Patch Lib"/>
	<Item id="preference_opengl_extension_desc" text="May be usable OpenGL extension list here.&#10;Some features may cause wrong rendering result on some devices."/>
	<Item id="preference_android_fetch_sdcard_permission" text="Fetch external sd-card write permission"/>
	
	<Item id="filemgr_unselect" text="Cancel"/>
	<Item id="filemgr_browse" text="View"/>
	<Item id="filemgr_delete" text="Delete"/>
	<Item id="filemgr_copy" text="Copy"/>
	<Item id="filemgr_cut" text="Cut"/>
	<Item id="filemgr_paste" text="Paste to here"/>
	<Item id="filemgr_sendto" text="Send to..."/>
	<Item id="filemgr_unpack" text="Unpack"/>
	<Item id="filemgr_rename" text="Rename"/>
	<Item id="file_operate_failed" text="File operation fail:"/>
	<Item id="fail_to_open_archive" text="Fail to open archive:"/>
	
	<Item id="archive_repack_desc" text="Convert and dec the archive could speed up and reduce heat. Please ensure the free spaec is larger than the maximum archive size, otherwise the operation may fail."/>
	<Item id="archive_repack_merge_img" text="Merge mask image"/>
	<Item id="archive_repack_conv_etc2" text="Conv img to ETC2"/>
	<Item id="archive_repack_proc_title" text="Converting..."/>
	<Item id="archive_repack_no_xp3filter" text="No xp3filter found in current path. Continue ?"/>
	<Item id="archive_repack_no_xp3" text="No xp3 archvie found, stop."/>
</Locale>

================================================
FILE: project/ui/Resources/res/locale/ja_jp.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Locale lang="en_us">
    <Item id="preference_title" text="全体設定"/>
    <Item id="preference_title_individual" text="個別設定"/>
    <Item id="preference_output_log" text="ログを出力する"/>
    <Item id="preference_select_renderer" text="画面の描画方法"/>
    <Item id="preference_opengl" text="OpenGL(実験的)"/>
    <Item id="preference_software" text="ソフトウェア"/>
    <Item id="preference_renderer_opt" text="レンダラ詳細オプション"/>
    <Item id="preference_soft_renderer_opt" text="ソフトウェアレンダラ"/>
    <Item id="preference_opengl_renderer_opt" text="OpenGLレンダラ"/>
    <Item id="preference_multi_draw_thread" text="描画スレッド分割数"/>
    <Item id="preference_draw_thread_auto" text="自動"/>
    <Item id="preference_draw_thread_1" text="1"/>
    <Item id="preference_draw_thread_2" text="2"/>
    <Item id="preference_draw_thread_3" text="3"/>
    <Item id="preference_draw_thread_4" text="4"/>
    <Item id="preference_draw_thread_5" text="5"/>
    <Item id="preference_draw_thread_6" text="6"/>
    <Item id="preference_draw_thread_7" text="7"/>
    <Item id="preference_draw_thread_8" text="8"/>
    <Item id="preference_software_compress_tex" text="テクスチャ圧縮"/>
    <Item id="preference_soft_compress_tex_none" text="オリジナル"/>
    <Item id="preference_soft_compress_tex_halfline" text="半減"/>
    <Item id="preference_ogl_compress_tex" text="テクスチャ圧縮"/>
    <Item id="preference_ogl_compress_tex_none" text="オリジナル"/>
    <Item id="preference_ogl_compress_tex_half" text="半減"/>
    <Item id="preference_remember_last_path" text="最後に使用したパスを保存する"/>
    <Item id="preference_keep_screen_alive" text="画面がスリープに入らないようにする"/>
    <Item id="preference_custom_option" text="カスタムオプション"/>
    <Item id="preference_opengl_dup_target" text="ターゲットテクスチャをコピーする"/>
    <Item id="preference_ogl_accurate_render" text="正確なレンダリング"/>
    <Item id="preference_ogl_max_texsize" text="最大テクスチャサイズ"/>
    <Item id="preference_ogl_texsize_auto" text="自動"/>
    <Item id="preference_ogl_texsize_1024" text="1024"/>
    <Item id="preference_ogl_texsize_2048" text="2048"/>
    <Item id="preference_ogl_texsize_4096" text="4096"/>
    <Item id="preference_ogl_texsize_8192" text="8192"/>
    <Item id="preference_ogl_texsize_16384" text="16384"/>
    <Item id="preference_mem_limit" text="メモリ使用量を制限(ゲームに応じて)"/>
    <Item id="preference_mem_unlimited" text="制限なし"/>
    <Item id="preference_mem_high" text="多く(<300MB)"/>
    <Item id="preference_mem_medium" text="中(<200MB)"/>
    <Item id="preference_mem_low" text="少なく(<100MB)"/>
    <Item id="preference_show_fps" text="FPSを表示する"/>
    <Item id="preference_fps_limit" text="FPS制限"/>
    <Item id="preference_hide_loading_ad" text="ロード時に広告を表示しない"/>
    <Item id="preference_rotate_screen_180" text="画面反転"/>
    <Item id="preference_virtual_cursor_scale" text="仮想マウスの拡大縮小"/>
    <Item id="preference_menu_handler_opacity" text="メニューハンドラの不透明度"/>
    <Item id="preference_reset" text="RESET"/>
    <Item id="preference_hide_android_sys_btn" text="ナビバーを隠す(再起動必要)"/>
    <Item id="preference_default_font" text="デフォルトフォント(空白の場合は組み込みのを使用する)"/>
    <Item id="preference_force_def_font" text="強制的にデフォルトフォントを使用する"/>
    <Item id="ok" text="OK"/>
    <Item id="cancel" text="キャンセル"/>
    <Item id="retry" text="再試行"/>
    <Item id="start" text="スタート"/>
    <Item id="stop" text="Stop"/>
    <Item id="reactive" text="再認証"/>
    <Item id="ensure_to_override_file" text="上書きしますか:"/>
    <Item id="readonly_storage" text="読み取り専用ストレージを検出します"/>
    <Item id="cannot_create_preference" text="個別設定を作成することが出来ません"/>
    <Item id="use_internal_path" text="外部ストレージに書き込むことはできません。ファイルを次のパスに移動またはコピーして、再度実行してみてください:"/>
    <Item id="crash_report" text="クラッシュ報告"/>
    <Item id="crash_report_msg" text="このアプリを改善するためにクラッシュデータ(%dファイル)をアップロードしますか?"/>
    <Item id="menu_rotate" text="画面回転"/>
    <Item id="menu_global_preference" text="全体設定"/>
    <Item id="menu_new_local_pref" text="新規設定を作成"/>
    <Item id="menu_local_pref" text="個別設定"/>
    <Item id="menu_new_folder" text="新規フォルダ"/>
    <Item id="menu_about" text="バージョン情報"/>
    <Item id="menu_exit" text="終了"/>
    <Item id="menu_help" text="ヘルプ"/>
    <Item id="menu_archive_repack" text="変換/復号化XP3"/>
    <Item id="menu_web_server" text="Webサーバー"/>
    <Item id="about_content" text="Find patch here:&#10https://zeas2.github.io/Kirikiroid2_patch/patch&#10Report bugs here:&#10;https://github.com/zeas2/Kirikiroid2/issues"/>
    <Item id="about_content_i" text=""/>
    <Item id="sure_to_exit" text="終了しますか?"/>
    <Item id="msgbox_yes" text="はい"/>
    <Item id="msgbox_no" text="いいえ"/>
    <Item id="msgbox_ok" text="OK"/>
    <Item id="use_last_path" text="前回のパスを開きますか"/>
	
    <Item id="notice" text="お知らせ"/>
    <Item id="err_narrow_to_wide" text="ANSI 文字列を UNICODE 文字列に変換できません。&#10;現在のコードページで解釈できない文字が含まれてます。patch.tjsで正しいコードページを指定してください。&#10;正しいデータが指定されているかを確認してください。データが破損している可能性もあります。データが暗号化されている場合はxp3filter.tjsが必要かもしれない。"/>
	<Item id="err_no_memory" text="メモリが足りません(もしこの問題がよく発生する場合は、オプションの「メモリ使用量を制限」を使用してみる)"/>
	<Item id="err_occured" text="エラーが発生しました"/>
	<Item id="err_read_error" text="読み込みエラーが発生しました。ファイルが破損している可能性や、デバイスからの読み込みに失敗した可能性があります"/>
	<Item id="err_not_xp3_archive" text="%1 は正しいXP3アーカイブではありません。ファイルが破損している可能性があります。"/>
	<Item id="err_cannot_suggest_graph_ext" text="%1 について適切な拡張子を持ったファイルを見つけられませんでした"/>
	<Item id="delete" text="削除"/>
	<Item id="file_operate_menu_title" text="ファイル管理"/>
	<Item id="file_operate_menu_text" text="操作を選択してください"/>
	<Item id="ensure_to_delete_file" text="削除しますか:"/>
	<Item id="ensure_item_count" text="%d アイテム"/>
	<Item id="device_info" text="デバイス情報"/>
	<Item id="supported_opengl_extension" text="OpenGL拡張(利用可能なもの):"/>
	<Item id="preference_opengl_extension_opt" text="OpenGL拡張"/>
	<Item id="startup_patch_fail" text="パッチ失敗しました。patch.tjsを更新してください。"/>
	<Item id="browse_patch_lib" text="パッチ庫"/>
	<Item id="preference_opengl_extension_desc" text="レンダリング効率を改善するために利用することができるOpenGL拡張のリストです。&#10;いくつかの機能がオンになったら、デバイスに応じて、レンダリングエラーが発生することがあります。"/>
	<Item id="preference_android_fetch_sdcard_permission" text="外部記憶の書き込みの権限を取得する"/>
	
	<Item id="filemgr_unselect" text="キャンセル"/>
	<Item id="filemgr_browse" text="ビュー"/>
	<Item id="filemgr_delete" text="削除"/>
	<Item id="filemgr_copy" text="コピー"/>
	<Item id="filemgr_cut" text="カット"/>
	<Item id="filemgr_paste" text="ここに貼り付ける"/>
	<Item id="filemgr_sendto" text="送信する"/>
	<Item id="filemgr_unpack" text="解凍する"/>
	<Item id="filemgr_rename" text="名前を変更する"/>
	<Item id="file_operate_failed" text="ファイル操作が失敗しました:"/>
	<Item id="fail_to_open_archive" text="アーカイブ操作が失敗しました:"/>
	
	<Item id="archive_repack_desc" text="Convert and dec the archive could speed up and reduce heat. Please ensure the free spaec is larger than the maximum archive size, otherwise the operation may fail."/>
	<Item id="archive_repack_merge_img" text="Merge mask image"/>
	<Item id="archive_repack_conv_etc2" text="Conv image to ETC2"/>
	<Item id="archive_repack_proc_title" text="Converting..."/>
	<Item id="archive_repack_no_xp3filter" text="No xp3filter found in current path. Continue ?"/>
	<Item id="archive_repack_no_xp3" text="No xp3 archvie found, stop."/>
</Locale>

================================================
FILE: project/ui/Resources/res/locale/zh_cn.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Locale lang="en_us">
    <Item id="preference_title" text="全局设置"/>
    <Item id="preference_title_individual" text="独立设置"/>
    <Item id="preference_output_log" text="打印日志"/>
    <Item id="preference_select_renderer" text="图形渲染器"/>
    <Item id="preference_opengl" text="OpenGL(试验性)"/>
    <Item id="preference_software" text="软件渲染器"/>
    <Item id="preference_renderer_opt" text="渲染器高级选项"/>
    <Item id="preference_soft_renderer_opt" text="软件渲染器选项"/>
    <Item id="preference_opengl_renderer_opt" text="OpenGL渲染器选项"/>
    <Item id="preference_multi_draw_thread" text="渲染线程数"/>
    <Item id="preference_draw_thread_auto" text="自动"/>
    <Item id="preference_draw_thread_1" text="1"/>
    <Item id="preference_draw_thread_2" text="2"/>
    <Item id="preference_draw_thread_3" text="3"/>
    <Item id="preference_draw_thread_4" text="4"/>
    <Item id="preference_draw_thread_5" text="5"/>
    <Item id="preference_draw_thread_6" text="6"/>
    <Item id="preference_draw_thread_7" text="7"/>
    <Item id="preference_draw_thread_8" text="8"/>
    <Item id="preference_software_compress_tex" text="纹理压缩"/>
    <Item id="preference_soft_compress_tex_none" text="无压缩"/>
    <Item id="preference_soft_compress_tex_halfline" text="半线压缩"/>
    <Item id="preference_ogl_compress_tex" text="纹理压缩"/>
    <Item id="preference_ogl_compress_tex_none" text="无压缩"/>
    <Item id="preference_ogl_compress_tex_half" text="质量减半"/>
    <Item id="preference_remember_last_path" text="记住最后使用的路径"/>
    <Item id="preference_keep_screen_alive" text="保持屏幕常亮"/>
    <Item id="preference_custom_option" text="自定义选项"/>
    <Item id="preference_opengl_dup_target" text="复制目标纹理"/>
    <Item id="preference_ogl_accurate_render" text="精确渲染模式"/>
    <Item id="preference_ogl_max_texsize" text="最大纹理尺寸"/>
    <Item id="preference_ogl_texsize_auto" text="自动"/>
    <Item id="preference_ogl_texsize_1024" text="1024"/>
    <Item id="preference_ogl_texsize_2048" text="2048"/>
    <Item id="preference_ogl_texsize_4096" text="4096"/>
    <Item id="preference_ogl_texsize_8192" text="8192"/>
    <Item id="preference_ogl_texsize_16384" text="16384"/>
    <Item id="preference_mem_limit" text="限制内存用量(视具体游戏)"/>
    <Item id="preference_mem_unlimited" text="不限"/>
    <Item id="preference_mem_high" text="高占用(<300MB)"/>
    <Item id="preference_mem_medium" text="中等占用(<200MB)"/>
    <Item id="preference_mem_low" text="低占用(<100MB)"/>
    <Item id="preference_show_fps" text="显示 FPS"/>
    <Item id="preference_fps_limit" text="限制 FPS"/>
    <Item id="preference_hide_loading_ad" text="加载时不显示广告"/>
    <Item id="preference_rotate_screen_180" text="反转游戏屏幕"/>
    <Item id="preference_virtual_cursor_scale" text="虚拟鼠标缩放比"/>
    <Item id="preference_menu_handler_opacity" text="菜单按钮不透明度"/>
    <Item id="preference_reset" text="重置"/>
    <Item id="preference_hide_android_sys_btn" text="隐藏系统键(需重启软件)"/>
    <Item id="preference_default_font" text="默认字体(留空使用内置字体)"/>
    <Item id="preference_force_def_font" text="强制使用默认字体"/>
    <Item id="ok" text="OK"/>
    <Item id="cancel" text="取消"/>
    <Item id="retry" text="重试"/>
    <Item id="start" text="开始"/>
    <Item id="stop" text="停止"/>
    <Item id="reactive" text="重新激活"/>
    <Item id="ensure_to_override_file" text="确认要覆盖吗:"/>
    <Item id="readonly_storage" text="发现只读的外部存储器"/>
    <Item id="cannot_create_preference" text="无法创建配置"/>
    <Item id="use_internal_path" text="外部存储目录无法安全写入文件,请移动或复制文件到些下列位置之后再尝试启动:"/>
    <Item id="continue_run" text="仍然继续"/>
    <Item id="get_sdcard_permission" text="获取写入权限"/>
    <Item id="crash_report" text="崩溃报告"/>
    <Item id="crash_report_msg" text="发现崩溃数据,发送数据(%d个文件)到服务器以助我们改进这个应用?"/>
    <Item id="menu_rotate" text="旋转屏幕"/>
    <Item id="menu_global_preference" text="全局设置"/>
    <Item id="menu_new_local_pref" text="新建独立设置"/>
    <Item id="menu_local_pref" text="独立设置"/>
    <Item id="menu_new_folder" text="新建文件夹"/>
    <Item id="menu_about" text="关于"/>
    <Item id="menu_exit" text="退出"/>
    <Item id="menu_help" text="查看帮助"/>
    <Item id="menu_archive_repack" text="转换/解密XP3封包"/>
    <Item id="menu_web_server" text="Web文件服务器"/>
    <Item id="about_content" text="可以在github补丁页面寻找补丁:&#10;https://zeas2.github.io/Kirikiroid2_patch/patch&#10;如遇到问题,请反馈到到项目页面:&#10;https://github.com/zeas2/Kirikiroid2/issues&#10;或者到百度贴吧寻找解决方案:&#10;百度Kirikiroid2吧"/>
    <Item id="about_content_i" text=""/>
    <Item id="sure_to_exit" text="确定退出吗?"/>
    <Item id="msgbox_yes" text="是"/>
    <Item id="msgbox_no" text="否"/>
    <Item id="msgbox_ok" text="确定"/>
    <Item id="msgbox_nerver_notice" text="不再提示"/>
    <Item id="use_last_path" text="使用最近启动的路径:"/>
	
    <Item id="notice" text="提示"/>
    <Item id="err_narrow_to_wide" text="无法转换字节字符为宽字符,可能数据被加密或损坏,也可能是使用了错误的文本编码。&#10;如果数据被加密,您可能需要xp3filter.tjs&#10;如果文本不是以SHIFT_JIS编码,需要用patch.tjs指定正确的编码格式。"/>
	<Item id="err_no_memory" text="内存不足(若经常出现此问题,可以试着在选项里限制内存用量)"/>
	<Item id="err_occured" text="发生错误"/>
	<Item id="err_read_error" text="读取错误,数据或已损坏"/>
	<Item id="err_not_xp3_archive" text="%1 不是有效的XP3包。数据或已损坏。"/>
	<Item id="err_cannot_suggest_graph_ext" text="%1 无法加载此图片,可能是数据不完整或脚本错误"/>
	<Item id="delete" text="删除"/>
	<Item id="file_operate_menu_title" text="文件管理"/>
	<Item id="file_operate_menu_text" text="请选择操作"/>
	<Item id="ensure_to_delete_file" text="确定要删除吗:"/>
	<Item id="ensure_item_count" text="%d 个项目"/>
	<Item id="device_info" text="设备信息"/>
	<Item id="supported_opengl_extension" text="OpenGL扩展特性(仅列出当前可用的扩展):"/>
	<Item id="preference_opengl_extension_opt" text="OpenGL扩展"/>
	<Item id="startup_patch_fail" text="补丁失败,请更新patch.tjs"/>
	<Item id="browse_patch_lib" text="浏览补丁库"/>
	<Item id="preference_opengl_extension_desc" text="这里是可能利用的OpenGL扩展列表,用于提高渲染的效率。&#10;视设备的不同,部分特性开启后可能会出现渲染错误。"/>
	<Item id="preference_android_fetch_sdcard_permission" text="获取外部存储卡写入权限"/>
	
	<Item id="filemgr_unselect" text="取消"/>
	<Item id="filemgr_browse" text="浏览"/>
	<Item id="filemgr_delete" text="删除"/>
	<Item id="filemgr_copy" text="复制"/>
	<Item id="filemgr_cut" text="剪切"/>
	<Item id="filemgr_paste" text="粘贴到这里"/>
	<Item id="filemgr_sendto" text="发送到"/>
	<Item id="filemgr_unpack" text="解压缩"/>
	<Item id="filemgr_rename" text="重命名"/>
	<Item id="file_operate_failed" text="文件操作失败:"/>
	<Item id="fail_to_open_archive" text="无法作为压缩包打开:"/>
	
	<Item id="archive_repack_desc" text="解密并转换封包可以加快运行的速度并减少发热量。请保证剩余的空间大于最大的封包文件大小,否则转换操作可能会失败。"/>
	<Item id="archive_repack_merge_img" text="合并遮罩图片"/>
	<Item id="archive_repack_conv_etc2" text="转换图片格式为ETC2"/>
	<Item id="archive_repack_proc_title" text="转换进行中..."/>
	<Item id="archive_repack_no_xp3filter" text="当前目录未发现xp3filter,可能不需要进行转换。仍然继续?"/>
	<Item id="archive_repack_no_xp3" text="当前目录未发现xp3封包,操作中止。"/>
</Locale>

================================================
FILE: project/ui/Resources/res/locale/zh_tw.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Locale lang="en_us">
    <Item id="preference_title" text="全局设置"/>
    <Item id="preference_title_individual" text="独立设置"/>
    <Item id="preference_output_log" text="打印日志"/>
    <Item id="preference_select_renderer" text="图形渲染器"/>
    <Item id="preference_opengl" text="OpenGL(试验性)"/>
    <Item id="preference_software" text="软件渲染器"/>
    <Item id="preference_renderer_opt" text="渲染器高级选项"/>
    <Item id="preference_soft_renderer_opt" text="软件渲染器选项"/>
    <Item id="preference_opengl_renderer_opt" text="OpenGL渲染器选项"/>
    <Item id="preference_multi_draw_thread" text="渲染线程数"/>
    <Item id="preference_draw_thread_auto" text="自动"/>
    <Item id="preference_draw_thread_1" text="1"/>
    <Item id="preference_draw_thread_2" text="2"/>
    <Item id="preference_draw_thread_3" text="3"/>
    <Item id="preference_draw_thread_4" text="4"/>
    <Item id="preference_draw_thread_5" text="5"/>
    <Item id="preference_draw_thread_6" text="6"/>
    <Item id="preference_draw_thread_7" text="7"/>
    <Item id="preference_draw_thread_8" text="8"/>
    <Item id="preference_software_compress_tex" text="纹理压缩"/>
    <Item id="preference_soft_compress_tex_none" text="无压缩"/>
    <Item id="preference_soft_compress_tex_halfline" text="半线压缩"/>
    <Item id="preference_ogl_compress_tex" text="纹理压缩"/>
    <Item id="preference_ogl_compress_tex_none" text="无压缩"/>
    <Item id="preference_ogl_compress_tex_half" text="质量减半"/>
    <Item id="preference_remember_last_path" text="记住最后使用的路径"/>
    <Item id="preference_keep_screen_alive" text="保持屏幕常亮"/>
    <Item id="preference_custom_option" text="自定义选项"/>
    <Item id="preference_opengl_dup_target" text="复制目标纹理"/>
    <Item id="preference_ogl_accurate_render" text="精确渲染模式"/>
    <Item id="preference_ogl_max_texsize" text="最大纹理尺寸"/>
    <Item id="preference_ogl_texsize_auto" text="自动"/>
    <Item id="preference_ogl_texsize_1024" text="1024"/>
    <Item id="preference_ogl_texsize_2048" text="2048"/>
    <Item id="preference_ogl_texsize_4096" text="4096"/>
    <Item id="preference_ogl_texsize_8192" text="8192"/>
    <Item id="preference_ogl_texsize_16384" text="16384"/>
    <Item id="preference_mem_limit" text="限制内存用量(视具体游戏)"/>
    <Item id="preference_mem_unlimited" text="不限"/>
    <Item id="preference_mem_high" text="高占用(<300MB)"/>
    <Item id="preference_mem_medium" text="中等占用(<200MB)"/>
    <Item id="preference_mem_low" text="低占用(<100MB)"/>
    <Item id="preference_show_fps" text="显示 FPS"/>
    <Item id="preference_fps_limit" text="限制 FPS"/>
    <Item id="preference_hide_loading_ad" text="加载时不显示广告"/>
    <Item id="preference_rotate_screen_180" text="反转游戏屏幕"/>
    <Item id="preference_virtual_cursor_scale" text="虚拟鼠标缩放比"/>
    <Item id="preference_menu_handler_opacity" text="菜单按钮不透明度"/>
    <Item id="preference_reset" text="重置"/>
    <Item id="preference_hide_android_sys_btn" text="隐藏系统键(需重启软件)"/>
    <Item id="preference_default_font" text="默认字体(留空使用内置字体)"/>
    <Item id="preference_force_def_font" text="强制使用默认字体"/>
    <Item id="ok" text="OK"/>
    <Item id="cancel" text="取消"/>
    <Item id="retry" text="重试"/>
    <Item id="start" text="开始"/>
    <Item id="stop" text="停止"/>
    <Item id="reactive" text="重新激活"/>
    <Item id="ensure_to_override_file" text="确认要覆盖吗:"/>
    <Item id="readonly_storage" text="发现只读的外部存储器"/>
    <Item id="cannot_create_preference" text="无法创建配置"/>
    <Item id="use_internal_path" text="外部存储目录无法安全写入文件,请移动或复制文件到些下列位置之后再尝试启动:"/>
    <Item id="continue_run" text="仍然继续"/>
    <Item id="get_sdcard_permission" text="获取写入权限"/>
    <Item id="crash_report" text="崩溃报告"/>
    <Item id="crash_report_msg" text="发现崩溃数据,发送数据(%d个文件)到服务器以助我们改进这个应用?"/>
    <Item id="menu_rotate" text="旋转屏幕"/>
    <Item id="menu_global_preference" text="全局设置"/>
    <Item id="menu_new_local_pref" text="新建独立设置"/>
    <Item id="menu_local_pref" text="独立设置"/>
    <Item id="menu_new_folder" text="新建文件夹"/>
    <Item id="menu_about" text="关于"/>
    <Item id="menu_exit" text="退出"/>
    <Item id="menu_help" text="查看幫助"/>
    <Item id="menu_archive_repack" text="转换/解密XP3封包"/>
    <Item id="menu_web_server" text="Web文件服务器"/>
    <Item id="about_content" text="可以在github补丁页面寻找补丁:&#10;https://zeas2.github.io/Kirikiroid2_patch/patch&#10;如遇到问题,请反馈到到项目页面:&#10;https://github.com/zeas2/Kirikiroid2/issues&#10;或者到百度贴吧寻找解决方案:&#10;百度Kirikiroid2吧"/>
    <Item id="about_content_i" text=""/>
    <Item id="sure_to_exit" text="确定退出吗?"/>
    <Item id="msgbox_yes" text="是"/>
    <Item id="msgbox_no" text="否"/>
    <Item id="msgbox_ok" text="确定"/>
    <Item id="msgbox_nerver_notice" text="不再提示"/>
    <Item id="use_last_path" text="使用最近启动的路径:"/>
	
    <Item id="notice" text="提示"/>
    <Item id="err_narrow_to_wide" text="无法转换字节字符为宽字符,可能数据被加密或损坏,也可能是使用了错误的文本编码。&#10;如果数据被加密,您可能需要xp3filter.tjs&#10;如果文本不是以SHIFT_JIS编码,需要用patch.tjs指定正确的编码格式。"/>
	<Item id="err_no_memory" text="内存不足(若经常出现此问题,可以试着在选项里限制内存用量)"/>
	<Item id="err_occured" text="发生错误"/>
	<Item id="err_read_error" text="读取错误,数据或已损坏"/>
	<Item id="err_not_xp3_archive" text="%1 不是有效的XP3包。数据或已损坏。"/>
	<Item id="err_cannot_suggest_graph_ext" text="%1 无法加载此图片,可能是数据不完整或脚本错误"/>
	<Item id="delete" text="删除"/>
	<Item id="file_operate_menu_title" text="文件管理"/>
	<Item id="file_operate_menu_text" text="请选择操作"/>
	<Item id="ensure_to_delete_file" text="确定要删除吗:"/>
	<Item id="ensure_item_count" text="%d 个项目"/>
	<Item id="device_info" text="设备信息"/>
	<Item id="supported_opengl_extension" text="OpenGL扩展特性(仅列出当前可用的扩展):"/>
	<Item id="preference_opengl_extension_opt" text="OpenGL扩展"/>
	<Item id="startup_patch_fail" text="补丁失败,请更新patch.tjs"/>
	<Item id="browse_patch_lib" text="浏览补丁库"/>
	<Item id="preference_opengl_extension_desc" text="这里是可能利用的OpenGL扩展列表,用于提高渲染的效率。&#10;视设备的不同,部分特性开启后可能会出现渲染错误。"/>
	<Item id="preference_android_fetch_sdcard_permission" text="获取外部存储卡写入权限"/>
	
	<Item id="filemgr_unselect" text="取消"/>
	<Item id="filemgr_browse" text="浏览"/>
	<Item id="filemgr_delete" text="删除"/>
	<Item id="filemgr_copy" text="复制"/>
	<Item id="filemgr_cut" text="剪切"/>
	<Item id="filemgr_paste" text="粘贴到这里"/>
	<Item id="filemgr_sendto" text="发送到"/>
	<Item id="filemgr_unpack" text="解压缩"/>
	<Item id="filemgr_rename" text="重命名"/>
	<Item id="file_operate_failed" text="文件操作失败:"/>
	<Item id="fail_to_open_archive" text="无法作为压缩包打开:"/>
	
	<Item id="archive_repack_desc" text="解密并转换封包可以加快运行的速度并减少发热量。请保证剩余的空间大于最大的封包文件大小,否则转换操作可能会失败。"/>
	<Item id="archive_repack_merge_img" text="合并遮罩图片"/>
	<Item id="archive_repack_conv_etc2" text="转换图片格式为ETC2"/>
	<Item id="archive_repack_proc_title" text="转换进行中..."/>
	<Item id="archive_repack_no_xp3filter" text="当前目录未发现xp3filter,可能不需要进行转换。仍然继续?"/>
	<Item id="archive_repack_no_xp3" text="当前目录未发现xp3封包,操作中止。"/>
</Locale>

================================================
FILE: project/ui/cocosstudio/ui/BottomBar.csd
================================================
<GameFile>
  <PropertyGroup Name="BottomBar" Type="Layer" ID="d6e3d7ad-9136-4e50-9628-78faf448d52c" Version="3.10.0.0" />
  <Content ctype="GameProjectContent">
    <Content>
      <Animation Duration="0" Speed="1.0000" />
      <ObjectData Name="Layer" Tag="47" ctype="GameLayerObjectData">
        <Size X="720.0000" Y="96.0000" />
        <Children>
          <AbstractNodeData Name="panel" ActionTag="-1964975631" Tag="52" IconVisible="False" PositionPercentYEnabled="True" HorizontalEdge="BothEdge" TouchEnable="True" StretchWidthEnable="True" StretchHeightEnable="True" ClipAble="False" ComboBoxIndex="1" ColorAngle="90.0000" ScrollDirectionType="0" ItemMargin="8" VerticalType="Align_VerticalCenter" ctype="ListViewObjectData">
            <Size X="720.0000" Y="96.0000" />
            <AnchorPoint ScaleX="0.5000" ScaleY="0.5000" />
            <Position X="360.0000" Y="48.0000" />
            <Scale ScaleX="1.0000" ScaleY="1.0000" />
            <CColor A="255" R="255" G="255" B="255" />
            <PrePosition X="0.5000" Y="0.5000" />
            <PreSize X="1.0000" Y="1.0000" />
            <SingleColor A="255" R="42" G="42" B="42" />
            <FirstColor A="255" R="150" G="150" B="255" />
            <EndColor A="255" R="255" G="255" B="255" />
            <ColorVector ScaleY="1.0000" />
          </AbstractNodeData>
        </Children>
      </ObjectData>
    </Content>
  </Content>
</GameFile>

================================================
FILE: project/ui/cocosstudio/ui/BottomBarTextInput.csd
================================================
<GameFile>
  <PropertyGroup Name="BottomBarTextInput" Type="Layer" ID="47c22677-e81d-45f8-908b-834ed07ae23b" Version="3.10.0.0" />
  <Content ctype="GameProjectContent">
    <Content>
      <Animation Duration="0" Speed="1.0000" />
      <ObjectData Name="Layer" Tag="38" ctype="GameLayerObjectData">
        <Size X="720.0000" Y="340.0000" />
        <Children>
          <AbstractNodeData Name="Panel_4" ActionTag="-1868766583" Tag="47" IconVisible="False" PercentWidthEnable="True" PercentHeightEnable="True" PercentWidthEnabled="True" PercentHeightEnabled="True" TouchEnable="True" ClipAble="False" ComboBoxIndex="1" ColorAngle="90.0000" Scale9Width="1" Scale9Height="1" ctype="PanelObjectData">
            <Size X="720.0000" Y="340.0000" />
            <Children>
              <AbstractNodeData Name="Panel_14_9" ActionTag="-1137104828" Tag="50" IconVisible="False" HorizontalEdge="BothEdge" VerticalEdge="BothEdge" LeftMargin="10.0000" RightMargin="10.0000" TopMargin="10.0000" BottomMargin="90.0000" TouchEnable="True" StretchWidthEnable="True" StretchHeightEnable="True" ClipAble="False" ComboBoxIndex="1" ColorAngle="90.0000" Scale9Width="1" Scale9Height="1" ctype="PanelObjectData">
                <Size X="700.0000" Y="240.0000" />
                <Children>
                  <AbstractNodeData Name="input" ActionTag="-486188303" Tag="51" IconVisible="False" HorizontalEdge="BothEdge" VerticalEdge="BothEdge" TouchEnable="True" StretchWidthEnable="True" StretchHeightEnable="True" FontSize="72" IsCustomSize="True" LabelText="" PlaceHolderText="Touch to input" MaxLengthText="10" ctype="TextFieldObjectData">
                    <Size X="700.0000" Y="240.0000" />
                    <AnchorPoint ScaleX="0.5000" ScaleY="0.5000" />
                    <Position X="350.0000" Y="120.0000" />
                    <Scale ScaleX="1.0000" ScaleY="1.0000" />
                    <CColor A="255" R="0" G="0" B="0" />
                    <PrePosition X="0.5000" Y="0.5000" />
                    <PreSize X="1.0000" Y="1.0000" />
                  </AbstractNodeData>
                </Children>
                <AnchorPoint />
                <Position X="10.0000" Y="90.0000" />
                <Scale ScaleX="1.0000" ScaleY="1.0000" />
                <CColor A="255" R="255" G="255" B="255" />
                <PrePosition X="0.0139" Y="0.3750" />
                <PreSize X="1.0000" Y="0.4167" />
                <SingleColor A="255" R="199" G="199" B="199" />
                <FirstColor A="255" R="150" G="200" B="255" />
                <EndColor A="255" R="255" G="255" B="255" />
                <ColorVector ScaleY="1.0000" />
              </AbstractNodeData>
              <AbstractNodeData Name="cancel" ActionTag="-124580242" Tag="61" IconVisible="False" HorizontalEdge="LeftEdge" VerticalEdge="BottomEdge" LeftMargin="20.0000" RightMargin="440.0000" TopMargin="160.0000" BottomMargin="10.0000" TouchEnable="True" FontSize="72" ButtonText="Cancel" Scale9Enable="True" Scale9Width="1" Scale9Height="1" ShadowOffsetX="2.0000" ShadowOffsetY="-2.0000" ctype="ButtonObjectData">
                <Size X="260.0000" Y="70.0000" />
                <AnchorPoint ScaleY="0.5000" />
                <Position X="20.0000" Y="45.0000" />
                <Scale ScaleX="1.0000" ScaleY="1.0000" />
                <CColor A="255" R="255" G="255" B="255" />
                <PrePosition X="0.0278" Y="0.1875" />
                <PreSize X="0.3611" Y="0.2917" />
                <TextColor A="255" R="0" G="0" B="0" />
                <DisabledFileData Type="Normal" Path="img/gray.png" Plist="" />
                <PressedFileData Type="Normal" Path="img/white.png" Plist="" />
                <NormalFileData Type="Normal" Path="img/gray.png" Plist="" />
                <OutlineColor A="255" R="255" G="0" B="0" />
                <ShadowColor A="255" R="110" G="110" B="110" />
              </AbstractNodeData>
              <AbstractNodeData Name="ok" ActionTag="273088593" Tag="62" IconVisible="False" HorizontalEdge="RightEdge" VerticalEdge="BottomEdge" LeftMargin="440.0000" RightMargin="20.0000" TopMargin="160.0000" BottomMargin="10.0000" TouchEnable="True" FontSize="72" ButtonText="OK" Scale9Enable="True" Scale9Width="1" Scale9Height="1" ShadowOffsetX="2.0000" ShadowOffsetY="-2.0000" ctype="ButtonObjectData">
                <Size X="260.0000" Y="70.0000" />
                <AnchorPoint ScaleX="1.0000" ScaleY="0.5000" />
                <Position X="700.0000" Y="45.0000" />
                <Scale ScaleX="1.0000" ScaleY="1.0000" />
                <CColor A="255" R="255" G="255" B="255" />
                <PrePosition X="0.9722" Y="0.1875" />
                <PreSize X="0.3611" Y="0.2917" />
                <TextColor A="255" R="0" G="0" B="0" />
                <DisabledFileData Type="Normal" Path="img/gray.png" Plist="" />
                <PressedFileData Type="Normal" Path="img/white.png" Plist="" />
                <NormalFileData Type="Normal" Path="img/gray.png" Plist="" />
                <OutlineColor A="255" R="255" G="0" B="0" />
                <ShadowColor A="255" R="110" G="110" B="110" />
              </AbstractNodeData>
            </Children>
            <AnchorPoint />
            <Position />
            <Scale ScaleX="1.0000" ScaleY="1.0000" />
            <CColor A="255" R="255" G="255" B="255" />
            <PrePosition />
            <PreSize X="1.0000" Y="1.0000" />
            <SingleColor A="255" R="42" G="42" B="42" />
            <FirstColor A="255" R="150" G="200" B="255" />
            <EndColor A="255" R="255" G="255" B="255" />
            <ColorVector ScaleY="1.0000" />
          </AbstractNodeData>
        </Children>
      </ObjectData>
    </Content>
  </Content>
</GameFile>

================================================
FILE: project/ui/cocosstudio/ui/CheckListDialog.csd
================================================
<GameFile>
  <PropertyGroup Name="CheckListDialog" Type="Layer" ID="cd4e123b-aa28-45db-a853-9eb0a0b833ce" Version="3.10.0.0" />
  <Content ctype="GameProjectContent">
    <Content>
      <Animation Duration="0" Speed="1.0000" />
      <ObjectData Name="Layer" Tag="192" ctype="GameLayerObjectData">
        <Size X="1280.0000" Y="720.0000" />
        <Children>
          <AbstractNodeData Name="Panel_20" ActionTag="-1299952620" Tag="114" IconVisible="False" PercentWidthEnable="True" PercentHeightEnable="True" PercentWidthEnabled="True" PercentHeightEnabled="True" TouchEnable="True" ClipAble="False" BackColorAlpha="38" ComboBoxIndex="1" ColorAngle="90.0000" ctype="PanelObjectData">
            <Size X="1280.0000" Y="720.0000" />
            <AnchorPoint />
            <Position />
            <Scale ScaleX="1.0000" ScaleY="1.0000" />
            <CColor A="255" R="255" G="255" B="255" />
            <PrePosition />
            <PreSize X="1.0000" Y="1.0000" />
            <SingleColor A="255" R="0" G="0" B="0" />
            <FirstColor A="255" R="150" G="200" B="255" />
            <EndColor A="255" R="255" G="255" B="255" />
            <ColorVector ScaleY="1.0000" />
          </AbstractNodeData>
          <AbstractNodeData Name="Panel_1" ActionTag="101332157" Tag="194" IconVisible="False" PositionPercentXEnabled="True" PositionPercentYEnabled="True" PercentWidthEnable="True" PercentHeightEnable="True" PercentWidthEnabled="True" PercentHeightEnabled="True" LeftMargin="64.0000" RightMargin="64.0000" TopMargin="36.0000" BottomMargin="36.0000" TouchEnable="True" ClipAble="False" ComboBoxIndex="1" ColorAngle="90.0000" Scale9Width="1" Scale9Height="1" ctype="PanelObjectData">
            <Size X="1152.0000" Y="648.0000" />
            <Children>
              <AbstractNodeData Name="title" ActionTag="-97033936" Tag="195" IconVisible="False" HorizontalEdge="LeftEdge" VerticalEdge="TopEdge" LeftMargin="5.0000" RightMargin="856.0000" TopMargin="5.0000" BottomMargin="559.0000" FontSize="64" LabelText="Text Label" ShadowOffsetX="2.0000" ShadowOffsetY="-2.0000" ctype="TextObjectData">
                <Size X="291.0000" Y="84.0000" />
                <AnchorPoint ScaleY="1.0000" />
                <Position X="5.0000" Y="643.0000" />
                <Scale ScaleX="1.0000" ScaleY="1.0000" />
                <CColor A="255" R="255" G="255" B="255" />
                <PrePosition X="0.0043" Y="0.9923" />
                <PreSize X="0.2526" Y="0.1296" />
                <FontResource Type="Normal" Path="DroidSansFallback.ttf" Plist="" />
                <OutlineColor A="255" R="255" G="0" B="0" />
                <ShadowColor A="255" R="110" G="110" B="110" />
              </AbstractNodeData>
              <AbstractNodeData Name="Panel_2" ActionTag="-715448789" Tag="197" IconVisible="False" PercentWidthEnable="True" PercentWidthEnabled="True" VerticalEdge="BothEdge" TopMargin="100.0000" BottomMargin="118.0000" TouchEnable="True" StretchHeightEnable="True" ClipAble="False" BackColorAlpha="102" ColorAngle="90.0000" Scale9Width="1" Scale9Height="1" ctype="PanelObjectData">
                <Size X="1152.0000" Y="430.0000" />
                <Children>
                  <AbstractNodeData Name="Panel_4" ActionTag="284813943" Tag="199" IconVisible="False" PercentWidthEnable="True" PercentHeightEnable="True" PercentWidthEnabled="True" PercentHeightEnabled="True" RightMargin="576.0000" TouchEnable="True" ClipAble="False" BackColorAlpha="102" ColorAngle="90.0000" Scale9Width="1" Scale9Height="1" ctype="PanelObjectData">
                    <Size X="576.0000" Y="430.0000" />
                    <Children>
                      <AbstractNodeData Name="list_1" ActionTag="-1742361560" Tag="193" IconVisible="False" PercentHeightEnable="True" PercentHeightEnabled="True" HorizontalEdge="BothEdge" RightMargin="8.0000" TouchEnable="True" StretchWidthEnable="True" ClipAble="True" ComboBoxIndex="1" ColorAngle="90.0000" Scale9Width="1" Scale9Height="1" ScrollDirectionType="0" DirectionType="Vertical" ctype="ListViewObjectData">
                        <Size X="568.0000" Y="430.0000" />
                        <AnchorPoint />
                        <Position />
                        <Scale ScaleX="1.0000" ScaleY="1.0000" />
                        <CColor A="255" R="255" G="255" B="255" />
                        <PrePosition />
                        <PreSize X="0.9861" Y="1.0000" />
                        <SingleColor A="255" R="42" G="42" B="42" />
                        <FirstColor A="255" R="150" G="150" B="255" />
                        <EndColor A="255" R="255" G="255" B="255" />
                        <ColorVector ScaleY="1.0000" />
                      </AbstractNodeData>
                    </Children>
                    <AnchorPoint />
                    <Position />
                    <Scale ScaleX="1.0000" ScaleY="1.0000" />
                    <CColor A="255" R="255" G="255" B="255" />
                    <PrePosition />
                    <PreSize X="0.5000" Y="1.0000" />
                    <SingleColor A="255" R="150" G="200" B="255" />
                    <FirstColor A="255" R="150" G="200" B="255" />
                    <EndColor A="255" R="255" G="255" B="255" />
                    <ColorVector ScaleY="1.0000" />
                  </AbstractNodeData>
       
Download .txt
gitextract_q549lhv5/

├── .github/
│   └── workflows/
│       └── build_android.yml
├── .gitignore
├── .vscode/
│   └── c_cpp_properties.json
├── CMakeLists.txt
├── LICENSE
├── project/
│   ├── android/
│   │   ├── .gitignore
│   │   ├── .idea/
│   │   │   ├── .gitignore
│   │   │   ├── codeStyles/
│   │   │   │   └── Project.xml
│   │   │   ├── compiler.xml
│   │   │   ├── gradle.xml
│   │   │   ├── jarRepositories.xml
│   │   │   ├── misc.xml
│   │   │   └── vcs.xml
│   │   ├── app/
│   │   │   ├── .gitignore
│   │   │   ├── AndroidManifest.xml
│   │   │   ├── build.gradle
│   │   │   ├── cpp/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── krkr2_android.cpp
│   │   │   ├── java/
│   │   │   │   ├── com/
│   │   │   │   │   └── yuri/
│   │   │   │   │       └── kirikiri2/
│   │   │   │   │           └── MainActivity.java
│   │   │   │   └── org/
│   │   │   │       └── tvp/
│   │   │   │           └── kirikiri2/
│   │   │   │               ├── KR2Activity.java
│   │   │   │               └── MediaStoreHack.java
│   │   │   ├── proguard-rules.pro
│   │   │   ├── res/
│   │   │   │   └── values/
│   │   │   │       └── strings.xml
│   │   │   └── sign.jks
│   │   ├── build.gradle
│   │   ├── gradle/
│   │   │   └── wrapper/
│   │   │       ├── gradle-wrapper.jar
│   │   │       └── gradle-wrapper.properties
│   │   ├── gradle.properties
│   │   ├── gradlew
│   │   ├── gradlew.bat
│   │   └── settings.gradle
│   └── ui/
│       ├── .cocos-project.json
│       ├── Resources/
│       │   └── res/
│       │       └── locale/
│       │           ├── en_us.xml
│       │           ├── ja_jp.xml
│       │           ├── zh_cn.xml
│       │           └── zh_tw.xml
│       ├── cocosstudio/
│       │   └── ui/
│       │       ├── BottomBar.csd
│       │       ├── BottomBarTextInput.csd
│       │       ├── CheckListDialog.csd
│       │       ├── FileItem.csd
│       │       ├── FileManageMenu.csd
│       │       ├── GameMenu.csd
│       │       ├── KeySelect.csd
│       │       ├── ListItem.csd
│       │       ├── ListView.csd
│       │       ├── MainFileSelector.csd
│       │       ├── MediaPlayerBody.csd
│       │       ├── MediaPlayerFoot.csd
│       │       ├── MediaPlayerNavi.csd
│       │       ├── MenuList.csd
│       │       ├── MessageBox.csd
│       │       ├── NaviBar.csd
│       │       ├── NaviBarWithMenu.csd
│       │       ├── ProgressBox.csd
│       │       ├── RecentListItem.csd
│       │       ├── SelectList.csd
│       │       ├── SelectListItem.csd
│       │       ├── TableView.csd
│       │       ├── TextPairInput.csd
│       │       ├── WinMgrOverlay.csd
│       │       ├── comctrl/
│       │       │   ├── CheckBoxItem.csd
│       │       │   ├── SelectListItem.csd
│       │       │   ├── SeperateItem.csd
│       │       │   ├── SliderIconItem.csd
│       │       │   ├── SliderTextItem.csd
│       │       │   └── SubDirItem.csd
│       │       └── help/
│       │           ├── AllTips.csd
│       │           ├── MouseModeTips.csd
│       │           ├── ScreenModeTips.csd
│       │           └── TouchModeTips.csd
│       ├── kr2.ccs
│       └── kr2.cfg
├── readme.md
├── script/
│   ├── _androida64.sh
│   ├── _fetch.sh
│   └── cross_androida64.sh
├── src/
│   ├── core/
│   │   ├── Android.mk
│   │   ├── CMakeLists.txt
│   │   ├── base/
│   │   │   ├── 7zArchive.cpp
│   │   │   ├── BinaryStream.cpp
│   │   │   ├── BinaryStream.h
│   │   │   ├── CharacterSet.cpp
│   │   │   ├── CharacterSet.h
│   │   │   ├── EventIntf.cpp
│   │   │   ├── EventIntf.h
│   │   │   ├── PluginIntf.cpp
│   │   │   ├── PluginIntf.h
│   │   │   ├── ScriptMgnIntf.cpp
│   │   │   ├── ScriptMgnIntf.h
│   │   │   ├── StorageIntf.cpp
│   │   │   ├── StorageIntf.h
│   │   │   ├── SysInitIntf.cpp
│   │   │   ├── SysInitIntf.h
│   │   │   ├── SystemIntf.cpp
│   │   │   ├── SystemIntf.h
│   │   │   ├── TARArchive.cpp
│   │   │   ├── TextStream.cpp
│   │   │   ├── TextStream.h
│   │   │   ├── UserEvent.h
│   │   │   ├── UtilStreams.cpp
│   │   │   ├── UtilStreams.h
│   │   │   ├── XP3Archive.cpp
│   │   │   ├── XP3Archive.h
│   │   │   ├── ZIPArchive.cpp
│   │   │   ├── common.h
│   │   │   ├── tar.h
│   │   │   └── win32/
│   │   │       ├── EventImpl.cpp
│   │   │       ├── EventImpl.h
│   │   │       ├── FileSelector.cpp
│   │   │       ├── FileSelector.h
│   │   │       ├── FuncStubs.cpp
│   │   │       ├── FuncStubs.h
│   │   │       ├── NativeEventQueue.cpp
│   │   │       ├── NativeEventQueue.h
│   │   │       ├── PluginImpl.cpp
│   │   │       ├── PluginImpl.h
│   │   │       ├── ScriptMgnImpl.cpp
│   │   │       ├── ScriptMgnImpl.h
│   │   │       ├── StorageImpl.cpp
│   │   │       ├── StorageImpl.h
│   │   │       ├── SusieArchive.cpp
│   │   │       ├── SusieArchive.h
│   │   │       ├── SysInitImpl.cpp
│   │   │       ├── SysInitImpl.h
│   │   │       ├── SystemImpl.cpp
│   │   │       ├── SystemImpl.h
│   │   │       └── win32io.h
│   │   ├── environ/
│   │   │   ├── Application.cpp
│   │   │   ├── Application.h
│   │   │   ├── ConfigManager/
│   │   │   │   ├── GlobalConfigManager.cpp
│   │   │   │   ├── GlobalConfigManager.h
│   │   │   │   ├── IndividualConfigManager.cpp
│   │   │   │   ├── IndividualConfigManager.h
│   │   │   │   ├── LocaleConfigManager.cpp
│   │   │   │   └── LocaleConfigManager.h
│   │   │   ├── DetectCPU.cpp
│   │   │   ├── DetectCPU.h
│   │   │   ├── DumpSend.cpp
│   │   │   ├── Platform.h
│   │   │   ├── XP3ArchiveRepack.cpp
│   │   │   ├── XP3ArchiveRepack.h
│   │   │   ├── android/
│   │   │   │   ├── AndroidUtils.cpp
│   │   │   │   └── AndroidUtils.h
│   │   │   ├── cocos2d/
│   │   │   │   ├── AppDelegate.cpp
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── CCKeyCodeConv.cpp
│   │   │   │   ├── CCKeyCodeConv.h
│   │   │   │   ├── CustomFileUtils.cpp
│   │   │   │   ├── CustomFileUtils.h
│   │   │   │   ├── CustomFileUtils.mm
│   │   │   │   ├── MainScene.cpp
│   │   │   │   ├── MainScene.h
│   │   │   │   ├── YUVSprite.cpp
│   │   │   │   └── YUVSprite.h
│   │   │   ├── combase.h
│   │   │   ├── cpu_types.h
│   │   │   ├── linux/
│   │   │   │   └── Platform.cpp
│   │   │   ├── sdl/
│   │   │   │   └── tvpsdl.cpp
│   │   │   ├── typedefine.h
│   │   │   ├── ui/
│   │   │   │   ├── BaseForm.cpp
│   │   │   │   ├── BaseForm.h
│   │   │   │   ├── ConsoleWindow.cpp
│   │   │   │   ├── ConsoleWindow.h
│   │   │   │   ├── DebugViewLayerForm.cpp
│   │   │   │   ├── DebugViewLayerForm.h
│   │   │   │   ├── FileSelectorForm.cpp
│   │   │   │   ├── FileSelectorForm.h
│   │   │   │   ├── GameMainMenu.cpp
│   │   │   │   ├── GameMainMenu.h
│   │   │   │   ├── GlobalPreferenceForm.cpp
│   │   │   │   ├── GlobalPreferenceForm.h
│   │   │   │   ├── InGameMenuForm.cpp
│   │   │   │   ├── InGameMenuForm.h
│   │   │   │   ├── IndividualPreferenceForm.cpp
│   │   │   │   ├── IndividualPreferenceForm.h
│   │   │   │   ├── MainFileSelectorForm.cpp
│   │   │   │   ├── MainFileSelectorForm.h
│   │   │   │   ├── MessageBox.cpp
│   │   │   │   ├── MessageBox.h
│   │   │   │   ├── PreferenceConfig.h
│   │   │   │   ├── PreferenceForm.cpp
│   │   │   │   ├── PreferenceForm.h
│   │   │   │   ├── SeletListForm.cpp
│   │   │   │   ├── SeletListForm.h
│   │   │   │   ├── SimpleMediaFilePlayer.cpp
│   │   │   │   ├── SimpleMediaFilePlayer.h
│   │   │   │   ├── TipsHelpForm.cpp
│   │   │   │   ├── TipsHelpForm.h
│   │   │   │   ├── XP3RepackForm.cpp
│   │   │   │   ├── XP3RepackForm.h
│   │   │   │   └── extension/
│   │   │   │       ├── ActionExtension.cpp
│   │   │   │       ├── ActionExtension.h
│   │   │   │       ├── UIExtension.cpp
│   │   │   │       └── UIExtension.h
│   │   │   ├── vkdefine.h
│   │   │   ├── win32/
│   │   │   │   ├── ApplicationSpecialPath.h
│   │   │   │   ├── CompatibleNativeFuncs.cpp
│   │   │   │   ├── CompatibleNativeFuncs.h
│   │   │   │   ├── ConfigFormUnit.cpp
│   │   │   │   ├── ConfigFormUnit.h
│   │   │   │   ├── DetectCPU.cpp
│   │   │   │   ├── DetectCPU.h
│   │   │   │   ├── EmergencyExit.cpp
│   │   │   │   ├── EmergencyExit.h
│   │   │   │   ├── HintWindow.cpp
│   │   │   │   ├── HintWindow.h
│   │   │   │   ├── ImeControl.h
│   │   │   │   ├── MainFormUnit.cpp
│   │   │   │   ├── MainFormUnit.h
│   │   │   │   ├── MouseCursor.cpp
│   │   │   │   ├── MouseCursor.h
│   │   │   │   ├── Platform.cpp
│   │   │   │   ├── SystemControl.cpp
│   │   │   │   ├── SystemControl.h
│   │   │   │   ├── TVPWindow.cpp
│   │   │   │   ├── TVPWindow.h
│   │   │   │   ├── TouchPoint.cpp
│   │   │   │   ├── TouchPoint.h
│   │   │   │   ├── VersionFormUnit.cpp
│   │   │   │   ├── VersionFormUnit.h
│   │   │   │   ├── WindowFormUnit.cpp
│   │   │   │   ├── WindowFormUnit.h
│   │   │   │   ├── WindowsUtil.cpp
│   │   │   │   ├── WindowsUtil.h
│   │   │   │   ├── config.h
│   │   │   │   └── my_HintWindow.cpp
│   │   │   └── win32type.h
│   │   ├── extension/
│   │   │   ├── Extension.cpp
│   │   │   └── Extension.h
│   │   ├── movie/
│   │   │   ├── ffmpeg/
│   │   │   │   ├── AE.h
│   │   │   │   ├── AEAudioFormat.h
│   │   │   │   ├── AEChannelData.h
│   │   │   │   ├── AEChannelInfo.cpp
│   │   │   │   ├── AEChannelInfo.h
│   │   │   │   ├── AEFactory.cpp
│   │   │   │   ├── AEFactory.h
│   │   │   │   ├── AEStream.h
│   │   │   │   ├── AEStreamData.h
│   │   │   │   ├── AEStreamInfo.cpp
│   │   │   │   ├── AEStreamInfo.h
│   │   │   │   ├── AEUtil.cpp
│   │   │   │   ├── AEUtil.h
│   │   │   │   ├── AudioCodec.h
│   │   │   │   ├── AudioCodecFFmpeg.cpp
│   │   │   │   ├── AudioCodecFFmpeg.h
│   │   │   │   ├── AudioCodecPassthrough.cpp
│   │   │   │   ├── AudioCodecPassthrough.h
│   │   │   │   ├── AudioDevice.cpp
│   │   │   │   ├── AudioDevice.h
│   │   │   │   ├── BaseRenderer.cpp
│   │   │   │   ├── BaseRenderer.h
│   │   │   │   ├── BitstreamStats.cpp
│   │   │   │   ├── BitstreamStats.h
│   │   │   │   ├── Clock.cpp
│   │   │   │   ├── Clock.h
│   │   │   │   ├── CodecUtils.cpp
│   │   │   │   ├── CodecUtils.h
│   │   │   │   ├── Codecs.h
│   │   │   │   ├── Demux.cpp
│   │   │   │   ├── Demux.h
│   │   │   │   ├── DemuxFFmpeg.cpp
│   │   │   │   ├── DemuxFFmpeg.h
│   │   │   │   ├── DemuxPacket.cpp
│   │   │   │   ├── DemuxPacket.h
│   │   │   │   ├── FactoryCodec.cpp
│   │   │   │   ├── FactoryCodec.h
│   │   │   │   ├── Geometry.h
│   │   │   │   ├── IAudioCallback.h
│   │   │   │   ├── IVideoPlayer.h
│   │   │   │   ├── InputStream.cpp
│   │   │   │   ├── InputStream.h
│   │   │   │   ├── KRMovieDef.h
│   │   │   │   ├── KRMovieLayer.cpp
│   │   │   │   ├── KRMovieLayer.h
│   │   │   │   ├── KRMoviePlayer.cpp
│   │   │   │   ├── KRMoviePlayer.h
│   │   │   │   ├── MathUtils.h
│   │   │   │   ├── Message.cpp
│   │   │   │   ├── Message.h
│   │   │   │   ├── MessageQueue.cpp
│   │   │   │   ├── MessageQueue.h
│   │   │   │   ├── OptionInfo.h
│   │   │   │   ├── ProcessInfo.cpp
│   │   │   │   ├── ProcessInfo.h
│   │   │   │   ├── Ref.h
│   │   │   │   ├── RenderFlags.cpp
│   │   │   │   ├── RenderFlags.h
│   │   │   │   ├── RenderFormats.h
│   │   │   │   ├── StreamInfo.cpp
│   │   │   │   ├── StreamInfo.h
│   │   │   │   ├── TVPMediaDemux.cpp
│   │   │   │   ├── TVPMediaDemux.h
│   │   │   │   ├── Thread.cpp
│   │   │   │   ├── Thread.h
│   │   │   │   ├── TimeUtils.cpp
│   │   │   │   ├── TimeUtils.h
│   │   │   │   ├── Timer.cpp
│   │   │   │   ├── Timer.h
│   │   │   │   ├── VideoCodec.cpp
│   │   │   │   ├── VideoCodec.h
│   │   │   │   ├── VideoCodecFFmpeg.cpp
│   │   │   │   ├── VideoCodecFFmpeg.h
│   │   │   │   ├── VideoPlayer.cpp
│   │   │   │   ├── VideoPlayer.h
│   │   │   │   ├── VideoPlayerAudio.cpp
│   │   │   │   ├── VideoPlayerAudio.h
│   │   │   │   ├── VideoPlayerVideo.cpp
│   │   │   │   ├── VideoPlayerVideo.h
│   │   │   │   ├── VideoReferenceClock.cpp
│   │   │   │   ├── VideoReferenceClock.h
│   │   │   │   ├── VideoRenderer.cpp
│   │   │   │   ├── VideoRenderer.h
│   │   │   │   ├── config.h
│   │   │   │   └── krffmpeg.cpp
│   │   │   └── krmovie.cpp
│   │   ├── msg/
│   │   │   ├── MsgIntf.cpp
│   │   │   ├── MsgIntf.h
│   │   │   ├── MsgIntfInc.h
│   │   │   └── win32/
│   │   │       ├── MsgImpl.cpp
│   │   │       ├── MsgImpl.h
│   │   │       ├── MsgLoad.cpp
│   │   │       ├── OptionsDesc.cpp
│   │   │       ├── OptionsDesc.h
│   │   │       ├── ReadOptionDesc.cpp
│   │   │       └── ReadOptionDesc.h
│   │   ├── sound/
│   │   │   ├── ARM/
│   │   │   │   ├── WaveFunctionARM.cpp
│   │   │   │   └── wavemix_arm.c
│   │   │   ├── CDDAIntf.cpp
│   │   │   ├── CDDAIntf.h
│   │   │   ├── FFWaveDecoder.cpp
│   │   │   ├── FFWaveDecoder.h
│   │   │   ├── MIDIIntf.cpp
│   │   │   ├── MIDIIntf.h
│   │   │   ├── MathAlgorithms.cpp
│   │   │   ├── MathAlgorithms.h
│   │   │   ├── PhaseVocoderDSP.cpp
│   │   │   ├── PhaseVocoderDSP.h
│   │   │   ├── PhaseVocoderFilter.cpp
│   │   │   ├── PhaseVocoderFilter.h
│   │   │   ├── RingBuffer.h
│   │   │   ├── SoundBufferBaseIntf.cpp
│   │   │   ├── SoundBufferBaseIntf.h
│   │   │   ├── VorbisWaveDecoder.cpp
│   │   │   ├── VorbisWaveDecoder.h
│   │   │   ├── WaveFormatConverter.cpp
│   │   │   ├── WaveFormatConverter_SSE.cpp
│   │   │   ├── WaveIntf.cpp
│   │   │   ├── WaveIntf.h
│   │   │   ├── WaveLoopManager.cpp
│   │   │   ├── WaveLoopManager.h
│   │   │   ├── WaveSegmentQueue.cpp
│   │   │   ├── WaveSegmentQueue.h
│   │   │   ├── win32/
│   │   │   │   ├── CDDAImpl.cpp
│   │   │   │   ├── CDDAImpl.h
│   │   │   │   ├── MIDIImpl.cpp
│   │   │   │   ├── MIDIImpl.h
│   │   │   │   ├── SoundBufferBaseImpl.cpp
│   │   │   │   ├── SoundBufferBaseImpl.h
│   │   │   │   ├── WaveImpl.cpp
│   │   │   │   ├── WaveImpl.h
│   │   │   │   ├── WaveMixer.cpp
│   │   │   │   ├── WaveMixer.h
│   │   │   │   ├── kmp_pi.h
│   │   │   │   ├── oldwaveunpacker.h
│   │   │   │   ├── tvpsnd.c
│   │   │   │   ├── tvpsnd.cpp
│   │   │   │   ├── tvpsnd.h
│   │   │   │   └── tvpsnd.idl
│   │   │   └── xmmlib.h
│   │   ├── tjs2/
│   │   │   ├── tjs.cpp
│   │   │   ├── tjs.h
│   │   │   ├── tjs.tab.cpp
│   │   │   ├── tjs.tab.h
│   │   │   ├── tjs.tab.hpp
│   │   │   ├── tjsArray.cpp
│   │   │   ├── tjsArray.h
│   │   │   ├── tjsBinarySerializer.cpp
│   │   │   ├── tjsBinarySerializer.h
│   │   │   ├── tjsByteCodeLoader.cpp
│   │   │   ├── tjsByteCodeLoader.h
│   │   │   ├── tjsCommHead.h
│   │   │   ├── tjsCompileControl.cpp
│   │   │   ├── tjsCompileControl.h
│   │   │   ├── tjsConfig.cpp
│   │   │   ├── tjsConfig.h
│   │   │   ├── tjsConstArrayData.cpp
│   │   │   ├── tjsConstArrayData.h
│   │   │   ├── tjsDate.cpp
│   │   │   ├── tjsDate.h
│   │   │   ├── tjsDateParser.cpp
│   │   │   ├── tjsDateParser.h
│   │   │   ├── tjsDateWordMap.cc
│   │   │   ├── tjsDebug.cpp
│   │   │   ├── tjsDebug.h
│   │   │   ├── tjsDictionary.cpp
│   │   │   ├── tjsDictionary.h
│   │   │   ├── tjsDisassemble.cpp
│   │   │   ├── tjsError.cpp
│   │   │   ├── tjsError.h
│   │   │   ├── tjsErrorDefs.h
│   │   │   ├── tjsErrorInc.h
│   │   │   ├── tjsError_jp.h
│   │   │   ├── tjsException.cpp
│   │   │   ├── tjsException.h
│   │   │   ├── tjsGlobalStringMap.cpp
│   │   │   ├── tjsGlobalStringMap.h
│   │   │   ├── tjsHashSearch.h
│   │   │   ├── tjsInterCodeExec.cpp
│   │   │   ├── tjsInterCodeExec.h
│   │   │   ├── tjsInterCodeGen.cpp
│   │   │   ├── tjsInterCodeGen.h
│   │   │   ├── tjsInterface.cpp
│   │   │   ├── tjsInterface.h
│   │   │   ├── tjsLex.cpp
│   │   │   ├── tjsLex.h
│   │   │   ├── tjsMT19937ar-cok.cpp
│   │   │   ├── tjsMT19937ar-cok.h
│   │   │   ├── tjsMath.cpp
│   │   │   ├── tjsMath.h
│   │   │   ├── tjsMessage.cpp
│   │   │   ├── tjsMessage.h
│   │   │   ├── tjsNamespace.cpp
│   │   │   ├── tjsNamespace.h
│   │   │   ├── tjsNative.cpp
│   │   │   ├── tjsNative.h
│   │   │   ├── tjsObject.cpp
│   │   │   ├── tjsObject.h
│   │   │   ├── tjsObjectExtendable.cpp
│   │   │   ├── tjsObjectExtendable.h
│   │   │   ├── tjsOctPack.cpp
│   │   │   ├── tjsOctPack.h
│   │   │   ├── tjsRandomGenerator.cpp
│   │   │   ├── tjsRandomGenerator.h
│   │   │   ├── tjsRegExp.cpp
│   │   │   ├── tjsRegExp.h
│   │   │   ├── tjsScriptBlock.cpp
│   │   │   ├── tjsScriptBlock.h
│   │   │   ├── tjsScriptCache.cpp
│   │   │   ├── tjsScriptCache.h
│   │   │   ├── tjsString.cpp
│   │   │   ├── tjsString.h
│   │   │   ├── tjsTypes.h
│   │   │   ├── tjsUtils.cpp
│   │   │   ├── tjsUtils.h
│   │   │   ├── tjsVariant.cpp
│   │   │   ├── tjsVariant.h
│   │   │   ├── tjsVariantString.cpp
│   │   │   ├── tjsVariantString.h
│   │   │   ├── tjsdate.tab.cpp
│   │   │   ├── tjsdate.tab.h
│   │   │   ├── tjsdate.tab.hpp
│   │   │   ├── tjspp.tab.cpp
│   │   │   └── tjspp.tab.hpp
│   │   ├── utils/
│   │   │   ├── ClipboardIntf.cpp
│   │   │   ├── ClipboardIntf.h
│   │   │   ├── DebugIntf.cpp
│   │   │   ├── DebugIntf.h
│   │   │   ├── Debugger.h
│   │   │   ├── Exception.h
│   │   │   ├── FilePathUtil.h
│   │   │   ├── KAGParser.cpp
│   │   │   ├── KAGParser.h
│   │   │   ├── MathAlgorithms.h
│   │   │   ├── MathAlgorithms_Default.cpp
│   │   │   ├── MathAlgorithms_Default.h
│   │   │   ├── MiscUtility.cpp
│   │   │   ├── ObjectList.h
│   │   │   ├── PadIntf.cpp
│   │   │   ├── PadIntf.h
│   │   │   ├── Random.cpp
│   │   │   ├── Random.h
│   │   │   ├── RealFFT.h
│   │   │   ├── RealFFT_Default.cpp
│   │   │   ├── StringUtil.h
│   │   │   ├── ThreadIntf.cpp
│   │   │   ├── ThreadIntf.h
│   │   │   ├── TickCount.cpp
│   │   │   ├── TickCount.h
│   │   │   ├── TimerIntf.cpp
│   │   │   ├── TimerIntf.h
│   │   │   ├── VelocityTracker.cpp
│   │   │   ├── VelocityTracker.h
│   │   │   ├── encoding/
│   │   │   │   ├── gbk2unicode.c
│   │   │   │   └── jis2unicode.c
│   │   │   ├── iconv/
│   │   │   │   ├── iconv.h
│   │   │   │   └── utf8.h
│   │   │   ├── md5.c
│   │   │   ├── md5.h
│   │   │   ├── minizip/
│   │   │   │   ├── crypt.h
│   │   │   │   ├── ioapi.cpp
│   │   │   │   ├── ioapi.h
│   │   │   │   ├── unzip.c
│   │   │   │   ├── unzip.h
│   │   │   │   ├── zip.c
│   │   │   │   └── zip.h
│   │   │   └── win32/
│   │   │       ├── ClipboardImpl.cpp
│   │   │       ├── ClipboardImpl.h
│   │   │       ├── DebugImpl.cpp
│   │   │       ├── DebugImpl.h
│   │   │       ├── PadImpl.cpp
│   │   │       ├── PadImpl.h
│   │   │       ├── TVPTimer.cpp
│   │   │       ├── TVPTimer.h
│   │   │       ├── ThreadImpl.cpp
│   │   │       ├── ThreadImpl.h
│   │   │       ├── TimerImpl.cpp
│   │   │       └── TimerImpl.h
│   │   └── visual/
│   │       ├── ARM/
│   │       │   ├── AlphaMovie_mjpeg.h
│   │       │   ├── tvpgl_arm.cpp
│   │       │   ├── tvpgl_arm_intf.h
│   │       │   └── tvpgl_arm_route.h
│   │       ├── BitmapIntf.cpp
│   │       ├── BitmapIntf.h
│   │       ├── BitmapLayerTreeOwner.cpp
│   │       ├── BitmapLayerTreeOwner.h
│   │       ├── CharacterData.cpp
│   │       ├── CharacterData.h
│   │       ├── ComplexRect.cpp
│   │       ├── ComplexRect.h
│   │       ├── FontImpl.cpp
│   │       ├── FontImpl.h
│   │       ├── FontRasterizer.h
│   │       ├── FontSystem.cpp
│   │       ├── FontSystem.h
│   │       ├── FreeType.cpp
│   │       ├── FreeType.h
│   │       ├── FreeTypeFace.h
│   │       ├── FreeTypeFontRasterizer.cpp
│   │       ├── FreeTypeFontRasterizer.h
│   │       ├── GraphicsLoadThread.cpp
│   │       ├── GraphicsLoadThread.h
│   │       ├── GraphicsLoaderIntf.cpp
│   │       ├── GraphicsLoaderIntf.h
│   │       ├── ImageFunction.cpp
│   │       ├── ImageFunction.h
│   │       ├── LayerBitmapIntf.cpp
│   │       ├── LayerBitmapIntf.h
│   │       ├── LayerIntf.cpp
│   │       ├── LayerIntf.h
│   │       ├── LayerManager.cpp
│   │       ├── LayerManager.h
│   │       ├── LayerTreeOwner.h
│   │       ├── LayerTreeOwnerImpl.cpp
│   │       ├── LayerTreeOwnerImpl.h
│   │       ├── LoadBPG.cpp
│   │       ├── LoadJPEG.cpp
│   │       ├── LoadJXR.cpp
│   │       ├── LoadPNG.cpp
│   │       ├── LoadPVRv3.cpp
│   │       ├── LoadTLG.cpp
│   │       ├── LoadTLG.h
│   │       ├── LoadWEBP.cpp
│   │       ├── MenuItemIntf.cpp
│   │       ├── MenuItemIntf.h
│   │       ├── PrerenderedFont.cpp
│   │       ├── PrerenderedFont.h
│   │       ├── RectItf.cpp
│   │       ├── RectItf.h
│   │       ├── RenderManager.cpp
│   │       ├── RenderManager.h
│   │       ├── RenderManager_software.h
│   │       ├── SaveTLG.h
│   │       ├── SaveTLG5.cpp
│   │       ├── SaveTLG6.cpp
│   │       ├── TransIntf.cpp
│   │       ├── TransIntf.h
│   │       ├── VideoOvlIntf.cpp
│   │       ├── VideoOvlIntf.h
│   │       ├── WindowIntf.cpp
│   │       ├── WindowIntf.h
│   │       ├── argb.cpp
│   │       ├── argb.h
│   │       ├── drawable.h
│   │       ├── gl/
│   │       │   ├── ResampleImage.cpp
│   │       │   ├── ResampleImage.h
│   │       │   ├── ResampleImageInternal.h
│   │       │   ├── WeightFunctor.cpp
│   │       │   ├── WeightFunctor.h
│   │       │   ├── aligned_allocator.h
│   │       │   ├── blend_function.cpp
│   │       │   ├── blend_functor_c.h
│   │       │   ├── blend_util_func.h
│   │       │   ├── blend_variation.h
│   │       │   └── tvpgl_mathutil.h
│   │       ├── ogl/
│   │       │   ├── RenderManager_ogl.cpp
│   │       │   ├── RenderManager_ogl_test.hpp
│   │       │   ├── astcrt.cpp
│   │       │   ├── astcrt.h
│   │       │   ├── etcpak.cpp
│   │       │   ├── etcpak.h
│   │       │   ├── imagepacker.cpp
│   │       │   ├── imagepacker.h
│   │       │   ├── ogl_common.h
│   │       │   ├── pvr.h
│   │       │   ├── pvrtc.cpp
│   │       │   └── pvrtc.h
│   │       ├── transhandler.h
│   │       ├── tvpfontstruc.h
│   │       ├── tvpgl.cpp
│   │       ├── tvpgl.h
│   │       ├── tvpgl_asm_init.h
│   │       ├── tvpgl_route.h
│   │       ├── tvphal.h
│   │       ├── tvpinputdefs.h
│   │       ├── tvpps.inc
│   │       ├── voMode.h
│   │       └── win32/
│   │           ├── BasicDrawDevice.cpp
│   │           ├── BasicDrawDevice.h
│   │           ├── BitmapBitsAlloc.cpp
│   │           ├── BitmapBitsAlloc.h
│   │           ├── BitmapInfomation.cpp
│   │           ├── BitmapInfomation.h
│   │           ├── DInputMgn.cpp
│   │           ├── DInputMgn.h
│   │           ├── DrawDevice.cpp
│   │           ├── DrawDevice.h
│   │           ├── GDIFontRasterizer.cpp
│   │           ├── GDIFontRasterizer.h
│   │           ├── GraphicsLoaderImpl.cpp
│   │           ├── GraphicsLoaderImpl.h
│   │           ├── LayerBitmapImpl.cpp
│   │           ├── LayerBitmapImpl.h
│   │           ├── LayerImpl.cpp
│   │           ├── LayerImpl.h
│   │           ├── MenuItemImpl.cpp
│   │           ├── MenuItemImpl.h
│   │           ├── NativeFreeTypeFace.cpp
│   │           ├── NativeFreeTypeFace.h
│   │           ├── PassThroughDrawDevice.cpp
│   │           ├── PassThroughDrawDevice.h
│   │           ├── TVPColor.h
│   │           ├── TVPScreen.cpp
│   │           ├── TVPScreen.h
│   │           ├── TVPSysFont.cpp
│   │           ├── TVPSysFont.h
│   │           ├── VSyncTimingThread.cpp
│   │           ├── VSyncTimingThread.h
│   │           ├── VideoOvlImpl.cpp
│   │           ├── VideoOvlImpl.h
│   │           ├── WindowImpl.cpp
│   │           ├── WindowImpl.h
│   │           └── krmovie.h
│   └── plugins/
│       ├── Android.mk
│       ├── CMakeLists.txt
│       ├── InternalPlugins.cpp
│       ├── LayerExBase.cpp
│       ├── LayerExBase.h
│       ├── PluginStub.h
│       ├── addFont.cpp
│       ├── csvParser.cpp
│       ├── dirlist.cpp
│       ├── fftgraph.cpp
│       ├── getSample.cpp
│       ├── getabout.cpp
│       ├── layerExBase.hpp
│       ├── layerExMovie.cpp
│       ├── layerExPerspective.cpp
│       ├── ncbind/
│       │   ├── ncb_foreach.h
│       │   ├── ncb_invoke.hpp
│       │   ├── ncbind.cpp
│       │   └── ncbind.hpp
│       ├── saveStruct.cpp
│       ├── tp_stub.h
│       ├── varfile.cpp
│       ├── win32dialog.cpp
│       ├── wutcwf.cpp
│       ├── xp3filter.cpp
│       └── xp3filter.h
└── thirdparty/
    └── patch/
        ├── cocos2d-x/
        │   ├── android_CCFileUtils-android.cpp
        │   ├── android_CCFileUtils-android.h
        │   ├── android_Java_org_cocos2dx_lib_Cocos2dxHelper.cpp
        │   ├── android_Java_org_cocos2dx_lib_Cocos2dxHelper.h
        │   └── android_cocos2dx.cmake
        ├── ffmpeg/
        │   └── android_ffmpeg.diff
        ├── oniguruma/
        │   └── oniguruma.cmake
        ├── opus/
        │   └── opusfile.h
        ├── p7zip/
        │   ├── 7z.h
        │   ├── 7zArcIn.c
        │   ├── 7zBuf.c
        │   ├── 7zDec.c
        │   ├── 7zFile.h
        │   └── android_p7zip.cmake
        ├── sdl2/
        │   ├── android_SDL_android.c
        │   └── android_android_lf.h
        └── unrar/
            └── android_ulinks.cpp
Download .txt
Showing preview only (784K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (8133 symbols across 520 files)

FILE: project/android/app/cpp/krkr2_android.cpp
  function __DumpCallback (line 21) | static bool __DumpCallback(const google_breakpad::MinidumpDescriptor& de...
  function __DumpFilter (line 29) | static bool __DumpFilter(void *data) {
  function cocos_android_app_init (line 41) | void cocos_android_app_init (JNIEnv* env) { // for cocos3.10+
  type kr2android (line 47) | namespace kr2android {
  function JNIEXPORT (line 56) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_initDump(JNIEn...
  function JNIEXPORT (line 66) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_onMessageBoxOK...
  function JNIEXPORT (line 71) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_onMessageBoxTe...
  function JNIEXPORT (line 79) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeTouchesB...
  function JNIEXPORT (line 86) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeTouchesE...
  function JNIEXPORT (line 93) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeTouchesM...
  function JNIEXPORT (line 127) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeTouchesC...
  function JNIEXPORT (line 172) | JNIEXPORT jboolean JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeKeyA...
  function JNIEXPORT (line 195) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeInsertTe...
  function JNIEXPORT (line 206) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeDeleteBa...
  function JNIEXPORT (line 211) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeCharInpu...
  function JNIEXPORT (line 217) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeCommitText(
  function JNIEXPORT (line 229) | JNIEXPORT jboolean JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeGetH...
  function JNIEXPORT (line 236) | JNIEXPORT jboolean JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeHove...
  function JNIEXPORT (line 254) | JNIEXPORT jboolean JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeMous...
  function JNIEXPORT (line 272) | JNIEXPORT void JNICALL Java_org_tvp_kirikiri2_KR2Activity_nativeOnLowMem...

FILE: project/android/app/java/com/yuri/kirikiri2/MainActivity.java
  class MainActivity (line 4) | public class MainActivity extends KR2Activity {
    method get_res_sd_operate_step (line 8) | @Override

FILE: project/android/app/java/org/tvp/kirikiri2/KR2Activity.java
  class MediaStoreUtil (line 65) | @SuppressWarnings("ALL")
    method getUriFromFile (line 67) | public static Uri getUriFromFile(final String path,Context context) {
    method addFileToMediaStore (line 89) | public static void addFileToMediaStore(final String path, Context cont...
  class DummyEdit (line 102) | class DummyEdit extends View implements View.OnKeyListener {
    method DummyEdit (line 105) | public DummyEdit(Context context) {
    method onCheckIsTextEditor (line 112) | @Override
    method onKey (line 117) | @Override
    method onKeyPreIme (line 131) | @Override
    method onCreateInputConnection (line 148) | @Override
  class SDLInputConnection (line 159) | class SDLInputConnection extends BaseInputConnection {
    method SDLInputConnection (line 161) | public SDLInputConnection(View targetView, boolean fullEditor) {
    method sendKeyEvent (line 166) | @Override
    method commitText (line 191) | @Override
    method setComposingText (line 199) | @Override
    method deleteSurroundingText (line 209) | @Override
  class KR2Activity (line 222) | @SuppressWarnings("ALL")
    method updateMemoryInfo (line 231) | public static void updateMemoryInfo() {
    method getAvailMemory (line 239) | public static long getAvailMemory() {
    method getUsedMemory (line 243) | public static long getUsedMemory() {
    method requestPhoneState (line 247) | private static void requestPhoneState() {
    method requestExternalWrite (line 265) | private static void requestExternalWrite() {
    method onRequestPermissionsResult (line 283) | @Override
    method getDeviceId (line 297) | static public String getDeviceId() { // ## fix android.permission.READ...
    method GetInstance (line 302) | static public KR2Activity GetInstance() {return sInstance;}
    method onCreate (line 304) | @Override
    method onDestroy (line 324) | @Override
    method onLowMemory (line 330) | @Override
    class DialogMessage (line 335) | static class DialogMessage
      method DialogMessage (line 342) | public DialogMessage()
      method Init (line 346) | public void Init(final String title, final String text, final String...
      method onButtonClick (line 353) | void onButtonClick(int n) {
      method CreateBuilder (line 360) | public AlertDialog.Builder CreateBuilder() {
      method ShowMessageBox (line 397) | public void ShowMessageBox()
      method ShowInputBox (line 402) | public void ShowInputBox(final String text) {
    method handleMessage (line 424) | @Override
    method handleMessage (line 430) | public void handleMessage(Message msg) {
    method ShowMessageBox (line 434) | static public void ShowMessageBox(final String title, final String tex...
    method ShowInputBox (line 444) | static public void ShowInputBox(final String title, final String promp...
    class ShowTextInputTask (line 454) | static class ShowTextInputTask implements Runnable {
      method ShowTextInputTask (line 464) | public ShowTextInputTask(int x, int y, int w, int h) {
      method run (line 471) | @Override
    method showTextInput (line 493) | static public void showTextInput(int x, int y, int w, int h) {
    method hideTextInput (line 496) | static public void hideTextInput() {
    method onMessageBoxOK (line 509) | static private native void onMessageBoxOK(int nButton);
    method onMessageBoxText (line 510) | static private native void onMessageBoxText(String text);
    method onNativeExit (line 511) | static private native void onNativeExit();
    method onNativeInit (line 512) | static public native void onNativeInit();
    method onBannerSizeChanged (line 513) | static public native void onBannerSizeChanged(int w, int h);
    method initDump (line 514) | static private native void initDump(String path);
    method nativeOnLowMemory (line 515) | static private native void nativeOnLowMemory();
    method MessageController (line 517) | static public void MessageController(int what, int arg1, int arg2) {
    method GetVersion (line 525) | static public String GetVersion() {
    method getStoragePath (line 538) | public String[] getStoragePath() {
    method nativeTouchesBegin (line 587) | private static native void nativeTouchesBegin(final int id, final floa...
    method nativeTouchesEnd (line 588) | private static native void nativeTouchesEnd(final int id, final float ...
    method nativeTouchesMove (line 589) | private static native void nativeTouchesMove(final int[] ids, final fl...
    method nativeTouchesCancel (line 590) | private static native void nativeTouchesCancel(final int[] ids, final ...
    method nativeKeyAction (line 591) | public static native boolean nativeKeyAction(final int keyCode, final ...
    method nativeCharInput (line 592) | public static native void nativeCharInput(final int keyCode);
    method nativeCommitText (line 593) | public static native void nativeCommitText(String text, int newCursorP...
    method nativeInsertText (line 595) | private static native void nativeInsertText(final String text);
    method nativeDeleteBackward (line 596) | public static native void nativeDeleteBackward();
    method nativeGetContentText (line 597) | private static native String nativeGetContentText();
    method nativeHoverMoved (line 598) | private static native void nativeHoverMoved(final float x, final float...
    method nativeMouseScrolled (line 599) | private static native void nativeMouseScrolled(final float scroll);
    class KR2GLSurfaceView (line 601) | class KR2GLSurfaceView extends Cocos2dxGLSurfaceView {
      method KR2GLSurfaceView (line 603) | public KR2GLSurfaceView(final Context context) {
      method KR2GLSurfaceView (line 607) | public KR2GLSurfaceView(final Context context, final AttributeSet at...
      method insertText (line 611) | @Override
      method deleteBackward (line 616) | @Override
      method onKeyDown (line 621) | @Override
      method onKeyUp (line 640) | @Override
      method onHoverEvent (line 659) | @Override
      method onTouchEvent (line 677) | @Override
      method onGenericMotionEvent (line 742) | @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) @Override
    method get_res_sd_operate_step (line 771) | public int get_res_sd_operate_step() { return -1; }
    method requireLEXA (line 773) | static void requireLEXA(final String path) {
    method guideDialogForLEXA (line 781) | static void guideDialogForLEXA(final String path) {
    method isWritable (line 803) | static final boolean isWritable(final File file) {
    method isWritableNormal (line 830) | static final boolean isWritableNormal(final String path) {
    method isWritableNormalOrSaf (line 840) | static final boolean isWritableNormalOrSaf(final String path) {
    method getExtSdCardPaths (line 884) | @TargetApi(Build.VERSION_CODES.KITKAT)
    method getExtSdCardFolder (line 909) | public static String getExtSdCardFolder(final File file,Context contex...
    method isOnExtSdCard (line 925) | public static boolean isOnExtSdCard(final File file,Context c) {
    method getDocumentFile (line 929) | public static DocumentFile getDocumentFile(final File file, final bool...
    method RenameFile (line 981) | static public boolean RenameFile(String from, String to) {
    method deleteFilesInFolder (line 1026) | public static final boolean deleteFilesInFolder(final File folder,Cont...
    method DeleteFile (line 1045) | static public boolean DeleteFile(String path) {
    method getOutputStream (line 1077) | public static OutputStream getOutputStream(@NonNull final File target,...
    method WriteFile (line 1102) | static public boolean WriteFile(String path, byte data[]) {
    method CreateFolders (line 1155) | static public boolean CreateFolders(String path) {
    method onWindowFocusChanged (line 1183) | @Override
    method doSetSystemUiVisibility (line 1193) | @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    method nativeGetHideSystemButton (line 1204) | private static native boolean nativeGetHideSystemButton();
    method hideSystemUI (line 1205) | void hideSystemUI() {
    method getLocaleName (line 1211) | static public String getLocaleName() {
    method exit (line 1222) | static public void exit() {
    method setOrientation (line 1229) | static public void setOrientation(int orient) {
    method triggerStorageAccessFramework (line 1237) | @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    method onActivityResult (line 1243) | @SuppressLint("WrongConstant")

FILE: project/android/app/java/org/tvp/kirikiri2/MediaStoreHack.java
  class MediaStoreHack (line 43) | public class MediaStoreHack {
    method delete (line 55) | public static boolean delete(final Context context, final File file) {
    method getExternalFilesDir (line 75) | private static File getExternalFilesDir(final Context context) {
    method getInputStream (line 79) | public static InputStream
    method getOutputStream (line 98) | public static OutputStream getOutputStream(Context context,String str) {
    method getUriFromFile (line 109) | public static Uri getUriFromFile(final String path,Context context) {
    method getTemporaryAlbumId (line 136) | private static int getTemporaryAlbumId(final Context context) {
    method installTemporaryTrack (line 434) | private static File installTemporaryTrack(final Context context) throw...
    method mkdir (line 450) | public static boolean mkdir(final Context context, final File file) th...
    method mkfile (line 476) | public static boolean mkfile(final Context context, final File file) {

FILE: src/core/base/7zArchive.cpp
  class SevenZipStreamWrap (line 17) | class SevenZipStreamWrap {
    type CSeekInStream (line 22) | struct CSeekInStream : public ISeekInStream {
    method SevenZipStreamWrap (line 27) | SevenZipStreamWrap(tTJSBinaryStream * st) : _stream(st) {
    method SRes (line 40) | SRes StreamRead(void *buf, size_t *size) {
    method SRes (line 44) | SRes StreamSeek(Int64 *pos, ESzSeek origin) {
  class SevenZipArchive (line 58) | class SevenZipArchive : public tTVPArchive, public SevenZipStreamWrap {
    method SevenZipArchive (line 62) | SevenZipArchive(const ttstr & name, tTJSBinaryStream *st) : tTVPArchiv...
    method tjs_uint (line 67) | virtual tjs_uint GetCount() { return filelist.size(); }
    method ttstr (line 68) | virtual ttstr GetName(tjs_uint idx) { return filelist[idx].first; }
    method tTJSBinaryStream (line 69) | virtual tTJSBinaryStream * CreateStreamByIndex(tjs_uint idx) {
    method Open (line 114) | bool Open(bool normalizeFileName) {
  function tTVPArchive (line 142) | tTVPArchive * TVPOpen7ZArchive(const ttstr & name, tTJSBinaryStream *st,...
  function TVPUnpack7ZArchive (line 156) | void TVPUnpack7ZArchive(tTJSBinaryStream *st, ttstr outpath) {

FILE: src/core/base/BinaryStream.cpp
  function tTJSBinaryStream (line 28) | tTJSBinaryStream * TVPCreateBinaryStreamForRead(const ttstr & name,
  function tTJSBinaryStream (line 52) | tTJSBinaryStream * TVPCreateBinaryStreamForWrite(const ttstr & name,

FILE: src/core/base/CharacterSet.cpp
  function tjs_int (line 16) | static tjs_int inline TVPWideCharToUtf8(tjs_char in, char * out)
  function tjs_int (line 93) | tjs_int TVPWideCharToUtf8String(const tjs_char *in, char * out)
  function TVPUtf8ToWideChar (line 121) | static bool inline TVPUtf8ToWideChar(const char * & in, tjs_char *out)
  function tjs_int (line 193) | tjs_int TVPUtf8ToWideCharString(const char * in, tjs_char *out)
  function tjs_int (line 216) | tjs_int TVPUtf8ToWideCharString(const char * in, tjs_uint length, tjs_ch...

FILE: src/core/base/EventIntf.cpp
  class tTVPEvent (line 30) | class tTVPEvent
    method tTVPEvent (line 42) | tTVPEvent(iTJSDispatch2 *target, iTJSDispatch2 *source,
    method tTVPEvent (line 70) | tTVPEvent(const tTVPEvent &ref)
    method Deliver (line 96) | void Deliver()
    method iTJSDispatch2 (line 118) | iTJSDispatch2 * GetTargetNoAddRef() const { return Target; }
    method iTJSDispatch2 (line 119) | iTJSDispatch2 * GetSourceNoAddRef() const { return Source; }
    method ttstr (line 120) | ttstr & GetEventName() { return EventName; }
    method tjs_uint32 (line 121) | tjs_uint32 GetTag() const { return Tag; }
    method tjs_uint32 (line 122) | tjs_uint32 GetFlags() const { return Flags; }
  function tjs_uint64 (line 126) | tjs_uint64 tTVPEvent::GetSequence() const { return Sequence; }
  class tTVPWinUpdateEvent (line 135) | class tTVPWinUpdateEvent
    method tTVPWinUpdateEvent (line 140) | tTVPWinUpdateEvent(tTJSNI_BaseWindow *window)
    method tTVPWinUpdateEvent (line 145) | tTVPWinUpdateEvent(const tTVPWinUpdateEvent & ref)
    method Deliver (line 154) | void Deliver() const
    method tTJSNI_BaseWindow (line 160) | tTJSNI_BaseWindow * GetWindow() const { return Window; }
    method MarkEmpty (line 162) | void MarkEmpty() { Window = NULL; }
    method IsEmpty (line 164) | bool IsEmpty() const { return Window == NULL; }
  function TVPDestroyEventQueue (line 185) | static void TVPDestroyEventQueue()
  function tjs_int (line 307) | tjs_int TVPCancelEvents(iTJSDispatch2 * source, iTJSDispatch2 *target,
  function TVPAreEventsInQueue (line 342) | bool TVPAreEventsInQueue(iTJSDispatch2 * source, iTJSDispatch2 *target,
  function tjs_int (line 367) | tjs_int TVPCountEventsInQueue(iTJSDispatch2 * source, iTJSDispatch2 *tar...
  function TVPCancelEventsByTag (line 393) | void TVPCancelEventsByTag(iTJSDispatch2 * source, iTJSDispatch2 *target,
  function TVPCancelSourceEvents (line 424) | void TVPCancelSourceEvents(iTJSDispatch2 * source)
  function TVPDiscardAllDiscardableEvents (line 452) | void TVPDiscardAllDiscardableEvents()
  function _TVPDeliverEventByPrio (line 480) | static void _TVPDeliverEventByPrio(tjs_uint prio)
  function _TVPDeliverAllEvents2 (line 515) | static bool _TVPDeliverAllEvents2()
  function _TVPDeliverAllEvents (line 563) | static bool _TVPDeliverAllEvents()
  function TVPPostWindowUpdate (line 663) | void TVPPostWindowUpdate(tTJSNI_BaseWindow *window)
  function TVPRemoveWindowUpdate (line 712) | void TVPRemoveWindowUpdate(tTJSNI_BaseWindow *window)
  function TVPDeliverWindowUpdateEvents (line 734) | void TVPDeliverWindowUpdateEvents()
  function TVPPostInputEvent (line 775) | void TVPPostInputEvent(tTVPBaseInputEvent *ev, tjs_uint32 flags)
  function TVPCancelInputEvents (line 807) | void TVPCancelInputEvents(void * source)
  function TVPCancelInputEvents (line 830) | void TVPCancelInputEvents(void * source, tjs_int tag)
  function tjs_int (line 860) | tjs_int TVPGetInputEventCount()
  function iTJSDispatch2 (line 873) | iTJSDispatch2 * TVPCreateEventObject(const tjs_char *type,
  function TVPDestroyContinuousHandlerVector (line 917) | static void TVPDestroyContinuousHandlerVector()
  function TVPAddContinuousEventHook (line 932) | void TVPAddContinuousEventHook(tTVPContinuousEventCallbackIntf *cb)
  function TVPRemoveContinuousEventHook (line 938) | void TVPRemoveContinuousEventHook(tTVPContinuousEventCallbackIntf *cb)
  function _TVPDeliverContinuousEvent (line 949) | static void _TVPDeliverContinuousEvent() // internal
  function TVPAddContinuousHandler (line 1079) | void TVPAddContinuousHandler(tTJSVariantClosure clo)
  function TVPRemoveContinuousHandler (line 1092) | void TVPRemoveContinuousHandler(tTJSVariantClosure clo)
  function TVPAddCompactEventHook (line 1121) | void TVPAddCompactEventHook(tTVPCompactEventCallbackIntf *cb)
  function TVPRemoveCompactEventHook (line 1126) | void TVPRemoveCompactEventHook(tTVPCompactEventCallbackIntf *cb)
  function tjs_error (line 1215) | tjs_error TJS_INTF_METHOD
  function TJS_DECL_EMPTY_FINALIZE_METHOD (line 1304) | TJS_DECL_EMPTY_FINALIZE_METHOD
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1317) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/trigger)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1325) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/cancel)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1337) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/onFire)
  function TJS_BEGIN_NATIVE_PROP_DECL (line 1360) | TJS_BEGIN_NATIVE_PROP_DECL(cached)
  function TJS_END_NATIVE_PROP_GETTER (line 1368) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_SETTER (line 1376) | TJS_END_NATIVE_PROP_SETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1388) | TJS_END_NATIVE_PROP_GETTER
  function tTJSNativeInstance (line 1404) | tTJSNativeInstance *tTJSNC_AsyncTrigger::CreateNativeInstance()
  function tTJSNativeClass (line 1412) | tTJSNativeClass * TVPCreateNativeClass_AsyncTrigger()

FILE: src/core/base/EventIntf.h
  function class (line 150) | class tTVPBaseInputEvent // base user input event class
  function class (line 163) | class tTVPUniqueTagForInputEvent // a class for getting unique tag per a...
  function class (line 232) | class tTVPContinuousEventCallbackIntf // callback class for continuous e...
  function class (line 273) | class tTVPCompactEventCallbackIntf // callback class for compact event d...
  type tTVPAsyncTriggerMode (line 300) | enum tTVPAsyncTriggerMode
  function class (line 309) | class tTJSNI_AsyncTrigger : public tTJSNativeInstance
  function class (line 349) | class tTJSNC_AsyncTrigger : public tTJSNativeClass

FILE: src/core/base/PluginIntf.cpp
  function tTJSNativeInstance (line 41) | tTJSNativeInstance * tTJSNC_Plugins::CreateNativeInstance()

FILE: src/core/base/PluginIntf.h
  function class (line 33) | class tTJSNC_Plugins : public tTJSNativeClass

FILE: src/core/base/ScriptMgnIntf.cpp
  class tTVPTJSGCCallback (line 382) | class tTVPTJSGCCallback : public tTVPCompactEventCallbackIntf
    method OnCompact (line 384) | OnCompact(tjs_int level)
  function TVPInitScriptEngine (line 405) | void TVPInitScriptEngine()
  function TVPUninitScriptEngine (line 567) | void TVPUninitScriptEngine()
  function TVPRestartScriptEngine (line 587) | void TVPRestartScriptEngine()
  function tTJS (line 600) | tTJS * TVPGetScriptEngine()
  function iTJSDispatch2 (line 611) | iTJSDispatch2 * TVPGetScriptDispatch()
  function TVPExecuteScript (line 624) | void TVPExecuteScript(const ttstr& content, tTJSVariant *result)
  function TVPExecuteScript (line 632) | void TVPExecuteScript(const ttstr& content, const ttstr &name, tjs_int l...
  function TVPExecuteScript (line 640) | void TVPExecuteScript(const ttstr& content, iTJSDispatch2 *context, tTJS...
  function TVPExecuteScript (line 648) | void TVPExecuteScript(const ttstr& content, const ttstr &name, tjs_int l...
  function TVPExecuteExpression (line 662) | void TVPExecuteExpression(const ttstr& content, tTJSVariant *result)
  function TVPExecuteExpression (line 667) | void TVPExecuteExpression(const ttstr& content, const ttstr &name, tjs_i...
  function TVPExecuteExpression (line 672) | void TVPExecuteExpression(const ttstr& content, iTJSDispatch2 *context, ...
  function TVPExecuteExpression (line 695) | void TVPExecuteExpression(const ttstr& content, const ttstr &name, tjs_i...
  function TVPExecuteBytecode (line 722) | void TVPExecuteBytecode( const tjs_uint8* content, size_t len, iTJSDispa...
  function TVPExecuteStorage (line 732) | void TVPExecuteStorage(const ttstr &name, tTJSVariant *result, bool isex...
  function TVPExecuteStorage (line 738) | void TVPExecuteStorage(const ttstr &name, iTJSDispatch2 *context, tTJSVa...
  function TVPCompileStorage (line 788) | void TVPCompileStorage( const ttstr& name, bool isrequestresult, bool ou...
  function TVPCreateMessageMapFile (line 822) | void TVPCreateMessageMapFile(const ttstr &filename)
  function TVPDumpScriptEngine (line 857) | void TVPDumpScriptEngine()
  function TVPExecuteStartupScript (line 882) | void TVPExecuteStartupScript()
  function TJSGetSystem_exceptionHandler_Object (line 973) | static bool  TJSGetSystem_exceptionHandler_Object(tTJSVariantClosure & d...
  function TVPProcessUnhandledException (line 1008) | bool TVPProcessUnhandledException(eTJSScriptException &e)
  function TVPProcessUnhandledException (line 1056) | bool TVPProcessUnhandledException(eTJSScriptError &e)
  function TVPProcessUnhandledException (line 1107) | bool TVPProcessUnhandledException(eTJS &e)
  function TVPStartObjectHashMap (line 1159) | void TVPStartObjectHashMap()
  function TVPBeforeProcessUnhandledException (line 1169) | void TVPBeforeProcessUnhandledException()
  function TVPShowScriptException (line 1187) | void TVPShowScriptException(eTJS &e)
  function TVPShowScriptException (line 1202) | void TVPShowScriptException(eTJSScriptError &e)
  function TVPInitializeStartupScript (line 1275) | void TVPInitializeStartupScript()
  function TJS_DECL_EMPTY_FINALIZE_METHOD (line 1300) | TJS_DECL_EMPTY_FINALIZE_METHOD
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1312) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/execStorage)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1331) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/evalStorage)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1350) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/compileStorage) // bytecode
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1377) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/exec)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1401) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/eval)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1425) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/dump)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1434) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/getTraceString)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1452) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/dumpStringHeap)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1462) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/setCallMissing) /* UNDOCUMENT...
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1479) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/getClassNames) /* UNDOCUMENTE...
  function TJS_BEGIN_NATIVE_PROP_DECL (line 1518) | TJS_BEGIN_NATIVE_PROP_DECL(textEncoding)
  function TJS_END_NATIVE_PROP_GETTER (line 1525) | TJS_END_NATIVE_PROP_GETTER
  function tTJSNativeInstance (line 1539) | tTJSNativeInstance * tTJSNC_Scripts::CreateNativeInstance()
  function tTJSNativeClass (line 1552) | tTJSNativeClass * TVPCreateNativeClass_Scripts()

FILE: src/core/base/ScriptMgnIntf.h
  function class (line 145) | class tTJSNC_Scripts : public tTJSNativeClass

FILE: src/core/base/StorageIntf.cpp
  function ttstr (line 59) | ttstr TVPStringFromBMPUnicode(const tjs_uint16 *src, tjs_int maxlen)
  class tTVPStorageMediaManager (line 104) | class tTVPStorageMediaManager
    class tMediaNameString (line 106) | class tMediaNameString : public tTJSString
    class tHashFunc (line 128) | class tHashFunc
      method tjs_uint32 (line 131) | static tjs_uint32 Make(const tMediaNameString &key)
    class tMediaRecord (line 151) | class tMediaRecord
      method tMediaRecord (line 160) | tMediaRecord(iTVPStorageMedia *media) : MediaIntf(media), CurrentDom...
      method tjs_char (line 164) | const tjs_char *GetDomainAndPath(const ttstr &name)
  function ttstr (line 249) | ttstr tTVPStorageMediaManager::NormalizeStorageName(const ttstr &name,
  function ttstr (line 482) | ttstr tTVPStorageMediaManager::ExtractMediaName(const ttstr &name)
  function tTJSBinaryStream (line 501) | tTJSBinaryStream * tTVPStorageMediaManager::Open(const ttstr & name, tjs...
  function ttstr (line 517) | ttstr tTVPStorageMediaManager::GetLocallyAccessibleName(const ttstr &name)
  function TVPGetListAt (line 527) | void TVPGetListAt(const ttstr &name, iTVPStorageLister * lister) {
  function TVPRegisterStorageMedia (line 532) | void TVPRegisterStorageMedia(iTVPStorageMedia *media)
  function TVPUnregisterStorageMedia (line 537) | void TVPUnregisterStorageMedia(iTVPStorageMedia *media)
  function ttstr (line 551) | ttstr TVPNormalizeStorageName(const ttstr & _name)
  function TVPSetCurrentDirectory (line 567) | void TVPSetCurrentDirectory(const ttstr & _name)
  function TVPGetLocalName (line 581) | void TVPGetLocalName(ttstr &name)
  function ttstr (line 588) | ttstr TVPGetLocallyAccessibleName(const ttstr &name)
  function tTJSBinaryStream (line 661) | tTJSBinaryStream * tTVPArchive::CreateStream(const ttstr & name)
  function tjs_int (line 691) | tjs_int tTVPArchive::GetFirstIndexStartsWith(const ttstr & prefix)
  class tTVPArchiveCache (line 732) | class tTVPArchiveCache
    method tTVPArchiveCache (line 740) | tTVPArchiveCache() : ArchiveCache(TVP_DEFAULT_ARCHIVE_CACHE_NUM)
    method SetMaxCount (line 748) | void SetMaxCount(tjs_int maxcount)
    method Clear (line 753) | void Clear()
    method tTVPArchive (line 759) | tTVPArchive * Get(ttstr name)
  function TVPClearArchiveCache (line 787) | static void TVPClearArchiveCache() { TVPArchiveCache.Clear(); }
  function TVPIsExistentStorageNoSearchNoNormalize (line 801) | bool TVPIsExistentStorageNoSearchNoNormalize(const ttstr &name)
  function TVPIsExistentStorageNoSearch (line 834) | bool TVPIsExistentStorageNoSearch(const ttstr &_name)
  function ttstr (line 847) | ttstr TVPExtractStorageExt(const ttstr & name)
  function ttstr (line 883) | ttstr TVPExtractStorageName(const ttstr & name)
  function ttstr (line 913) | ttstr TVPExtractStoragePath(const ttstr & name)
  function ttstr (line 940) | extern ttstr TVPChopStorageExt(const ttstr & name)
  function TVPClearAutoPathCache (line 980) | static void TVPClearAutoPathCache()
  type tTVPClearAutoPathCacheCallback (line 987) | struct tTVPClearAutoPathCacheCallback : public tTVPCompactEventCallbackIntf
    method OnCompact (line 989) | OnCompact(tjs_int level)
  function TVPAddAutoPath (line 1001) | void TVPAddAutoPath(const ttstr & name)
  function TVPRemoveAutoPath (line 1019) | void TVPRemoveAutoPath(const ttstr &name)
  function tjs_uint (line 1037) | static tjs_uint TVPRebuildAutoPathTable()
  function ttstr (line 1155) | ttstr TVPGetPlacedPath(const ttstr & name)
  function ttstr (line 1210) | ttstr TVPSearchPlacedPath(const ttstr & name)
  function TVPIsExistentStorage (line 1224) | bool TVPIsExistentStorage(const ttstr &name)
  function tTJSBinaryStream (line 1238) | static tTJSBinaryStream * _TVPCreateStream(const ttstr & _name, tjs_uint...
  function tTJSBinaryStream (line 1299) | tTJSBinaryStream * TVPCreateStream(const ttstr & _name, tjs_uint32 flags)
  function TVPClearStorageCaches (line 1344) | void TVPClearStorageCaches()
  function TVPRemoveFromStorageCache (line 1352) | void TVPRemoveFromStorageCache(const ttstr &name) {
  function TJS_DECL_EMPTY_FINALIZE_METHOD (line 1366) | TJS_DECL_EMPTY_FINALIZE_METHOD
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1386) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/removeAutoPath)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1400) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/getFullPath)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1413) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/getPlacedPath)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1426) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/isExistentStorage)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1439) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/extractStorageExt)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1452) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/extractStorageName)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1465) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/extractStoragePath)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1478) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/chopStorageExt)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 1491) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/clearArchiveCache)
  function tTJSNativeInstance (line 1501) | tTJSNativeInstance * tTJSNC_Storages::CreateNativeInstance()

FILE: src/core/base/StorageIntf.h
  function class (line 37) | class tTVPArchive
  function virtual (line 46) | virtual ~tTVPArchive() { ; }
  function AddRef (line 49) | void AddRef() { RefCount++; }
  function Release (line 50) | void Release() { if(RefCount == 1) delete this; else RefCount--; }
  function class (line 103) | class iTVPStorageLister // callback class for GetListAt
  function class (line 109) | class iTVPStorageMedia
  function class (line 288) | class tTJSNC_Storages : public tTJSNativeClass
  function class (line 303) | class tTVPStorageMedia : public iTVPStorageMedia {
  function class (line 321) | class TArchiveStream : public tTJSBinaryStream {

FILE: src/core/base/SysInitIntf.cpp
  function TVPSystemInit (line 37) | void TVPSystemInit(void)
  function TVPSystemUninit (line 71) | void TVPSystemUninit(void)
  type tTVPAtExitInfo (line 100) | struct tTVPAtExitInfo
    method tTVPAtExitInfo (line 102) | tTVPAtExitInfo(tjs_int pri, void(*handler)())
  function TVPAddAtExitHandler (line 121) | void TVPAddAtExitHandler(tjs_int pri, void (*handler)())
  function TVPCauseAtExit (line 129) | static void TVPCauseAtExit()

FILE: src/core/base/SysInitIntf.h
  type tTVPAtExit (line 53) | struct tTVPAtExit

FILE: src/core/base/SystemIntf.cpp
  function TVPFireOnApplicationActivateEvent (line 33) | void TVPFireOnApplicationActivateEvent(bool activate_or_deactivate)
  function TJS_DECL_EMPTY_FINALIZE_METHOD (line 95) | TJS_DECL_EMPTY_FINALIZE_METHOD
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 107) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/terminate)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 120) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/exit)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 135) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/inputString)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 165) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/addContinuousHandler)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 179) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/removeContinuousHandler)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 193) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/toActualColor)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 210) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/clearGraphicCache)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 219) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/touchImages)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 251) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/createUUID)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 280) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/assignMessage)
  function TJS_BEGIN_NATIVE_METHOD_DECL (line 297) | TJS_BEGIN_NATIVE_METHOD_DECL(/*func. name*/doCompact)
  function TJS_BEGIN_NATIVE_PROP_DECL (line 316) | TJS_BEGIN_NATIVE_PROP_DECL(versionString)
  function TJS_BEGIN_NATIVE_PROP_DECL (line 329) | TJS_BEGIN_NATIVE_PROP_DECL(versionInformation)
  function TJS_END_NATIVE_PROP_GETTER (line 336) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 349) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_SETTER (line 356) | TJS_END_NATIVE_PROP_SETTER
  function TJS_END_NATIVE_PROP_GETTER (line 367) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_SETTER (line 374) | TJS_END_NATIVE_PROP_SETTER
  function TJS_END_NATIVE_PROP_GETTER (line 385) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 398) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 411) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_SETTER (line 418) | TJS_END_NATIVE_PROP_SETTER
  function TJS_END_NATIVE_PROP_GETTER (line 429) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_SETTER (line 435) | TJS_END_NATIVE_PROP_SETTER
  function TJS_END_NATIVE_PROP_GETTER (line 446) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 462) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 474) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 486) | TJS_END_NATIVE_PROP_GETTER
  function tTJSNativeInstance (line 508) | tTJSNativeInstance * tTJSNC_System::CreateNativeInstance()

FILE: src/core/base/SystemIntf.h
  function class (line 18) | class tTJSNC_System : public tTJSNativeClass

FILE: src/core/base/TARArchive.cpp
  function storeFilename (line 11) | void storeFilename(ttstr &name, const char *narrowName, const ttstr &fil...
  function tjs_uint64 (line 27) | tjs_uint64 parseOctNum(const char *oct, int length)
  class TARArchive (line 39) | class TARArchive : public tTVPArchive {
    type EntryInfo (line 40) | struct EntryInfo {
    method TARArchive (line 49) | TARArchive(const ttstr & arcname) : tTVPArchive(arcname) {
    method init (line 54) | bool init(tTJSBinaryStream * _instr, bool normalizeFileName) {
    method tjs_uint (line 107) | virtual tjs_uint GetCount() { return filelist.size(); }
    method ttstr (line 108) | virtual ttstr GetName(tjs_uint idx) { return filelist[idx].filename; }
  function tTJSBinaryStream (line 112) | tTJSBinaryStream * TARArchive::CreateStreamByIndex(tjs_uint idx) {
  function tTVPArchive (line 117) | tTVPArchive * TVPOpenTARArchive(const ttstr & name, tTJSBinaryStream * s...

FILE: src/core/base/TextStream.cpp
  function utf8_mbtowc (line 25) | int utf8_mbtowc(unsigned short *pwc, const unsigned char *s) {
  function _TextStream_mbstowcs (line 53) | static size_t _TextStream_mbstowcs(int(*func_mbtowc)(unsigned short *, c...
  function TextStream_mbstowcs (line 88) | extern size_t TextStream_mbstowcs(tjs_char *pwcs, const tjs_nchar *s, si...
  function TVPStringDecode (line 112) | bool TVPStringDecode(const void *p, int len, ttstr& result, ttstr encodi...
  function TVPStringEncode (line 134) | bool TVPStringEncode(const ttstr &src, std::string &result, ttstr encodi...
  class tTVPTextReadStream (line 161) | class tTVPTextReadStream : public iTJSTextReadStream
    method tTVPTextReadStream (line 171) | tTVPTextReadStream(const ttstr  & name, const ttstr & modestr)
    method Read (line 337) | Read(tTJSString & targ, tjs_uint size)
    method Destruct (line 453) | Destruct() { delete this; }
  class tTVPTextWriteStream (line 457) | class tTVPTextWriteStream : public iTJSTextWriteStream
    method tTVPTextWriteStream (line 478) | tTVPTextWriteStream(const ttstr & name, const ttstr &modestr)
    method WriteI64LE (line 628) | void WriteI64LE(tjs_uint64 v)
    method Write (line 644) | Write(const ttstr & targ)
    method WriteRawData (line 726) | void WriteRawData(void *ptr, size_t size)
    method Destruct (line 753) | Destruct() { delete this; }
  function iTJSTextReadStream (line 756) | iTJSTextReadStream * TVPCreateTextStreamForRead(const ttstr & name,
  function iTJSTextReadStream (line 762) | iTJSTextReadStream * TVPCreateTextStreamForReadByEncoding(const ttstr & ...
  function iTJSTextWriteStream (line 768) | iTJSTextWriteStream * TVPCreateTextStreamForWrite(const ttstr & name,
  function TVPSetDefaultReadEncoding (line 774) | void TVPSetDefaultReadEncoding(const ttstr& encoding)
  function tjs_char (line 789) | const tjs_char* TVPGetDefaultReadEncoding()

FILE: src/core/base/UtilStreams.cpp
  function tjs_uint64 (line 126) | tjs_uint64 TJS_INTF_METHOD tTVPMemoryStream::Seek(tjs_int64 offset, tjs_...
  function tjs_uint (line 157) | tjs_uint TJS_INTF_METHOD tTVPMemoryStream::Read(void *buffer, tjs_uint r...
  function tjs_uint (line 171) | tjs_uint TJS_INTF_METHOD tTVPMemoryStream::Write(const void *buffer, tjs...
  function tjs_uint64 (line 311) | tjs_uint64 TJS_INTF_METHOD tTVPPartialStream::Seek(tjs_int64 offset, tjs...
  function tjs_uint (line 346) | tjs_uint TJS_INTF_METHOD tTVPPartialStream::Read(void *buffer, tjs_uint ...
  function tjs_uint (line 360) | tjs_uint TJS_INTF_METHOD tTVPPartialStream::Write(const void *buffer, tj...
  function tjs_uint64 (line 365) | tjs_uint64 TJS_INTF_METHOD tTVPPartialStream::GetSize()
  class LibArchive_Archive (line 378) | class LibArchive_Archive : public tTVPArchive {
    type archive (line 379) | struct archive
    type archive_entry (line 383) | struct archive_entry
    method Clear (line 385) | void Clear() {
    method LibArchive_Archive (line 397) | LibArchive_Archive(const ttstr & name, tTJSBinaryStream *st) : tTVPArc...
    method tjs_uint (line 408) | virtual tjs_uint GetCount() { return _filelist.size(); }
    method ttstr (line 409) | virtual ttstr GetName(tjs_uint idx) { return _filelist[idx].first; }
    method tTJSBinaryStream (line 410) | virtual tTJSBinaryStream * CreateStreamByIndex(tjs_uint idx) {
    method Open (line 417) | bool Open(bool normalizeFileName) {
    method Detach (line 439) | void Detach() {
    method la_ssize_t (line 444) | static la_ssize_t read_callback(struct archive *, void *_client_data, ...
    method la_int64_t (line 450) | static la_int64_t seek_callback(struct archive *, void *_client_data, ...
    method la_int64_t (line 455) | static la_int64_t skip_callback(struct archive *, void *_client_data, ...
  function tTVPArchive (line 461) | tTVPArchive *TVPOpenLibArchive(const ttstr & name, tTJSBinaryStream *st,...
  function FILE (line 472) | static FILE *_fileopen(const std::string &strpath) {
  class tTVPUnpackArchiveThread (line 482) | class tTVPUnpackArchiveThread {
    method Entry (line 488) | void Entry() {
    method tTVPUnpackArchiveThread (line 497) | tTVPUnpackArchiveThread(tTVPUnpackArchive *owner) : Owner(owner) {
    method Start (line 508) | void Start() {
  class tTVPUnpackArchiveImplWrap (line 513) | class tTVPUnpackArchiveImplWrap : public iTVPUnpackArchiveImpl {
    method Open (line 523) | virtual bool Open(const std::string &path) override {
    method GetFileCount (line 541) | virtual int GetFileCount() override { return _totalFileCount; }
    method tjs_int64 (line 542) | virtual tjs_int64 GetTotalSize() override { return _totalSize; }
    method ExtractTo (line 543) | virtual void ExtractTo(const std::string &OutPath) {
  class tTVPUnpackArchiveImplLibArchive (line 586) | class tTVPUnpackArchiveImplLibArchive : public iTVPUnpackArchiveImpl {
    type archive (line 588) | struct archive
    type archive (line 594) | struct archive
    method Open (line 608) | virtual bool Open(const std::string &path) override {
    method GetFileCount (line 661) | virtual int GetFileCount() override { return _totalFileCount; }
    method tjs_int64 (line 662) | virtual tjs_int64 GetTotalSize() override { return _totalSize; }
    method ExtractTo (line 664) | virtual void ExtractTo(const std::string &OutPath) {
  type archive (line 756) | struct archive
  class tTVPUnpackArchiveImpl7Zip (line 775) | class tTVPUnpackArchiveImpl7Zip : public tTVPUnpackArchiveImplLibArchive {
    type CSeekInStream (line 778) | struct CSeekInStream : public ISeekInStream {
    method SRes (line 782) | SRes StreamRead(void *buf, size_t *size) {
    method SRes (line 786) | SRes StreamSeek(Int64 *pos, ESzSeek origin) {
    method tTVPUnpackArchiveImpl7Zip (line 800) | tTVPUnpackArchiveImpl7Zip() {
    method Open (line 809) | virtual bool Open(const std::string &path) override {
  class tTVPUnpackArchiveImplUnRAR (line 838) | class tTVPUnpackArchiveImplUnRAR : public iTVPUnpackArchiveImpl {
    type RARArc (line 847) | struct RARArc {
      method RARArc (line 850) | RARArc() {}
      method Open (line 854) | bool Open(const std::string &path, int mode) {
      method Close (line 866) | void Close() {
    method OnCallback (line 871) | int OnCallback(UINT msg, LPARAM P1, LPARAM P2) {
    method Open (line 902) | virtual bool Open(const std::string &path) override {
    method GetFileCount (line 937) | virtual int GetFileCount() override { return _filecount; }
    method tjs_int64 (line 938) | virtual tjs_int64 GetTotalSize() override { return _totalSize; }
    method ExtractTo (line 939) | virtual void ExtractTo(const std::string &path) override {

FILE: src/core/base/UtilStreams.h
  function class (line 23) | class tTVPStreamHolder
  function class (line 79) | class tTVPLocalTempStorageHolder
  function class (line 107) | class tTVPMemoryStream : public tTJSBinaryStream
  function class (line 156) | class tTVPPartialStream : public tTJSBinaryStream
  type tTVPUnpackArchiveCallbacks (line 178) | struct tTVPUnpackArchiveCallbacks {
  function class (line 186) | class iTVPUnpackArchiveImpl {
  function class (line 203) | class tTVPUnpackArchive : public tTVPUnpackArchiveCallbacks {

FILE: src/core/base/XP3Archive.cpp
  function TVPSetXP3ArchiveExtractionFilter (line 31) | void TVPSetXP3ArchiveExtractionFilter(tTVPXP3ArchiveExtractionFilter fil...
  function TVPSetXP3ArchiveContentFilter (line 38) | void TVPSetXP3ArchiveContentFilter(tTVPXP3ArchiveContentFilter filter)
  type tTVPArchiveHandleCacheItem (line 49) | struct tTVPArchiveHandleCacheItem
  function tTJSBinaryStream (line 61) | tTJSBinaryStream * TVPGetCachedArchiveHandle(void * pointer, const ttstr...
  function TVPReleaseCachedArchiveHandle (line 106) | void TVPReleaseCachedArchiveHandle(void * pointer,
  function TVPFreeArchiveHandlePoolByPointer (line 153) | void TVPFreeArchiveHandlePoolByPointer(void * pointer)
  function TVPFreeArchiveHandlePool (line 174) | static void TVPFreeArchiveHandlePool()
  function TVPShutdownArchiveHandleCache (line 195) | static void TVPShutdownArchiveHandleCache()
  function TVPGetXP3ArchiveOffset (line 231) | bool TVPGetXP3ArchiveOffset(tTJSBinaryStream *st, const ttstr name,
  function TVPIsXP3Archive (line 329) | bool TVPIsXP3Archive(const ttstr &name)
  function tTVPArchive (line 557) | tTVPArchive * tTVPXP3Archive::Create(const ttstr & name, tTJSBinaryStrea...
  function tTJSBinaryStream (line 572) | tTJSBinaryStream * tTVPXP3Archive::CreateStreamByIndex(tjs_uint idx)
  function tjs_int16 (line 637) | tjs_int16 tTVPXP3Archive::ReadI16FromMem(const tjs_uint8 *mem)
  function tjs_int32 (line 643) | tjs_int32 tTVPXP3Archive::ReadI32FromMem(const tjs_uint8 *mem)
  function tjs_int64 (line 650) | tjs_int64 tTVPXP3Archive::ReadI64FromMem(const tjs_uint8 *mem)
  type tTVPSegmentCacheSearchData (line 670) | struct tTVPSegmentCacheSearchData
  class tTVPSegmentCacheSearchHashFunc (line 683) | class tTVPSegmentCacheSearchHashFunc
    method tjs_uint32 (line 686) | static tjs_uint32 Make(const tTVPSegmentCacheSearchData &val)
  class tTVPSegmentData (line 696) | class tTVPSegmentData
    method tTVPSegmentData (line 703) | tTVPSegmentData() { RefCount = 1; Size = 0; Data = NULL; }
    method SetData (line 706) | void SetData(unsigned long outsize, tTJSBinaryStream *instream,
    method tjs_uint8 (line 731) | const tjs_uint8 * GetData() const { return Data; }
    method tjs_uint (line 732) | tjs_uint GetSize() const { return Size; }
    method AddRef (line 734) | void AddRef() { RefCount ++; }
    method Release (line 735) | void Release()
  function TVPCheckSegmentCacheLimit (line 758) | static void TVPCheckSegmentCacheLimit()
  function TVPClearXP3SegmentCache (line 780) | void TVPClearXP3SegmentCache()
  type tTVPClearSegmentCacheCallback (line 788) | struct tTVPClearSegmentCacheCallback : public tTVPCompactEventCallbackIntf
    method OnCompact (line 790) | OnCompact(tjs_int level)
  function tTVPSegmentData (line 803) | static tTVPSegmentData * TVPSearchFromSegmentCache(
    method tTVPSegmentData (line 703) | tTVPSegmentData() { RefCount = 1; Size = 0; Data = NULL; }
    method SetData (line 706) | void SetData(unsigned long outsize, tTJSBinaryStream *instream,
    method tjs_uint8 (line 731) | const tjs_uint8 * GetData() const { return Data; }
    method tjs_uint (line 732) | tjs_uint GetSize() const { return Size; }
    method AddRef (line 734) | void AddRef() { RefCount ++; }
    method Release (line 735) | void Release()
  function TVPPushToSegmentCache (line 819) | static void TVPPushToSegmentCache(const tTVPSegmentCacheSearchData &sdat...
  function tjs_uint64 (line 985) | tjs_uint64 TJS_INTF_METHOD tTVPXP3ArchiveStream::Seek(tjs_int64 offset, ...
  function tjs_uint (line 1017) | tjs_uint TJS_INTF_METHOD tTVPXP3ArchiveStream::Read(void *buffer, tjs_ui...
  function tjs_uint (line 1066) | tjs_uint TJS_INTF_METHOD tTVPXP3ArchiveStream::Write(const void *buffer,...
  function tjs_uint64 (line 1071) | tjs_uint64 TJS_INTF_METHOD tTVPXP3ArchiveStream::GetSize()
  function TVPExtractArchive (line 1089) | void TVPExtractArchive(const ttstr & name, const ttstr & _destdir, bool ...

FILE: src/core/base/XP3Archive.h
  type tTVPXP3ExtractionFilterInfo (line 25) | struct tTVPXP3ExtractionFilterInfo
  type tTVPXP3ArchiveSegment (line 86) | struct tTVPXP3ArchiveSegment
  function class (line 95) | class tTVPXP3Archive : public tTVPArchive
  function class (line 149) | class tTVPXP3ArchiveStream : public tTJSBinaryStream

FILE: src/core/base/ZIPArchive.cpp
  type unz_file_info_s (line 23) | struct unz_file_info_s
  type unz64_file_pos_s (line 44) | struct unz64_file_pos_s
  type unz_file_info64_internal_s (line 97) | struct unz_file_info64_internal_s
  type unz_file_info64_s (line 134) | struct unz_file_info64_s
  function voidpf (line 193) | static voidpf zip_open64file(voidpf opaque, const void * filename, int m...
  function zip_closefile (line 204) | static int zip_closefile(voidpf, voidpf s) {
  function local (line 237) | local int unz64local_getByte(const zlib_filefunc64_32_def* pzlib_filefun...
  function local (line 264) | local int unz64local_getShort (const zlib_filefunc64_32_def* pzlib_filef...
  function local (line 291) | local int unz64local_getLong (const zlib_filefunc64_32_def* pzlib_filefu...
  function local (line 327) | local int unz64local_getLong64 (const zlib_filefunc64_32_def* pzlib_file...
  function local (line 374) | local int strcmpcasenosensitive_internal (const char* fileName1, const c...
  function unzStringFileNameCompare (line 415) | int ZEXPORT unzStringFileNameCompare (const char*  fileName1,
  function local (line 438) | local ZPOS64_T unz64local_SearchCentralDir(const zlib_filefunc64_32_def*...
  function local (line 503) | local ZPOS64_T unz64local_SearchCentralDir64(const zlib_filefunc64_32_de...
  function local (line 614) | local unzFile unzOpenInternal (const void *path,
  function unzClose (line 797) | int ZEXPORT unzClose (unzFile file)
  function unzGetGlobalInfo64 (line 817) | int ZEXPORT unzGetGlobalInfo64 (unzFile file, unz_global_info64* pglobal...
  function unzGetGlobalInfo (line 827) | int ZEXPORT unzGetGlobalInfo (unzFile file, unz_global_info* pglobal_inf...
  function local (line 841) | local void unz64local_DosDateToTmuDate (ZPOS64_T ulDosDate, tm_unz* ptm)
  function local (line 857) | local int unz64local_GetCurrentFileInfoInternal (unzFile file,
  function unzGetCurrentFileInfo64 (line 1106) | int ZEXPORT unzGetCurrentFileInfo64 (unzFile file,
  function unzGetCurrentFileInfo (line 1118) | int ZEXPORT unzGetCurrentFileInfo (unzFile file,
  function unzGoToFirstFile64 (line 1161) | int ZEXPORT unzGoToFirstFile64 (unzFile file,
  function unzGoToNextFile64 (line 1188) | int ZEXPORT unzGoToNextFile64 (unzFile file,
  function unzGetFilePos64 (line 1235) | int ZEXPORT unzGetFilePos64(unzFile file, unz64_file_pos*  file_pos)
  function unzGetFilePos (line 1251) | int ZEXPORT unzGetFilePos(
  function unzGoToFilePos64 (line 1265) | int ZEXPORT unzGoToFilePos64(unzFile file, const unz64_file_pos* file_pos)
  function unzGoToFilePos (line 1287) | int ZEXPORT unzGoToFilePos(
  function local (line 1312) | local int unz64local_CheckCurrentFileCoherencyHeader (unz64_s* s, uInt* ...
  function unzOpenCurrentFile3 (line 1399) | int ZEXPORT unzOpenCurrentFile3 (unzFile file, int* method,
  function unzOpenCurrentFile (line 1568) | int ZEXPORT unzOpenCurrentFile (unzFile file)
  function ZPOS64_T (line 1575) | ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64( unzFile file)
  function unzReadCurrentFile (line 1601) | int ZEXPORT unzReadCurrentFile  (unzFile file, voidp buf, unsigned len)
  function z_off_t (line 1806) | z_off_t ZEXPORT unztell (unzFile file)
  function ZPOS64_T (line 1821) | ZPOS64_T ZEXPORT unztell64 (unzFile file)
  function ZEXPORT (line 1841) | int ZEXPORT unzeof (unzFile file)
  function unzGetLocalExtrafield (line 1873) | int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned len)
  function unzCloseCurrentFile (line 1921) | int ZEXPORT unzCloseCurrentFile (unzFile file)
  function unzGetGlobalComment (line 1968) | int ZEXPORT unzGetGlobalComment (unzFile file, char * szComment, uLong u...
  function ZPOS64_T (line 1996) | ZPOS64_T ZEXPORT unzGetOffset64(unzFile file)
  function uLong (line 2011) | uLong ZEXPORT unzGetOffset (unzFile file)
  function unzSetOffset64 (line 2021) | int ZEXPORT unzSetOffset64(unzFile file, ZPOS64_T pos)
  function unzSetOffset (line 2039) | int ZEXPORT unzSetOffset (unzFile file, uLong pos)
  class ZipArchive (line 2044) | class ZipArchive : public tTVPArchive {
    method isValid (line 2053) | bool isValid() { return uf != nullptr; }
    method tjs_uint (line 2054) | virtual tjs_uint GetCount() { return filelist.size(); }
    method ttstr (line 2055) | virtual ttstr GetName(tjs_uint idx) { return filelist[idx].first; }
  function uLong (line 2061) | static uLong zip_readfile(voidpf, voidpf s, void *buf, uLong size) {
  function uLong (line 2065) | static uLong zip_writefile(voidpf, voidpf s, const void *buf, uLong size) {
  function ZPOS64_T (line 2069) | static ZPOS64_T zip_tell64file(voidpf, voidpf s) {
  function zip_seek64file (line 2073) | static long zip_seek64file(voidpf, voidpf s, ZPOS64_T offset, int origin) {
  function tTVPArchive (line 2078) | tTVPArchive * TVPOpenZIPArchive(const ttstr & name, tTJSBinaryStream *st...
  function tTJSBinaryStream (line 2092) | tTJSBinaryStream * ZipArchive::CreateStreamByIndex(tjs_uint idx) {

FILE: src/core/base/common.h
  type std (line 24) | typedef std::basic_string<tjs_char> stdstring;
  type std (line 25) | typedef std::basic_string<tjs_nchar> stdnstring;

FILE: src/core/base/tar.h
  type _POSIX (line 81) | struct _POSIX{	//POSIX ustar format
  type _GNU (line 85) | struct _GNU{	//GNUtar format
  function compsum_oldtar (line 107) | int compsum_oldtar(){

FILE: src/core/base/win32/EventImpl.cpp
  function TVPInvokeEvents (line 31) | void TVPInvokeEvents()
  function TVPEventReceived (line 46) | void TVPEventReceived()
  function TVPCallDeliverAllEventsOnIdle (line 59) | void TVPCallDeliverAllEventsOnIdle()
  function TVPBreathe (line 76) | void TVPBreathe()
  function TVPGetBreathing (line 95) | bool TVPGetBreathing()
  function TVPSetSystemEventDisabledState (line 108) | void TVPSetSystemEventDisabledState(bool en)
  function TVPGetSystemEventDisabledState (line 114) | bool TVPGetSystemEventDisabledState()
  class tTVPContinuousHandlerCallLimitThread (line 127) | class tTVPContinuousHandlerCallLimitThread : public tTVPThread
    method WndProc (line 145) | void WndProc(NativeEvent& ev) {
    method SetInterval (line 152) | void SetInterval(tjs_uint64 interval) { Interval = interval; }
  function TVPBeginContinuousEvent (line 243) | void TVPBeginContinuousEvent()
  function TVPEndContinuousEvent (line 281) | void TVPEndContinuousEvent()
  function TVPReleaseContinuousHandlerCallLimitThread (line 295) | static void TVPReleaseContinuousHandlerCallLimitThread()

FILE: src/core/base/win32/FileSelector.cpp
  function UINT_PTR (line 41) | static UINT_PTR APIENTRY TVPOFNHookProc(HWND hdlg, UINT uiMsg, WPARAM wP...
  function TVPPushFilterPair (line 84) | static void TVPPushFilterPair(std::vector<std::wstring> &filters, std::w...
  function TVPSelectFile (line 102) | bool TVPSelectFile(iTJSDispatch2 *params)

FILE: src/core/base/win32/FuncStubs.cpp
  function TVP_Stub_3d4b725f0b4234d79524822e7c34486b (line 18) | static void __stdcall TVP_Stub_3d4b725f0b4234d79524822e7c34486b(tTJSVari...
  function TVP_Stub_3fc0c32ee41ea0c515f8fbb681e37982 (line 22) | static void __stdcall TVP_Stub_3fc0c32ee41ea0c515f8fbb681e37982(tTJSVari...
  function TVP_Stub_e8dbd4fe012262d9da831e0735aa33b3 (line 26) | static void __stdcall TVP_Stub_e8dbd4fe012262d9da831e0735aa33b3(tTJSVari...
  function TVP_Stub_ace6cce1353865d7376caca1f2124216 (line 30) | static void __stdcall TVP_Stub_ace6cce1353865d7376caca1f2124216(tTJSVari...
  function TVP_Stub_5055344aa8055bc238b79e5f88fc3300 (line 34) | static void __stdcall TVP_Stub_5055344aa8055bc238b79e5f88fc3300(tTJSVari...
  function TVP_Stub_8238c542b814acf1a83c00cced57ba26 (line 38) | static void __stdcall TVP_Stub_8238c542b814acf1a83c00cced57ba26(tTJSVari...
  function TVP_Stub_bd2a14ca8c345fd7f151b08d1792fb60 (line 42) | static void __stdcall TVP_Stub_bd2a14ca8c345fd7f151b08d1792fb60(tTJSVari...
  function TVP_Stub_16d432f9f86738a7688cbfc9b12441ec (line 46) | static void __stdcall TVP_Stub_16d432f9f86738a7688cbfc9b12441ec(tTJSVari...
  function TVP_Stub_6dac00582b8ba529e548ef058c4e869e (line 50) | static void __stdcall TVP_Stub_6dac00582b8ba529e548ef058c4e869e(tTJSVari...
  function TVP_Stub_9193ae470b5efdfe617b5e94cd8f5da6 (line 54) | static void __stdcall TVP_Stub_9193ae470b5efdfe617b5e94cd8f5da6(tTJSVari...
  function TVP_Stub_ec455b6ef0f5da178063db3875973260 (line 58) | static void __stdcall TVP_Stub_ec455b6ef0f5da178063db3875973260(tTJSVari...
  function TVP_Stub_a56aaf685bd171b63b0ef3c894d80ecf (line 62) | static void __stdcall TVP_Stub_a56aaf685bd171b63b0ef3c894d80ecf(tTJSVari...
  function TVP_Stub_9a5fe199cebb9841f94ac0bb7a4a3b6a (line 66) | static void __stdcall TVP_Stub_9a5fe199cebb9841f94ac0bb7a4a3b6a(tTJSVari...
  function TVP_Stub_2acb76a1f86e34afc5fe934d406c6c4c (line 70) | static void __stdcall TVP_Stub_2acb76a1f86e34afc5fe934d406c6c4c(tTJSVari...
  function TVP_Stub_3a4d914ca7d24989c236ad223c002d49 (line 74) | static void __stdcall TVP_Stub_3a4d914ca7d24989c236ad223c002d49(tTJSVari...
  function tTJSVariantType (line 78) | static tTJSVariantType __stdcall TVP_Stub_8fca7d3a123df1eacf228ba89f6a02...
  function TVP_Stub_58be195f96a36c158d638e3b0c79308b (line 82) | static void __stdcall TVP_Stub_58be195f96a36c158d638e3b0c79308b(tTJSVari...
  function tTJSVariantClosure (line 86) | static tTJSVariantClosure & __stdcall TVP_Stub_eaa4d5b1d186a807a63311ab6...
  function TVP_Stub_246f30d208c1d3a4e2b558090f403734 (line 90) | static void __stdcall TVP_Stub_246f30d208c1d3a4e2b558090f403734(tTJSVari...
  function iTJSDispatch2 (line 94) | static iTJSDispatch2 * __stdcall TVP_Stub_3206ef9b7a8013d6572decdea49e7e...
  function TVP_Stub_c5a30d297c3a121879b1392bc6c604ef (line 98) | static void __stdcall TVP_Stub_c5a30d297c3a121879b1392bc6c604ef(tTJSVari...
  function tjs_uint32 (line 102) | static tjs_uint32 * __stdcall TVP_Stub_e398f5aef0ab92bc1323f3b094722fb1(...
  function TVP_Stub_0733b0ac80880897d327dc6f3b04ea9e (line 106) | static void __stdcall TVP_Stub_0733b0ac80880897d327dc6f3b04ea9e(tTJSVari...
  function TVP_Stub_4cb055ed9d8ef71d1af10898965c940c (line 110) | static void __stdcall TVP_Stub_4cb055ed9d8ef71d1af10898965c940c(tTJSVari...
  function TVP_Stub_ef8d198596b7d3143d02ed4450ccefa1 (line 114) | static void __stdcall TVP_Stub_ef8d198596b7d3143d02ed4450ccefa1(tTJSVari...
  function tTJSVariant (line 118) | static tTJSVariant & __stdcall TVP_Stub_d48ea419e040ffe8c20c1e86d80c9a5f...
  function TVP_Stub_679b215ff76a269871d5f325b981e561 (line 122) | static void __stdcall TVP_Stub_679b215ff76a269871d5f325b981e561(tTJSVari...
  function tTJSVariant (line 126) | static tTJSVariant & __stdcall TVP_Stub_1039eff4a4443f9238438485a35a93a7...
  function tTJSVariant (line 130) | static tTJSVariant & __stdcall TVP_Stub_2f873b0ee1c6591ba28bc4b9c0e4c954...
  function tTJSVariant (line 134) | static tTJSVariant & __stdcall TVP_Stub_a583ffb56cdb2ede691e15053a8a165a...
  function tTJSVariant (line 138) | static tTJSVariant & __stdcall TVP_Stub_e09ed277802c1b117e1908421448886d...
  function tTJSVariant (line 142) | static tTJSVariant & __stdcall TVP_Stub_e76dfb9e00f4a9d491117d815f30db7f...
  function tTJSVariant (line 146) | static tTJSVariant & __stdcall TVP_Stub_b000dd8934508d8ec6d6ef976a6ff49b...
  function tTJSVariant (line 150) | static tTJSVariant & __stdcall TVP_Stub_d98ab5c968ebfde4e924901d09190774...
  function tTJSVariant (line 154) | static tTJSVariant & __stdcall TVP_Stub_661e8c10d5d477e6823a840244937cd8...
  function tTJSVariant (line 158) | static tTJSVariant & __stdcall TVP_Stub_6b39e70ea89c4f883689f51289029b69...
  function tTJSVariant (line 162) | static tTJSVariant & __stdcall TVP_Stub_4a18b1c0afe37b84e2b35a7fc07c4e0f...
  function tTJSVariant (line 166) | static tTJSVariant & __stdcall TVP_Stub_48b85c8774d91ca40b2992f0e452f19e...
  function tTJSVariant (line 170) | static tTJSVariant & __stdcall TVP_Stub_5ea8db9a9193fe6bab53baf2bee06b6b...
  function tTJSVariant (line 174) | static tTJSVariant & __stdcall TVP_Stub_46b92626ff6894e993c4f193a129540b...
  function TVP_Stub_6efc1d1f66f0e01a81faf767d7576816 (line 178) | static void __stdcall TVP_Stub_6efc1d1f66f0e01a81faf767d7576816(tTJSVari...
  function TVP_Stub_4ededf58eae77c320b4a6f5f701acafb (line 182) | static void __stdcall TVP_Stub_4ededf58eae77c320b4a6f5f701acafb(tTJSVari...
  function TVP_Stub_028d5fda2f4568f6ab14b49d89650a4d (line 186) | static void __stdcall TVP_Stub_028d5fda2f4568f6ab14b49d89650a4d(tTJSVari...
  function TVP_Stub_11912984b8c094d2df26bf3c3677d096 (line 190) | static void __stdcall TVP_Stub_11912984b8c094d2df26bf3c3677d096(tTJSVari...
  function TVP_Stub_6c0df790c33142e286aea9af6993d931 (line 194) | static void __stdcall TVP_Stub_6c0df790c33142e286aea9af6993d931(tTJSVari...
  function TVP_Stub_c27d85b695cd6e144210785bdfd446ce (line 198) | static void __stdcall TVP_Stub_c27d85b695cd6e144210785bdfd446ce(tTJSVari...
  function TVP_Stub_8422ef7f42009be0ad58a09d64149051 (line 202) | static void __stdcall TVP_Stub_8422ef7f42009be0ad58a09d64149051(tTJSVari...
  function TVP_Stub_ee07e6522577952453206ede39cdf54c (line 206) | static void __stdcall TVP_Stub_ee07e6522577952453206ede39cdf54c(tTJSVari...
  function TVP_Stub_786a65424247e711f6ca31f0a10603d7 (line 210) | static void __stdcall TVP_Stub_786a65424247e711f6ca31f0a10603d7(tTJSVari...
  function TVP_Stub_995a222f2038dd2007f2c1f6429bd19e (line 214) | static void __stdcall TVP_Stub_995a222f2038dd2007f2c1f6429bd19e(tTJSVari...
  function TVP_Stub_da8c6e750d6a9c0557a56ef7f7fd8e88 (line 218) | static void __stdcall TVP_Stub_da8c6e750d6a9c0557a56ef7f7fd8e88(tTJSVari...
  function TVP_Stub_9cf7b0f119bcf3fa4564837ae25429b3 (line 222) | static void __stdcall TVP_Stub_9cf7b0f119bcf3fa4564837ae25429b3(tTJSVari...
  function TVP_Stub_17cbcacad2ed350215d7d700c676ea40 (line 226) | static void __stdcall TVP_Stub_17cbcacad2ed350215d7d700c676ea40(tTJSVari...
  function TVP_Stub_2bd375c0598e9148d88579a51b2f07a8 (line 230) | static void __stdcall TVP_Stub_2bd375c0598e9148d88579a51b2f07a8(tTJSVari...
  function TVP_Stub_4d2c157f8b0b49e57c3e9b5abc9deb0f (line 234) | static void __stdcall TVP_Stub_4d2c157f8b0b49e57c3e9b5abc9deb0f(tTJSVari...
  function TVP_Stub_4b7eaccf64af0f3a4c4fe64f4e2dd3fd (line 238) | static void __stdcall TVP_Stub_4b7eaccf64af0f3a4c4fe64f4e2dd3fd(tTJSVari...
  function TVP_Stub_3a4d2602c392a8d1f4c38d537a8c95e0 (line 242) | static void __stdcall TVP_Stub_3a4d2602c392a8d1f4c38d537a8c95e0(tTJSVari...
  function TVP_Stub_8d915d35ef8e857f245c5d46798618e4 (line 246) | static void __stdcall TVP_Stub_8d915d35ef8e857f245c5d46798618e4(tTJSVari...
  function TVP_Stub_1e463482afa8ca30f5fa7bea4fa5741d (line 250) | static void __stdcall TVP_Stub_1e463482afa8ca30f5fa7bea4fa5741d(tTJSVari...
  function TVP_Stub_fdf270e4080c986abd1649fa9fffdeab (line 254) | static void __stdcall TVP_Stub_fdf270e4080c986abd1649fa9fffdeab(tTJSVari...
  function tTJSVariantType (line 258) | static tTJSVariantType __stdcall TVP_Stub_972e0f9a6ec4648a9fb82bcf5d9095...
  function TVP_Stub_9d76731c37c4664d654db026644c64b4 (line 262) | static bool __stdcall TVP_Stub_9d76731c37c4664d654db026644c64b4(tTJSVari...
  function TVP_Stub_4f1620cb699874b9c8cedf6e321c606e (line 266) | static bool __stdcall TVP_Stub_4f1620cb699874b9c8cedf6e321c606e(tTJSVari...
  function TVP_Stub_ef1c6b2b601d1b0ff70272a4d447aa3c (line 270) | static bool __stdcall TVP_Stub_ef1c6b2b601d1b0ff70272a4d447aa3c(tTJSVari...
  function TVP_Stub_9b7872860c95cfdafb056ab30318e99c (line 274) | static bool __stdcall TVP_Stub_9b7872860c95cfdafb056ab30318e99c(tTJSVari...
  function TVP_Stub_53360f194a04fc142ddae2b9a3ab4c92 (line 278) | static bool __stdcall TVP_Stub_53360f194a04fc142ddae2b9a3ab4c92(tTJSVari...
  function TVP_Stub_ce1dcb05e5e7c4cafbc4ed37f63b256e (line 282) | static bool __stdcall TVP_Stub_ce1dcb05e5e7c4cafbc4ed37f63b256e(tTJSVari...
  function iTJSDispatch2 (line 286) | static iTJSDispatch2 * __stdcall TVP_Stub_841ce4492b37321eea0c1b500de9b3...
  function iTJSDispatch2 (line 290) | static iTJSDispatch2 * __stdcall TVP_Stub_61785de870894968cd9d95e17e88ea...
  function iTJSDispatch2 (line 294) | static iTJSDispatch2 * __stdcall TVP_Stub_ad3236e727398311c3b8e1ddd5f4b2...
  function iTJSDispatch2 (line 298) | static iTJSDispatch2 * __stdcall TVP_Stub_80e0b7be488545ff9b8bc52c9ab5fb...
  function tTJSVariantClosure (line 302) | static tTJSVariantClosure & __stdcall TVP_Stub_4eaa3e4efb319707db6ef81db...
  function tTJSVariantString (line 306) | static tTJSVariantString * __stdcall TVP_Stub_693a0152f098caee7fc77f545d...
  function tTJSVariantString (line 310) | static tTJSVariantString * __stdcall TVP_Stub_42840710f5fba9bb32b95290b1...
  function tjs_char (line 314) | static const tjs_char * __stdcall TVP_Stub_adec3f9ef429aa9a284081f0fc6a1...
  function tTJSVariantOctet (line 318) | static tTJSVariantOctet * __stdcall TVP_Stub_674a7948152a1d7a49050b9d987...
  function tTJSVariantOctet (line 322) | static tTJSVariantOctet * __stdcall TVP_Stub_aa6f132b2031c83062f6149c90f...
  function tTVInteger (line 326) | static tTVInteger __stdcall TVP_Stub_b52f446e22bb92d495f7e65ac71c9bf9(tT...
  function TVP_Stub_d4899fd4a8beb06f192dcb1d300e3319 (line 330) | static void __stdcall TVP_Stub_d4899fd4a8beb06f192dcb1d300e3319(tTJSVari...
  function tTVInteger (line 334) | static tTVInteger __stdcall TVP_Stub_d3f5ec78464d29ee6988a1f90c2e3e1b(tT...
  function TVP_Stub_a463ad6a757c3f04e09a72e288737d06 (line 338) | static bool __stdcall TVP_Stub_a463ad6a757c3f04e09a72e288737d06(tTJSVari...
  function tjs_int (line 342) | static tjs_int __stdcall TVP_Stub_27857bb89d35113183b682c3917d6c7a(tTJSV...
  function tTVReal (line 346) | static tTVReal __stdcall TVP_Stub_a5f80951cfb882ac6a3e06c0b9a95807(tTJSV...
  function tTVReal (line 350) | static tTVReal __stdcall TVP_Stub_35aadb63079c8bd84ebc0389bae306e0(tTJSV...
  function tTJSVariant (line 354) | static tTJSVariant __stdcall TVP_Stub_fb6573df5887c2020ae58136f8342ed4(t...
  function tTJSVariant (line 358) | static tTJSVariant __stdcall TVP_Stub_86c67d2197c46824ab10f59e568ad13a(t...
  function tTJSVariant (line 362) | static tTJSVariant __stdcall TVP_Stub_263a0c5b335b2c4d5bc1f55b51b8315e(t...
  function tTJSVariant (line 366) | static tTJSVariant __stdcall TVP_Stub_975c1099e57ab67122ddef0f44fd7dd5(t...
  function tTJSVariant (line 370) | static tTJSVariant __stdcall TVP_Stub_04493e5237a7ca97afd391cb7e831ba0(t...
  function tTJSVariant (line 374) | static tTJSVariant __stdcall TVP_Stub_9996100acc7705cb2b0c904d6bad4401(t...
  function tTJSVariant (line 378) | static tTJSVariant __stdcall TVP_Stub_5d91cff3b2a26ff7c0543e0f6d737117(t...
  function tTJSVariant (line 382) | static tTJSVariant __stdcall TVP_Stub_ef1dedc2cb58dc4e1afc14238b6fc518(t...
  function tTJSVariant (line 386) | static tTJSVariant __stdcall TVP_Stub_f18397fe81c043ba2346e31b359f6a73(t...
  function tTJSVariant (line 390) | static tTJSVariant __stdcall TVP_Stub_2ee45ad60b0c06a8d0feebc3a6aad9e7(t...
  function tTJSVariant (line 394) | static tTJSVariant __stdcall TVP_Stub_44500491c57e17032951fe6ed268ff1d(t...
  function tTJSVariant (line 398) | static tTJSVariant __stdcall TVP_Stub_056f5d278c75750df792bf8b081fbf7d(t...
  function tTJSVariant (line 402) | static tTJSVariant __stdcall TVP_Stub_04233bc4f7d4df92c260d23110320afe(t...
  function tTJSVariant (line 406) | static tTJSVariant __stdcall TVP_Stub_cdc475c4419e77c22508e337428c4074(t...
  function tTJSVariant (line 410) | static tTJSVariant __stdcall TVP_Stub_06bacb2910308a47bbe27ff7efa1226d(t...
  function tTJSVariant (line 414) | static tTJSVariant __stdcall TVP_Stub_521e053199a4aeb4e0f24d9f4a6cc682(t...
  function tTJSVariant (line 418) | static tTJSVariant __stdcall TVP_Stub_02164e6fb4c925843ac774ec1e4c6e5d(t...
  function tTJSVariant (line 422) | static tTJSVariant __stdcall TVP_Stub_5110cbbcddbd9688281ee5418e3f9023(t...
  function tTJSVariant (line 426) | static tTJSVariant __stdcall TVP_Stub_1db54b61f00bf931452218c4a39e79ef(t...
  function tTJSVariant (line 430) | static tTJSVariant __stdcall TVP_Stub_9d0edd8f51f155767301017bd3d256da(t...
  function tTJSVariant (line 434) | static tTJSVariant __stdcall TVP_Stub_8f744c5aa8df5471939b960bc759f12b(t...
  function tTJSVariant (line 438) | static tTJSVariant __stdcall TVP_Stub_ba7ff7b0b4192bd2cc7f49c7b688ad57(t...
  function tTJSVariant (line 442) | static tTJSVariant __stdcall TVP_Stub_7773ac921bb82c85de3be69ef86265fd(t...
  function tTJSVariant (line 446) | static tTJSVariant __stdcall TVP_Stub_114a781ed71edace31abb352a2671f41(t...
  function TVP_Stub_066fb79f94523d95d12480f23c58cc8e (line 454) | static void __stdcall TVP_Stub_066fb79f94523d95d12480f23c58cc8e(void * p)
  function TVP_Stub_34cc96a5118ee1e12b0750ea64d40b1f (line 462) | static void __stdcall TVP_Stub_34cc96a5118ee1e12b0750ea64d40b1f(void * p)
  function TVP_Stub_8970ba46068ac74746c3e84299937d8f (line 470) | static void __stdcall TVP_Stub_8970ba46068ac74746c3e84299937d8f(tTJSVari...
  function TVP_Stub_438e27dcbb077284213eb4d7dcd43f8f (line 474) | static void __stdcall TVP_Stub_438e27dcbb077284213eb4d7dcd43f8f(tTJSVari...
  function TVP_Stub_a98d712ca19a49afe07d0a7c5d064cef (line 478) | static void __stdcall TVP_Stub_a98d712ca19a49afe07d0a7c5d064cef(tTJSVari...
  function TVP_Stub_08aef69683bcfe2a5c63d4c7866de8e9 (line 482) | static void __stdcall TVP_Stub_08aef69683bcfe2a5c63d4c7866de8e9(tTJSVari...
  function TVP_Stub_dbc9bc2e27068c8426b1c6a7f89424e0 (line 486) | static void __stdcall TVP_Stub_dbc9bc2e27068c8426b1c6a7f89424e0(tTJSVari...
  function TVP_Stub_5eeb98ca016123f57966457533bb639e (line 490) | static void __stdcall TVP_Stub_5eeb98ca016123f57966457533bb639e(tTJSVari...
  function tjs_uint (line 494) | static tjs_uint __stdcall TVP_Stub_98fdc846d0b4a83412f3521f65bb98b4(tTJS...
  function tjs_uint8 (line 498) | static const tjs_uint8 * __stdcall TVP_Stub_3309591d3c7f6f688e81588f169d...
  function TVP_Stub_d83a866389246d824efcc83303a04484 (line 502) | static void __stdcall TVP_Stub_d83a866389246d824efcc83303a04484(tTJSStri...
  function TVP_Stub_6cf6f332a6a14a15e8dce62301f5c840 (line 506) | static void __stdcall TVP_Stub_6cf6f332a6a14a15e8dce62301f5c840(tTJSStri...
  function TVP_Stub_566eeea3c5f009b0fc6fa123ba30f496 (line 510) | static void __stdcall TVP_Stub_566eeea3c5f009b0fc6fa123ba30f496(tTJSStri...
  function TVP_Stub_88806e38e35c73b36acadd4061a4fe0b (line 514) | static void __stdcall TVP_Stub_88806e38e35c73b36acadd4061a4fe0b(tTJSStri...
  function TVP_Stub_3bb69d3886159aaecc333b6ff17287bf (line 518) | static void __stdcall TVP_Stub_3bb69d3886159aaecc333b6ff17287bf(tTJSStri...
  function TVP_Stub_3e36278551a9c8b29cb2e8017db6af0d (line 522) | static void __stdcall TVP_Stub_3e36278551a9c8b29cb2e8017db6af0d(tTJSStri...
  function TVP_Stub_5de99d84f3dc902cb0812fb85a7d5c88 (line 526) | static void __stdcall TVP_Stub_5de99d84f3dc902cb0812fb85a7d5c88(tTJSStri...
  function TVP_Stub_31e85cbc73f8fbd4cea895a751480059 (line 530) | static void __stdcall TVP_Stub_31e85cbc73f8fbd4cea895a751480059(tTJSStri...
  function TVP_Stub_6ae29e405ede762f1a89a9dd526cb36e (line 534) | static void __stdcall TVP_Stub_6ae29e405ede762f1a89a9dd526cb36e(tTJSStri...
  function TVP_Stub_c95bd66d95c153cdac41b5243e555f5f (line 538) | static void __stdcall TVP_Stub_c95bd66d95c153cdac41b5243e555f5f(tTJSStri...
  function TVP_Stub_72a67e9c52fd27dbb66eded47efeea74 (line 542) | static void __stdcall TVP_Stub_72a67e9c52fd27dbb66eded47efeea74(tTJSStri...
  function TVP_Stub_fb13e41bda53e4e59403e3e14effccd6 (line 546) | static void __stdcall TVP_Stub_fb13e41bda53e4e59403e3e14effccd6(tTJSStri...
  function tTJSString (line 550) | static tTJSString & __stdcall TVP_Stub_9a5c710e620e47f105752453ad5d6ab1(...
  function tTJSString (line 554) | static tTJSString & __stdcall TVP_Stub_18f1ad16c11429707cbf8ea4d1d4a21e(...
  function tTJSString (line 558) | static tTJSString & __stdcall TVP_Stub_550f317b573a1256af00586890ae82f1(...
  function TVP_Stub_cd50da721dfb63f36c1ebb1226830428 (line 562) | static void __stdcall TVP_Stub_cd50da721dfb63f36c1ebb1226830428(tTJSStri...
  function TVP_Stub_fbba3dd6a087599d1277ae58f6cec18e (line 566) | static void __stdcall TVP_Stub_fbba3dd6a087599d1277ae58f6cec18e(tTJSStri...
  function TVP_Stub_43cc5b5a61a6090af83333d115b5b868 (line 570) | static void __stdcall TVP_Stub_43cc5b5a61a6090af83333d115b5b868(tTJSStri...
  function TVP_Stub_616fb5060d81eb5bab58647596582df4 (line 574) | static void __stdcall TVP_Stub_616fb5060d81eb5bab58647596582df4(tTJSStri...
  function TVP_Stub_168cf4c1b9ef70b98f2e0ab3695a4f3b (line 578) | static void __stdcall TVP_Stub_168cf4c1b9ef70b98f2e0ab3695a4f3b(tTJSStri...
  function tjs_char (line 582) | static tjs_char * __stdcall TVP_Stub_314573cca30a7c2aecc9166fbf5400c9(tT...
  function tjs_char (line 586) | static tjs_char * __stdcall TVP_Stub_03da356426c038fad663c836c3e330ef(tT...
  function TVP_Stub_31dbebdedc08d75e34a2cd564ce60586 (line 590) | static void __stdcall TVP_Stub_31dbebdedc08d75e34a2cd564ce60586(tTJSStri...
  function TVP_Stub_d9224ad7a0de743a7eea15fdb2c5f934 (line 594) | static void __stdcall TVP_Stub_d9224ad7a0de743a7eea15fdb2c5f934(tTJSStri...
  function TVP_Stub_c01b0720b49ce4f792446d8965d2c31f (line 598) | static void __stdcall TVP_Stub_c01b0720b49ce4f792446d8965d2c31f(tTJSStri...
  function TVP_Stub_4af47e46a11e1357cb994f405289d13e (line 602) | static void __stdcall TVP_Stub_4af47e46a11e1357cb994f405289d13e(tTJSStri...
  function tjs_uint32 (line 606) | static tjs_uint32 * __stdcall TVP_Stub_25b6dafa19bfa5bde1a8b519da248f82(...
  function tjs_char (line 610) | static tjs_char * __stdcall TVP_Stub_72425405819c900aec719491cbd90c6d(tT...
  function tjs_char (line 614) | static const tjs_char * __stdcall TVP_Stub_a79942af73f33bff6e432c9fd808e...
  function tTJSVariantString (line 618) | static tTJSVariantString * __stdcall TVP_Stub_df106470a4141ebc7eda221608...
  function tjs_int64 (line 622) | static tjs_int64 __stdcall TVP_Stub_469bc225b0ecd9561aae5a46b85ded42(tTJ...
  function TVP_Stub_a6663c078b3aa79b39ee2d09f3875765 (line 626) | static bool __stdcall TVP_Stub_a6663c078b3aa79b39ee2d09f3875765(tTJSStri...
  function TVP_Stub_efbe634ce4f13633e220cae167cf63fb (line 630) | static bool __stdcall TVP_Stub_efbe634ce4f13633e220cae167cf63fb(tTJSStri...
  function tjs_int (line 634) | static tjs_int __stdcall TVP_Stub_57f4147bcc09e4e4442ffc9b0895727e(tTJSS...
  function TVP_Stub_1fb2d2e44cf83aebef7b26fd6b20bc2b (line 638) | static bool __stdcall TVP_Stub_1fb2d2e44cf83aebef7b26fd6b20bc2b(tTJSStri...
  function TVP_Stub_bd6aa777bac947f5cffd891e9c724794 (line 642) | static bool __stdcall TVP_Stub_bd6aa777bac947f5cffd891e9c724794(tTJSStri...
  function tjs_int (line 646) | static tjs_int __stdcall TVP_Stub_83c662330b75d616cdc8a4e11d7ababa(tTJSS...
  function TVP_Stub_bbde02fe30c8a6cadb7073174ea3a874 (line 650) | static bool __stdcall TVP_Stub_bbde02fe30c8a6cadb7073174ea3a874(tTJSStri...
  function TVP_Stub_cc1c14f63867f90bc883de03e9212cbc (line 654) | static bool __stdcall TVP_Stub_cc1c14f63867f90bc883de03e9212cbc(tTJSStri...
  function tTJSString (line 658) | static tTJSString __stdcall TVP_Stub_236e007b32bc2631b5f6dc1eda6be0a9(tT...
  function tTJSString (line 662) | static tTJSString __stdcall TVP_Stub_cfbb9809e0e6d954b2652856e935ced9(tT...
  function tTJSString (line 666) | static tTJSString __stdcall TVP_Stub_60ee96ae4a7704340bef20fb35ba6ade(tT...
  function tjs_char (line 670) | static tjs_char __stdcall TVP_Stub_564b37278b50f4e5597dff6540868d49(tTJS...
  function TVP_Stub_890b3a4831b824653e919b4a5197358d (line 674) | static void __stdcall TVP_Stub_890b3a4831b824653e919b4a5197358d(tTJSStri...
  function TVP_Stub_2dfa6c77c5051d160b8a06f540e0d68b (line 678) | static void __stdcall TVP_Stub_2dfa6c77c5051d160b8a06f540e0d68b(tTJSStri...
  function TVP_Stub_05f88567d510fd84659ccbf493f647ed (line 682) | static void __stdcall TVP_Stub_05f88567d510fd84659ccbf493f647ed(tTJSStri...
  function TVP_Stub_7166b8f7bb9688c980e4fa172f06f30c (line 686) | static void __stdcall TVP_Stub_7166b8f7bb9688c980e4fa172f06f30c(tTJSStri...
  function TVP_Stub_b9456ecba8b7898d80d2e5caa64035c9 (line 690) | static bool __stdcall TVP_Stub_b9456ecba8b7898d80d2e5caa64035c9(tTJSStri...
  function TVP_Stub_dd44464bd8430a5be5fef0cffcd97117 (line 694) | static bool __stdcall TVP_Stub_dd44464bd8430a5be5fef0cffcd97117(tTJSStri...
  function tjs_int (line 698) | static tjs_int __stdcall TVP_Stub_a57696ca0c157cd7d3cd4e58c1df957c(tTJSS...
  function TVP_Stub_1aea9f8a38bbb875b6d052f330da9178 (line 702) | static void __stdcall TVP_Stub_1aea9f8a38bbb875b6d052f330da9178(tTJSStri...
  function TVP_Stub_2d3b3d6e22ee139cda9eee47dc031945 (line 706) | static bool __stdcall TVP_Stub_2d3b3d6e22ee139cda9eee47dc031945(tTJSStri...
  function tjs_int (line 710) | static tjs_int __stdcall TVP_Stub_8ff49e56c3c4c566561dcdd5c9ecc4db(tTJSS...
  function tjs_int (line 714) | static tjs_int __stdcall TVP_Stub_490b547e93e40082d0b83312467104f9(tTJSS...
  function tjs_char (line 718) | static tjs_char __stdcall TVP_Stub_2c1ef06748df47df52b586ac0fbc6a34(tTJS...
  function TVP_Stub_8becefbd52c76c7ecb0ea7b7f50b7915 (line 726) | static void __stdcall TVP_Stub_8becefbd52c76c7ecb0ea7b7f50b7915(void * p)
  function TVP_Stub_7cafc2bf5965b594e60830e3057bbd58 (line 734) | static void __stdcall TVP_Stub_7cafc2bf5965b594e60830e3057bbd58(void * p)
  function TVP_Stub_8dc9cef84191f79b38403a2070952fd4 (line 742) | static void __stdcall TVP_Stub_8dc9cef84191f79b38403a2070952fd4(tTJSVari...
  function TVP_Stub_1d42bd1e659b36886c20567497b7ee96 (line 746) | static void __stdcall TVP_Stub_1d42bd1e659b36886c20567497b7ee96(tTJSVari...
  function TVP_Stub_0848fbdc7eeddb12c80bcd9c31383a64 (line 750) | static void __stdcall TVP_Stub_0848fbdc7eeddb12c80bcd9c31383a64(tTJSVari...
  function TVP_Stub_1f1123c906c28ab6d16b6bef3f7ae978 (line 754) | static void __stdcall TVP_Stub_1f1123c906c28ab6d16b6bef3f7ae978(tTJSVari...
  function TVP_Stub_b84394e20cc73a90349cf5be4e783111 (line 758) | static void __stdcall TVP_Stub_b84394e20cc73a90349cf5be4e783111(tTJSVari...
  function TVP_Stub_76e0db3797851fe8ff90cf84780c50ad (line 762) | static void __stdcall TVP_Stub_76e0db3797851fe8ff90cf84780c50ad(tTJSVari...
  function TVP_Stub_6616241156c22bced42cd9f2f647677e (line 766) | static void __stdcall TVP_Stub_6616241156c22bced42cd9f2f647677e(tTJSVari...
  function TVP_Stub_1ace346a3dd546c66ad115a33d8cf693 (line 770) | static void __stdcall TVP_Stub_1ace346a3dd546c66ad115a33d8cf693(tTJSVari...
  function TVP_Stub_96fb9bbe33531d4268573355c658e165 (line 774) | static void __stdcall TVP_Stub_96fb9bbe33531d4268573355c658e165(tTJSVari...
  function tTJSVariantString (line 778) | static tTJSVariantString * __stdcall TVP_Stub_c90b5737134c76f9ed0bb5da7c...
  function tjs_uint32 (line 782) | static tjs_uint32 * __stdcall TVP_Stub_070ed05259a265cabdd82bfedabdd638(...
  function tjs_char (line 786) | static const tjs_char * __stdcall TVP_Stub_008b7e3a4c5bb23ee991f684a5064...
  function tjs_int (line 790) | static tjs_int __stdcall TVP_Stub_b64741dc4544ed43c44ddb6d0eb838ea(tTJSV...
  function tTVInteger (line 794) | static tTVInteger __stdcall TVP_Stub_5b83e28b2d9ab0f75d7c7f6f61b5ded6(tT...
  function tTVReal (line 798) | static tTVReal __stdcall TVP_Stub_b948c9f43837efa489b0b91f3f675710(tTJSV...
  function TVP_Stub_eb83216f6f718245468ef48b97ab4c2d (line 802) | static void __stdcall TVP_Stub_eb83216f6f718245468ef48b97ab4c2d(tTJSVari...
  function tjs_int (line 806) | static tjs_int __stdcall TVP_Stub_c66ab4868b743de9c0ba8b26c67b23da(tTJSV...
  function tjs_int (line 812) | static tjs_int __stdcall TVP_Stub_586e16d502a6ad98b08161bdb090f8b6(const...
  function tjs_char (line 816) | static tjs_char * __stdcall TVP_Stub_d8bc9c71c80b200c39b29167d795cad0(tj...
  function tjs_char (line 820) | static tjs_char * __stdcall TVP_Stub_85df4beb87f6503891e116ce046353c3(tj...
  function tjs_int (line 824) | static tjs_int __stdcall TVP_Stub_35b6a7e1c73f257aae91e05fa9826e84(const...
  function tjs_int (line 828) | static tjs_int __stdcall TVP_Stub_a25b46701e25030af1ed847e0df229eb(const...
  function TVP_Stub_c8906bf1efa5e86f9fddfab55a01c8f6 (line 832) | static void __stdcall TVP_Stub_c8906bf1efa5e86f9fddfab55a01c8f6(tjs_char...
  function TVP_Stub_8141059f613820f694608af28e20cbad (line 836) | static void __stdcall TVP_Stub_8141059f613820f694608af28e20cbad(tjs_char...
  function TVP_Stub_cf2690e47099ac6378ed50df4a8a8e90 (line 840) | static size_t __stdcall TVP_Stub_cf2690e47099ac6378ed50df4a8a8e90(const ...
  function tjs_char (line 845) | static tjs_char * __stdcall TVP_Stub_810c7054e44f535cf250f00707105417(tj...
  function tjs_char (line 849) | static tjs_char * __stdcall TVP_Stub_52a9af7905ddc71d8b4e0ef7366eebdd(tj...
  function TVP_Stub_1635dbae2d91b338ddfd0430f8aa7f10 (line 853) | static void __stdcall TVP_Stub_1635dbae2d91b338ddfd0430f8aa7f10(tjs_char...
  function tTJSVariantString (line 857) | static tTJSVariantString * __stdcall TVP_Stub_30df0c29ad8f672f7fe0742b4b...
  function tTJSVariantString (line 861) | static tTJSVariantString * __stdcall TVP_Stub_61c82dec644c58290a25f34a69...
  function tTJSVariantString (line 865) | static tTJSVariantString * __stdcall TVP_Stub_f08e347d2d47dc5fc9a3cb5935...
  function tTJSVariantString (line 869) | static tTJSVariantString * __stdcall TVP_Stub_5c62e59c2062f658d4c79d5257...
  function tTJSVariantString (line 873) | static tTJSVariantString * __stdcall TVP_Stub_259c72d8bfed1210ca71c54f24...
  function tTJSVariantString (line 877) | static tTJSVariantString * __stdcall TVP_Stub_801a92ace08eb7ed001406869a...
  function tTJSVariantString (line 881) | static tTJSVariantString * __stdcall TVP_Stub_e22e647af4ded8e51b1e76c845...
  function tTJSVariantString (line 885) | static tTJSVariantString * __stdcall TVP_Stub_12902221314df9bcf7f7cb74a5...
  function tTJSVariantString (line 889) | static tTJSVariantString * __stdcall TVP_Stub_b10feea1619ba8ac11237c1200...
  function tjs_char (line 894) | static const tjs_char * __stdcall TVP_Stub_19755b50d241edcb477bdcac22663...
  function tTJSString (line 898) | static tTJSString __stdcall TVP_Stub_040a0ecf46963e094ee8ec32ab3f1962(co...
  function tTJSString (line 902) | static tTJSString __stdcall TVP_Stub_525c529dc687b5d86424d775d00bdfce(co...
  function TVP_Stub_b8788eaa2ca495263c6ea2df264af5f5 (line 910) | static void __stdcall TVP_Stub_b8788eaa2ca495263c6ea2df264af5f5(void * ptr)
  function tjs_uint32 (line 914) | static tjs_uint32 __stdcall TVP_Stub_4c6494008c520d896d699f82aca30b25(tj...
  function tTJSString (line 919) | static tTJSString __stdcall TVP_Stub_7d8f8d5e0832ecf248b19a89801ead0e(co...
  function tTJSString (line 923) | static tTJSString __stdcall TVP_Stub_70849965060a6402f41b0b11ec2bb3a7(tj...
  function tjs_int32 (line 930) | static tjs_int32 __stdcall TVP_Stub_c72efa6b4efaa6664ae637a03e98e866(con...
  function tjs_int32 (line 934) | static tjs_int32 __stdcall TVP_Stub_a250e46575d0df1166e1542613218a5c(con...
  function tjs_char (line 938) | static const tjs_char * __stdcall TVP_Stub_a7bcff67b8d380c225b9d0d83921b...
  function tTJSNativeClassMethod (line 942) | static tTJSNativeClassMethod * __stdcall TVP_Stub_fb68a3aa16bd2eb7d75502...
  function tTJSNativeClassMethod (line 946) | static tTJSNativeClassMethod * __stdcall TVP_Stub_35b4299ede11f511b331b7...
  function tTJSNativeClassProperty (line 950) | static tTJSNativeClassProperty * __stdcall TVP_Stub_efe52691cff20b2dfaa1...
  function TVP_Stub_38eed43ef69251c34dc45695b8cf35c0 (line 954) | static void __stdcall TVP_Stub_38eed43ef69251c34dc45695b8cf35c0(tTJSNati...
  function TVP_Stub_2058b65abdfb7598910f0d584d40a19d (line 958) | static void __stdcall TVP_Stub_2058b65abdfb7598910f0d584d40a19d(tTJSNati...
  function tTJSNativeClassForPlugin (line 962) | static tTJSNativeClassForPlugin * __stdcall TVP_Stub_1ebecaefe2ffdc811fc...
  function TVP_Stub_09e0f0912f8d758d3736ece9478c2686 (line 967) | static void __stdcall TVP_Stub_09e0f0912f8d758d3736ece9478c2686()
  function TVP_Stub_23d61eda3959b087b618e348471e2c36 (line 971) | static void __stdcall TVP_Stub_23d61eda3959b087b618e348471e2c36()
  function tTJSVariantOctet (line 975) | static tTJSVariantOctet * __stdcall TVP_Stub_e99b22c79b5bf04f3382f959c7b...
  function tTJSVariantOctet (line 979) | static tTJSVariantOctet * __stdcall TVP_Stub_9c4bb9ebee4db0fcebeae11c349...
  function tTJSVariantOctet (line 983) | static tTJSVariantOctet * __stdcall TVP_Stub_505a9563aeb1b0255cfcc8197be...
  function tTJSVariantOctet (line 987) | static tTJSVariantOctet * __stdcall TVP_Stub_f5ab80fc67ee04570330b903514...
  function TVP_Stub_af50188bbaa019ee88b19ecd931f7cce (line 991) | static void __stdcall TVP_Stub_af50188bbaa019ee88b19ecd931f7cce(tTJSVari...
  function tTJSVariantString (line 995) | static tTJSVariantString * __stdcall TVP_Stub_268c452e85a6ac75301a6132f4...
  function tTJSVariantString (line 999) | static tTJSVariantString * __stdcall TVP_Stub_646770a19b1768b372c9991ef0...
  function tTJSVariantString (line 1003) | static tTJSVariantString * __stdcall TVP_Stub_5ec88e04fcb8e1877752281e17...
  function tTJSVariantString (line 1007) | static tTJSVariantString * __stdcall TVP_Stub_923f8161f2d2ba0e883bc4edc2...
  function tTJSVariantString (line 1011) | static tTJSVariantString * __stdcall TVP_Stub_6f70cdb7586cbe571204f286f4...
  function tTVInteger (line 1015) | static tTVInteger __stdcall TVP_Stub_9a4eaa6a627038799015c093609bdde7(co...
  function tTVReal (line 1019) | static tTVReal __stdcall TVP_Stub_c8bb6590f4a7adc906d7b3e42d907267(const...
  function iTJSDispatch2 (line 1024) | static iTJSDispatch2 * __stdcall TVP_Stub_8323d57f26876d87271dbfa257b7f7...
  function tjs_int (line 1028) | static tjs_int __stdcall TVP_Stub_4d6f148e8997e1ae0cc0006ec1bd9618(iTJSD...
  function tjs_int (line 1032) | static tjs_int __stdcall TVP_Stub_7f03a4ddb254d0518642d15513eaea85(iTJSD...
  function iTJSDispatch2 (line 1037) | static iTJSDispatch2 * __stdcall TVP_Stub_4add3926c72ba9df9259be58b680de...
  function ttstr (line 1043) | static ttstr __stdcall TVP_Stub_075d42cff8dc0c1fbd99c7459a63e526(const t...
  function ttstr (line 1048) | static ttstr __stdcall TVP_Stub_b6bc45b28e194c7ac98bfdea88edee36(const t...
  function TVP_Stub_6dff6abb075da1a304520e60c011ef7b (line 1053) | static void __stdcall TVP_Stub_6dff6abb075da1a304520e60c011ef7b(tjs_int ...
  function TVP_Stub_892ffbdb8375851fc557e4abe9589b77 (line 1057) | static void __stdcall TVP_Stub_892ffbdb8375851fc557e4abe9589b77()
  function iTJSDispatch2 (line 1061) | static iTJSDispatch2 * __stdcall TVP_Stub_b2f3538284fc2adda2a43272ee654a...
  function ttstr (line 1066) | static ttstr __stdcall TVP_Stub_e0ff899ea4a9cc49a0e3b38deaf93b45()
  function ttstr (line 1070) | static ttstr __stdcall TVP_Stub_4b9c9ac2aafad07af4b16f34e9d4bba2()
  function TVP_Stub_c2e423356d9ca3f26f9c1d294ee9b742 (line 1074) | static void __stdcall TVP_Stub_c2e423356d9ca3f26f9c1d294ee9b742(iTVPStor...
  function TVP_Stub_c07314686fdf5815ce9b058020da942b (line 1078) | static void __stdcall TVP_Stub_c07314686fdf5815ce9b058020da942b(iTVPStor...
  function TVP_Stub_4a197be1985d45ee86d5672d24134560 (line 1082) | static bool __stdcall TVP_Stub_4a197be1985d45ee86d5672d24134560(const tt...
  function TVP_Stub_dec720a9c3cd2b378f195cf71a9ff8b0 (line 1086) | static bool __stdcall TVP_Stub_dec720a9c3cd2b378f195cf71a9ff8b0(const tt...
  function ttstr (line 1090) | static ttstr __stdcall TVP_Stub_5726a5c7af641ebaa504dc9ec8380938(const t...
  function TVP_Stub_1c53bc96ac9dfd483c2227bc5fa44825 (line 1094) | static void __stdcall TVP_Stub_1c53bc96ac9dfd483c2227bc5fa44825(const tt...
  function TVP_Stub_1940c8fa03145aa029d0b7718ce0c809 (line 1098) | static void __stdcall TVP_Stub_1940c8fa03145aa029d0b7718ce0c809(ttstr & ...
  function ttstr (line 1102) | static ttstr __stdcall TVP_Stub_b37f047c0f9bd143b34a2fc87ce5f16e(const t...
  function ttstr (line 1106) | static ttstr __stdcall TVP_Stub_dec35fbd2a24fc32e5c220174d864cf4(const t...
  function ttstr (line 1110) | static ttstr __stdcall TVP_Stub_86fd45a126296891aee413388597203e(const t...
  function ttstr (line 1114) | static ttstr __stdcall TVP_Stub_603243e54f3508c37d993e8359b735dc(const t...
  function TVP_Stub_c3eadbd75b32dabe6faecebf492eb486 (line 1118) | static void __stdcall TVP_Stub_c3eadbd75b32dabe6faecebf492eb486(const tt...
  function TVP_Stub_725e49de1d970ef04b179776666f2c34 (line 1122) | static void __stdcall TVP_Stub_725e49de1d970ef04b179776666f2c34(const tt...
  function ttstr (line 1126) | static ttstr __stdcall TVP_Stub_55a9b73f877bfd4c6d8157e7b1c458df(const t...
  function TVP_Stub_d070209f152dd22087e6e996e02c85cf (line 1130) | static bool __stdcall TVP_Stub_d070209f152dd22087e6e996e02c85cf(const tt...
  function TVP_Stub_308f905626bc51c7ef9b65b2c0ca34b2 (line 1134) | static void __stdcall TVP_Stub_308f905626bc51c7ef9b65b2c0ca34b2()
  function iTJSTextReadStream (line 1139) | static iTJSTextReadStream * __stdcall TVP_Stub_95aab2a1ac9491e8026f4977e...
  function iTJSTextReadStream (line 1143) | static iTJSTextReadStream * __stdcall TVP_Stub_e0ac94325eb783ca2fe7856a5...
  function iTJSTextWriteStream (line 1147) | static iTJSTextWriteStream * __stdcall TVP_Stub_0c99a79e866f08b4df3914e8...
  function TVP_Stub_f2de531a016173057ff3540e47fed4e6 (line 1151) | static void __stdcall TVP_Stub_f2de531a016173057ff3540e47fed4e6(const tt...
  function tjs_char (line 1155) | static const tjs_char * __stdcall TVP_Stub_4224a9066d8d13d6d7e12f1ace6a5...
  function tjs_int (line 1160) | static tjs_int __stdcall TVP_Stub_900476efbc2031e643c042ca8e63a3d7(const...
  function tjs_int (line 1164) | static tjs_int __stdcall TVP_Stub_07dfce61d490cf671a2d5359d713d64a(const...
  function TVP_Stub_52d30ac8479ef7e870b5aff076482799 (line 1169) | static void __stdcall TVP_Stub_52d30ac8479ef7e870b5aff076482799(tTVPXP3A...
  function TVP_Stub_8e4d0392ed46e87f94e5fcf675a124a1 (line 1174) | static void __stdcall TVP_Stub_8e4d0392ed46e87f94e5fcf675a124a1()
  function TVP_Stub_73f46e08d17e707725f433b454f05a89 (line 1178) | static bool __stdcall TVP_Stub_73f46e08d17e707725f433b454f05a89()
  function TVP_Stub_80d60e682fa72973071e335db272a2a2 (line 1182) | static void __stdcall TVP_Stub_80d60e682fa72973071e335db272a2a2(bool en)
  function TVP_Stub_6bd6262185fa0b9cf1750f6a525d893a (line 1186) | static bool __stdcall TVP_Stub_6bd6262185fa0b9cf1750f6a525d893a()
  function TVP_Stub_cf29f737d4eb450b26789d421d0ec69a (line 1190) | static void __stdcall TVP_Stub_cf29f737d4eb450b26789d421d0ec69a(iTJSDisp...
  function tjs_int (line 1194) | static tjs_int __stdcall TVP_Stub_13c0e371c08fd1b9da2f0c103d01c59a(iTJSD...
  function TVP_Stub_82693e38df8f033ea98f9b7969d66d7b (line 1198) | static bool __stdcall TVP_Stub_82693e38df8f033ea98f9b7969d66d7b(iTJSDisp...
  function tjs_int (line 1202) | static tjs_int __stdcall TVP_Stub_6e3f8a3b18f55dae6153a889f00a3e87(iTJSD...
  function TVP_Stub_efe14a197131b4813656d6669cc3475b (line 1206) | static void __stdcall TVP_Stub_efe14a197131b4813656d6669cc3475b(iTJSDisp...
  function TVP_Stub_ba4ecf60f872f757b69c84f457b3e941 (line 1210) | static void __stdcall TVP_Stub_ba4ecf60f872f757b69c84f457b3e941(iTJSDisp...
  function iTJSDispatch2 (line 1214) | static iTJSDispatch2 * __stdcall TVP_Stub_dffedabe32ce886e3b7e695b44ad35...
  function TVP_Stub_f518c60b165658d19a0fadd8f69586aa (line 1218) | static void __stdcall TVP_Stub_f518c60b165658d19a0fadd8f69586aa(tTVPCont...
  function TVP_Stub_6fefcb1c2ca01a876c301ab41dbdab9f (line 1222) | static void __stdcall TVP_Stub_6fefcb1c2ca01a876c301ab41dbdab9f(tTVPCont...
  function TVP_Stub_df55083347df0483b4ca6ba1e4f0b9a0 (line 1226) | static void __stdcall TVP_Stub_df55083347df0483b4ca6ba1e4f0b9a0(tTVPComp...
  function TVP_Stub_d8d28310f702714733c4c5dc850058df (line 1230) | static void __stdcall TVP_Stub_d8d28310f702714733c4c5dc850058df(tTVPComp...
  function ttstr (line 1235) | static ttstr __stdcall TVP_Stub_52d24c38b05be174bc5c4fdcf02e9b9f()
  function ttstr (line 1239) | static ttstr __stdcall TVP_Stub_f27f455c8f30cbaf1706faac3c7b8e02()
  function TVP_Stub_78ec453a50b2800bb01347e8ebbac000 (line 1244) | static bool __stdcall TVP_Stub_78ec453a50b2800bb01347e8ebbac000(tjs_uint...
  function iTJSDispatch2 (line 1249) | static iTJSDispatch2 * __stdcall TVP_Stub_0936d0f6fc53339d255893e58bcc66...
  function TVP_Stub_f4f7181b7fd679784c50b0cc7ba4c60e (line 1253) | static void __stdcall TVP_Stub_f4f7181b7fd679784c50b0cc7ba4c60e(const tt...
  function TVP_Stub_79816d7e5741c2416fefe2c2a8baef00 (line 1257) | static void __stdcall TVP_Stub_79816d7e5741c2416fefe2c2a8baef00(const tt...
  function TVP_Stub_42a3d248fab928f16555abcceca62834 (line 1261) | static void __stdcall TVP_Stub_42a3d248fab928f16555abcceca62834(const tt...
  function TVP_Stub_926d6212b8b1b238e7bef9b17a3ee643 (line 1265) | static void __stdcall TVP_Stub_926d6212b8b1b238e7bef9b17a3ee643(const tt...
  function TVP_Stub_236e3d626784d80ca2cc5b2fe14cd9c6 (line 1269) | static void __stdcall TVP_Stub_236e3d626784d80ca2cc5b2fe14cd9c6(const tt...
  function TVP_Stub_1bfac11a5f95c842f97a8bb57d4019de (line 1273) | static void __stdcall TVP_Stub_1bfac11a5f95c842f97a8bb57d4019de(const tt...
  function TVP_Stub_198ce21c54b0cea4c1bf5eeba35349ab (line 1277) | static void __stdcall TVP_Stub_198ce21c54b0cea4c1bf5eeba35349ab(const tt...
  function TVP_Stub_590a1ec7f64904eaa32b5c771bb5f8cd (line 1281) | static void __stdcall TVP_Stub_590a1ec7f64904eaa32b5c771bb5f8cd(const tt...
  function TVP_Stub_dd13d4bc2b48540a92f047bf015b829b (line 1285) | static void __stdcall TVP_Stub_dd13d4bc2b48540a92f047bf015b829b(const tt...
  function TVP_Stub_0ff502d492598d2211405180bfb4d1e1 (line 1289) | static void __stdcall TVP_Stub_0ff502d492598d2211405180bfb4d1e1(const tt...
  function TVP_Stub_cf5401746759bfe38918087aaab6c57b (line 1293) | static void __stdcall TVP_Stub_cf5401746759bfe38918087aaab6c57b()
  function TVP_Stub_04e84aa7d8cf0477d55c700164544b38 (line 1297) | static void __stdcall TVP_Stub_04e84aa7d8cf0477d55c700164544b38(const tj...
  function TVP_Stub_449039d3afbfbd52a63130a3b227a490 (line 1301) | static void __stdcall TVP_Stub_449039d3afbfbd52a63130a3b227a490(const tt...
  function TVP_Stub_347a4fa85af84e223c4b61d33ead694a (line 1306) | static bool __stdcall TVP_Stub_347a4fa85af84e223c4b61d33ead694a(const tt...
  function TVP_Stub_4ad1dd24b3b4769ee10149eea006af7a (line 1310) | static bool __stdcall TVP_Stub_4ad1dd24b3b4769ee10149eea006af7a(const tt...
  function TVP_Stub_b246b17b62d273bdc04e9d9e827f5c74 (line 1314) | static bool __stdcall TVP_Stub_b246b17b62d273bdc04e9d9e827f5c74(const tt...
  function IStream (line 1318) | static IStream * __stdcall TVP_Stub_9974ebc6296f925cff55d8bcb2d52ce9(con...
  function tTJSBinaryStream (line 1322) | static tTJSBinaryStream * __stdcall TVP_Stub_0e0c9d9107d8c56b8bc4d4198ae...
  function TVP_Stub_c23ece207f6ec2dd7c76ef873047aee3 (line 1327) | static void __stdcall TVP_Stub_c23ece207f6ec2dd7c76ef873047aee3(const ch...
  function TVP_Stub_81507020bc646be2f53ab95b9430ba27 (line 1331) | static void __stdcall TVP_Stub_81507020bc646be2f53ab95b9430ba27(const tj...
  function TVP_Stub_e17db0d4f69625c61aba7fffe540dded (line 1343) | static void __stdcall TVP_Stub_e17db0d4f69625c61aba7fffe540dded(void * pp)
  function tjs_int (line 1347) | static tjs_int __stdcall TVP_Stub_5bbc872e7bba5b761c509d31116e4460()
  function TVP_Stub_4adf361303eae78829250c7b732a5722 (line 1351) | static int __stdcall TVP_Stub_4adf361303eae78829250c7b732a5722(unsigned ...
  function TVP_Stub_bf172364c57c1aa561b145fd5cacda0c (line 1355) | static int __stdcall TVP_Stub_bf172364c57c1aa561b145fd5cacda0c(unsigned ...
  function TVP_Stub_d7687aa80dac10f88deac7aa7e70538a (line 1359) | static int __stdcall TVP_Stub_d7687aa80dac10f88deac7aa7e70538a(unsigned ...
  function TVP_Stub_b18b7259f98029f745c75291d6855ab1 (line 1363) | static void __stdcall TVP_Stub_b18b7259f98029f745c75291d6855ab1(TVP_md5_...
  function TVP_Stub_b79e5d877116025576ca1f76af124009 (line 1367) | static void __stdcall TVP_Stub_b79e5d877116025576ca1f76af124009(TVP_md5_...
  function TVP_Stub_8aea098dfe8a36c705cc2a9e1a189b84 (line 1371) | static void __stdcall TVP_Stub_8aea098dfe8a36c705cc2a9e1a189b84(TVP_md5_...
  function HWND (line 1375) | static HWND __stdcall TVP_Stub_4ccd3f6ab60d61be6dbfc59e8e3d1726()
  function TVP_Stub_3d70bb72a7d7765c7e8ea580079ab7e9 (line 1379) | static void __stdcall TVP_Stub_3d70bb72a7d7765c7e8ea580079ab7e9()
  function TVP_Stub_eba9b272d78a4b0cd7f9212e29a58607 (line 1383) | static void __stdcall TVP_Stub_eba9b272d78a4b0cd7f9212e29a58607()
  function TVP_Stub_cfbe8ee9d43aa64ae4190eac91f7c55f (line 1387) | static bool __stdcall TVP_Stub_cfbe8ee9d43aa64ae4190eac91f7c55f(const tj...
  function TVP_Stub_a4308a386968ef5d23025ab8a9e8c6db (line 1391) | static bool __stdcall TVP_Stub_a4308a386968ef5d23025ab8a9e8c6db(const tj...
  function TVP_Stub_5a4fcbe1e398e3d9690d571acbbbae9f (line 1395) | static void __stdcall TVP_Stub_5a4fcbe1e398e3d9690d571acbbbae9f(tTVPTryB...
  function TVP_Stub_5b62f504fe6d22428d7518d6c52d775d (line 1399) | static bool __stdcall TVP_Stub_5b62f504fe6d22428d7518d6c52d775d(const wc...
  function TVP_Stub_fb3b405f8747b54f26c332b9e6af81cd (line 1404) | static bool __stdcall TVP_Stub_fb3b405f8747b54f26c332b9e6af81cd(const tj...
  function tjs_int (line 1408) | static tjs_int __stdcall TVP_Stub_b7ccd11d130f186883c109d2ba17b598()
  function TVP_Stub_cf8ab6c24f25993ccc7663e572ac2991 (line 1412) | static void __stdcall TVP_Stub_cf8ab6c24f25993ccc7663e572ac2991(const tj...
  function tjs_uint32 (line 1418) | static tjs_uint32 __stdcall TVP_Stub_ba40ffbca76695b54a02aa8c1f1e047b()
  function tjs_int (line 1423) | static tjs_int __stdcall TVP_Stub_c97720e639e95ba5130ce9dd78d30403()
  function tjs_int (line 1427) | static tjs_int __stdcall TVP_Stub_c5557ac5391b1b831a22e64b65d1746c()
  function TVP_Stub_3243a4c32d4f674f1bbc8d3895257568 (line 1431) | static void __stdcall TVP_Stub_3243a4c32d4f674f1bbc8d3895257568(tjs_int ...
  function TVP_Stub_78390a3d08879903ee9558e9df68db4d (line 1435) | static void __stdcall TVP_Stub_78390a3d08879903ee9558e9df68db4d(TVP_THRE...
  function TVP_Stub_58e9454d7096a52808f9a83b9ce25ff0 (line 1439) | static void __stdcall TVP_Stub_58e9454d7096a52808f9a83b9ce25ff0()
  function TVP_Stub_cdefadd0c3bf15b4639b2f0338a40585 (line 1444) | static void __stdcall TVP_Stub_cdefadd0c3bf15b4639b2f0338a40585(const tt...
  function TVP_Stub_4bf80e9bac16b9e3f9bf385b2fbce657 (line 1448) | static void __stdcall TVP_Stub_4bf80e9bac16b9e3f9bf385b2fbce657(const tt...
  function TVP_Stub_51aeacf2b6ef9deb01c3b3db201d6bf9 (line 1453) | static void __stdcall TVP_Stub_51aeacf2b6ef9deb01c3b3db201d6bf9(const vo...
  function TVP_Stub_9ed5432d73448da47991df9577ee97bc (line 1457) | static void __stdcall TVP_Stub_9ed5432d73448da47991df9577ee97bc(void * d...
  function TVP_Stub_cf1d02d1cc1aff0aae6c038c95dac80f (line 1462) | static bool __stdcall TVP_Stub_cf1d02d1cc1aff0aae6c038c95dac80f(tTVPClip...
  function TVP_Stub_ddb0e05c72c0692e78af885ac7ec82dc (line 1466) | static void __stdcall TVP_Stub_ddb0e05c72c0692e78af885ac7ec82dc(const tt...
  function TVP_Stub_a3029db6292616cd16c228b91dc4af13 (line 1470) | static bool __stdcall TVP_Stub_a3029db6292616cd16c228b91dc4af13(ttstr & ...
  function tjs_uint64 (line 1475) | static tjs_uint64 __stdcall TVP_Stub_2d90871c6bc15a9e8d97d24c29e78e3b()
  function ttstr (line 1480) | static ttstr __stdcall TVP_Stub_0af6744e35e38276d6a98c1f382b1519(const t...
  function ttstr (line 1484) | static ttstr __stdcall TVP_Stub_ad40567a051208757642e5e087f3e741(const t...
  function TVP_Stub_6a15185daab9b274963fe5ef46305775 (line 1488) | static void __stdcall TVP_Stub_6a15185daab9b274963fe5ef46305775(const tj...
  function TVP_Stub_073a2332a8ab3ed31ab81daea3d3f2c4 (line 1492) | static void __stdcall TVP_Stub_073a2332a8ab3ed31ab81daea3d3f2c4(const tj...
  function TVP_Stub_01216e91225e06c7422bef0c2febc0cc (line 1496) | static void __stdcall TVP_Stub_01216e91225e06c7422bef0c2febc0cc(const tj...
  function TVP_Stub_16ce22ad500a5bdfd5d5743c847a28b6 (line 1500) | static void __stdcall TVP_Stub_16ce22ad500a5bdfd5d5743c847a28b6(const tj...
  function ttstr (line 1504) | static ttstr __stdcall TVP_Stub_59251c4104f736fa2690c5f77fb0a908()
  function ttstr (line 1508) | static ttstr __stdcall TVP_Stub_f923750e0fdb51a6fc6c304832cb3dd3()
  function ttstr (line 1512) | static ttstr __stdcall TVP_Stub_bc77a1e312ff7827d90387fb92f0f5b0()
  function TVP_Stub_2090afd7ae8bcb021ec4d04947d0d845 (line 1516) | static void __stdcall TVP_Stub_2090afd7ae8bcb021ec4d04947d0d845(tjs_int ...
  function TVP_Stub_3a0f858bdf86199dc2d00b583a3b915f (line 1520) | static void __stdcall TVP_Stub_3a0f858bdf86199dc2d00b583a3b915f(tjs_int ...
  function TVP_Stub_0d316a141f7a502ff8d9ffe2d38d25a8 (line 1525) | static void __stdcall TVP_Stub_0d316a141f7a502ff8d9ffe2d38d25a8(tjs_int1...
  function TVP_Stub_b31ff64ae2d8f93dbf28161d5080b295 (line 1529) | static void __stdcall TVP_Stub_b31ff64ae2d8f93dbf28161d5080b295(tjs_int1...
  function TVP_Stub_d9b1c73516daea6a9c6564e2b731615a (line 1533) | static void __stdcall TVP_Stub_d9b1c73516daea6a9c6564e2b731615a(float * ...
  function TVP_Stub_003f9d3de568fcd71dd532f33d38839c (line 1537) | static void __stdcall TVP_Stub_003f9d3de568fcd71dd532f33d38839c(float * ...
  function TVP_Stub_5da29a19bbe279a89be00e16c59d7641 (line 1542) | static void __stdcall TVP_Stub_5da29a19bbe279a89be00e16c59d7641()
  function IDirectSound (line 1546) | static IDirectSound * __stdcall TVP_Stub_c1b52e8f3578d11f369552a887e13c5b()
  function TVP_Stub_b94ead6de9316bc65758c5aefb564078 (line 1551) | static void __stdcall TVP_Stub_b94ead6de9316bc65758c5aefb564078(const tt...
  function TVP_Stub_8a35be936d2aca049e398a081e511c97 (line 1555) | static void __stdcall TVP_Stub_8a35be936d2aca049e398a081e511c97(const tt...
  function TVP_Stub_5b1fa785e397e643dd09cb43c2f2f4db (line 1559) | static void __stdcall TVP_Stub_5b1fa785e397e643dd09cb43c2f2f4db()
  function tjs_uint32 (line 1569) | static tjs_uint32 __stdcall TVP_Stub_29af78765c764c566e6adc77e0ea7041(tj...
  function tjs_uint32 (line 1573) | static tjs_uint32 __stdcall TVP_Stub_9e0df54e4c24ee28d5517c1743faa3a3(tj...
  function iTJSDispatch2 (line 1577) | static iTJSDispatch2 * __stdcall TVP_Stub_d3aaa55d66777d7308ffa7a348c848...
  function tjs_uint32 (line 1584) | static tjs_uint32 __stdcall TVP_Stub_b426fbfb6ccb4e89c252b6af566995b8()
  function TVP_Stub_c145419db7b63f7488ea05a2a8826c1d (line 1588) | static void __stdcall TVP_Stub_c145419db7b63f7488ea05a2a8826c1d(HWND hWn...
  function TVP_Stub_d795cd5ebfb6ca6f1b91bafbe66d7a65 (line 1592) | static void __stdcall TVP_Stub_d795cd5ebfb6ca6f1b91bafbe66d7a65(HWND hWn...
  function TVP_Stub_4564a3ce5cf48cb47e63a3948cef03be (line 1596) | static void __stdcall TVP_Stub_4564a3ce5cf48cb47e63a3948cef03be(HWND hWnd)
  function TVP_Stub_bee2775f2e4042043b7cb08056d2ae5c (line 1600) | static void __stdcall TVP_Stub_bee2775f2e4042043b7cb08056d2ae5c()
  function IDirect3D9 (line 1604) | static IDirect3D9 * __stdcall TVP_Stub_5fd8dfd2816a2cfd4a51cab41053d575()
  function iTVPScanLineProvider (line 1612) | static iTVPScanLineProvider * __stdcall TVP_Stub_9982ebedc12d343cb098e2a...
  function TVP_Stub_81eeacbed5ee6129bef4b370e28b5d10 (line 1616) | static void __stdcall TVP_Stub_81eeacbed5ee6129bef4b370e28b5d10(iTVPTran...
  function TVP_Stub_6ed1088905d99012d2fb5827ea19527e (line 1620) | static void __stdcall TVP_Stub_6ed1088905d99012d2fb5827ea19527e(iTVPTran...
  function TVP_Stub_b4d6c64cc0004ffaba804f0e8f02ab9b (line 1626) | static void __stdcall TVP_Stub_b4d6c64cc0004ffaba804f0e8f02ab9b(tjs_uint...
  function TVP_Stub_2c3e08b8df93ec50451edd916c707030 (line 1630) | static void __stdcall TVP_Stub_2c3e08b8df93ec50451edd916c707030(tjs_uint...
  function TVP_Stub_eba070d1583ca5f5d02630ba33a5504b (line 1634) | static void __stdcall TVP_Stub_eba070d1583ca5f5d02630ba33a5504b(tjs_uint...
  function TVP_Stub_ee474537852ce5eb165cb1761950faba (line 1638) | static void __stdcall TVP_Stub_ee474537852ce5eb165cb1761950faba(tjs_uint...
  function TVP_Stub_eed221c603243522667e2f1c6ace3ba4 (line 1642) | static void __stdcall TVP_Stub_eed221c603243522667e2f1c6ace3ba4(tjs_uint...
  function TVP_Stub_1f973c5e3cfaf00fa752b7e22d7ba481 (line 1646) | static void __stdcall TVP_Stub_1f973c5e3cfaf00fa752b7e22d7ba481(tjs_uint...
  function TVP_Stub_b9d5260bba9edd7503f1adf882218979 (line 1650) | static void __stdcall TVP_Stub_b9d5260bba9edd7503f1adf882218979(tjs_uint...
  function TVP_Stub_aedbd2eda61145de808e295331884245 (line 1654) | static void __stdcall TVP_Stub_aedbd2eda61145de808e295331884245(tjs_uint...
  function TVP_Stub_ce0f184e84752eb279e4f900d8b53c18 (line 1658) | static void __stdcall TVP_Stub_ce0f184e84752eb279e4f900d8b53c18(tjs_uint...
  function TVP_Stub_0217d49393163b80897d044c1d93092f (line 1662) | static void __stdcall TVP_Stub_0217d49393163b80897d044c1d93092f(tjs_uint...
  function TVP_Stub_5bbd9d5b364840e9615af35a62f69d7d (line 1666) | static void __stdcall TVP_Stub_5bbd9d5b364840e9615af35a62f69d7d(tjs_uint...
  function TVP_Stub_2b2837e81fcaeec35f61a2a3ecf2fb2d (line 1670) | static void __stdcall TVP_Stub_2b2837e81fcaeec35f61a2a3ecf2fb2d(tjs_uint...
  function TVP_Stub_bb0706a78e9066944bfbffd1406be2d4 (line 1674) | static void __stdcall TVP_Stub_bb0706a78e9066944bfbffd1406be2d4(tjs_uint...
  function TVP_Stub_770e67c91215292980b88cc6efb9f2a5 (line 1678) | static void __stdcall TVP_Stub_770e67c91215292980b88cc6efb9f2a5(tjs_uint...
  function TVP_Stub_068ab11f05731f2c2e9ea8c5fdb16a9f (line 1682) | static void __stdcall TVP_Stub_068ab11f05731f2c2e9ea8c5fdb16a9f(tjs_uint...
  function TVP_Stub_b9873a0ad2653952cb2948b817e786e4 (line 1686) | static void __stdcall TVP_Stub_b9873a0ad2653952cb2948b817e786e4(tjs_uint...
  function TVP_Stub_11d9804ae4db32d731af69c397769cbf (line 1690) | static void __stdcall TVP_Stub_11d9804ae4db32d731af69c397769cbf(tjs_uint...
  function TVP_Stub_421f5aa6dbaaaf946f74942c77aac9bc (line 1694) | static void __stdcall TVP_Stub_421f5aa6dbaaaf946f74942c77aac9bc(tjs_uint...
  function TVP_Stub_563ee9dcb14a2914fc246e64679f42b5 (line 1698) | static void __stdcall TVP_Stub_563ee9dcb14a2914fc246e64679f42b5(tjs_uint...
  function TVP_Stub_e23a54b6b80bd03111a40f669524724f (line 1702) | static void __stdcall TVP_Stub_e23a54b6b80bd03111a40f669524724f(tjs_uint...
  function TVP_Stub_c90c8bbd18a7190636ae4269c36ad005 (line 1706) | static void __stdcall TVP_Stub_c90c8bbd18a7190636ae4269c36ad005(tjs_uint...
  function TVP_Stub_03c54a8e8c86e171f868a624e490691f (line 1710) | static void __stdcall TVP_Stub_03c54a8e8c86e171f868a624e490691f(tjs_uint...
  function TVP_Stub_30b63f3cc59b39f1a71829bbbdf6e45d (line 1714) | static void __stdcall TVP_Stub_30b63f3cc59b39f1a71829bbbdf6e45d(tjs_uint...
  function TVP_Stub_705bcc30a0561ec679c2267e1a573b23 (line 1718) | static void __stdcall TVP_Stub_705bcc30a0561ec679c2267e1a573b23(tjs_uint...
  function TVP_Stub_5c627d080007e455b0393a9b4457cd4d (line 1722) | static void __stdcall TVP_Stub_5c627d080007e455b0393a9b4457cd4d(tjs_uint...
  function TVP_Stub_72a64cecd44d80f95fc93faf0d239e32 (line 1726) | static void __stdcall TVP_Stub_72a64cecd44d80f95fc93faf0d239e32(tjs_uint...
  function TVP_Stub_ef838904712bfdc614dbc689fbe7fb18 (line 1730) | static void __stdcall TVP_Stub_ef838904712bfdc614dbc689fbe7fb18(tjs_uint...
  function TVP_Stub_acc97936adc40656e824cfdf7a34e20c (line 1734) | static void __stdcall TVP_Stub_acc97936adc40656e824cfdf7a34e20c(tjs_uint...
  function TVP_Stub_5ea1ba3602f9d9fee344de6c3406d7a3 (line 1738) | static void __stdcall TVP_Stub_5ea1ba3602f9d9fee344de6c3406d7a3(tjs_uint...
  function TVP_Stub_d25f0771b8fc7715d69f01d950463a49 (line 1742) | static void __stdcall TVP_Stub_d25f0771b8fc7715d69f01d950463a49(tjs_uint...
  function TVP_Stub_f8ab11c930782ce058e517d0440ec87f (line 1746) | static void __stdcall TVP_Stub_f8ab11c930782ce058e517d0440ec87f(tjs_uint...
  function TVP_Stub_b8157e369d53c2d944b76494980ced7b (line 1750) | static void __stdcall TVP_Stub_b8157e369d53c2d944b76494980ced7b(tjs_uint...
  function TVP_Stub_aba94f656b4c1de827d11c72b36a5e9c (line 1754) | static void __stdcall TVP_Stub_aba94f656b4c1de827d11c72b36a5e9c(tjs_uint...
  function TVP_Stub_0656942f5a95783a4de73ca6e654d3b5 (line 1758) | static void __stdcall TVP_Stub_0656942f5a95783a4de73ca6e654d3b5(tjs_uint...
  function TVP_Stub_5c2b7d12713dd5a94ef8e6eff1f79752 (line 1762) | static void __stdcall TVP_Stub_5c2b7d12713dd5a94ef8e6eff1f79752(tjs_uint...
  function TVP_Stub_6f1d30ac7e812cc5a059459c47638cd0 (line 1766) | static void __stdcall TVP_Stub_6f1d30ac7e812cc5a059459c47638cd0(tjs_uint...
  function TVP_Stub_1d51684322635e7848ef53f7f6be8a1e (line 1770) | static void __stdcall TVP_Stub_1d51684322635e7848ef53f7f6be8a1e(tjs_uint...
  function TVP_Stub_a1f2d56d138a4038fe1678328910a81d (line 1774) | static void __stdcall TVP_Stub_a1f2d56d138a4038fe1678328910a81d(tjs_uint...
  function TVP_Stub_c135ef491b533febfd49696d22a1dd3d (line 1778) | static void __stdcall TVP_Stub_c135ef491b533febfd49696d22a1dd3d(tjs_uint...
  function TVP_Stub_579117a873b466d78bf93e49c4a078da (line 1782) | static void __stdcall TVP_Stub_579117a873b466d78bf93e49c4a078da(tjs_uint...
  function TVP_Stub_ec8fa08705639eb7ae5d44ab63dea5e8 (line 1786) | static void __stdcall TVP_Stub_ec8fa08705639eb7ae5d44ab63dea5e8(tjs_uint...
  function TVP_Stub_b49dc1cda6109256815dae7b4293725d (line 1790) | static void __stdcall TVP_Stub_b49dc1cda6109256815dae7b4293725d(tjs_uint...
  function TVP_Stub_912a670f56707ac70f2fee13660c2af8 (line 1794) | static void __stdcall TVP_Stub_912a670f56707ac70f2fee13660c2af8(tjs_uint...
  function TVP_Stub_d0159986645df76b8c66fdb662efffde (line 1798) | static void __stdcall TVP_Stub_d0159986645df76b8c66fdb662efffde(tjs_uint...
  function TVP_Stub_cd7a2e6f91bf8d2daa3e28139d7d9f5c (line 1802) | static void __stdcall TVP_Stub_cd7a2e6f91bf8d2daa3e28139d7d9f5c(tjs_uint...
  function TVP_Stub_676004ca892b2bfee6859d0bb132fdd7 (line 1806) | static void __stdcall TVP_Stub_676004ca892b2bfee6859d0bb132fdd7(tjs_uint...
  function TVP_Stub_d4b161d8a745baa5e2113669773a758f (line 1810) | static void __stdcall TVP_Stub_d4b161d8a745baa5e2113669773a758f(tjs_uint...
  function TVP_Stub_ef7537293f6e3b6127480f6c5fd018a1 (line 1814) | static void __stdcall TVP_Stub_ef7537293f6e3b6127480f6c5fd018a1(tjs_uint...
  function TVP_Stub_6f6f73b75cffe40a28566d1832ae1224 (line 1818) | static void __stdcall TVP_Stub_6f6f73b75cffe40a28566d1832ae1224(tjs_uint...
  function TVP_Stub_7adc5aad39e459e01543d07c239efe57 (line 1822) | static void __stdcall TVP_Stub_7adc5aad39e459e01543d07c239efe57(tjs_uint...
  function TVP_Stub_3ff6b480097eec3f5fdb7bfad685fd2a (line 1826) | static void __stdcall TVP_Stub_3ff6b480097eec3f5fdb7bfad685fd2a(tjs_uint...
  function TVP_Stub_b2c50c3a1dfea7e9d05fed69818bafc3 (line 1830) | static void __stdcall TVP_Stub_b2c50c3a1dfea7e9d05fed69818bafc3(tjs_uint...
  function TVP_Stub_8024df9077e2c85b5b718ad2c87e57e7 (line 1834) | static void __stdcall TVP_Stub_8024df9077e2c85b5b718ad2c87e57e7(tjs_uint...
  function TVP_Stub_989769d4eb8e42e9c9bbe721b296406c (line 1838) | static void __stdcall TVP_Stub_989769d4eb8e42e9c9bbe721b296406c(tjs_uint...
  function TVP_Stub_cc1ac928b5c31570dfba7ed8f565be4b (line 1842) | static void __stdcall TVP_Stub_cc1ac928b5c31570dfba7ed8f565be4b(tjs_uint...
  function TVP_Stub_62931efed5729a332e60bd1f7c7cecdf (line 1846) | static void __stdcall TVP_Stub_62931efed5729a332e60bd1f7c7cecdf(tjs_uint...
  function TVP_Stub_53c18160b157088f72a9afd79737b48b (line 1850) | static void __stdcall TVP_Stub_53c18160b157088f72a9afd79737b48b(tjs_uint...
  function TVP_Stub_48135697fd7f4df87402a7dd4d761555 (line 1854) | static void __stdcall TVP_Stub_48135697fd7f4df87402a7dd4d761555(tjs_uint...
  function TVP_Stub_e2c71cf04e876069eb7315c800a96898 (line 1858) | static void __stdcall TVP_Stub_e2c71cf04e876069eb7315c800a96898(tjs_uint...
  function TVP_Stub_1f63c018cf805ca1168af192cf8a4b41 (line 1862) | static void __stdcall TVP_Stub_1f63c018cf805ca1168af192cf8a4b41(tjs_uint...
  function TVP_Stub_704a9574dafd3669e10d546549948e03 (line 1866) | static void __stdcall TVP_Stub_704a9574dafd3669e10d546549948e03(tjs_uint...
  function TVP_Stub_97905c510b9502c20c9322c9f5fb4188 (line 1870) | static void __stdcall TVP_Stub_97905c510b9502c20c9322c9f5fb4188(tjs_uint...
  function TVP_Stub_b23e84230c4736667279c7a71f4ca53e (line 1874) | static void __stdcall TVP_Stub_b23e84230c4736667279c7a71f4ca53e(tjs_uint...
  function TVP_Stub_eb41fc900b0a6e3aba9d531f266137f1 (line 1878) | static void __stdcall TVP_Stub_eb41fc900b0a6e3aba9d531f266137f1(tjs_uint...
  function TVP_Stub_5bd02c627b74bbb22d5a525b8bcbbd27 (line 1882) | static void __stdcall TVP_Stub_5bd02c627b74bbb22d5a525b8bcbbd27(tjs_uint...
  function TVP_Stub_cc82e6a6b31ea743b9ebbdeed1ddedc3 (line 1886) | static void __stdcall TVP_Stub_cc82e6a6b31ea743b9ebbdeed1ddedc3(tjs_uint...
  function TVP_Stub_247b25d497e48bc0191fdb2ac530f4ca (line 1890) | static void __stdcall TVP_Stub_247b25d497e48bc0191fdb2ac530f4ca(tjs_uint...
  function TVP_Stub_6bbea3af36c35631641cc8356ff65475 (line 1894) | static void __stdcall TVP_Stub_6bbea3af36c35631641cc8356ff65475(tjs_uint...
  function TVP_Stub_cac02dfd62ba94abf6a346bef0bf3ab9 (line 1898) | static void __stdcall TVP_Stub_cac02dfd62ba94abf6a346bef0bf3ab9(tjs_uint...
  function TVP_Stub_68eeb36d76d88ff00014f04b23454254 (line 1902) | static void __stdcall TVP_Stub_68eeb36d76d88ff00014f04b23454254(tjs_uint...
  function TVP_Stub_65e03b1c849b6e9cb5c478024aa9a5b7 (line 1906) | static void __stdcall TVP_Stub_65e03b1c849b6e9cb5c478024aa9a5b7(tjs_uint...
  function TVP_Stub_7670c0c5630625ee6a73b7b9ee093650 (line 1910) | static void __stdcall TVP_Stub_7670c0c5630625ee6a73b7b9ee093650(tjs_uint...
  function TVP_Stub_68a0abce6eefa08e74353ec48c4c87a8 (line 1914) | static void __stdcall TVP_Stub_68a0abce6eefa08e74353ec48c4c87a8(tjs_uint...
  function TVP_Stub_ccb6e098b9a0791a0f20e9f1af55e341 (line 1918) | static void __stdcall TVP_Stub_ccb6e098b9a0791a0f20e9f1af55e341(tjs_uint...
  function TVP_Stub_0f817efe47b451fd719c05a104c2b803 (line 1922) | static void __stdcall TVP_Stub_0f817efe47b451fd719c05a104c2b803(tjs_uint...
  function TVP_Stub_efad1a3d774747bd2b5adb221ede2678 (line 1926) | static void __stdcall TVP_Stub_efad1a3d774747bd2b5adb221ede2678(tjs_uint...
  function TVP_Stub_563285ed004ddd2945f91db7b5347d3c (line 1930) | static void __stdcall TVP_Stub_563285ed004ddd2945f91db7b5347d3c(tjs_uint...
  function TVP_Stub_4c032260ef83d44bfe05fdc16843a8f9 (line 1934) | static void __stdcall TVP_Stub_4c032260ef83d44bfe05fdc16843a8f9(tjs_uint...
  function TVP_Stub_96fd614457f06499a430b0c6e0e8a941 (line 1938) | static void __stdcall TVP_Stub_96fd614457f06499a430b0c6e0e8a941(tjs_uint...
  function TVP_Stub_d6e36d304ff7253088ab4bc1aaf13a98 (line 1942) | static void __stdcall TVP_Stub_d6e36d304ff7253088ab4bc1aaf13a98(tjs_uint...
  function TVP_Stub_eddacf49735189e23d9d49831851ffdb (line 1946) | static void __stdcall TVP_Stub_eddacf49735189e23d9d49831851ffdb(tjs_uint...
  function TVP_Stub_20275a5de4aef464b85d3f6db2800063 (line 1950) | static void __stdcall TVP_Stub_20275a5de4aef464b85d3f6db2800063(tjs_uint...
  function TVP_Stub_872d1c626e6d4e3d5e86a257f0b14536 (line 1954) | static void __stdcall TVP_Stub_872d1c626e6d4e3d5e86a257f0b14536(tjs_uint...
  function TVP_Stub_a7ebb70cdec339f26c2ea7fd9a471b88 (line 1958) | static void __stdcall TVP_Stub_a7ebb70cdec339f26c2ea7fd9a471b88(tjs_uint...
  function TVP_Stub_d748ffef5cde2a6a3333e75b7fa3fb49 (line 1962) | static void __stdcall TVP_Stub_d748ffef5cde2a6a3333e75b7fa3fb49(tjs_uint...
  function TVP_Stub_15e1fe0e6230e7b60e216e266f927f7b (line 1966) | static void __stdcall TVP_Stub_15e1fe0e6230e7b60e216e266f927f7b(tjs_uint...
  function TVP_Stub_f8179eafd0cbe8116874310519207dc0 (line 1970) | static void __stdcall TVP_Stub_f8179eafd0cbe8116874310519207dc0(tjs_uint...
  function TVP_Stub_accbc3bed3223d552de2723366cfc2b6 (line 1974) | static void __stdcall TVP_Stub_accbc3bed3223d552de2723366cfc2b6(tjs_uint...
  function TVP_Stub_e2c3e74d2a20a601c1f393348f58aeb2 (line 1978) | static void __stdcall TVP_Stub_e2c3e74d2a20a601c1f393348f58aeb2(tjs_uint...
  function TVP_Stub_e0163a6ca3397c2e71715132cccefa1d (line 1982) | static void __stdcall TVP_Stub_e0163a6ca3397c2e71715132cccefa1d(tjs_uint...
  function TVP_Stub_2c3ea1ea88799dfde81025bf1959333a (line 1986) | static void __stdcall TVP_Stub_2c3ea1ea88799dfde81025bf1959333a(tjs_uint...
  function TVP_Stub_a6bb56b3f4b7a89fe78d63956a0f444c (line 1990) | static void __stdcall TVP_Stub_a6bb56b3f4b7a89fe78d63956a0f444c(tjs_uint...
  function TVP_Stub_09a81ac18a121d8fbb67285a081bf9c6 (line 1994) | static void __stdcall TVP_Stub_09a81ac18a121d8fbb67285a081bf9c6(tjs_uint...
  function TVP_Stub_46fdfe0f5369bf234c3ed60a43947d9d (line 1998) | static void __stdcall TVP_Stub_46fdfe0f5369bf234c3ed60a43947d9d(tjs_uint...
  function TVP_Stub_d866cb6c8a47444bbac60eeffbfc6d96 (line 2002) | static void __stdcall TVP_Stub_d866cb6c8a47444bbac60eeffbfc6d96(tjs_uint...
  function TVP_Stub_7b5718fc67458089c685dbb900126890 (line 2006) | static void __stdcall TVP_Stub_7b5718fc67458089c685dbb900126890(tjs_uint...
  function TVP_Stub_5713dfe9525662357d3819229e0204c2 (line 2010) | static void __stdcall TVP_Stub_5713dfe9525662357d3819229e0204c2(tjs_uint...
  function TVP_Stub_8954a6b4a7f8b378c2af16a00d5059b0 (line 2014) | static void __stdcall TVP_Stub_8954a6b4a7f8b378c2af16a00d5059b0(tjs_uint...
  function TVP_Stub_2ed4faa38db6f3dee0dea18ebe973d35 (line 2018) | static void __stdcall TVP_Stub_2ed4faa38db6f3dee0dea18ebe973d35(tjs_uint...
  function TVP_Stub_d0338dedb0af532d22f2075a85373548 (line 2022) | static void __stdcall TVP_Stub_d0338dedb0af532d22f2075a85373548(tjs_uint...
  function TVP_Stub_583d57c3bb9491f8f9904c266d3f52e8 (line 2026) | static void __stdcall TVP_Stub_583d57c3bb9491f8f9904c266d3f52e8(tjs_uint...
  function TVP_Stub_8ac206da43e322eb8e34fce2b0959656 (line 2030) | static void __stdcall TVP_Stub_8ac206da43e322eb8e34fce2b0959656(tjs_uint...
  function TVP_Stub_14f5f97d90bd8da89b68d035367f4ba4 (line 2034) | static void __stdcall TVP_Stub_14f5f97d90bd8da89b68d035367f4ba4(tjs_uint...
  function TVP_Stub_ac3b21181ef4c1be73cf5e0edb4e1a8f (line 2038) | static void __stdcall TVP_Stub_ac3b21181ef4c1be73cf5e0edb4e1a8f(tjs_uint...
  function TVP_Stub_1d7d97509292a4ca9269f2539dcc70fd (line 2042) | static void __stdcall TVP_Stub_1d7d97509292a4ca9269f2539dcc70fd(tjs_uint...
  function TVP_Stub_c4033f54a99517783b8d6ad23c90aeed (line 2046) | static void __stdcall TVP_Stub_c4033f54a99517783b8d6ad23c90aeed(tjs_uint...
  function TVP_Stub_f19e38d48755c971fc35408ac65562fa (line 2050) | static void __stdcall TVP_Stub_f19e38d48755c971fc35408ac65562fa(tjs_uint...
  function TVP_Stub_e01204e226d8aa9520b3620b68da6196 (line 2054) | static void __stdcall TVP_Stub_e01204e226d8aa9520b3620b68da6196(tjs_uint...
  function TVP_Stub_b50000da98f1257cf789fc63fb1fda02 (line 2058) | static void __stdcall TVP_Stub_b50000da98f1257cf789fc63fb1fda02(tjs_uint...
  function TVP_Stub_c55f38b1a7623646aa5cc45d4f4f479b (line 2062) | static void __stdcall TVP_Stub_c55f38b1a7623646aa5cc45d4f4f479b(tjs_uint...
  function TVP_Stub_983d270549ec0e83e2a863b43e1e6f70 (line 2066) | static void __stdcall TVP_Stub_983d270549ec0e83e2a863b43e1e6f70(tjs_uint...
  function TVP_Stub_b48d779dc6a881c67c5f8fa12655aa28 (line 2070) | static void __stdcall TVP_Stub_b48d779dc6a881c67c5f8fa12655aa28(tjs_uint...
  function TVP_Stub_d3967c6e24d0c4ad107a03c1cadd57b1 (line 2074) | static void __stdcall TVP_Stub_d3967c6e24d0c4ad107a03c1cadd57b1(tjs_uint...
  function TVP_Stub_6b6f416b5725a7cafb4774ffc3a00f10 (line 2078) | static void __stdcall TVP_Stub_6b6f416b5725a7cafb4774ffc3a00f10(tjs_uint...
  function TVP_Stub_bc7fc5dfa228152a09d2230823c2fe71 (line 2082) | static void __stdcall TVP_Stub_bc7fc5dfa228152a09d2230823c2fe71(tjs_uint...
  function TVP_Stub_a1cb941317b947beb88e29fa8d46a2be (line 2086) | static void __stdcall TVP_Stub_a1cb941317b947beb88e29fa8d46a2be(tjs_uint...
  function TVP_Stub_8e185e82bb27a7fb40f0b08f560a57e9 (line 2090) | static void __stdcall TVP_Stub_8e185e82bb27a7fb40f0b08f560a57e9(tjs_uint...
  function TVP_Stub_4b7b264b61ee0eea68213934217f5865 (line 2094) | static void __stdcall TVP_Stub_4b7b264b61ee0eea68213934217f5865(tjs_uint...
  function TVP_Stub_e872f12593d6853ebdffebbb5d003c10 (line 2098) | static void __stdcall TVP_Stub_e872f12593d6853ebdffebbb5d003c10(tjs_uint...
  function TVP_Stub_e86fcf60fa658129d937de3728d3c432 (line 2102) | static void __stdcall TVP_Stub_e86fcf60fa658129d937de3728d3c432(tjs_uint...
  function TVP_Stub_350741a7398a187628866f5b397c7a99 (line 2106) | static void __stdcall TVP_Stub_350741a7398a187628866f5b397c7a99(tjs_uint...
  function TVP_Stub_3b5a3e187077b0b5eac9a040c99dd9e7 (line 2110) | static void __stdcall TVP_Stub_3b5a3e187077b0b5eac9a040c99dd9e7(tjs_uint...
  function TVP_Stub_2d9b2bb2cd57220048fe170f1e960cb7 (line 2114) | static void __stdcall TVP_Stub_2d9b2bb2cd57220048fe170f1e960cb7(tjs_uint...
  function TVP_Stub_260624e275a20115e8861eb7b0383971 (line 2118) | static void __stdcall TVP_Stub_260624e275a20115e8861eb7b0383971(tjs_uint...
  function TVP_Stub_15b31724287dbbecb775b2e46dc35fb9 (line 2122) | static void __stdcall TVP_Stub_15b31724287dbbecb775b2e46dc35fb9(tjs_uint...
  function TVP_Stub_ff652293eef07b5a7ec4f372e5504e2c (line 2126) | static void __stdcall TVP_Stub_ff652293eef07b5a7ec4f372e5504e2c(tjs_uint...
  function TVP_Stub_99b773033e9a2c631b483d4d0e3881f8 (line 2130) | static void __stdcall TVP_Stub_99b773033e9a2c631b483d4d0e3881f8(tjs_uint...
  function TVP_Stub_3787960fc29b8545629d894ff46d4641 (line 2134) | static void __stdcall TVP_Stub_3787960fc29b8545629d894ff46d4641(tjs_uint...
  function TVP_Stub_3fc76257bb1639de4bfa0c0fcedf9c4a (line 2138) | static void __stdcall TVP_Stub_3fc76257bb1639de4bfa0c0fcedf9c4a(tjs_uint...
  function TVP_Stub_292ee2eeb8131e34368ba9ee144b737a (line 2142) | static void __stdcall TVP_Stub_292ee2eeb8131e34368ba9ee144b737a(tjs_uint...
  function TVP_Stub_ec144655bc61bfa2c6e9505cc1a0a298 (line 2146) | static void __stdcall TVP_Stub_ec144655bc61bfa2c6e9505cc1a0a298(tjs_uint...
  function TVP_Stub_230218bdabfc34178a8306a54276a3c8 (line 2150) | static void __stdcall TVP_Stub_230218bdabfc34178a8306a54276a3c8(tjs_uint...
  function TVP_Stub_617dfb046aaf40078ee76715fa4756af (line 2154) | static void __stdcall TVP_Stub_617dfb046aaf40078ee76715fa4756af(tjs_uint...
  function TVP_Stub_8116bb2b26dcafd9fefca76e9f1d9b24 (line 2158) | static void __stdcall TVP_Stub_8116bb2b26dcafd9fefca76e9f1d9b24(tjs_uint...
  function TVP_Stub_12962f857563cd39b3cb1f9894775cc7 (line 2162) | static void __stdcall TVP_Stub_12962f857563cd39b3cb1f9894775cc7(tjs_uint...
  function TVP_Stub_50c0d25cd9af311a5fb0aca78f691c3b (line 2166) | static void __stdcall TVP_Stub_50c0d25cd9af311a5fb0aca78f691c3b(tjs_uint...
  function TVP_Stub_6c37a1ccda816c4fbab4f0117ca75e8a (line 2170) | static void __stdcall TVP_Stub_6c37a1ccda816c4fbab4f0117ca75e8a(tjs_uint...
  function TVP_Stub_e21c21762dd0e36d6f7d2cedaac97383 (line 2174) | static void __stdcall TVP_Stub_e21c21762dd0e36d6f7d2cedaac97383(tjs_uint...
  function TVP_Stub_487ee86557f94113db9a981e08d29caa (line 2178) | static void __stdcall TVP_Stub_487ee86557f94113db9a981e08d29caa(tjs_uint...
  function TVP_Stub_dfdfe0e494845bf484612cc97145f85c (line 2182) | static void __stdcall TVP_Stub_dfdfe0e494845bf484612cc97145f85c(tjs_uint...
  function TVP_Stub_e74dc11dbd56fb450eed1388a65d3102 (line 2186) | static void __stdcall TVP_Stub_e74dc11dbd56fb450eed1388a65d3102(tjs_uint...
  function TVP_Stub_6981c02247de5799ea7dfbd79fdc208d (line 2190) | static void __stdcall TVP_Stub_6981c02247de5799ea7dfbd79fdc208d(tjs_uint...
  function TVP_Stub_7c559043315f6ecd7a86ec7d8d820f6d (line 2194) | static void __stdcall TVP_Stub_7c559043315f6ecd7a86ec7d8d820f6d(tjs_uint...
  function TVP_Stub_3a8b6aca73c83d6fc9ce813661ec734d (line 2198) | static void __stdcall TVP_Stub_3a8b6aca73c83d6fc9ce813661ec734d(tjs_uint...
  function TVP_Stub_20d7ce65e240b745b10616bb5da1f897 (line 2202) | static void __stdcall TVP_Stub_20d7ce65e240b745b10616bb5da1f897(tjs_uint...
  function TVP_Stub_f4d1217249674ac9274d358c381afc0b (line 2206) | static void __stdcall TVP_Stub_f4d1217249674ac9274d358c381afc0b(tjs_uint...
  function TVP_Stub_ca77323bbe361f88f68536018fa94c50 (line 2210) | static void __stdcall TVP_Stub_ca77323bbe361f88f68536018fa94c50(tjs_uint...
  function TVP_Stub_17983ecc7e7fe370bce664281a84c948 (line 2214) | static void __stdcall TVP_Stub_17983ecc7e7fe370bce664281a84c948(tjs_uint...
  function TVP_Stub_61a2f61030362903d00ba21a3cebecdd (line 2218) | static void __stdcall TVP_Stub_61a2f61030362903d00ba21a3cebecdd(tjs_uint...
  function TVP_Stub_e9f985403dbd18540d8230a2af6ed76b (line 2222) | static void __stdcall TVP_Stub_e9f985403dbd18540d8230a2af6ed76b(tjs_uint...
  function TVP_Stub_be0523c9a72ba26cb4bfa3cb188cacf6 (line 2226) | static void __stdcall TVP_Stub_be0523c9a72ba26cb4bfa3cb188cacf6(tjs_uint...
  function TVP_Stub_8ac7cf651223c8ba53df90cf4f3d3bbc (line 2230) | static void __stdcall TVP_Stub_8ac7cf651223c8ba53df90cf4f3d3bbc(tjs_uint...
  function TVP_Stub_873e73aa35096ad4c684d394a10135a6 (line 2234) | static void __stdcall TVP_Stub_873e73aa35096ad4c684d394a10135a6(tjs_uint...
  function TVP_Stub_3342548f105147c86019ae31ece01d4e (line 2238) | static void __stdcall TVP_Stub_3342548f105147c86019ae31ece01d4e(tjs_uint...
  function TVP_Stub_607ee0956cbb16b2afb7cb2227aa6267 (line 2242) | static void __stdcall TVP_Stub_607ee0956cbb16b2afb7cb2227aa6267(tjs_uint...
  function TVP_Stub_816d84c86e86d5e7c0018d551e741e4f (line 2246) | static void __stdcall TVP_Stub_816d84c86e86d5e7c0018d551e741e4f(tjs_uint...
  function TVP_Stub_985fcda0141eb3b4c6bd8342e947f130 (line 2250) | static void __stdcall TVP_Stub_985fcda0141eb3b4c6bd8342e947f130(tjs_uint...
  function TVP_Stub_d00e4f9e493334d2f65ea379ff03d717 (line 2254) | static void __stdcall TVP_Stub_d00e4f9e493334d2f65ea379ff03d717(tjs_uint...
  function TVP_Stub_0c246e6c7c8798e4c10d2bbfc66326c9 (line 2258) | static void __stdcall TVP_Stub_0c246e6c7c8798e4c10d2bbfc66326c9(tjs_uint...
  function TVP_Stub_501015843a83368b3ff1c7c9ef5f3bcb (line 2262) | static void __stdcall TVP_Stub_501015843a83368b3ff1c7c9ef5f3bcb(tjs_uint...
  function TVP_Stub_61d5fc5a060f346752a3a8b6886d17bc (line 2266) | static void __stdcall TVP_Stub_61d5fc5a060f346752a3a8b6886d17bc(tTVPGLGa...
  function TVP_Stub_0debe3e1caf0f57572a59917851676d3 (line 2270) | static void __stdcall TVP_Stub_0debe3e1caf0f57572a59917851676d3(tTVPGLGa...
  function TVP_Stub_ee3a36682f48639166ba04a19fe1b332 (line 2274) | static void __stdcall TVP_Stub_ee3a36682f48639166ba04a19fe1b332(tjs_uint...
  function TVP_Stub_4d99b9e38121251b40a90cd2bd5fea63 (line 2278) | static void __stdcall TVP_Stub_4d99b9e38121251b40a90cd2bd5fea63(tjs_uint...
  function TVP_Stub_f1509827696ebf5627bee1a45d675fb8 (line 2282) | static void __stdcall TVP_Stub_f1509827696ebf5627bee1a45d675fb8(tjs_uint...
  function TVP_Stub_bbb625e23229350453161810c41419dd (line 2286) | static void __stdcall TVP_Stub_bbb625e23229350453161810c41419dd(tjs_uint...
  function TVP_Stub_489a6aae30de0feff5d3c5fbd42ae325 (line 2290) | static void __stdcall TVP_Stub_489a6aae30de0feff5d3c5fbd42ae325(tjs_uint...
  function TVP_Stub_6b9a349305f8c689dcfdbcea2566769c (line 2294) | static void __stdcall TVP_Stub_6b9a349305f8c689dcfdbcea2566769c(tjs_uint...
  function TVP_Stub_6320d208ce1a570aca52c3cdf7421f7c (line 2298) | static void __stdcall TVP_Stub_6320d208ce1a570aca52c3cdf7421f7c(tjs_uint...
  function TVP_Stub_0f83f0459badd1cd352041b9243d712f (line 2302) | static void __stdcall TVP_Stub_0f83f0459badd1cd352041b9243d712f(tjs_uint...
  function TVP_Stub_186a94b2fed609ed2d2a7ac1a2bed87f (line 2306) | static void __stdcall TVP_Stub_186a94b2fed609ed2d2a7ac1a2bed87f(tjs_uint...
  function TVP_Stub_bde8efb9971664f2b52fe912745e2791 (line 2310) | static void __stdcall TVP_Stub_bde8efb9971664f2b52fe912745e2791(tjs_uint...
  function TVP_Stub_386d6fa5cb73e3519b62d20470e5414b (line 2314) | static void __stdcall TVP_Stub_386d6fa5cb73e3519b62d20470e5414b(tjs_uint...
  function TVP_Stub_c61f97ec3d99bdbb23afe93870001bbf (line 2318) | static void __stdcall TVP_Stub_c61f97ec3d99bdbb23afe93870001bbf(tjs_uint...
  function TVP_Stub_f92821f2b23662c6f1256511a626cd3f (line 2322) | static void __stdcall TVP_Stub_f92821f2b23662c6f1256511a626cd3f(tjs_uint...
  function TVP_Stub_76b0732e3e2886897d5f26b4b0545dee (line 2326) | static void __stdcall TVP_Stub_76b0732e3e2886897d5f26b4b0545dee(tjs_uint...
  function TVP_Stub_903ed11ef3863850e837bd4b3b1d61a1 (line 2330) | static void __stdcall TVP_Stub_903ed11ef3863850e837bd4b3b1d61a1(tjs_uint...
  function TVP_Stub_2661124b39595ffafe2fb0bfb7bd2efc (line 2334) | static void __stdcall TVP_Stub_2661124b39595ffafe2fb0bfb7bd2efc(tjs_uint...
  function TVP_Stub_d0b7170e54398c2f9d27dcc513c4cf46 (line 2338) | static void __stdcall TVP_Stub_d0b7170e54398c2f9d27dcc513c4cf46(tjs_uint...
  function TVP_Stub_31bdd2a1eed3785c1422fab5ea6b3ce7 (line 2342) | static void __stdcall TVP_Stub_31bdd2a1eed3785c1422fab5ea6b3ce7(tjs_uint...
  function TVP_Stub_dbc300d1dadc1a60cb0dcadfb92f1aee (line 2346) | static void __stdcall TVP_Stub_dbc300d1dadc1a60cb0dcadfb92f1aee(tjs_uint...
  function TVP_Stub_1d4d9f8bdf55bd4c78abd90656af0364 (line 2350) | static void __stdcall TVP_Stub_1d4d9f8bdf55bd4c78abd90656af0364(tjs_uint...
  function TVP_Stub_5c7049e712e84b40ac05942421202de5 (line 2354) | static void __stdcall TVP_Stub_5c7049e712e84b40ac05942421202de5(tjs_uint...
  function TVP_Stub_5dca8992bb340d70ba65ddab65c28371 (line 2358) | static void __stdcall TVP_Stub_5dca8992bb340d70ba65ddab65c28371(tjs_uint...
  function TVP_Stub_85f1f38f783ebfcf638f3c443bc9b204 (line 2362) | static void __stdcall TVP_Stub_85f1f38f783ebfcf638f3c443bc9b204(tjs_uint...
  function TVP_Stub_7d61d143884bfa4b6c50dae11c2b659f (line 2366) | static void __stdcall TVP_Stub_7d61d143884bfa4b6c50dae11c2b659f(tjs_uint...
  function TVP_Stub_793a2ad7ad3411be3670576a8e6ddcf8 (line 2370) | static void __stdcall TVP_Stub_793a2ad7ad3411be3670576a8e6ddcf8(tjs_uint...
  function TVP_Stub_68d8eec33254f1684e53bbc0aa8b2466 (line 2374) | static void __stdcall TVP_Stub_68d8eec33254f1684e53bbc0aa8b2466(tjs_uint...
  function TVP_Stub_b09652d2197b29f7d38aff0298c69f17 (line 2378) | static void __stdcall TVP_Stub_b09652d2197b29f7d38aff0298c69f17(tjs_uint...
  function TVP_Stub_be7db03ddcf1886cb7233e58f19c8c77 (line 2382) | static void __stdcall TVP_Stub_be7db03ddcf1886cb7233e58f19c8c77(tjs_uint...
  function TVP_Stub_b4c8fedc1ffbe30d9703cb2b8d3c0e7b (line 2386) | static void __stdcall TVP_Stub_b4c8fedc1ffbe30d9703cb2b8d3c0e7b(tjs_uint...
  function TVP_Stub_77efef3b4ffc0cb577b76304e06e39f3 (line 2390) | static void __stdcall TVP_Stub_77efef3b4ffc0cb577b76304e06e39f3(tjs_uint...
  function TVP_Stub_0e55187bde599d6585eaabd2c4ac3f02 (line 2394) | static void __stdcall TVP_Stub_0e55187bde599d6585eaabd2c4ac3f02(tjs_uint...
  function tjs_int (line 2398) | static tjs_int __stdcall TVP_Stub_f72e3fc3b97a9141b6f516f5e53bf9b8(tjs_u...
  function TVP_Stub_e7a1ac237f00bb6320d0e0ac7e6d51c6 (line 2402) | static void __stdcall TVP_Stub_e7a1ac237f00bb6320d0e0ac7e6d51c6(tjs_int8...
  function TVP_Stub_d87682f6d691350878077bd101b7f0fc (line 2406) | static void __stdcall TVP_Stub_d87682f6d691350878077bd101b7f0fc(tjs_int8...
  function TVP_Stub_d7ae155eaabd8e65d6b4d356fe4af496 (line 2410) | static void __stdcall TVP_Stub_d7ae155eaabd8e65d6b4d356fe4af496(tjs_uint...
  function TVP_Stub_be3a1844ea6af533bd4e7b0a76c826a1 (line 2414) | static void __stdcall TVP_Stub_be3a1844ea6af533bd4e7b0a76c826a1(tjs_uint...
  function TVP_Stub_aa531d2c3c87f456e48a14722faa1c1f (line 2418) | static void __stdcall TVP_Stub_aa531d2c3c87f456e48a14722faa1c1f(tjs_uint...
  function TVP_Stub_6889cd886e1c2e7faf541528636c16c3 (line 2422) | static void __stdcall TVP_Stub_6889cd886e1c2e7faf541528636c16c3(tjs_uint...
  function TVP_Stub_5d9266e6a8a154fe4ba80b0995e109ab (line 2426) | static void __stdcall TVP_Stub_5d9266e6a8a154fe4ba80b0995e109ab(tjs_uint...
  function TVP_Stub_a7dc19b023737979ad1ae1ae01d560d2 (line 2430) | static void __stdcall TVP_Stub_a7dc19b023737979ad1ae1ae01d560d2(tjs_uint...
  function TVP_Stub_d20444b7a6243d668a0d3956d95af510 (line 2434) | static void __stdcall TVP_Stub_d20444b7a6243d668a0d3956d95af510(tjs_uint...
  function TVP_Stub_1458dec9eee36816c8002d4049840355 (line 2438) | static void __stdcall TVP_Stub_1458dec9eee36816c8002d4049840355(tjs_uint...
  function TVP_Stub_21137ff5351245b1611852301b7f5796 (line 2442) | static void __stdcall TVP_Stub_21137ff5351245b1611852301b7f5796(tjs_uint...
  function TVP_Stub_c07fc4e45fc2dc44d839c5e012d0be60 (line 2446) | static void __stdcall TVP_Stub_c07fc4e45fc2dc44d839c5e012d0be60(tjs_uint...
  function TVP_Stub_6815b962a3122ae967284239932cc656 (line 2450) | static void __stdcall TVP_Stub_6815b962a3122ae967284239932cc656(tjs_uint...
  function TVP_Stub_e96cccbe1f16b0fb74673f2ec3343ff8 (line 2454) | static void __stdcall TVP_Stub_e96cccbe1f16b0fb74673f2ec3343ff8(tjs_uint...
  function TVP_Stub_e8cd7494f919b18a992cb8c2722b2bf0 (line 2458) | static void __stdcall TVP_Stub_e8cd7494f919b18a992cb8c2722b2bf0(tjs_uint...
  function TVP_Stub_990fdefcafc0de5e8e1f502c1b341e44 (line 2462) | static void __stdcall TVP_Stub_990fdefcafc0de5e8e1f502c1b341e44(tjs_uint...
  function TVP_Stub_de5d83ba307e822825062377fb76c2ba (line 2466) | static void __stdcall TVP_Stub_de5d83ba307e822825062377fb76c2ba(tjs_uint...
  function TVP_Stub_5e28bcc0f5ad6a038eb5a6535b56386c (line 2470) | static void __stdcall TVP_Stub_5e28bcc0f5ad6a038eb5a6535b56386c(tjs_uint...
  function TVP_Stub_e33419e8ede4bb501ab1787cf17c7ca5 (line 2474) | static void __stdcall TVP_Stub_e33419e8ede4bb501ab1787cf17c7ca5(tjs_uint...
  function TVP_Stub_1cd7cb9580c0cf723dea402b85a720b1 (line 2478) | static void __stdcall TVP_Stub_1cd7cb9580c0cf723dea402b85a720b1(tjs_uint...
  function TVP_Stub_d18ca17fad389ff60ce3caa769083798 (line 2482) | static void __stdcall TVP_Stub_d18ca17fad389ff60ce3caa769083798(tjs_uint...
  function TVP_Stub_0a959a5ff02530a8eb122e7e1f8ceed3 (line 2486) | static void __stdcall TVP_Stub_0a959a5ff02530a8eb122e7e1f8ceed3(tjs_uint...
  function TVP_Stub_a4774ea559e64b4667b3845f8540d207 (line 2490) | static void __stdcall TVP_Stub_a4774ea559e64b4667b3845f8540d207(tjs_uint...
  function TVP_Stub_52eae3e8106494bfa604c15492ecb9f4 (line 2494) | static void __stdcall TVP_Stub_52eae3e8106494bfa604c15492ecb9f4(tjs_uint...
  function TVP_Stub_882f458df5e05bb9ab2222e79f6c81cf (line 2498) | static void __stdcall TVP_Stub_882f458df5e05bb9ab2222e79f6c81cf(tjs_uint...
  function TVP_Stub_6069a18bf7d3f394c230cdcf2f574ef4 (line 2502) | static void __stdcall TVP_Stub_6069a18bf7d3f394c230cdcf2f574ef4(tjs_uint...
  function TVP_Stub_75b60565caf44027cc52b2b5cf6b0ea3 (line 2506) | static void __stdcall TVP_Stub_75b60565caf44027cc52b2b5cf6b0ea3(tjs_uint...
  function TVP_Stub_9d735149c3ad586363895f76645abf2e (line 2510) | static void __stdcall TVP_Stub_9d735149c3ad586363895f76645abf2e(tjs_uint...
  function TVP_Stub_ea5168fae254acdd8c8db6f1f3d2da03 (line 2514) | static void __stdcall TVP_Stub_ea5168fae254acdd8c8db6f1f3d2da03(tjs_uint...
  function TVP_Stub_f5a42bd5239e1a0be29f92eb838d2c8c (line 2518) | static void __stdcall TVP_Stub_f5a42bd5239e1a0be29f92eb838d2c8c(tjs_uint...
  function TVP_Stub_7cc8cd9f415b183b42c546635aeade7f (line 2522) | static void __stdcall TVP_Stub_7cc8cd9f415b183b42c546635aeade7f(tjs_uint...
  function TVP_Stub_ad2fefa53e05528f9c1fe29d27db0f37 (line 2526) | static void __stdcall TVP_Stub_ad2fefa53e05528f9c1fe29d27db0f37(tjs_uint...
  function TVP_Stub_f3e06fed4c82a9bd1b53252abaf50847 (line 2530) | static void __stdcall TVP_Stub_f3e06fed4c82a9bd1b53252abaf50847(tjs_uint...
  function TVP_Stub_960db7ea36202bf7ec3bf6b767cc045e (line 2534) | static void __stdcall TVP_Stub_960db7ea36202bf7ec3bf6b767cc045e(tjs_uint...
  function TVP_Stub_7bf5d357eb52dd206a269b54c8136e0e (line 2538) | static void __stdcall TVP_Stub_7bf5d357eb52dd206a269b54c8136e0e(tjs_uint...
  function TVP_Stub_ba1c9b771c5cdb725128de684af3c9ca (line 2542) | static void __stdcall TVP_Stub_ba1c9b771c5cdb725128de684af3c9ca(tjs_uint...
  function TVP_Stub_69cc6311196adc134fd153c4c5346bc5 (line 2546) | static void __stdcall TVP_Stub_69cc6311196adc134fd153c4c5346bc5(tjs_uint...
  function TVP_Stub_8ed68f8e79efe1c767f92e7d92eb8b54 (line 2550) | static void __stdcall TVP_Stub_8ed68f8e79efe1c767f92e7d92eb8b54(tjs_uint...
  function TVP_Stub_60da1e9ec15b251ff18ddcdf8a3e93e0 (line 2554) | static void __stdcall TVP_Stub_60da1e9ec15b251ff18ddcdf8a3e93e0(tjs_uint...
  function TVP_Stub_ef47304bad87a036e38f0319b48c1f6e (line 2558) | static void __stdcall TVP_Stub_ef47304bad87a036e38f0319b48c1f6e(tjs_uint...
  function TVP_Stub_182d19020e4e2d5cd1462d7c8ef24d1f (line 2562) | static void __stdcall TVP_Stub_182d19020e4e2d5cd1462d7c8ef24d1f(tjs_uint...
  function TVP_Stub_9e1fa429a92a5c99d397a06c20fd6705 (line 2566) | static void __stdcall TVP_Stub_9e1fa429a92a5c99d397a06c20fd6705(tjs_uint...
  function TVP_Stub_74ac7c291299eb928aa4c2899df5567e (line 2570) | static void __stdcall TVP_Stub_74ac7c291299eb928aa4c2899df5567e(tjs_uint...
  function TVP_Stub_fb645d9ec0ef3fd2aba2b762ef6b9a15 (line 2574) | static void __stdcall TVP_Stub_fb645d9ec0ef3fd2aba2b762ef6b9a15(tjs_uint...
  function TVP_Stub_f988626275257574050ac789f9060a3b (line 2578) | static void __stdcall TVP_Stub_f988626275257574050ac789f9060a3b(tjs_uint...
  function TVP_Stub_1831064ed23493cef407648763ba4d69 (line 2582) | static void __stdcall TVP_Stub_1831064ed23493cef407648763ba4d69(tjs_uint...
  function TVP_Stub_305390c94750daa7124db3ff6e77931c (line 2586) | static void __stdcall TVP_Stub_305390c94750daa7124db3ff6e77931c(tjs_uint...
  function TVP_Stub_4fb384a391bfcf6a3a2932661d3051aa (line 2590) | static void __stdcall TVP_Stub_4fb384a391bfcf6a3a2932661d3051aa(tjs_uint...
  function TVP_Stub_305537c4820e23cf217a15efb56dba1c (line 2594) | static void __stdcall TVP_Stub_305537c4820e23cf217a15efb56dba1c(tjs_uint...
  function TVP_Stub_aacf83677ca7df75117f7bafa7a53791 (line 2598) | static void __stdcall TVP_Stub_aacf83677ca7df75117f7bafa7a53791(tjs_uint...
  function TVP_Stub_d14b922fefc6c07aa536b94762579fe5 (line 2602) | static void __stdcall TVP_Stub_d14b922fefc6c07aa536b94762579fe5(tjs_uint...
  function TVP_Stub_00fd650a79c603bdeb2f8e36f667a782 (line 2606) | static void __stdcall TVP_Stub_00fd650a79c603bdeb2f8e36f667a782(tjs_uint...
  function TVP_Stub_a36ee133c07c30185b0bbc6375954e88 (line 2610) | static void __stdcall TVP_Stub_a36ee133c07c30185b0bbc6375954e88(tjs_uint...
  function TVP_Stub_dc657ecacf8e578870314427216864d9 (line 2614) | static void __stdcall TVP_Stub_dc657ecacf8e578870314427216864d9(tjs_uint...
  function TVP_Stub_e79d02b58a8bfdee439bc0694d7edd6d (line 2618) | static void __stdcall TVP_Stub_e79d02b58a8bfdee439bc0694d7edd6d(tjs_uint...
  function TVP_Stub_6b7537b66b71d27384bea45bc2bf24b4 (line 2622) | static void __stdcall TVP_Stub_6b7537b66b71d27384bea45bc2bf24b4(tjs_uint...
  function TVP_Stub_b3456dbad652b52f5bce1889b6f4d0ef (line 2626) | static void __stdcall TVP_Stub_b3456dbad652b52f5bce1889b6f4d0ef(tjs_uint...
  function TVP_Stub_9a50803a03e1ccb60120dff8b92ecdcd (line 2630) | static void __stdcall TVP_Stub_9a50803a03e1ccb60120dff8b92ecdcd(tjs_uint...
  function TVP_Stub_0f6b3940dc72e3e56cd15216b53b9126 (line 2634) | static void __stdcall TVP_Stub_0f6b3940dc72e3e56cd15216b53b9126(tjs_uint...
  function TVP_Stub_23b647f1c825e214a7465de3ebe9968d (line 2638) | static void __stdcall TVP_Stub_23b647f1c825e214a7465de3ebe9968d(tjs_uint...
  function TVP_Stub_8ec96bc7b777180f23e1a2e43bf9a413 (line 2642) | static void __stdcall TVP_Stub_8ec96bc7b777180f23e1a2e43bf9a413(tjs_uint...
  function TVP_Stub_cffd45014652659638d59abe11daf3be (line 2646) | static void __stdcall TVP_Stub_cffd45014652659638d59abe11daf3be(tjs_uint...
  function TVP_Stub_a784285a35b1bc76bb367305b5099e35 (line 2650) | static void __stdcall TVP_Stub_a784285a35b1bc76bb367305b5099e35(tjs_uint...
  function TVP_Stub_03773751329896facf2003ab79bbc475 (line 2654) | static void __stdcall TVP_Stub_03773751329896facf2003ab79bbc475(tjs_uint...
  function TVP_Stub_923884216edf134d07d8e70f8f57e827 (line 2658) | static void __stdcall TVP_Stub_923884216edf134d07d8e70f8f57e827(tjs_uint...
  function TVP_Stub_e48798dc69498f80b6633bb405eda6eb (line 2662) | static void __stdcall TVP_Stub_e48798dc69498f80b6633bb405eda6eb(tjs_uint...
  function TVP_Stub_998a5e1aa5cd85689795348fc540a655 (line 2666) | static void __stdcall TVP_Stub_998a5e1aa5cd85689795348fc540a655(tjs_uint...
  function TVP_Stub_5f6d263c0d48d03f6eb0dc44c9dd0be2 (line 2670) | static void __stdcall TVP_Stub_5f6d263c0d48d03f6eb0dc44c9dd0be2(tjs_uint...
  function TVP_Stub_bf363ba3d5b54df9d6df35a518deb6b0 (line 2676) | static void __stdcall TVP_Stub_bf363ba3d5b54df9d6df35a518deb6b0(const tt...
  function TVP_Stub_6cc8a24cc7ce23179d1d4ccab7a8c97b (line 2680) | static void __stdcall TVP_Stub_6cc8a24cc7ce23179d1d4ccab7a8c97b(const tt...
  function TVPExportFunctions (line 3672) | void TVPExportFunctions()

FILE: src/core/base/win32/NativeEventQueue.h
  function class (line 19) | class NativeEventQueueIntarface {
  function class (line 35) | class NativeEventQueueImplement/* : public NativeEventQueueIntarface*/ {
  function Dispatch (line 71) | void Dispatch( NativeEvent &ev ) {
  function T (line 75) | T* GetOwner() { return owner_; }

FILE: src/core/base/win32/PluginImpl.cpp
  function TVPAddExportFunction (line 59) | void TVPAddExportFunction(const char *name, void *ptr)
  function TVPAddExportFunction (line 63) | void TVPAddExportFunction(const tjs_char *name, void *ptr)
  function TVPInitExportFuncs (line 67) | static void TVPInitExportFuncs()
  type tTVPFunctionExporter (line 77) | struct tTVPFunctionExporter : iTVPFunctionExporter
  function iTVPFunctionExporter (line 123) | iTVPFunctionExporter * __stdcall TVPGetFunctionExporter()
  function TVPThrowPluginUnboundFunctionError (line 133) | void TVPThrowPluginUnboundFunctionError(const char *funcname)
  function TVPThrowPluginUnboundFunctionError (line 138) | void TVPThrowPluginUnboundFunctionError(const tjs_char *funcname)
  class tTVPStorageProvider (line 150) | class tTVPStorageProvider : public ITSSStorageProvider
    method QueryInterface (line 152) | QueryInterface(REFIID iid, void **ppvObjOut)
    method AddRef (line 170) | AddRef(void) { return 1; }
    method Release (line 171) | Release(void) { return 1; }
    method HRESULT (line 177) | HRESULT __stdcall GetStreamForWrite(
    method HRESULT (line 181) | HRESULT __stdcall GetStreamForUpdate(
  function HRESULT (line 186) | HRESULT __stdcall tTVPStorageProvider::GetStreamForRead(
  type tTVPPlugin (line 212) | struct tTVPPlugin
  type tTVPPluginVectorStruc (line 416) | struct tTVPPluginVectorStruc
  function TVPDestroyPluginVector (line 421) | static void TVPDestroyPluginVector(void)
  function TVPLoadPlugin (line 449) | void TVPLoadPlugin(const ttstr & name)
  function TVPUnloadPlugin (line 486) | bool TVPUnloadPlugin(const ttstr & name)
  type tTVPFoundPlugin (line 516) | struct tTVPFoundPlugin
  function TVPSearchPluginsAt (line 523) | static void TVPSearchPluginsAt(std::vector<tTVPFoundPlugin> &list, std::...
  function TVPLoadPluigins (line 558) | void TVPLoadPluigins(void)
  function tjs_int (line 591) | tjs_int TVPGetAutoLoadPluginCount() { return TVPAutoLoadPluginCount; }
  function ITSSWaveDecoder (line 603) | ITSSWaveDecoder * TVPSearchAvailTSSWaveDecoder(const ttstr & storage, co...
  function IWaveUnpacker (line 656) | IWaveUnpacker * TVPSearchAvailWaveUnpacker(const ttstr & storage, IStrea...
  function ZLIB_uncompress (line 781) | int ZLIB_uncompress(unsigned char *dest, unsigned long *destlen,
  function ZLIB_compress (line 787) | int ZLIB_compress(unsigned char *dest, unsigned long *destlen,
  function ZLIB_compress2 (line 793) | int ZLIB_compress2(unsigned char *dest, unsigned long *destlen,
  function TVP_md5_init (line 805) | void TVP_md5_init(TVP_md5_state_t *pms)
  function TVP_md5_append (line 810) | void TVP_md5_append(TVP_md5_state_t *pms, const tjs_uint8 *data, int nby...
  function TVP_md5_finish (line 815) | void TVP_md5_finish(TVP_md5_state_t *pms, tjs_uint8 *digest)
  function HWND (line 821) | HWND TVPGetApplicationWindowHandle()
  function TVPProcessApplicationMessages (line 826) | void TVPProcessApplicationMessages()
  function TVPHandleApplicationMessage (line 831) | void TVPHandleApplicationMessage()
  function TVPRegisterGlobalObject (line 837) | bool TVPRegisterGlobalObject(const tjs_char *name, iTJSDispatch2 * dsp)
  function TVPRemoveGlobalObject (line 856) | bool TVPRemoveGlobalObject(const tjs_char *name)
  function TVPDoTryBlock (line 875) | void TVPDoTryBlock(
  function TVPGetFileVersionOf (line 911) | bool TVPGetFileVersionOf(const wchar_t* module_filename, tjs_int &major,...
  function tTJSNativeClass (line 972) | tTJSNativeClass * TVPCreateNativeClass_Plugins()

FILE: src/core/base/win32/PluginImpl.h
  type iTVPFunctionExporter (line 28) | struct iTVPFunctionExporter
  type ITSSModule (line 43) | struct ITSSModule
  type IWaveUnpacker (line 44) | struct IWaveUnpacker
  type ITSSStorageProvider (line 45) | struct ITSSStorageProvider
  type ITSSWaveDecoder (line 71) | struct ITSSWaveDecoder
  type TVP_md5_state_t (line 105) | typedef struct TVP_md5_state_s { tjs_uint8 buffer[4*2+8+4*4+8+64]; } TVP...
  type tTVPExceptionDesc (line 135) | struct tTVPExceptionDesc

FILE: src/core/base/win32/ScriptMgnImpl.cpp
  class tTVPPipeStream (line 58) | class tTVPPipeStream : public tTJSBinaryStream
    method tTVPPipeStream (line 64) | tTVPPipeStream(HANDLE handle)
    method Seek (line 74) | Seek(tjs_int64 offset, tjs_int whence)
    method Read (line 79) | Read(void *buffer, tjs_uint read_size)
    method Write (line 86) | Write(const void *buffer, tjs_uint write_size)
    method SetEndOfStorage (line 94) | SetEndOfStorage()
    method GetSize (line 99) | GetSize()
  function TVPStartObjectHashMapLog (line 114) | void TVPStartObjectHashMapLog(void)
  function TVPCheckProcessLog (line 194) | bool TVPCheckProcessLog()

FILE: src/core/base/win32/StorageImpl.cpp
  class tTVPFileMedia (line 46) | class tTVPFileMedia : public iTVPStorageMedia
    method tTVPFileMedia (line 51) | tTVPFileMedia() { RefCount = 1; }
    method AddRef (line 54) | AddRef() { RefCount ++; }
    method Release (line 55) | Release()
    method GetName (line 63) | GetName(ttstr &name) { name = TJS_W("file"); }
  function TVPListDir (line 126) | void TVPListDir(const std::string &folder, std::function<void(const std:...
  function TVPGetLocalFileListAt (line 143) | void TVPGetLocalFileListAt(const ttstr &name, const std::function<void(c...
  function _utf8_strcasecmp (line 222) | static int _utf8_strcasecmp(const char *a, const char *b) {
  type dirent (line 334) | struct dirent
  function iTVPStorageMedia (line 372) | iTVPStorageMedia * TVPCreateFileMedia()
  function TVPPreNormalizeStorageName (line 385) | void TVPPreNormalizeStorageName(ttstr &name)
  function ttstr (line 439) | ttstr TVPGetTemporaryName()
  function TVPRemoveFile (line 484) | bool TVPRemoveFile(const ttstr &name)
  function TVPRemoveFolder (line 496) | bool TVPRemoveFolder(const ttstr &name)
  function ttstr (line 509) | ttstr TVPGetAppPath()
  function tTJSBinaryStream (line 523) | tTJSBinaryStream * TVPOpenStream(const ttstr & _name, tjs_uint32 flags)
  function TVPCheckExistentLocalFile (line 545) | bool TVPCheckExistentLocalFile(const ttstr &name)
  function TVPCheckExistentLocalFolder (line 568) | bool TVPCheckExistentLocalFolder(const ttstr &name)
  function tTVPArchive (line 601) | tTVPArchive * TVPOpenArchive(const ttstr & name, bool normalizeFileName)
  function TVPCheckArchive (line 619) | int TVPCheckArchive(const ttstr &localname)
  function ttstr (line 663) | ttstr TVPLocalExtractFilePath(const ttstr & name)
  function _TVPCreateFolders (line 684) | static bool _TVPCreateFolders(const ttstr &folder)
  function TVPCreateFolders (line 716) | bool TVPCreateFolders(const ttstr &folder)
  function tjs_uint64 (line 821) | tjs_uint64 TJS_INTF_METHOD tTVPLocalFileStream::Seek(tjs_int64 offset, t...
  function tjs_uint (line 829) | tjs_uint TJS_INTF_METHOD tTVPLocalFileStream::Read(void *buffer, tjs_uin...
  function tjs_uint (line 837) | tjs_uint TJS_INTF_METHOD tTVPLocalFileStream::Write(const void *buffer, ...
  function tjs_uint64 (line 853) | tjs_uint64 TJS_INTF_METHOD tTVPLocalFileStream::GetSize()
  class tTVPIStreamAdapter (line 919) | class tTVPIStreamAdapter : public IStream
    method ClearStream (line 961) | void ClearStream() {
  function HRESULT (line 987) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::QueryInterface(REFIID riid,
  function ULONG (line 1008) | ULONG STDMETHODCALLTYPE tTVPIStreamAdapter::AddRef(void)
  function ULONG (line 1013) | ULONG STDMETHODCALLTYPE tTVPIStreamAdapter::Release(void)
  function HRESULT (line 1026) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::Read(void *pv, ULONG cb, U...
  function HRESULT (line 1041) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::Write(const void *pv, ULON...
  function HRESULT (line 1057) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::Seek(LARGE_INTEGER dlibMove,
  function HRESULT (line 1096) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::SetSize(ULARGE_INTEGER lib...
  function HRESULT (line 1101) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::CopyTo(IStream *pstm, ULAR...
  function HRESULT (line 1107) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::Commit(DWORD grfCommitFlags)
  function HRESULT (line 1112) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::Revert(void)
  function HRESULT (line 1117) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::LockRegion(ULARGE_INTEGER ...
  function HRESULT (line 1123) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::UnlockRegion(ULARGE_INTEGE...
  function HRESULT (line 1129) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::Stat(STATSTG *pstatstg, DW...
  function HRESULT (line 1176) | HRESULT STDMETHODCALLTYPE tTVPIStreamAdapter::Clone(IStream **ppstm)
  function IStream (line 1188) | IStream * TVPCreateIStream(tTJSBinaryStream *s) { return new tTVPIStream...
  function IStream (line 1192) | IStream * TVPCreateIStream(const ttstr &name, tjs_uint32 flags)
  function tjs_uint64 (line 1231) | tjs_uint64 TJS_INTF_METHOD tTVPBinaryStreamAdapter::Seek(tjs_int64 offse...
  function tjs_uint (line 1278) | tjs_uint TJS_INTF_METHOD tTVPBinaryStreamAdapter::Read(void *buffer, tjs...
  function tjs_uint (line 1287) | tjs_uint TJS_INTF_METHOD tTVPBinaryStreamAdapter::Write(const void *buff...
  function tjs_uint64 (line 1296) | tjs_uint64 TJS_INTF_METHOD tTVPBinaryStreamAdapter::GetSize()
  function tTJSBinaryStream (line 1323) | tTJSBinaryStream * TVPCreateBinaryStreamAdapter(IStream *refstream)
  function ttstr (line 1392) | const ttstr & tTVPPluginHolder::GetLocalName() const
  function ttstr (line 1405) | ttstr TVPSearchCD(const ttstr & name)
  function tTJSNativeClass (line 1450) | tTJSNativeClass * TVPCreateNativeClass_Storages()
  function FILE (line 1511) | static FILE *_fileopen(ttstr path) {
  function TVPSaveStreamToFile (line 1522) | bool TVPSaveStreamToFile(tTJSBinaryStream *st, tjs_uint64 offset, tjs_ui...

FILE: src/core/base/win32/StorageImpl.h
  type tTVPLocalFileInfo (line 34) | struct tTVPLocalFileInfo {
  function class (line 48) | class tTVPLocalFileStream : public tTJSBinaryStream
  function class (line 97) | class TTVPStreamAdapter : public TStream
  type IStream (line 126) | struct IStream
  function class (line 144) | class tTVPBinaryStreamAdapter : public tTJSBinaryStream

FILE: src/core/base/win32/SusieArchive.cpp
  type tTVPSusieFileInfo (line 33) | struct tTVPSusieFileInfo
  type tTVPSusieFileRecord (line 45) | struct tTVPSusieFileRecord
  class tTVPSusieArchivePlugin (line 57) | class tTVPSusieArchivePlugin : public tTVPSusiePlugin
    method CanRelease (line 69) | bool CanRelease() { return LockCount <= 0; }
    method tTJSCriticalSection (line 78) | tTJSCriticalSection & GetCS() { return CS; }
  function tTJSBinaryStream (line 184) | tTJSBinaryStream * tTVPSusieArchivePlugin::CreateStream(std::wstring loc...
  function TVPDestroySusiePluginList (line 232) | static void TVPDestroySusiePluginList()
  function TVPLoadArchiveSPI (line 251) | void TVPLoadArchiveSPI(HINSTANCE inst)
  function TVPUnloadArchiveSPI (line 266) | void TVPUnloadArchiveSPI(HINSTANCE inst)
  function tTVPSusieArchivePlugin (line 298) | tTVPSusieArchivePlugin * TVPCheckSusieSupport(const ttstr &name, std::ws...
    method CanRelease (line 69) | bool CanRelease() { return LockCount <= 0; }
    method tTJSCriticalSection (line 78) | tTJSCriticalSection & GetCS() { return CS; }
  class tTVPSusieArchive (line 327) | class tTVPSusieArchive : public tTVPArchive
  function tjs_uint (line 363) | tjs_uint tTVPSusieArchive::GetCount()
  function ttstr (line 368) | ttstr tTVPSusieArchive::GetName(tjs_uint idx)
  function tTJSBinaryStream (line 373) | tTJSBinaryStream * tTVPSusieArchive::CreateStreamByIndex(tjs_uint idx)
  function tTVPArchive (line 387) | tTVPArchive * TVPOpenSusieArchive(const ttstr & name)

FILE: src/core/base/win32/SysInitImpl.cpp
  function GetSystemSecurityOption (line 77) | int GetSystemSecurityOption(const char *name)
  function FARPROC (line 116) | static FARPROC WINAPI DllLoadHook(dliNotification dliNotify,  DelayLoadI...
  function RegisterDllLoadHook (line 142) | static void RegisterDllLoadHook(void)
  type tTVPHWExceptionData (line 211) | struct tTVPHWExceptionData
  function TVPWriteHWELogFile (line 239) | static void TVPWriteHWELogFile()
  function TVPHandleSEHException (line 291) | void TVPHandleSEHException( int ErrorCode, EXCEPTION_RECORD *P, unsigned...
  function TVPDumpCPUFlags (line 452) | static void TVPDumpCPUFlags(ttstr &line, DWORD flags, DWORD bit, tjs_cha...
  function TVPDumpOSContext (line 461) | void TVPDumpOSContext(const CONTEXT &ctx)
  function TVPDumpHWException (line 718) | void TVPDumpHWException()
  function TVPDumpHWException (line 839) | void TVPDumpHWException(void)
  function BOOL (line 853) | static BOOL CALLBACK TVPInitRandomEnumWinProc(HWND hwnd, LPARAM lparam)
  function TVPInitRandomGenerator (line 867) | static void TVPInitRandomGenerator()
  function TVPInitializeBaseSystems (line 904) | void TVPInitializeBaseSystems()
  function TVPBrowseCallbackProc (line 935) | static int CALLBACK TVPBrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lPa...
  function TVPBeforeSystemInit (line 947) | void TVPBeforeSystemInit()
  function TVPAfterSystemInit (line 1278) | void TVPAfterSystemInit()
  function TVPBeforeSystemUninit (line 1459) | void TVPBeforeSystemUninit()
  function TVPAfterSystemUninit (line 1464) | void TVPAfterSystemUninit()
  function TVPTerminateAsync (line 1485) | void TVPTerminateAsync(int code)
  function TVPTerminateSync (line 1499) | void TVPTerminateSync(int code)
  function TVPMainWindowClosed (line 1506) | void TVPMainWindowClosed()
  function ttstr (line 1609) | static ttstr TVPParseCommandLineOne(const ttstr &i)
  function tjs_int (line 1642) | tjs_int TVPGetCommandLineArgumentGeneration() { return TVPCommandLineArg...
  function TVPEnsureDataPathDirectory (line 1644) | void TVPEnsureDataPathDirectory()
  function PushAllCommandlineArguments (line 1660) | static void PushAllCommandlineArguments()
  function PushConfigFileOptions (line 1700) | static void PushConfigFileOptions(const std::vector<std::string> * options)
  function TVPInitProgramArgumentsAndDataPath (line 1711) | static void TVPInitProgramArgumentsAndDataPath(bool stop_after_datapath_...
  function TVPDumpOptions (line 1774) | static void TVPDumpOptions()
  function TVPGetCommandLine (line 1793) | bool TVPGetCommandLine(const tjs_char * name, tTJSVariant *value)
  function TVPSetCommandLine (line 1821) | void TVPSetCommandLine(const tjs_char * name, const ttstr & value)
  function TVPCheckPrintDataPath (line 1854) | bool TVPCheckPrintDataPath()
  function TVPCheckAbout (line 1878) | bool TVPCheckAbout(void)
  function TVPExecuteAsync (line 1902) | static void TVPExecuteAsync( const std::wstring& progname)
  function TVPWaitWritePermit (line 1944) | static bool TVPWaitWritePermit(const std::wstring& fn)
  function TVPShowUserConfig (line 1972) | static void TVPShowUserConfig(std::string orgexe)
  function TVPExecuteUserConfig (line 1988) | bool TVPExecuteUserConfig()

FILE: src/core/base/win32/SystemImpl.cpp
  function TVPShowSimpleMessageBox (line 50) | static void TVPShowSimpleMessageBox(const ttstr & text, const ttstr & ca...
  function TVPGetAsyncKeyState (line 65) | bool TVPGetAsyncKeyState(tjs_uint keycode, bool getcurrent)
  function ttstr (line 107) | ttstr TVPGetPlatformName()
  function ttstr (line 130) | ttstr TVPGetOSName()
  function tjs_int (line 233) | tjs_int TVPGetOSBits()
  function TVPShellExecute (line 257) | bool TVPShellExecute(const ttstr &target, const ttstr &param)
  function InitRegisterData (line 284) | static void InitRegisterData()
  function TVPReadRegValue (line 298) | static void TVPReadRegValue(tTJSVariant &result, const ttstr & key)
  function ttstr (line 506) | static ttstr TVPGetSpecialFolderPath(int csidl)
  function ttstr (line 521) | ttstr TVPGetPersonalPath()
  function ttstr (line 550) | ttstr TVPGetAppDataPath()
  function ttstr (line 574) | ttstr TVPGetSavedGamesPath()
  function TVPCreateAppLock (line 596) | bool TVPCreateAppLock(const ttstr &lockname)
  type tTVPTouchDevice (line 617) | enum tTVPTouchDevice {
  function TVPGetSupportTouchDevice (line 631) | static int TVPGetSupportTouchDevice()
  class tTVPOnApplicationActivateEvent (line 663) | class tTVPOnApplicationActivateEvent : public tTVPBaseInputEvent
    method tTVPOnApplicationActivateEvent (line 668) | tTVPOnApplicationActivateEvent(bool activate_or_deactivate) :
    method Deliver (line 671) | void Deliver() const
  function TVPPostApplicationActivateEvent (line 676) | void TVPPostApplicationActivateEvent()
  function TVPPostApplicationDeactivateEvent (line 681) | void TVPPostApplicationDeactivateEvent()
  function TVPOnApplicationActivate (line 686) | static void TVPOnApplicationActivate(bool activate_or_deactivate)
  function TVPHeapDump (line 704) | static void TVPHeapDump()
  function TVPDoSaveSystemVariables (line 782) | extern void TVPDoSaveSystemVariables()
  function tTJSNativeClass (line 818) | tTJSNativeClass * TVPCreateNativeClass_System()
  function TJS_BEGIN_NATIVE_PROP_DECL (line 1048) | TJS_BEGIN_NATIVE_PROP_DECL(personalPath)
  function TJS_END_NATIVE_PROP_GETTER (line 1055) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1068) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1081) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1095) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1108) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1126) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_SETTER (line 1134) | TJS_END_NATIVE_PROP_SETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1145) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1158) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1171) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1184) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1197) | TJS_END_NATIVE_PROP_GETTER
  function TJS_END_NATIVE_PROP_GETTER (line 1210) | TJS_END_NATIVE_PROP_GETTER

FILE: src/core/environ/Application.cpp
  function _do_compact (line 56) | static void _do_compact() {
  function _no_memory_cb (line 60) | static void _no_memory_cb() {
  function ttstr (line 92) | ttstr TVPGetErrorDialogTitle() {
  function tc_free (line 114) | void tc_free(void* ptr) {}
  function __real_free (line 119) | void __real_free(void*) { return; }
  function __wrap_free (line 223) | void __wrap_free(void *p) {
  function CheckMemoryLeaksStart (line 250) | inline void CheckMemoryLeaksStart()
  function DumpMemoryLeaks (line 257) | inline void DumpMemoryLeaks()
  function ttstr (line 266) | ttstr ExePath() {
  function TVPCheckMemory (line 277) | void TVPCheckMemory() {
  function TVPShowSimpleMessageBox (line 292) | int TVPShowSimpleMessageBox(const ttstr & text, const ttstr & caption) {
  function TVPShowSimpleMessageBoxYesNo (line 297) | int TVPShowSimpleMessageBoxYesNo(const ttstr & text, const ttstr & capti...
  function ttstr (line 305) | ttstr TVPGetMessageByLocale(const std::string &key) {
  function WinMain (line 421) | int APIENTRY WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrev...
  type SEHException (line 468) | struct SEHException {
    method SEHException (line 471) | SEHException( unsigned int code, _EXCEPTION_POINTERS* ep )
  function TVPWriteHWEDumpFile (line 476) | int TVPWriteHWEDumpFile( EXCEPTION_POINTERS* pExceptionPointers ) {
  function se_translator_function (line 504) | void se_translator_function(unsigned int code, struct _EXCEPTION_POINTER...
  function wchar_t (line 517) | const wchar_t* SECodeToMessage( unsigned int code ) {
  function HWND (line 731) | HWND tTVPApplication::GetHandle() {
  function HWND (line 892) | HWND tTVPApplication::GetMainWindowHandle() const {
  class TTVPWindowForm (line 900) | class TTVPWindowForm
  class TTVPWindowForm (line 910) | class TTVPWindowForm
  class TTVPWindowForm (line 918) | class TTVPWindowForm
  class TTVPWindowForm (line 918) | class TTVPWindowForm
  class iTJSDispatch2 (line 1095) | class iTJSDispatch2
  class tTJSNI_Bitmap (line 1095) | class tTJSNI_Bitmap
  function TVPRegisterAcceleratorKey (line 1125) | void TVPRegisterAcceleratorKey(HWND hWnd, char virt, short key, short cm...
  function TVPUnregisterAcceleratorKey (line 1128) | void TVPUnregisterAcceleratorKey(HWND hWnd, short cmd) {
  function TVPDeleteAcceleratorKeyTable (line 1131) | void TVPDeleteAcceleratorKeyTable( HWND hWnd ) {
  function TVPInitWindowOptions (line 1136) | void TVPInitWindowOptions() {
  function ExtractFileDir (line 1140) | std::string ExtractFileDir(const std::string & FileName) {
  function ColorToRGB (line 1144) | unsigned long ColorToRGB(unsigned int col)

FILE: src/core/environ/Application.h
  type class (line 36) | enum class
  function class (line 41) | class AcceleratorKey {
  function class (line 53) | class AcceleratorKeyTable {
  function class (line 72) | class tTVPApplication {

FILE: src/core/environ/ConfigManager/GlobalConfigManager.cpp
  class XMLMemPrinter (line 9) | class XMLMemPrinter : public tinyxml2::XMLPrinter {
    method Print (line 13) | virtual void Print(const char* format, ...) {
    method SaveFile (line 20) | void SaveFile(const std::string &path) {
  function GlobalConfigManager (line 34) | GlobalConfigManager* GlobalConfigManager::GetInstance() {

FILE: src/core/environ/ConfigManager/GlobalConfigManager.h
  function class (line 7) | class iSysConfigManager {
  function class (line 49) | class GlobalConfigManager : public iSysConfigManager {

FILE: src/core/environ/ConfigManager/IndividualConfigManager.cpp
  function IndividualConfigManager (line 8) | IndividualConfigManager* IndividualConfigManager::GetInstance() {

FILE: src/core/environ/ConfigManager/IndividualConfigManager.h
  type iSysConfigManager (line 8) | typedef iSysConfigManager inherit;

FILE: src/core/environ/ConfigManager/LocaleConfigManager.cpp
  function LocaleConfigManager (line 22) | LocaleConfigManager* LocaleConfigManager::GetInstance() {

FILE: src/core/environ/ConfigManager/LocaleConfigManager.h
  function namespace (line 7) | namespace cocos2d {
  function class (line 14) | class LocaleConfigManager {

FILE: src/core/environ/DetectCPU.cpp
  function TVPGetCPUTypeForOne (line 42) | static void TVPGetCPUTypeForOne()
  function ttstr (line 78) | static ttstr TVPDumpCPUFeatures(tjs_uint32 features)
  function ttstr (line 97) | static ttstr TVPDumpCPUInfo(tjs_int cpu_num)
  function TVPDisableCPU (line 149) | static void TVPDisableCPU(tjs_uint32 featurebit, const tjs_char *name)
  function TVPDetectCPU (line 169) | void TVPDetectCPU()
  function CheckMMX (line 267) | void CheckMMX(void)
  function tjs_uint32 (line 282) | tjs_uint32 TVPGetCPUType()

FILE: src/core/environ/DumpSend.cpp
  function ClearDumps (line 16) | static void ClearDumps(const std::string &dumpdir, std::vector<std::stri...
  type zlib_inmem_func64 (line 25) | struct zlib_inmem_func64 : public zlib_filefunc64_def {
    method voidpf (line 26) | static voidpf ZCALLBACK fopen64_file_func(voidpf opaque, const void* f...
    method uLong (line 32) | static uLong ZCALLBACK fread_file_func(voidpf opaque, voidpf stream, v...
    method uLong (line 37) | static uLong ZCALLBACK fwrite_file_func(voidpf opaque, voidpf stream, ...
    method ZPOS64_T (line 42) | static ZPOS64_T ZCALLBACK ftell64_file_func(voidpf opaque, voidpf stre...
    method fseek64_file_func (line 47) | static long ZCALLBACK fseek64_file_func(voidpf  opaque, voidpf stream,...
    method fclose_file_func (line 68) | static int ZCALLBACK fclose_file_func(voidpf opaque, voidpf stream)
    method ferror_file_func (line 73) | static int ZCALLBACK ferror_file_func(voidpf opaque, voidpf stream)
    method zlib_inmem_func64 (line 78) | zlib_inmem_func64() {
  function zlib_filefunc64_def (line 90) | static zlib_filefunc64_def* GetZlibIOFunc() {
  function url_encode (line 95) | static std::string url_encode(const std::string &value) {
  function SendDumps (line 115) | static void SendDumps(std::string dumpdir, std::vector<std::string> allD...
  function TVPCheckAndSendDumps (line 209) | void TVPCheckAndSendDumps(const std::string &dumpdir, const std::string ...

FILE: src/core/environ/Platform.h
  type TVPMemoryInfo (line 6) | struct TVPMemoryInfo
  type tTVP_stat (line 47) | struct tTVP_stat {

FILE: src/core/environ/XP3ArchiveRepack.cpp
  class tTVPXP3ArchiveEx (line 36) | class tTVPXP3ArchiveEx : public tTVPXP3Archive {
    method tTVPXP3ArchiveEx (line 38) | tTVPXP3ArchiveEx(const ttstr & name, tTJSBinaryStream *st) : tTVPXP3Ar...
  class OutStreamFor7z (line 45) | class OutStreamFor7z : public IOutStream {
    method OutStreamFor7z (line 50) | OutStreamFor7z(const std::string &path) {
    method ULONG (line 57) | ULONG AddRef() { return ++RefCount; }
    method ULONG (line 58) | ULONG Release() {
    method HRESULT (line 65) | HRESULT QueryInterface(REFIID iid, void **ppOut) {
    method HRESULT (line 74) | HRESULT Write(const void *data, UInt32 size, UInt32 *processedSize) {
    method HRESULT (line 78) | HRESULT Seek(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition) ove...
    method HRESULT (line 83) | HRESULT SetSize(UInt64 newSize) {
  class OutStreamMemory (line 88) | class OutStreamMemory : public IOutStream, public tTVPMemoryStream {
    method ULONG (line 92) | ULONG AddRef() { return ++RefCount; }
    method ULONG (line 93) | ULONG Release() {
    method HRESULT (line 100) | HRESULT QueryInterface(REFIID iid, void **ppOut) {
    method HRESULT (line 109) | HRESULT Write(const void *data, UInt32 size, UInt32 *processedSize) ov...
    method HRESULT (line 113) | HRESULT Seek(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition) ove...
    method HRESULT (line 117) | HRESULT SetSize(UInt64 newSize) {
  class SequentialInStreamFor7z (line 123) | class SequentialInStreamFor7z : public ISequentialInStream {
    method SequentialInStreamFor7z (line 128) | SequentialInStreamFor7z(tTJSBinaryStream *s) {
    method ULONG (line 135) | ULONG AddRef() { return ++RefCount; }
    method ULONG (line 136) | ULONG Release() {
    method HRESULT (line 143) | HRESULT QueryInterface(REFIID iid, void **ppOut) {
    method HRESULT (line 152) | HRESULT Read(void *data, UInt32 size, UInt32 *processedSize) {
  class XP3ArchiveRepackAsyncImpl (line 158) | class XP3ArchiveRepackAsyncImpl
    method Stop (line 166) | void Stop() { bStopRequired = true; }
    method SetCallback (line 170) | void SetCallback(
    method HRESULT (line 194) | virtual HRESULT QueryInterface(REFIID riid, void **ppvObject) override...
    method ULONG (line 195) | virtual ULONG AddRef(void) override { return 0; }
    method ULONG (line 196) | virtual ULONG Release(void) override { return 0; }
  function CheckIsImage (line 348) | static bool CheckIsImage(tTJSBinaryStream *s) {
  function HRESULT (line 374) | HRESULT XP3ArchiveRepackAsyncImpl::AddTo7zArchive(tTJSBinaryStream* s, c...
  function HRESULT (line 462) | HRESULT XP3ArchiveRepackAsyncImpl::SetRatioInfo(const UInt64 *inSize, co...
  type BmpInfoWithMask (line 581) | struct BmpInfoWithMask {
  type BmpInfo (line 682) | struct BmpInfo {

FILE: src/core/environ/XP3ArchiveRepack.h
  function class (line 7) | class XP3ArchiveRepackAsync {

FILE: src/core/environ/android/AndroidUtils.cpp
  function TVPPrintLog (line 43) | void TVPPrintLog(const char *str) {
  function _updateMemoryInfo (line 49) | static void _updateMemoryInfo() {
  function tjs_int (line 76) | tjs_int TVPGetSystemFreeMemory()
  function tjs_int (line 82) | tjs_int TVPGetSelfUsedMemory()
  function TVPForceSwapBuffer (line 88) | void TVPForceSwapBuffer() {
  function TVPGetDeviceID (line 92) | std::string TVPGetDeviceID()
  function jobject (line 162) | static jobject GetKR2ActInstance() {
  function GetApkStoragePath (line 173) | static std::string GetApkStoragePath() {
  function GetPackageName (line 187) | static std::string GetPackageName() {
  class ZipFile (line 200) | class ZipFile
    method ZipFile (line 206) | ZipFile() : uf(0) {
    method Open (line 214) | bool Open(const char *filename) {
    method GetData (line 230) | bool GetData(std::vector<unsigned char> &buff, const char *filename) {
    method tjs_int64 (line 245) | tjs_int64 GetMD5InZip(const char *filename) {
  function TVPGetDeviceLanguage (line 262) | std::string TVPGetDeviceLanguage() {
  function TVPGetPackageVersionString (line 275) | std::string TVPGetPackageVersionString() {
  function File_getAbsolutePath (line 292) | static std::string File_getAbsolutePath(jobject FileObj) {
  function GetInternalStoragePath (line 303) | static std::string GetInternalStoragePath() {
  function Android_GetDumpStoragePath (line 313) | std::string Android_GetDumpStoragePath() {
  function InsertFilepathInto (line 317) | static int InsertFilepathInto(JNIEnv *env, std::vector<std::string>& vec...
  function GetExternalStoragePath (line 327) | static int GetExternalStoragePath(std::vector<std::string> &ret) {
  function TVPGetAppStoragePath (line 348) | std::vector<std::string> TVPGetAppStoragePath() {
  function TVPGetDriverPath (line 355) | std::vector<std::string> TVPGetDriverPath() {
  type kr2android (line 430) | namespace kr2android {
  function TVPShowSimpleMessageBox (line 438) | int TVPShowSimpleMessageBox(const char *pszText, const char *pszTitle, u...
  function TVPShowSimpleMessageBox (line 471) | int TVPShowSimpleMessageBox(const ttstr & text, const ttstr & caption, c...
  function TVPShowSimpleInputBox (line 483) | int TVPShowSimpleInputBox(ttstr &text, const ttstr &caption, const ttstr...
  function Android_GetExternalStoragePath (line 525) | std::vector<ttstr> Android_GetExternalStoragePath() {
  function ttstr (line 539) | ttstr Android_GetInternalStoragePath() {
  function ttstr (line 548) | ttstr Android_GetApkStoragePath() {
  type _eventQueueNode (line 557) | struct _eventQueueNode {
  function _processEvents (line 564) | static void _processEvents(float) {
  function Android_PushEvents (line 581) | void Android_PushEvents(const std::function<void()> &func) {
  function TVPCheckStartupArg (line 590) | bool TVPCheckStartupArg() {
  function Android_PushEvents (line 608) | void Android_PushEvents(const std::function<void()> &func) {
  function TVPControlAdDialog (line 612) | void TVPControlAdDialog(int adType, int arg1, int arg2) {
  function _GetAndroidSDKVersion (line 620) | static int _GetAndroidSDKVersion() {
  function GetAndroidSDKVersion (line 626) | static int GetAndroidSDKVersion() {
  function IsLollipop (line 631) | static bool IsLollipop() {
  function IsOreo (line 635) | static bool IsOreo() {
  function TVPFetchSDCardPermission (line 639) | void TVPFetchSDCardPermission() {
  function TVPCheckStartupPath (line 654) | bool TVPCheckStartupPath(const std::string &path) {
  function TVPCreateFolders (line 721) | bool TVPCreateFolders(const ttstr &folder)
  function TVPWriteDataToFileJava (line 734) | static bool TVPWriteDataToFileJava(const std::string &filename, const vo...
  function TVPWriteDataToFile (line 754) | bool TVPWriteDataToFile(const ttstr &filepath, const void *data, unsigne...
  function TVPGetCurrentLanguage (line 790) | std::string TVPGetCurrentLanguage() {
  function TVPExitApplication (line 804) | void TVPExitApplication(int code) {
  function TVPHideIME (line 816) | void TVPHideIME() {
  function TVPShowIME (line 823) | void TVPShowIME(int x, int y, int w, int h) {
  function TVPProcessInputEvents (line 830) | void TVPProcessInputEvents() {}
  function TVPDeleteFile (line 832) | bool TVPDeleteFile(const std::string &filename) {
  function TVPRenameFile (line 844) | bool TVPRenameFile(const std::string &from, const std::string &to) {
  function tjs_uint32 (line 858) | tjs_uint32 TVPGetRoughTickCount32()
  function TVP_stat (line 867) | bool TVP_stat(const tjs_char *name, tTVP_stat &s) {
  function TVP_stat (line 876) | bool TVP_stat(const char *name, tTVP_stat &s) {
  function TVPSendToOtherApp (line 889) | void TVPSendToOtherApp(const std::string &filename) {

FILE: src/core/environ/cocos2d/AppDelegate.cpp
  function TVPOpenPatchLibUrl (line 114) | void TVPOpenPatchLibUrl() {

FILE: src/core/environ/cocos2d/AppDelegate.h
  function class (line 4) | class TVPAppDelegate : public cocos2d::Application {

FILE: src/core/environ/cocos2d/CCKeyCodeConv.cpp
  function TVPConvertMouseBtnToVKCode (line 5) | int TVPConvertMouseBtnToVKCode(tTVPMouseButton _mouseBtn)
  function TVPConvertKeyCodeToVKCode (line 17) | int TVPConvertKeyCodeToVKCode(cocos2d::EventKeyboard::KeyCode keyCode)
  function TVPConvertPadKeyCodeToVKCode (line 191) | int TVPConvertPadKeyCodeToVKCode(int keyCode)

FILE: src/core/environ/cocos2d/CustomFileUtils.cpp
  class CustomFileUtils (line 29) | class CustomFileUtils : public FileUtilsInherit
    method init (line 41) | virtual bool init() override {
  function NS_CC_END (line 149) | NS_CC_END
  function TVPAddAutoSearchArchive (line 157) | void TVPAddAutoSearchArchive(const std::string &path)
  function TVPCopyFolder (line 170) | static bool TVPCopyFolder(const std::string &from, const std::string &to) {
  function TVPCopyFile (line 189) | bool TVPCopyFile(const std::string &from, const std::string &to)
  function TVPSkinManager (line 211) | TVPSkinManager* TVPSkinManager::getInstance()

FILE: src/core/environ/cocos2d/CustomFileUtils.h
  function class (line 5) | class TVPSkinManager {

FILE: src/core/environ/cocos2d/MainScene.cpp
  type SCENE_ORDER (line 38) | enum SCENE_ORDER {
  class TVPWindowLayer (line 47) | class TVPWindowLayer
    method TVPWindowLayer (line 373) | TVPWindowLayer(tTJSNI_Window *w)
    method init (line 404) | bool init() {
    method TVPWindowLayer (line 425) | static TVPWindowLayer *create(tTJSNI_Window *w) {
    method Vec2 (line 436) | virtual Vec2 minContainerOffset() { // override {
    method Vec2 (line 455) | virtual Vec2 maxContainerOffset(){ // override {
    method onMouseDownEvent (line 474) | void onMouseDownEvent(Event *_e) {
    method onMouseUpEvent (line 490) | void onMouseUpEvent(Event *_e) {
    method onMouseMoveEvent (line 506) | void onMouseMoveEvent(Event *_e) {
    method onMouseScroll (line 514) | void onMouseScroll(Event *_e) {
    method onTouchBegan (line 534) | virtual bool onTouchBegan(Touch *touch, Event *unused_event) override {
    method onTouchMoved (line 561) | virtual void onTouchMoved(Touch* touch, Event* unused_event) override {
    method onTouchEnded (line 583) | virtual void onTouchEnded(Touch *touch, Event *unused_event) override {
    method onTouchCancelled (line 616) | virtual void onTouchCancelled(Touch *touch, Event *unused_event) overr...
    method onMouseDown (line 637) | void onMouseDown(const Vec2 &pt) {
    method onMouseUp (line 644) | void onMouseUp(const Vec2 &pt) {
    method onMouseMove (line 651) | void onMouseMove(const Vec2 &pt) {
    method onMouseClick (line 659) | void onMouseClick(const Vec2 &pt) {
    method SetPaintBoxSize (line 669) | virtual void SetPaintBoxSize(tjs_int w, tjs_int h) {
    method GetFormEnabled (line 674) | virtual bool GetFormEnabled() {
    method SetDefaultMouseCursor (line 678) | virtual void SetDefaultMouseCursor() {
    method GetCursorPos (line 681) | virtual void GetCursorPos(tjs_int &x, tjs_int &y) {
    method SetCursorPos (line 686) | virtual void SetCursorPos(tjs_int x, tjs_int y) {
    method SetHintText (line 697) | virtual void SetHintText(const ttstr &text) {
    method SetAttentionPoint (line 703) | virtual void SetAttentionPoint(tjs_int left, tjs_int top, const struct...
    method SetImeMode (line 707) | virtual void SetImeMode(tTVPImeMode mode) {
    method ZoomRectangle (line 735) | virtual void ZoomRectangle(
    method BringToFront (line 744) | virtual void BringToFront() {
    method ShowWindowAsModal (line 755) | virtual void ShowWindowAsModal() {
    method GetVisible (line 783) | virtual bool GetVisible() {
    method SetVisible (line 787) | virtual void SetVisible(bool bVisible) {
    method SetCaption (line 803) | virtual void SetCaption(const std::string &s) {
    method ResetDrawSprite (line 807) | void ResetDrawSprite() {
    method RecalcPaintBox (line 829) | void RecalcPaintBox() {
    method SetWidth (line 852) | virtual void SetWidth(tjs_int w) {
    method SetHeight (line 858) | virtual void SetHeight(tjs_int h) {
    method SetSize (line 864) | virtual void SetSize(tjs_int w, tjs_int h) {
    method GetSize (line 868) | virtual void GetSize(tjs_int &w, tjs_int &h) {
    method GetWinSize (line 872) | virtual void GetWinSize(tjs_int &w, tjs_int &h) {
    method tjs_int (line 876) | virtual tjs_int GetWidth() const override { return getContentSize().wi...
    method tjs_int (line 877) | virtual tjs_int GetHeight() const override { return getContentSize().h...
    method SetZoom (line 878) | virtual void SetZoom(tjs_int numer, tjs_int denom) {
    method UpdateDrawBuffer (line 887) | virtual void UpdateDrawBuffer(iTVPTexture2D *tex) {
    method tTJSNI_Window (line 927) | tTJSNI_Window* GetWindow() { return TJSNativeInstance; }
    method AddOverlay (line 929) | virtual void AddOverlay(tTJSNI_BaseVideoOverlay *ovl) {
    method RemoveOverlay (line 939) | virtual void RemoveOverlay(tTJSNI_BaseVideoOverlay *ovl) {
    method UpdateOverlay (line 945) | virtual void UpdateOverlay() {
    method toogleFillScale (line 992) | void toogleFillScale() {
    method InvalidateClose (line 1022) | virtual void InvalidateClose() override {
    method GetWindowActive (line 1029) | virtual bool GetWindowActive() override {
    method GetMouseButtonState (line 1032) | int GetMouseButtonState() const {
    method OnMouseDown (line 1039) | void OnMouseDown(int button, int shift, int x, int y) {
    method OnMouseClick (line 1054) | void OnMouseClick(int button, int shift, int x, int y) {
    method GenerateMouseEvent (line 1061) | void GenerateMouseEvent(bool fl, bool fr, bool fu, bool fd) {
    method InternalKeyDown (line 1121) | virtual void InternalKeyDown(tjs_uint16 key, tjs_uint32 shift) override {
    method InternalKeyUp (line 1181) | void InternalKeyUp(tjs_uint16 key, tjs_uint32 shift) {
    method OnKeyUp (line 1210) | virtual void OnKeyUp(tjs_uint16 vk, int shift) override {
    method OnKeyPress (line 1215) | virtual void OnKeyPress(tjs_uint16 vk, int repeat, bool prevkeystate, ...
    method tTVPImeMode (line 1224) | virtual tTVPImeMode GetDefaultImeMode() const override { return Defaul...
    method ResetImeMode (line 1225) | virtual void ResetImeMode() override { SetImeMode(DefaultImeMode); }
    type CloseAction (line 1229) | enum CloseAction {
    method OnClose (line 1235) | void OnClose(CloseAction& action) {
    method OnCloseQuery (line 1262) | bool OnCloseQuery() {
    method Close (line 1305) | virtual void Close() override {
    method OnCloseQueryCalled (line 1342) | virtual void OnCloseQueryCalled(bool b) {
    method UpdateWindow (line 1371) | virtual void UpdateWindow(tTVPUpdateType type) {
    method SetVisibleFromScript (line 1382) | virtual void SetVisibleFromScript(bool b) {
    method SetUseMouseKey (line 1396) | virtual void SetUseMouseKey(bool b) {
    method GetUseMouseKey (line 1413) | virtual bool GetUseMouseKey() const { return UseMouseKey; }
    method OnMouseUp (line 1414) | void OnMouseUp(int button, int shift, int x, int y) {
    method ResetTouchVelocity (line 1425) | virtual void ResetTouchVelocity(tjs_int id) {
    method ResetMouseVelocity (line 1428) | virtual void ResetMouseVelocity() {
    method GetMouseVelocity (line 1431) | bool GetMouseVelocity(float& x, float& y, float& speed) const {
    method TickBeat (line 1439) | virtual void TickBeat() override {
  class TVPWindowManagerOverlay (line 49) | class TVPWindowManagerOverlay
    method TVPWindowManagerOverlay (line 1455) | static TVPWindowManagerOverlay *create() {
    method rearrangeLayout (line 1461) | virtual void rearrangeLayout() {
    method bindBodyController (line 1468) | virtual void bindBodyController(const NodeMap &allNodes) {
    method updateButtons (line 1520) | void updateButtons() {
  function TVPSetPostUpdateEvent (line 72) | void TVPSetPostUpdateEvent(void(*f)()) { _postUpdate = f; }
  function _refadeMouseCursor (line 74) | static void _refadeMouseCursor() {
  function AdjustNumerAndDenom (line 80) | static void AdjustNumerAndDenom(tjs_int &n, tjs_int &d)
  function TVPGetKeyMouseAsyncState (line 94) | bool TVPGetKeyMouseAsyncState(tjs_uint keycode, bool getcurrent)
  function TVPGetJoyPadAsyncState (line 102) | bool TVPGetJoyPadAsyncState(tjs_uint keycode, bool getcurrent)
  function TVPDrawSceneOnce (line 116) | int TVPDrawSceneOnce(int interval) {
  type tTVPCursor (line 132) | struct tTVPCursor {
  type eIconType (line 139) | enum eIconType {
  type ICONDIR (line 145) | struct ICONDIR {
  type ICODIREntry (line 151) | struct ICODIREntry {
  function Sprite (line 171) | Sprite *TVPLoadCursorCUR(tTJSBinaryStream *pStream) {
  function tTVPCursor (line 315) | tTVPCursor *TVPLoadCursorANI(tTJSBinaryStream *pStream) {
  function tTVPCursor (line 320) | tTVPCursor *TVPLoadCursor(tTJSBinaryStream *stream) {
  function tTVPMouseButton (line 339) | tTVPMouseButton TVP_TMouseButton_To_tTVPMouseButton(int button) {
  class TVPWindowLayer (line 343) | class TVPWindowLayer : public cocos2d::extension::ScrollView, public iWi...
    method TVPWindowLayer (line 373) | TVPWindowLayer(tTJSNI_Window *w)
    method init (line 404) | bool init() {
    method TVPWindowLayer (line 425) | static TVPWindowLayer *create(tTJSNI_Window *w) {
    method Vec2 (line 436) | virtual Vec2 minContainerOffset() { // override {
    method Vec2 (line 455) | virtual Vec2 maxContainerOffset(){ // override {
    method onMouseDownEvent (line 474) | void onMouseDownEvent(Event *_e) {
    method onMouseUpEvent (line 490) | void onMouseUpEvent(Event *_e) {
    method onMouseMoveEvent (line 506) | void onMouseMoveEvent(Event *_e) {
    method onMouseScroll (line 514) | void onMouseScroll(Event *_e) {
    method onTouchBegan (line 534) | virtual bool onTouchBegan(Touch *touch, Event *unused_event) override {
    method onTouchMoved (line 561) | virtual void onTouchMoved(Touch* touch, Event* unused_event) override {
    method onTouchEnded (line 583) | virtual void onTouchEnded(Touch *touch, Event *unused_event) override {
    method onTouchCancelled (line 616) | virtual void onTouchCancelled(Touch *touch, Event *unused_event) overr...
    method onMouseDown (line 637) | void onMouseDown(const Vec2 &pt) {
    method onMouseUp (line 644) | void onMouseUp(const Vec2 &pt) {
    method onMouseMove (line 651) | void onMouseMove(const Vec2 &pt) {
    method onMouseClick (line 659) | void onMouseClick(const Vec2 &pt) {
    method SetPaintBoxSize (line 669) | virtual void SetPaintBoxSize(tjs_int w, tjs_int h) {
    method GetFormEnabled (line 674) | virtual bool GetFormEnabled() {
    method SetDefaultMouseCursor (line 678) | virtual void SetDefaultMouseCursor() {
    method GetCursorPos (line 681) | virtual void GetCursorPos(tjs_int &x, tjs_int &y) {
    method SetCursorPos (line 686) | virtual void SetCursorPos(tjs_int x, tjs_int y) {
    method SetHintText (line 697) | virtual void SetHintText(const ttstr &text) {
    method SetAttentionPoint (line 703) | virtual void SetAttentionPoint(tjs_int left, tjs_int top, const struct...
    method SetImeMode (line 707) | virtual void SetImeMode(tTVPImeMode mode) {
    method ZoomRectangle (line 735) | virtual void ZoomRectangle(
    method BringToFront (line 744) | virtual void BringToFront() {
    method ShowWindowAsModal (line 755) | virtual void ShowWindowAsModal() {
    method GetVisible (line 783) | virtual bool GetVisible() {
    method SetVisible (line 787) | virtual void SetVisible(bool bVisible) {
    method SetCaption (line 803) | virtual void SetCaption(const std::string &s) {
    method ResetDrawSprite (line 807) | void ResetDrawSprite() {
    method RecalcPaintBox (line 829) | void RecalcPaintBox() {
    method SetWidth (line 852) | virtual void SetWidth(tjs_int w) {
    method SetHeight (line 858) | virtual void SetHeight(tjs_int h) {
    method SetSize (line 864) | virtual void SetSize(tjs_int w, tjs_int h) {
    method GetSize (line 868) | virtual void GetSize(tjs_int &w, tjs_int &h) {
    method GetWinSize (line 872) | virtual void GetWinSize(tjs_int &w, tjs_int &h) {
    method tjs_int (line 876) | virtual tjs_int GetWidth() const override { return getContentSize().wi...
    method tjs_int (line 877) | virtual tjs_int GetHeight() const override { return getContentSize().h...
    method SetZoom (line 878) | virtual void SetZoom(tjs_int numer, tjs_int denom) {
    method UpdateDrawBuffer (line 887) | virtual void UpdateDrawBuffer(iTVPTexture2D *tex) {
    method tTJSNI_Window (line 927) | tTJSNI_Window* GetWindow() { return TJSNativeInstance; }
    method AddOverlay (line 929) | virtual void AddOverlay(tTJSNI_BaseVideoOverlay *ovl) {
    method RemoveOverlay (line 939) | virtual void RemoveOverlay(tTJSNI_BaseVideoOverlay *ovl) {
    method UpdateOverlay (line 945) | virtual void UpdateOverlay() {
    method toogleFillScale (line 992) | void toogleFillScale() {
    method InvalidateClose (line 1022) | virtual void InvalidateClose() override {
    method GetWindowActive (line 1029) | virtual bool GetWindowActive() override {
    method GetMouseButtonState (line 1032) | int GetMouseButtonState() const {
    method OnMouseDown (line 1039) | void OnMouseDown(int button, int shift, int x, int y) {
    method OnMouseClick (line 1054) | void OnMouseClick(int button, int shift, int x, int y) {
    method GenerateMouseEvent (line 1061) | void GenerateMouseEvent(bool fl, bool fr, bool fu, bool fd) {
    method InternalKeyDown (line 1121) | virtual void InternalKeyDown(tjs_uint16 key, tjs_uint32 shift) override {
    method InternalKeyUp (line 1181) | void InternalKeyUp(tjs_uint16 key, tjs_uint32 shift) {
    method OnKeyUp (line 1210) | virtual void OnKeyUp(tjs_uint16 vk, int shift) override {
    method OnKeyPress (line 1215) | virtual void OnKeyPress(tjs_uint16 vk, int repeat, bool prevkeystate, ...
    method tTVPImeMode (line 1224) | virtual tTVPImeMode GetDefaultImeMode() const override { return Defaul...
    method ResetImeMode (line 1225) | virtual void ResetImeMode() override { SetImeMode(DefaultImeMode); }
    type CloseAction (line 1229) | enum CloseAction {
    method OnClose (line 1235) | void OnClose(CloseAction& action) {
    method OnCloseQuery (line 1262) | bool OnCloseQuery() {
    method Close (line 1305) | virtual void Close() override {
    method OnCloseQueryCalled (line 1342) | virtual void OnCloseQueryCalled(bool b) {
    method UpdateWindow (line 1371) | virtual void UpdateWindow(tTVPUpdateType type) {
    method SetVisibleFromScript (line 1382) | virtual void SetVisibleFromScript(bool b) {
    method SetUseMouseKey (line 1396) | virtual void SetUseMouseKey(bool b) {
    method GetUseMouseKey (line 1413) | virtual bool GetUseMouseKey() const { return UseMouseKey; }
    method OnMouseUp (line 1414) | void OnMouseUp(int button, int shift, int x, int y) {
    method ResetTouchVelocity (line 1425) | virtual void ResetTouchVelocity(tjs_int id) {
    method ResetMouseVelocity (line 1428) | virtual void ResetMouseVelocity() {
    method GetMouseVelocity (line 1431) | bool GetMouseVelocity(float& x, float& y, float& speed) const {
    method TickBeat (line 1439) | virtual void TickBeat() override {
  function tTJSNI_Window (line 1448) | tTJSNI_Window *TVPGetActiveWindow() {
  class TVPWindowManagerOverlay (line 1453) | class TVPWindowManagerOverlay : public iTVPBaseForm {
    method TVPWindowManagerOverlay (line 1455) | static TVPWindowManagerOverlay *create() {
    method rearrangeLayout (line 1461) | virtual void rearrangeLayout() {
    method bindBodyController (line 1468) | virtual void bindBodyController(const NodeMap &allNodes) {
    method updateButtons (line 1520) | void updateButtons() {
  class MaskLayer (line 1544) | class MaskLayer : public LayerColor {
    method LayerColor (line 1546) | static LayerColor * create(const Color4B& color, GLfloat width, GLfloa...
  function TVPMainScene (line 1568) | TVPMainScene* TVPMainScene::GetInstance() {
  function TVPMainScene (line 1572) | TVPMainScene* TVPMainScene::CreateInstance() {
  function TVPMainScene (line 1622) | TVPMainScene * TVPMainScene::create() {
  type timeval (line 1809) | struct timeval
  function _getUIScale (line 1874) | static float _getUIScale() {
  function Sprite (line 2044) | Sprite *TVPCreateCUR() {
  function iWindowLayer (line 2323) | iWindowLayer *TVPCreateAndAddWindow(tTJSNI_Window *w) {
  function TVPRemoveWindowLayer (line 2330) | void TVPRemoveWindowLayer(iWindowLayer *lay) {
  function TVPConsoleLog (line 2334) | void TVPConsoleLog(const ttstr &l, bool important) {
  type TJS (line 2354) | namespace TJS {
    function TVPConsoleLog (line 2356) | void TVPConsoleLog(const tjs_char *l) {
    function TVPConsoleLog (line 2364) | void TVPConsoleLog(const tjs_nchar *format, ...) {
  function TVPGetScreenSize (line 2374) | bool TVPGetScreenSize(tjs_int idx, tjs_int &w, tjs_int &h) {
  function ttstr (line 2383) | ttstr TVPGetDataPath() {
  function _TVPGetInternalPreferencePath (line 2389) | static std::string _TVPGetInternalPreferencePath() {
  function tjs_uint32 (line 2404) | tjs_uint32 TVPGetCurrentShiftKeyState()
  function ttstr (line 2418) | ttstr TVPGetPlatformName()
  function ttstr (line 2448) | ttstr TVPGetOSName()

FILE: src/core/environ/cocos2d/MainScene.h
  function namespace (line 7) | namespace cocos2d {
  type eEnterAni (line 26) | enum eEnterAni {
  type eLeaveAni (line 34) | enum eLeaveAni {

FILE: src/core/environ/cocos2d/YUVSprite.cpp
  function TVPYUVSprite (line 117) | TVPYUVSprite* TVPYUVSprite::create()

FILE: src/core/environ/cocos2d/YUVSprite.h
  function class (line 4) | class TVPYUVSprite : public cocos2d::Sprite {

FILE: src/core/environ/combase.h
  type IID (line 20) | typedef struct _IID
  function class (line 38) | class IUnknown
  function class (line 51) | class ISequentialStream : public IUnknown
  type OLECHAR (line 72) | typedef char      OLECHAR;
  type LPSTR (line 73) | typedef LPSTR     LPOLESTR;
  type LPCSTR (line 74) | typedef LPCSTR    LPCOLESTR;
  type STATSTG (line 75) | typedef struct tagSTATSTG
  type STREAM_SEEK (line 94) | typedef
  type STATFLAG (line 102) | typedef
  type STGTY (line 109) | typedef
  function ISequentialStream (line 127) | struct IStream : public ISequentialStream

FILE: src/core/environ/linux/Platform.cpp
  function TVPGetMemoryInfo (line 10) | void TVPGetMemoryInfo(TVPMemoryInfo &m)
  function TVPRelinquishCPU (line 71) | void TVPRelinquishCPU(){
  function TVP_utime (line 75) | void TVP_utime(const char *name, time_t modtime) {

FILE: src/core/environ/typedefine.h
  type LANGID (line 59) | typedef int LANGID;
  type INT (line 60) | typedef int INT;
  type UINT (line 61) | typedef uint32_t UINT;
  type ARGB (line 62) | typedef uint32_t ARGB;
  type UINT32 (line 63) | typedef uint32_t UINT32;
  type PROPID (line 64) | typedef int32_t PROPID;
  type REAL (line 66) | typedef float REAL;
  type BYTE (line 86) | typedef uint8_t BYTE;
  type WORD (line 88) | typedef uint16_t WORD;
  type DWORD (line 92) | typedef uint32_t DWORD;
  type SHORT (line 97) | typedef int16_t SHORT;
  type LONG (line 98) | typedef int32_t LONG;
  type ULONG (line 99) | typedef uint32_t ULONG;
  type LONGLONG (line 101) | typedef int64_t LONGLONG;
  type SIZE_T (line 103) | typedef size_t SIZE_T;
  type SOCKET (line 107) | typedef uint32_t SOCKET;
  type BYTE (line 117) | typedef unsigned char BYTE;
  type WORD (line 119) | typedef unsigned short WORD;
  type UINT16 (line 120) | typedef unsigned short UINT16;
  type INT16 (line 121) | typedef short INT16;
  type UINT_PTR (line 122) | typedef unsigned int  UINT_PTR;
  type UINT (line 123) | typedef unsigned int  UINT;
  type UINT32 (line 124) | typedef unsigned int UINT32;
  type REAL (line 125) | typedef float REAL;
  type INT (line 126) | typedef int                 INT;
  type INT32 (line 127) | typedef signed int INT32;
  type ULONGLONG (line 129) | typedef uint64_t ULONGLONG;
  type tjs_char (line 130) | typedef tjs_char *LPWSTR;
  type ULARGE_INTEGER (line 131) | typedef union _ULARGE_INTEGER {
  type LARGE_INTEGER (line 138) | typedef union _LARGE_INTEGER {
  type CHAR (line 145) | typedef char CHAR;
  type CHAR (line 146) | typedef CHAR *NPSTR, *LPSTR, *PSTR;
  type CHAR (line 147) | typedef const CHAR *LPCSTR;
  type FILETIME (line 148) | typedef struct _FILETIME
  type RECT (line 155) | typedef struct {
  type LONG_PTR (line 161) | typedef intptr_t			LONG_PTR;
  type LONG (line 162) | typedef LONG HRESULT;
  type GUID (line 164) | typedef struct {

FILE: src/core/environ/ui/BaseForm.cpp
  function Node (line 56) | Node* CSBReader::Load(const char *filename) {
  function ReloadTableViewAndKeepPos (line 205) | void ReloadTableViewAndKeepPos(cocos2d::extension::TableView *pTableView)

FILE: src/core/environ/ui/BaseForm.h
  function namespace (line 7) | namespace cocos2d {
  function namespace (line 27) | namespace cocostudio {
  function class (line 65) | class iTVPBaseForm : public cocos2d::Node {
  function class (line 101) | class TTouchEventRouter : public cocos2d::ui::Widget {
  function class (line 126) | class TCommonTableCell : public cocos2d::extension::TableViewCell {
  function class (line 152) | class iTVPFloatForm : public iTVPBaseForm {

FILE: src/core/environ/ui/ConsoleWindow.cpp
  function TVPConsoleWindow (line 10) | TVPConsoleWindow* TVPConsoleWindow::create(int fontSize, cocos2d::Node *...

FILE: src/core/environ/ui/ConsoleWindow.h
  function class (line 9) | class TVPConsoleWindow : public cocos2d::Node {

FILE: src/core/environ/ui/DebugViewLayerForm.cpp
  class DebugViewLayerForm::DebugViewLayerCell (line 14) | class DebugViewLayerForm::DebugViewLayerCell : public TableViewCell {
    method DebugViewLayerCell (line 16) | static DebugViewLayerCell* create() {
    method init (line 23) | virtual bool init() override {
    method setContentSize (line 39) | virtual void setContentSize(const Size& contentSize) override {
    method setData (line 44) | void setData(const Size &laySize, const LayerInfo &data) {
  function DebugViewLayerForm (line 88) | DebugViewLayerForm * DebugViewLayerForm::create() {
  class tHackTVPDrawDevice (line 95) | class tHackTVPDrawDevice : public tTVPDrawDevice {
    method iTVPLayerManager (line 97) | iTVPLayerManager *getPrimaryLayerManager() {
  class tHackTableView (line 102) | class tHackTableView : public TableView {
    method setSwallowTouches (line 104) | void setSwallowTouches(bool swallow) {
  function Size (line 167) | Size DebugViewLayerForm::tableCellSizeForIndex(TableView *table, ssize_t...

FILE: src/core/environ/ui/DebugViewLayerForm.h
  function virtual (line 17) | virtual ssize_t numberOfCellsInTableView(cocos2d::extension::TableView *...
  type LayerInfo (line 22) | struct LayerInfo {

FILE: src/core/environ/ui/FileSelectorForm.cpp
  function convertDistanceFromPointToInch (line 32) | static float convertDistanceFromPointToInch(const Vec2& dis)
  function IsPathExist (line 40) | static bool IsPathExist(const std::string &path) {
  function TableViewCell (line 411) | TableViewCell* TVPBaseFileSelectorForm::tableCellAtIndex(TableView *tabl...
  function Size (line 433) | Size TVPBaseFileSelectorForm::tableCellSizeForIndex(TableView *table, ss...
  class UnpackArchive (line 515) | class UnpackArchive  {
    method Init (line 522) | bool Init(const std::string &path, const std::string &outpath) {
    method Start (line 557) | void Start(const std::function<void()> &onEnded) {
    method OnEnded (line 563) | void OnEnded() {
    method OnError (line 570) | void OnError(int err, const char *msg) {
    method OnProgress (line 579) | void OnProgress(tjs_uint64 total_size, tjs_uint64 file_size) {
    method OnNewFile (line 600) | void OnNewFile(int idx, const std::string &utf8name, tjs_uint64 file_s...
    method _onPassword (line 613) | bool _onPassword() {
    method OnPassword (line 628) | std::string OnPassword() {
  function TVPListForm (line 787) | TVPListForm * TVPListForm::create(const std::vector<cocos2d::ui::Widget*...
  function TVPShowFileSelector (line 859) | std::string TVPShowFileSelector(const std::string &title, const std::str...
  function TVPFileSelectorForm (line 888) | TVPFileSelectorForm * TVPFileSelectorForm::create(const std::string &ini...

FILE: src/core/environ/ui/FileSelectorForm.h
  function class (line 6) | class TVPListForm : public cocos2d::Node {
  function virtual (line 34) | virtual void rearrangeLayout() override;
  function class (line 138) | class FileItemCell : public cocos2d::extension::TableViewCell {
  function class (line 186) | class TVPFileSelectorForm : public TVPBaseFileSelectorForm {

FILE: src/core/environ/ui/GameMainMenu.cpp
  function TVPGameMainMenu (line 30) | TVPGameMainMenu * TVPGameMainMenu::create(GLubyte opa) {

FILE: src/core/environ/ui/GameMainMenu.h
  function class (line 4) | class TVPGameMainMenu : public cocos2d::Node {

FILE: src/core/environ/ui/GlobalPreferenceForm.cpp
  function iSysConfigManager (line 17) | static iSysConfigManager* GetConfigManager() {
  function TVPGlobalPreferenceForm (line 22) | TVPGlobalPreferenceForm * TVPGlobalPreferenceForm::create(const tPrefere...
  function WalkConfig (line 34) | static void WalkConfig(tPreferenceScreen* pref) {

FILE: src/core/environ/ui/GlobalPreferenceForm.h
  function class (line 4) | class TVPGlobalPreferenceForm : public TVPPreferenceForm {

FILE: src/core/environ/ui/InGameMenuForm.cpp
  function TVPInGameMenuForm (line 16) | TVPInGameMenuForm * TVPInGameMenuForm::create(const std::string& title, ...
  function TVPShowPopMenu (line 110) | void TVPShowPopMenu(tTJSNI_MenuItem* menu) {

FILE: src/core/environ/ui/InGameMenuForm.h
  function class (line 6) | class TVPInGameMenuForm : public iTVPBaseForm {

FILE: src/core/environ/ui/IndividualPreferenceForm.cpp
  function iSysConfigManager (line 18) | static iSysConfigManager* GetConfigManager() {
  function initInividualConfig (line 25) | static void initInividualConfig() {
  function IndividualPreferenceForm (line 31) | IndividualPreferenceForm * IndividualPreferenceForm::create(const tPrefe...

FILE: src/core/environ/ui/IndividualPreferenceForm.h
  function class (line 4) | class IndividualPreferenceForm : public TVPPreferenceForm {

FILE: src/core/environ/ui/MainFileSelectorForm.cpp
  function _AskExit (line 39) | static void _AskExit() {
  function _GetHistoryXMLPath (line 46) | static std::string _GetHistoryXMLPath() {
  function _LoadHistory (line 50) | static void _LoadHistory() {
  function _SaveHistory (line 68) | static void _SaveHistory() {
  function _RemoveHistory (line 86) | static void _RemoveHistory(const std::string &path) {
  function _AddHistory (line 94) | static void _AddHistory(const std::string &path) {
  function _CheckGameFolder (line 101) | static bool _CheckGameFolder(const std::string &path) {
  function TVPMainFileSelectorForm (line 234) | TVPMainFileSelectorForm * TVPMainFileSelectorForm::create() {

FILE: src/core/environ/ui/MainFileSelectorForm.h
  function namespace (line 4) | namespace cocos2d {
  function class (line 8) | class TVPMainFileSelectorForm : public TVPBaseFileSelectorForm {

FILE: src/core/environ/ui/MessageBox.cpp
  function TVPSimpleProgressForm (line 123) | TVPSimpleProgressForm* TVPSimpleProgressFo
Condensed preview — 685 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,692K chars).
[
  {
    "path": ".github/workflows/build_android.yml",
    "chars": 2743,
    "preview": "name: build android\r\non:\r\n  push: {tags:  ['v*']} #  Push events to matching v*, i.e. v1.0, v20.15.10\r\n\r\npermissions:\r\n "
  },
  {
    "path": ".gitignore",
    "chars": 665,
    "preview": "# general\r\nassets/**\r\nbuild/**\r\nbuild_*/**\r\nthirdparty/build/**\r\nthirdparty/port/**\r\n.vscode/settings.json\r\n\r\n# android\r"
  },
  {
    "path": ".vscode/c_cpp_properties.json",
    "chars": 1155,
    "preview": "{\n    \"env\": { // edit your env here\n        \"androidsdk\": \"D:/Software/env/sdk/androidsdk\",\n        \"androidndk\": \"${an"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 1391,
    "preview": "cmake_minimum_required(VERSION 3.6)\nproject(krkr2yuri)\n\nset(CMAKE_CXX_STANDARD 11)\nset(KRKR2CORE_PATH ${CMAKE_CURRENT_SO"
  },
  {
    "path": "LICENSE",
    "chars": 41898,
    "preview": "Copyright (c), W.Dee and contributors All rights reserved.\nContributors\n Go Watanabe, Kenjo, Kiyobee, Kouhei Yanagita, m"
  },
  {
    "path": "project/android/.gitignore",
    "chars": 113,
    "preview": ".gradle\n/local.properties\n/.idea/workspace.xml\n/.idea/libraries\n.DS_Store\n/build\n/captures\n/.externalNativeBuild\n"
  },
  {
    "path": "project/android/.idea/.gitignore",
    "chars": 50,
    "preview": "# Default ignored files\r\n/shelf/\r\n/workspace.xml\r\n"
  },
  {
    "path": "project/android/.idea/codeStyles/Project.xml",
    "chars": 3309,
    "preview": "<component name=\"ProjectCodeStyleConfiguration\">\n  <code_scheme name=\"Project\" version=\"173\">\n    <codeStyleSettings lan"
  },
  {
    "path": "project/android/.idea/compiler.xml",
    "chars": 169,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"CompilerConfiguration\">\n    <bytecodeTar"
  },
  {
    "path": "project/android/.idea/gradle.xml",
    "chars": 840,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"GradleMigrationSettings\" migrationVersio"
  },
  {
    "path": "project/android/.idea/jarRepositories.xml",
    "chars": 1267,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"RemoteRepositoriesConfiguration\">\n    <r"
  },
  {
    "path": "project/android/.idea/misc.xml",
    "chars": 371,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectRootManager\" version=\"2\" language"
  },
  {
    "path": "project/android/.idea/vcs.xml",
    "chars": 217,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<project version=\"4\">\r\n  <component name=\"VcsDirectoryMappings\">\r\n    <mapping d"
  },
  {
    "path": "project/android/app/.gitignore",
    "chars": 44,
    "preview": "/.externalNativeBuild\n/.cxx\n/build\n/release\n"
  },
  {
    "path": "project/android/app/AndroidManifest.xml",
    "chars": 1832,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Replace org.libsdl.app with the identifier of your game below, e.g.\n     com"
  },
  {
    "path": "project/android/app/build.gradle",
    "chars": 3251,
    "preview": "plugins {\n    id 'com.android.application'\n}\n\nandroid {\n    // compileSdkVersion PROP_TARGET_SDK_VERSION\n    ndkVersion "
  },
  {
    "path": "project/android/app/cpp/CMakeLists.txt",
    "chars": 510,
    "preview": "cmake_minimum_required(VERSION 3.7)\r\nproject(krkr2yuri_android)\r\n\r\nset(KRKR2YURI_DIR ${CMAKE_SOURCE_DIR}/../../../..)\r\ni"
  },
  {
    "path": "project/android/app/cpp/krkr2_android.cpp",
    "chars": 10725,
    "preview": "/* Include the SDL main definition header */\n#include <jni.h>\n#include \"platform/android/jni/JniHelper.h\"\n#include \"coco"
  },
  {
    "path": "project/android/app/java/com/yuri/kirikiri2/MainActivity.java",
    "chars": 256,
    "preview": "package com.yuri.kirikiri2;\nimport org.tvp.kirikiri2.KR2Activity;\n\npublic class MainActivity extends KR2Activity {\n\tstat"
  },
  {
    "path": "project/android/app/java/org/tvp/kirikiri2/KR2Activity.java",
    "chars": 45061,
    "preview": "package org.tvp.kirikiri2;\n\nimport android.Manifest;\nimport android.annotation.SuppressLint;\nimport android.annotation.T"
  },
  {
    "path": "project/android/app/java/org/tvp/kirikiri2/MediaStoreHack.java",
    "chars": 25774,
    "preview": "package org.tvp.kirikiri2;\n\n/**\n * Created by Arpit on 29-06-2015.\n */\nimport java.io.File;\nimport java.io.FileOutputStr"
  },
  {
    "path": "project/android/app/proguard-rules.pro",
    "chars": 1397,
    "preview": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in E:"
  },
  {
    "path": "project/android/app/res/values/strings.xml",
    "chars": 79,
    "preview": "<resources>\n    <string name=\"app_name\">Kirikiroid2-Yuri</string>\n</resources>\n"
  },
  {
    "path": "project/android/build.gradle",
    "chars": 351,
    "preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nplugins {\n    id 'c"
  },
  {
    "path": "project/android/gradle/wrapper/gradle-wrapper.properties",
    "chars": 236,
    "preview": "#Sat Mar 11 01:47:25 JST 2023\r\ndistributionBase=GRADLE_USER_HOME\r\ndistributionUrl=https\\://services.gradle.org/distribut"
  },
  {
    "path": "project/android/gradle.properties",
    "chars": 1923,
    "preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
  },
  {
    "path": "project/android/gradlew",
    "chars": 5080,
    "preview": "#!/usr/bin/env bash\n\n##############################################################################\n##\n##  Gradle start "
  },
  {
    "path": "project/android/gradlew.bat",
    "chars": 2314,
    "preview": "@if \"%DEBUG%\" == \"\" @echo off\n@rem ##########################################################################\n@rem\n@rem "
  },
  {
    "path": "project/android/settings.gradle",
    "chars": 512,
    "preview": "pluginManagement {\n    repositories {\n        google()\n        mavenCentral()\n        gradlePluginPortal()\n    }\n}\ndepen"
  },
  {
    "path": "project/ui/.cocos-project.json",
    "chars": 101,
    "preview": "{\n    \"engine_type\": \"prebuilt\", \n    \"engine_version\": \"cocos2d-x-3.6\", \n    \"project_type\": \"cpp\"\n}"
  },
  {
    "path": "project/ui/Resources/res/locale/en_us.xml",
    "chars": 8084,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Locale lang=\"en_us\">\n    <Item id=\"preference_title\" text=\"Global Preference\"/>\n"
  },
  {
    "path": "project/ui/Resources/res/locale/ja_jp.xml",
    "chars": 7078,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Locale lang=\"en_us\">\n    <Item id=\"preference_title\" text=\"全体設定\"/>\n    <Item id="
  },
  {
    "path": "project/ui/Resources/res/locale/zh_cn.xml",
    "chars": 6692,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Locale lang=\"en_us\">\n    <Item id=\"preference_title\" text=\"全局设置\"/>\n    <Item id="
  },
  {
    "path": "project/ui/Resources/res/locale/zh_tw.xml",
    "chars": 6692,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Locale lang=\"en_us\">\n    <Item id=\"preference_title\" text=\"全局设置\"/>\n    <Item id="
  },
  {
    "path": "project/ui/cocosstudio/ui/BottomBar.csd",
    "chars": 1422,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"BottomBar\" Type=\"Layer\" ID=\"d6e3d7ad-9136-4e50-9628-78faf448d52c\" Version=\"3.10.0.0\" /"
  },
  {
    "path": "project/ui/cocosstudio/ui/BottomBarTextInput.csd",
    "chars": 5758,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"BottomBarTextInput\" Type=\"Layer\" ID=\"47c22677-e81d-45f8-908b-834ed07ae23b\" Version=\"3."
  },
  {
    "path": "project/ui/cocosstudio/ui/CheckListDialog.csd",
    "chars": 13712,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"CheckListDialog\" Type=\"Layer\" ID=\"cd4e123b-aa28-45db-a853-9eb0a0b833ce\" Version=\"3.10."
  },
  {
    "path": "project/ui/cocosstudio/ui/FileItem.csd",
    "chars": 7575,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"FileItem\" Type=\"Layer\" ID=\"003d7daa-f264-4050-83c1-fc022b6799e2\" Version=\"3.10.0.0\" />"
  },
  {
    "path": "project/ui/cocosstudio/ui/FileManageMenu.csd",
    "chars": 93968,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"FileManageMenu\" Type=\"Layer\" ID=\"0157d9b8-af36-4c34-ab31-3a6ace980d66\" Version=\"3.10.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/GameMenu.csd",
    "chars": 15518,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"GameMenu\" Type=\"Layer\" ID=\"efdda4e0-63f0-41c1-ab04-41466bb5c117\" Version=\"3.10.0.0\" />"
  },
  {
    "path": "project/ui/cocosstudio/ui/KeySelect.csd",
    "chars": 3245,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"KeySelect\" Type=\"Layer\" ID=\"18132b85-255a-4049-bb5b-4343880f3a4c\" Version=\"3.10.0.0\" /"
  },
  {
    "path": "project/ui/cocosstudio/ui/ListItem.csd",
    "chars": 1672,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"ListItem\" Type=\"Layer\" ID=\"e5c95844-665a-46e4-afbd-60543ed667b5\" Version=\"3.10.0.0\" />"
  },
  {
    "path": "project/ui/cocosstudio/ui/ListView.csd",
    "chars": 1298,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"ListView\" Type=\"Layer\" ID=\"c3c5322b-fc57-4810-92d1-7bc184317759\" Version=\"3.10.0.0\" />"
  },
  {
    "path": "project/ui/cocosstudio/ui/MainFileSelector.csd",
    "chars": 3348,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"MainFileSelector\" Type=\"Layer\" ID=\"203fa2aa-590f-4f65-83d4-2c4dd4c4af72\" Version=\"3.10"
  },
  {
    "path": "project/ui/cocosstudio/ui/MediaPlayerBody.csd",
    "chars": 3330,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"MediaPlayerBody\" Type=\"Layer\" ID=\"fa47b835-295e-4e57-a27a-597467d49fab\" Version=\"3.10."
  },
  {
    "path": "project/ui/cocosstudio/ui/MediaPlayerFoot.csd",
    "chars": 10355,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"MediaPlayerFoot\" Type=\"Layer\" ID=\"ad9190bd-3a12-4ad9-8901-8daca7c1d3ec\" Version=\"3.10."
  },
  {
    "path": "project/ui/cocosstudio/ui/MediaPlayerNavi.csd",
    "chars": 6727,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"MediaPlayerNavi\" Type=\"Layer\" ID=\"1579a466-7977-464e-b402-ea4d21282e25\" Version=\"3.10."
  },
  {
    "path": "project/ui/cocosstudio/ui/MenuList.csd",
    "chars": 48535,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"MenuList\" Type=\"Layer\" ID=\"2f5502d5-e035-4193-8733-5dee9cc4863c\" Version=\"3.10.0.0\" />"
  },
  {
    "path": "project/ui/cocosstudio/ui/MessageBox.csd",
    "chars": 12793,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"MessageBox\" Type=\"Layer\" ID=\"dcd674b2-1a82-418f-b8c5-708a548451ac\" Version=\"3.10.0.0\" "
  },
  {
    "path": "project/ui/cocosstudio/ui/NaviBar.csd",
    "chars": 5902,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"NaviBar\" Type=\"Layer\" ID=\"e0c48d51-440d-45d7-a047-668f6791ee65\" Version=\"3.10.0.0\" />\n"
  },
  {
    "path": "project/ui/cocosstudio/ui/NaviBarWithMenu.csd",
    "chars": 6288,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"NaviBarWithMenu\" Type=\"Layer\" ID=\"d2a2f3ee-482c-4afc-874d-4dc87e58b6b1\" Version=\"3.10."
  },
  {
    "path": "project/ui/cocosstudio/ui/ProgressBox.csd",
    "chars": 19138,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"ProgressBox\" Type=\"Layer\" ID=\"bf9b3cee-a64d-48be-a767-64e6f23af9b5\" Version=\"3.10.0.0\""
  },
  {
    "path": "project/ui/cocosstudio/ui/RecentListItem.csd",
    "chars": 11255,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"RecentListItem\" Type=\"Layer\" ID=\"9debbcf9-7030-4c9d-8021-6c277ec0a91e\" Version=\"3.10.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/SelectList.csd",
    "chars": 14336,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"SelectList\" Type=\"Layer\" ID=\"fb5f9ac2-71b8-4d44-bd74-5bdffeabc31b\" Version=\"3.10.0.0\" "
  },
  {
    "path": "project/ui/cocosstudio/ui/SelectListItem.csd",
    "chars": 1359,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"SelectListItem\" Type=\"Layer\" ID=\"554ef725-5acc-490d-a2b6-54230ba7700a\" Version=\"3.10.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/TableView.csd",
    "chars": 1259,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"TableView\" Type=\"Layer\" ID=\"23410f2e-2ffa-4490-ba35-5eb7172f5c97\" Version=\"3.10.0.0\" /"
  },
  {
    "path": "project/ui/cocosstudio/ui/TextPairInput.csd",
    "chars": 7521,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"TextPairInput\" Type=\"Layer\" ID=\"01f597c4-7c9e-45eb-b10c-5410df277c58\" Version=\"3.10.0."
  },
  {
    "path": "project/ui/cocosstudio/ui/WinMgrOverlay.csd",
    "chars": 8309,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"WinMgrOverlay\" Type=\"Layer\" ID=\"992a2fb5-67d5-4fa3-b7bb-2533fafa6727\" Version=\"3.10.0."
  },
  {
    "path": "project/ui/cocosstudio/ui/comctrl/CheckBoxItem.csd",
    "chars": 4396,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"CheckBoxItem\" Type=\"Layer\" ID=\"e39f38cb-fb62-4fa8-8343-2cc7467c3eac\" Version=\"3.10.0.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/comctrl/SelectListItem.csd",
    "chars": 3273,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"SelectListItem\" Type=\"Layer\" ID=\"06796c6a-085b-45a0-90bd-30563bdf31c3\" Version=\"3.10.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/comctrl/SeperateItem.csd",
    "chars": 1260,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"SeperateItem\" Type=\"Layer\" ID=\"3a906c4c-e6a3-497b-96d8-bcea8cd53981\" Version=\"3.10.0.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/comctrl/SliderIconItem.csd",
    "chars": 5554,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"SliderIconItem\" Type=\"Layer\" ID=\"ee67d08c-e2db-4261-b60a-4800efc50f53\" Version=\"3.10.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/comctrl/SliderTextItem.csd",
    "chars": 5740,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"SliderTextItem\" Type=\"Layer\" ID=\"2ac4a8de-1c1e-445e-9c24-6cbdf6f3d88e\" Version=\"3.10.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/comctrl/SubDirItem.csd",
    "chars": 5459,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"SubDirItem\" Type=\"Layer\" ID=\"de386a4b-11bd-472d-bc71-dbeaa9c6a850\" Version=\"3.10.0.0\" "
  },
  {
    "path": "project/ui/cocosstudio/ui/help/AllTips.csd",
    "chars": 5833,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"AllTips\" Type=\"Layer\" ID=\"36208f0a-d8c3-4c07-bd77-a553d27dfa57\" Version=\"3.10.0.0\" />\n"
  },
  {
    "path": "project/ui/cocosstudio/ui/help/MouseModeTips.csd",
    "chars": 22945,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"MouseModeTips\" Type=\"Layer\" ID=\"90f387b1-60d8-4bed-ab52-3c6c51d094f9\" Version=\"3.10.0."
  },
  {
    "path": "project/ui/cocosstudio/ui/help/ScreenModeTips.csd",
    "chars": 7134,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"ScreenModeTips\" Type=\"Layer\" ID=\"aa5e7d29-36d3-4a83-9579-f8971574964e\" Version=\"3.10.0"
  },
  {
    "path": "project/ui/cocosstudio/ui/help/TouchModeTips.csd",
    "chars": 19873,
    "preview": "<GameFile>\n  <PropertyGroup Name=\"TouchModeTips\" Type=\"Layer\" ID=\"95c42862-de39-4543-9b10-37115a1a9992\" Version=\"3.10.0."
  },
  {
    "path": "project/ui/kr2.ccs",
    "chars": 4025,
    "preview": "<Solution>\n  <PropertyGroup Name=\"kr2\" Version=\"3.10.0.0\" Type=\"CocosStudio\" />\n  <SolutionFolder>\n    <Group ctype=\"Res"
  },
  {
    "path": "project/ui/kr2.cfg",
    "chars": 782,
    "preview": "<SolutionConfig Version=\"3.10.0.0\">\n  <PublishDirectory Value=\"Resources/res\" />\n  <PackageDirectory Value=\"package\\\" />"
  },
  {
    "path": "readme.md",
    "chars": 5256,
    "preview": "# Krikiroid2-Yuri  \n\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/YuriSizuku/Kirikiroid2Yur"
  },
  {
    "path": "script/_androida64.sh",
    "chars": 12851,
    "preview": "# must use after _fetch.sh from cross_androida64.sh\n\n# audio\nbuild_opus() \n{\n    if ! [ -d $OPUS_SRC/build_$PLATFORM ]; "
  },
  {
    "path": "script/_fetch.sh",
    "chars": 6145,
    "preview": "# prepare dirs\nif ! [ -d $CMAKELISTS_PATH/thirdparty/port ]; then mkdir -p $CMAKELISTS_PATH/thirdparty/port; fi\nif ! [ -"
  },
  {
    "path": "script/cross_androida64.sh",
    "chars": 2488,
    "preview": "# bash -c \"export SKIP_PORTS=yes && ./cross_androida64.sh\"\nPLATFORM=androida64\nBUILD_PATH=./../build_${PLATFORM}\nCMAKELI"
  },
  {
    "path": "src/core/Android.mk",
    "chars": 5445,
    "preview": "LOCAL_PATH := $(call my-dir)\n\ninclude $(CLEAR_VARS)\n\nLOCAL_MODULE := krkr2\n\nLOCAL_SRC_FILES := \\\n$(filter-out $(LOCAL_PA"
  },
  {
    "path": "src/core/CMakeLists.txt",
    "chars": 6544,
    "preview": "cmake_minimum_required(VERSION 3.6)\r\nproject(krkr2core)\r\n\r\nset(KRKR2CORE_PATH ${CMAKE_CURRENT_SOURCE_DIR})\r\nset(COCOS2DX"
  },
  {
    "path": "src/core/base/7zArchive.cpp",
    "chars": 7153,
    "preview": "#include \"tjsCommHead.h\"\n#include \"StorageIntf.h\"\n#include \"UtilStreams.h\"\n#include <algorithm>\nextern \"C\" {\n#include \"p"
  },
  {
    "path": "src/core/base/BinaryStream.cpp",
    "chars": 2154,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/BinaryStream.h",
    "chars": 989,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/CharacterSet.cpp",
    "chars": 6178,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/CharacterSet.h",
    "chars": 879,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/EventIntf.cpp",
    "chars": 36265,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/EventIntf.h",
    "chars": 13119,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/PluginIntf.cpp",
    "chars": 1496,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/PluginIntf.h",
    "chars": 1282,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/ScriptMgnIntf.cpp",
    "chars": 46243,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/ScriptMgnIntf.h",
    "chars": 6225,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/StorageIntf.cpp",
    "chars": 39519,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/StorageIntf.h",
    "chars": 12201,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/SysInitIntf.cpp",
    "chars": 3830,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/SysInitIntf.h",
    "chars": 3432,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/SystemIntf.cpp",
    "chars": 14219,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/SystemIntf.h",
    "chars": 1586,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/TARArchive.cpp",
    "chars": 4265,
    "preview": "#include \"tjsCommHead.h\"\n#include \"StorageIntf.h\"\n#include \"UtilStreams.h\"\n#include \"Platform.h\"\n#include \"MsgIntf.h\"\n#i"
  },
  {
    "path": "src/core/base/TextStream.cpp",
    "chars": 20860,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/TextStream.h",
    "chars": 1295,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/UserEvent.h",
    "chars": 621,
    "preview": "\n\n#ifndef __USER_EVENT_H__\n#define __USER_EVENT_H__\n\n#ifndef WM_APP\n#define WM_APP 0x10000\n#endif\n#define TVP_EV_TIMER_T"
  },
  {
    "path": "src/core/base/UtilStreams.cpp",
    "chars": 28260,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/UtilStreams.h",
    "chars": 6656,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/XP3Archive.cpp",
    "chars": 33371,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/XP3Archive.h",
    "chars": 7010,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/ZIPArchive.cpp",
    "chars": 70003,
    "preview": "#include \"tjsCommHead.h\"\n#include \"StorageIntf.h\"\n#include \"UtilStreams.h\"\n#include <algorithm>\n\n#ifndef NOUNCRYPT\n     "
  },
  {
    "path": "src/core/base/common.h",
    "chars": 667,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/tar.h",
    "chars": 3092,
    "preview": "#ifndef __TAR_H\n#define __TAR_H\n\n/*\n * tar header block definition\n *\n * From IEEE Std 1003.1-1988, pp.156\n */\n\n\n//POSIX"
  },
  {
    "path": "src/core/base/win32/EventImpl.cpp",
    "chars": 8735,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/EventImpl.h",
    "chars": 588,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/FileSelector.cpp",
    "chars": 10114,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/FileSelector.h",
    "chars": 627,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/FuncStubs.cpp",
    "chars": 175101,
    "preview": "/*\n\n\tTVP2 ( T Visual Presenter 2 )  A script authoring tool\n\tCopyright (C) 2000-2009 W.Dee <dee@kikyou.info> and contrib"
  },
  {
    "path": "src/core/base/win32/FuncStubs.h",
    "chars": 301,
    "preview": "/*\n\n\tTVP2 ( T Visual Presenter 2 )  A script authoring tool\n\tCopyright (C) 2000-2009 W.Dee <dee@kikyou.info> and contrib"
  },
  {
    "path": "src/core/base/win32/NativeEventQueue.cpp",
    "chars": 592,
    "preview": "#include \"tjsCommHead.h\"\n#include \"NativeEventQueue.h\"\n#include \"Application.h\"\n\nvoid NativeEventQueueImplement::PostEve"
  },
  {
    "path": "src/core/base/win32/NativeEventQueue.h",
    "chars": 1643,
    "preview": "\n#ifndef __NATIVE_EVENT_QUEUE_H__\n#define __NATIVE_EVENT_QUEUE_H__\n\n// ĂяonhVOXbhœ삷CxgL[\n\nclass NativeEvent {\npublic:\n//"
  },
  {
    "path": "src/core/base/win32/PluginImpl.cpp",
    "chars": 27080,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/PluginImpl.h",
    "chars": 6952,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/ScriptMgnImpl.cpp",
    "chars": 6417,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/ScriptMgnImpl.h",
    "chars": 879,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/StorageImpl.cpp",
    "chars": 42585,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/StorageImpl.h",
    "chars": 6269,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/SusieArchive.cpp",
    "chars": 11479,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/SusieArchive.h",
    "chars": 754,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/SysInitImpl.cpp",
    "chars": 57757,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/SysInitImpl.h",
    "chars": 1077,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/SystemImpl.cpp",
    "chars": 33115,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/SystemImpl.h",
    "chars": 1008,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/base/win32/win32io.h",
    "chars": 257,
    "preview": "#pragma once\n#ifdef WIN32\n// posix io api\nextern \"C\" {\n\textern __int64 __cdecl lseek64(int _FileHandle, __int64 _Offset,"
  },
  {
    "path": "src/core/environ/Application.cpp",
    "chars": 32800,
    "preview": "#include \"tjsCommHead.h\"\n\n#include <algorithm>\n#include <string>\n#include <vector>\n#include <assert.h>\n\n#include \"tjsErr"
  },
  {
    "path": "src/core/environ/Application.h",
    "chars": 5064,
    "preview": "\n#ifndef __T_APPLICATION_H__\n#define __T_APPLICATION_H__\n\n#include \"tjsVariant.h\"\n#include \"tjsString.h\"\n#include <vecto"
  },
  {
    "path": "src/core/environ/ConfigManager/GlobalConfigManager.cpp",
    "chars": 5586,
    "preview": "#include \"GlobalConfigManager.h\"\n#include \"tinyxml2/tinyxml2.h\"\n#include \"platform/CCFileUtils.h\"\n#include \"Platform.h\"\n"
  },
  {
    "path": "src/core/environ/ConfigManager/GlobalConfigManager.h",
    "chars": 1703,
    "preview": "#pragma once\n#include <unordered_map>\n#include <string>\n#include <vector>\n#include <map>\n\nclass iSysConfigManager {\nprot"
  },
  {
    "path": "src/core/environ/ConfigManager/IndividualConfigManager.cpp",
    "chars": 2700,
    "preview": "#include \"IndividualConfigManager.h\"\n#include \"platform/CCFileUtils.h\"\n#include \"LocaleConfigManager.h\"\n#include \"Platfo"
  },
  {
    "path": "src/core/environ/ConfigManager/IndividualConfigManager.h",
    "chars": 1072,
    "preview": "#pragma once\n#include <unordered_map>\n#include <string>\n#include <vector>\n#include \"GlobalConfigManager.h\"\n\nclass Indivi"
  },
  {
    "path": "src/core/environ/ConfigManager/LocaleConfigManager.cpp",
    "chars": 2767,
    "preview": "#include \"LocaleConfigManager.h\"\n#include \"platform/CCFileUtils.h\"\n#include \"GlobalConfigManager.h\"\n#include \"tinyxml2/t"
  },
  {
    "path": "src/core/environ/ConfigManager/LocaleConfigManager.h",
    "chars": 794,
    "preview": "// multi language config mainly for ui\n#pragma once\n#include <unordered_map>\n#include <string>\n#include <vector>\n\nnamesp"
  },
  {
    "path": "src/core/environ/DetectCPU.cpp",
    "chars": 8245,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/environ/DetectCPU.h",
    "chars": 780,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/environ/DumpSend.cpp",
    "chars": 6840,
    "preview": "#include \"network/HttpRequest.h\"\n#include \"network/HttpClient.h\"\n#include \"base/CCDirector.h\"\n#include \"base/CCScheduler"
  },
  {
    "path": "src/core/environ/Platform.h",
    "chars": 1955,
    "preview": "#pragma once\n#include \"tjsCommHead.h\"\n#include <string>\n#include <vector>\n\nstruct TVPMemoryInfo\n{ // all in kB\n    unsig"
  },
  {
    "path": "src/core/environ/XP3ArchiveRepack.cpp",
    "chars": 22519,
    "preview": "#include \"XP3ArchiveRepack.h\"\n#include <functional>\n#include \"p7zip/CPP/7zip/Archive/7z/7zOut.h\"\n#include \"p7zip/CPP/7zi"
  },
  {
    "path": "src/core/environ/XP3ArchiveRepack.h",
    "chars": 768,
    "preview": "#pragma once\n#include <string>\n#include <vector>\n#include <functional>\n\nclass XP3ArchiveRepackAsyncImpl;\nclass XP3Archiv"
  },
  {
    "path": "src/core/environ/android/AndroidUtils.cpp",
    "chars": 31422,
    "preview": "#include \"AndroidUtils.h\"\n#include \"minizip/unzip.h\"\n#include \"zlib.h\"\n#include <map>\n#include <string>\n#include <vector"
  },
  {
    "path": "src/core/environ/android/AndroidUtils.h",
    "chars": 79,
    "preview": "#pragma once\n#include <jni.h>\n#include <string>\n\nstd::string TVPGetDeviceID();\n"
  },
  {
    "path": "src/core/environ/cocos2d/AppDelegate.cpp",
    "chars": 3666,
    "preview": "#include \"AppDelegate.h\"\n#include \"MainScene.h\"\n#include \"ui/MainFileSelectorForm.h\"\n#include \"ui/extension/UIExtension."
  },
  {
    "path": "src/core/environ/cocos2d/AppDelegate.h",
    "chars": 751,
    "preview": "#pragma once\n#include \"cocos2d.h\"\n\nclass TVPAppDelegate : public cocos2d::Application {\n\n\tvirtual void initGLContextAttr"
  },
  {
    "path": "src/core/environ/cocos2d/CCKeyCodeConv.cpp",
    "chars": 10520,
    "preview": "#include \"CCKeyCodeConv.h\"\n#include \"cocos/base/CCController.h\"\n#include \"vkdefine.h\"\n\nint TVPConvertMouseBtnToVKCode(tT"
  },
  {
    "path": "src/core/environ/cocos2d/CCKeyCodeConv.h",
    "chars": 357,
    "preview": "#include \"tjsTypes.h\"\n#include \"tvpinputdefs.h\"\n#include \"cocos2d.h\"\n\nint TVPConvertMouseBtnToVKCode(tTVPMouseButton _mo"
  },
  {
    "path": "src/core/environ/cocos2d/CustomFileUtils.cpp",
    "chars": 8845,
    "preview": "#include \"CustomFileUtils.h\"\n#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32\n#include \"platform/win32/CCFileUtils-win32.h\"\n#"
  },
  {
    "path": "src/core/environ/cocos2d/CustomFileUtils.h",
    "chars": 360,
    "preview": "#pragma once\n#include \"cocos2d.h\"\n\nvoid TVPAddAutoSearchArchive(const std::string &path);\nclass TVPSkinManager {\npublic:"
  },
  {
    "path": "src/core/environ/cocos2d/CustomFileUtils.mm",
    "chars": 30,
    "preview": "#include \"CustomFileUtils.cpp\""
  },
  {
    "path": "src/core/environ/cocos2d/MainScene.cpp",
    "chars": 78320,
    "preview": "#include \"MainScene.h\"\n#include \"cocos2d.h\"\n#include \"cocos-ext.h\"\n#include \"tjsCommHead.h\"\n#include \"StorageIntf.h\"\n#in"
  },
  {
    "path": "src/core/environ/cocos2d/MainScene.h",
    "chars": 2711,
    "preview": "#pragma once\n\n#include \"2d/CCScene.h\"\n#include \"ui/UIWidget.h\"\n#include \"base/CCIMEDelegate.h\"\n\nnamespace cocos2d {\n\tcla"
  },
  {
    "path": "src/core/environ/cocos2d/YUVSprite.cpp",
    "chars": 8370,
    "preview": "#include \"YUVSprite.h\"\n\nusing namespace cocos2d;\n\n// #define USE_VAO\n\nstatic const char *_yuvRenderProgram_fsh =\n\t\"#ifde"
  },
  {
    "path": "src/core/environ/cocos2d/YUVSprite.h",
    "chars": 1033,
    "preview": "#pragma once\n#include \"cocos2d.h\"\n\nclass TVPYUVSprite : public cocos2d::Sprite {\n\tcocos2d::Texture2D* _textureU = nullpt"
  },
  {
    "path": "src/core/environ/combase.h",
    "chars": 4302,
    "preview": "#pragma once\n#include \"typedefine.h\"\n#include \"win32type.h\"\n#include <stdint.h>\n\n#ifndef S_OK\n#define S_OK            (("
  },
  {
    "path": "src/core/environ/cpu_types.h",
    "chars": 1641,
    "preview": "// ; this is a part of TVP (KIRIKIRI) software source.\n// ; see other sources for license.\n// ; (C)2001-2003 W.Dee <dee@"
  },
  {
    "path": "src/core/environ/linux/Platform.cpp",
    "chars": 2211,
    "preview": "#include \"Platform.h\"\n#include <stdio.h>\n#include <stdlib.h>\n#include <assert.h>\n#include <string.h>\n#include <sys/sysin"
  },
  {
    "path": "src/core/environ/sdl/tvpsdl.cpp",
    "chars": 1503,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/environ/typedefine.h",
    "chars": 3673,
    "preview": "#pragma once\n#ifndef _BASETSD_H_\n#ifndef MAX_PATH\n#define MAX_PATH  260\n#endif\n#include \"tjsTypes.h\"\n#include <stdint.h>"
  },
  {
    "path": "src/core/environ/ui/BaseForm.cpp",
    "chars": 6579,
    "preview": "#include \"BaseForm.h\"\n#include \"cocos2d.h\"\n#include \"cocostudio/ActionTimeline/CSLoader.h\"\n#include \"Application.h\"\n#inc"
  },
  {
    "path": "src/core/environ/ui/BaseForm.h",
    "chars": 3756,
    "preview": "#pragma once\n#include \"2d/CCNode.h\"\n#include <unordered_map>\n#include \"ui/UIWidget.h\"\n#include \"extensions/GUI/CCScrollV"
  },
  {
    "path": "src/core/environ/ui/ConsoleWindow.cpp",
    "chars": 2476,
    "preview": "#include \"ConsoleWindow.h\"\n#include \"cocos2d/MainScene.h\"\n\nusing namespace cocos2d;\n\nTVPConsoleWindow::TVPConsoleWindow("
  },
  {
    "path": "src/core/environ/ui/ConsoleWindow.h",
    "chars": 689,
    "preview": "#pragma once\n\n#include \"2d/CCNode.h\"\n#include \"2d/CCLabel.h\"\n#include <deque>\n#include <vector>\n#include \"tjsCommHead.h\""
  },
  {
    "path": "src/core/environ/ui/DebugViewLayerForm.cpp",
    "chars": 7116,
    "preview": "#include \"DebugViewLayerForm.h\"\n#include \"extensions/GUI/CCScrollView/CCTableView.h\"\n#include \"WindowIntf.h\"\n#include \"D"
  },
  {
    "path": "src/core/environ/ui/DebugViewLayerForm.h",
    "chars": 1063,
    "preview": "#pragma once\n#include \"2d/CCNode.h\"\n#include \"extensions/GUI/CCScrollView/CCTableView.h\"\n#include \"2d/CCLabel.h\"\n\nclass "
  },
  {
    "path": "src/core/environ/ui/FileSelectorForm.cpp",
    "chars": 35534,
    "preview": "#include \"FileSelectorForm.h\"\n#include \"StorageImpl.h\"\n#include \"ui/UIListView.h\"\n#include \"ui/UIHelper.h\"\n#include \"ui/"
  },
  {
    "path": "src/core/environ/ui/FileSelectorForm.h",
    "chars": 5857,
    "preview": "#pragma once\n#include \"BaseForm.h\"\n#include \"GUI/CCScrollView/CCTableView.h\"\n#include \"base/CCRefPtr.h\"\n\nclass TVPListFo"
  },
  {
    "path": "src/core/environ/ui/GameMainMenu.cpp",
    "chars": 8722,
    "preview": "#include \"GameMainMenu.h\"\n#include \"cocos2d/MainScene.h\"\n#include \"Application.h\"\n#include \"WindowIntf.h\"\n#include \"ui/U"
  },
  {
    "path": "src/core/environ/ui/GameMainMenu.h",
    "chars": 1346,
    "preview": "#pragma once\n#include \"BaseForm.h\"\n\nclass TVPGameMainMenu : public cocos2d::Node {\npublic:\n\tTVPGameMainMenu(GLubyte opa)"
  },
  {
    "path": "src/core/environ/ui/GlobalPreferenceForm.cpp",
    "chars": 1885,
    "preview": "#include \"GlobalPreferenceForm.h\"\n#include \"ConfigManager/LocaleConfigManager.h\"\n#include \"ui/UIButton.h\"\n#include \"coco"
  },
  {
    "path": "src/core/environ/ui/GlobalPreferenceForm.h",
    "chars": 222,
    "preview": "#pragma once\n#include \"PreferenceForm.h\"\n\nclass TVPGlobalPreferenceForm : public TVPPreferenceForm {\npublic:\n\tstatic TVP"
  },
  {
    "path": "src/core/environ/ui/InGameMenuForm.cpp",
    "chars": 3763,
    "preview": "#include \"InGameMenuForm.h\"\n#include \"cocos2d/MainScene.h\"\n#include \"ui/UIButton.h\"\n#include \"ui/UIListView.h\"\n#include "
  },
  {
    "path": "src/core/environ/ui/InGameMenuForm.h",
    "chars": 565,
    "preview": "#pragma once\n#include \"PreferenceForm.h\"\n\nclass tTJSNI_MenuItem;\n\nclass TVPInGameMenuForm : public iTVPBaseForm {\npublic"
  },
  {
    "path": "src/core/environ/ui/IndividualPreferenceForm.cpp",
    "chars": 1360,
    "preview": "#include \"IndividualPreferenceForm.h\"\n#include \"ConfigManager/LocaleConfigManager.h\"\n#include \"ui/UIButton.h\"\n#include \""
  },
  {
    "path": "src/core/environ/ui/IndividualPreferenceForm.h",
    "chars": 197,
    "preview": "#pragma once\n#include \"PreferenceForm.h\"\n\nclass IndividualPreferenceForm : public TVPPreferenceForm {\npublic:\n\tstatic In"
  },
  {
    "path": "src/core/environ/ui/MainFileSelectorForm.cpp",
    "chars": 21654,
    "preview": "#include \"MainFileSelectorForm.h\"\n#include \"cocos2d.h\"\n#include \"cocostudio/CocoLoader.h\"\n#include \"cocostudio/CCSSceneR"
  },
  {
    "path": "src/core/environ/ui/MainFileSelectorForm.h",
    "chars": 2358,
    "preview": "#pragma once\n#include \"FileSelectorForm.h\"\n\nnamespace cocos2d {\n\tclass LayerColor;\n}\n\nclass TVPMainFileSelectorForm : pu"
  },
  {
    "path": "src/core/environ/ui/MessageBox.cpp",
    "chars": 6915,
    "preview": "#include \"MessageBox.h\"\n#include \"cocos2d/MainScene.h\"\n#include \"ui/UIButton.h\"\n#include \"ui/UIText.h\"\n#include \"ui/UISc"
  },
  {
    "path": "src/core/environ/ui/MessageBox.h",
    "chars": 1933,
    "preview": "#pragma once\n#include \"BaseForm.h\"\n#include \"base/CCRefPtr.h\"\n\nclass TVPMessageBoxForm : public iTVPBaseForm {\npublic:\n\t"
  },
  {
    "path": "src/core/environ/ui/PreferenceConfig.h",
    "chars": 16152,
    "preview": "extern void TVPInitTextureFormatList();\nextern bool TVPIsSupportTextureFormat(GLenum fmt);\n\nstatic bool PreferenceGetVal"
  },
  {
    "path": "src/core/environ/ui/PreferenceForm.cpp",
    "chars": 17302,
    "preview": "#include \"PreferenceForm.h\"\n#include \"ui/UIText.h\"\n#include \"ui/UIHelper.h\"\n#include \"ui/UICheckBox.h\"\n#include \"ui/UILi"
  },
  {
    "path": "src/core/environ/ui/PreferenceForm.h",
    "chars": 8961,
    "preview": "#pragma once\n#include \"BaseForm.h\"\n#include \"ui/UIWidget.h\"\n#include \"ConfigManager/GlobalConfigManager.h\"\n\nnamespace ti"
  },
  {
    "path": "src/core/environ/ui/SeletListForm.cpp",
    "chars": 5941,
    "preview": "#include \"SeletListForm.h\"\n#include \"ui/UIHelper.h\"\n#include \"ui/UIPageView.h\"\n#include \"ui/UIButton.h\"\n#include \"ui/UIT"
  },
  {
    "path": "src/core/environ/ui/SeletListForm.h",
    "chars": 1672,
    "preview": "#pragma once\n#include \"BaseForm.h\"\n#include \"extension/UIExtension.h\"\n\nclass iTVPHalfScreenForm : public iTVPBaseForm {\n"
  },
  {
    "path": "src/core/environ/ui/SimpleMediaFilePlayer.cpp",
    "chars": 10340,
    "preview": "#include \"SimpleMediaFilePlayer.h\"\n#ifdef PixelFormat // libavcodec vs cocos2d\n#undef PixelFormat\n#endif\n#include \"cocos"
  },
  {
    "path": "src/core/environ/ui/SimpleMediaFilePlayer.h",
    "chars": 1294,
    "preview": "#pragma once\n#include \"BaseForm.h\"\n#include \"tjsCommHead.h\"\n#include \"movie/ffmpeg/VideoPlayer.h\"\n\nnamespace cocos2d {\n\t"
  },
  {
    "path": "src/core/environ/ui/TipsHelpForm.cpp",
    "chars": 1992,
    "preview": "#include \"TipsHelpForm.h\"\n#include \"ui/UIHelper.h\"\n#include \"ui/UIListView.h\"\n#include \"cocos2d/MainScene.h\"\n\nusing name"
  },
  {
    "path": "src/core/environ/ui/TipsHelpForm.h",
    "chars": 381,
    "preview": "#pragma once\n#include \"BaseForm.h\"\n\nclass TVPTipsHelpForm : public iTVPBaseForm {\n\tvirtual void bindBodyController(const"
  },
  {
    "path": "src/core/environ/ui/XP3RepackForm.cpp",
    "chars": 11663,
    "preview": "#include \"XP3RepackForm.h\"\n#include \"StorageImpl.h\"\n#include \"cocos2d/MainScene.h\"\n#include \"PreferenceForm.h\"\n#include "
  },
  {
    "path": "src/core/environ/ui/XP3RepackForm.h",
    "chars": 82,
    "preview": "#pragma once\n#include <string>\n\nvoid TVPProcessXP3Repack(const std::string &dir);\n"
  },
  {
    "path": "src/core/environ/ui/extension/ActionExtension.cpp",
    "chars": 58,
    "preview": "#pragma once\n#include \"cocos2d.h\"\n#include \"cocos-ext.h\"\n\n"
  },
  {
    "path": "src/core/environ/ui/extension/ActionExtension.h",
    "chars": 58,
    "preview": "#pragma once\n#include \"cocos2d.h\"\n#include \"cocos-ext.h\"\n\n"
  },
  {
    "path": "src/core/environ/ui/extension/UIExtension.cpp",
    "chars": 6569,
    "preview": "#include \"UIExtension.h\"\n#include \"base/ObjectFactory.h\"\n#include \"ui/UIWidget.h\"\n#include \"cocostudio/ActionTimeline/CS"
  },
  {
    "path": "src/core/environ/ui/extension/UIExtension.h",
    "chars": 1487,
    "preview": "#pragma once\n#include \"extensions/GUI/CCScrollView/CCScrollView.h\"\n\nclass XKPageView;\nclass XKPageViewDelegate\n{\npublic"
  },
  {
    "path": "src/core/environ/vkdefine.h",
    "chars": 3551,
    "preview": "#pragma once\n#define VK_FALG_MOUSE       1\n#define VK_FLAG_SHIFT       2\n\n#define VK_LBUTTON 0x01\n#define VK_RBUTTON 0x0"
  },
  {
    "path": "src/core/environ/win32/ApplicationSpecialPath.h",
    "chars": 3128,
    "preview": "\n#ifndef __APPLICATION_SPECIAL_PATH_H__\n#define __APPLICATION_SPECIAL_PATH_H__\n\n//#include <shlobj.h>\n#include \"FilePath"
  },
  {
    "path": "src/core/environ/win32/CompatibleNativeFuncs.cpp",
    "chars": 1288,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/environ/win32/CompatibleNativeFuncs.h",
    "chars": 2314,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/environ/win32/ConfigFormUnit.cpp",
    "chars": 14351,
    "preview": "//---------------------------------------------------------------------------\n// Config dialog box\n//-------------------"
  },
  {
    "path": "src/core/environ/win32/ConfigFormUnit.h",
    "chars": 347,
    "preview": "//---------------------------------------------------------------------------\n// Config dialog box\n//-------------------"
  },
  {
    "path": "src/core/environ/win32/DetectCPU.cpp",
    "chars": 10112,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  },
  {
    "path": "src/core/environ/win32/DetectCPU.h",
    "chars": 775,
    "preview": "//---------------------------------------------------------------------------\n/*\n\tTVP2 ( T Visual Presenter 2 )  A scrip"
  }
]

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

About this extraction

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

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

Copied to clipboard!