Add IDirect3DRMMiniwinDevice interface (#267)

This commit is contained in:
Anonymous Maarten 2025-06-09 18:34:37 +02:00 committed by GitHub
parent 42e732192c
commit 7e9acc8d04
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 1283 additions and 1413 deletions

View File

@ -91,9 +91,7 @@ if (ISLE_UBSAN)
add_link_options(-fsanitize=undefined)
endif()
if(ISLE_MINIWIN)
add_subdirectory(miniwin)
endif()
add_subdirectory(miniwin EXCLUDE_FROM_ALL)
set(isle_targets)
@ -475,6 +473,9 @@ if (ISLE_BUILD_APP)
# Link SDL and iniparser
target_link_libraries(isle PRIVATE SDL3::SDL3 iniparser-static)
# Allow unconditional include of miniwin/miniwindevice.h
target_link_libraries(isle PRIVATE miniwin-headers)
# Link DSOUND and WINMM
if (WIN32)
target_link_libraries(isle PRIVATE winmm)

View File

@ -1,3 +1,5 @@
#define INITGUID
#include "isleapp.h"
#include "3dmanager/lego3dmanager.h"
@ -29,8 +31,11 @@
#include "res/isle_bmp.h"
#include "res/resource.h"
#include "roi/legoroi.h"
#include "tgl/d3drm/impl.h"
#include "viewmanager/viewmanager.h"
#include <miniwin/miniwindevice.h>
#define SDL_MAIN_USE_CALLBACKS
#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>
@ -451,6 +456,8 @@ SDL_AppResult SDL_AppEvent(void* appstate, SDL_Event* event)
void SDL_AppQuit(void* appstate, SDL_AppResult result)
{
IsleDebug_Quit();
if (appstate != NULL) {
SDL_DestroyWindow((SDL_Window*) appstate);
}
@ -573,6 +580,17 @@ MxResult IsleApp::SetupWindow()
LegoOmni::GetInstance()->GetInputManager()->SetUseJoystick(m_useJoystick);
LegoOmni::GetInstance()->GetInputManager()->SetJoystickIndex(m_joystickIndex);
}
MxDirect3D* d3d = LegoOmni::GetInstance()->GetVideoManager()->GetDirect3D();
if (d3d) {
SDL_Log(
"Direct3D driver name=\"%s\" description=\"%s\"",
d3d->GetDeviceName().c_str(),
d3d->GetDeviceDescription().c_str()
);
}
else {
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, "Failed to get D3D device name and description");
}
}
IsleDebug_Init();
@ -867,3 +885,32 @@ MxResult IsleApp::ParseArguments(int argc, char** argv)
}
return SUCCESS;
}
IDirect3DRMMiniwinDevice* GetD3DRMMiniwinDevice()
{
LegoVideoManager* videoManager = LegoOmni::GetInstance()->GetVideoManager();
if (!videoManager) {
return nullptr;
}
Lego3DManager* lego3DManager = videoManager->Get3DManager();
if (!lego3DManager) {
return nullptr;
}
Lego3DView* lego3DView = lego3DManager->GetLego3DView();
if (!lego3DView) {
return nullptr;
}
TglImpl::DeviceImpl* tgl_device = (TglImpl::DeviceImpl*) lego3DView->GetDevice();
if (!tgl_device) {
return nullptr;
}
IDirect3DRMDevice2* d3drmdev = tgl_device->ImplementationData();
if (!d3drmdev) {
return nullptr;
}
IDirect3DRMMiniwinDevice* d3drmMiniwinDev = nullptr;
if (!SUCCEEDED(d3drmdev->QueryInterface(IID_IDirect3DRMMiniwinDevice, (void**) &d3drmMiniwinDev))) {
return nullptr;
}
return d3drmMiniwinDev;
}

View File

@ -12,6 +12,7 @@
#else
#include <windows.h>
#endif
#include "miniwin/miniwindevice.h"
// SIZE 0x8c
class IsleApp {
@ -88,4 +89,6 @@ class IsleApp {
extern IsleApp* g_isle;
extern IDirect3DRMMiniwinDevice* GetD3DRMMiniwinDevice();
#endif // ISLEAPP_H

View File

@ -26,6 +26,7 @@ static SDL_Window* g_debugWindow;
static SDL_Renderer* g_debugRenderer;
static SDL_Texture* g_videoPalette;
static IDirect3DRMMiniwinDevice* g_d3drmMiniwinDevice;
class DebugViewer {
public:
@ -179,6 +180,7 @@ void IsleDebug_Init()
g_debugEnabled = false;
break;
}
g_d3drmMiniwinDevice = GetD3DRMMiniwinDevice();
} while (0);
if (!g_debugEnabled) {
if (g_debugRenderer) {
@ -192,6 +194,15 @@ void IsleDebug_Init()
}
}
void IsleDebug_Quit()
{
SDL_DestroyRenderer(g_debugRenderer);
SDL_DestroyWindow(g_debugWindow);
if (g_d3drmMiniwinDevice) {
g_d3drmMiniwinDevice->Release();
}
}
bool IsleDebug_Event(SDL_Event* event)
{
if (!g_debugEnabled) {
@ -261,6 +272,17 @@ void IsleDebug_Render()
ImGui::Value("Player count", gameState->GetPlayerCount());
ImGui::TreePop();
}
if (ImGui::TreeNode("Renderer")) {
if (g_d3drmMiniwinDevice) {
float shininess = g_d3drmMiniwinDevice->GetShininessFactor();
ImGui::SliderFloat("shininess", &shininess, 0.f, 10.f);
g_d3drmMiniwinDevice->SetShininessFactor(shininess);
}
else {
ImGui::Text("No miniwin driver");
}
ImGui::TreePop();
}
if (ImGui::TreeNode("Sound Manager")) {
LegoSoundManager* soundManager = lego->GetSoundManager();
Sint32 oldVolume = soundManager->GetVolume();

View File

@ -11,6 +11,8 @@ extern void IsleDebug_SetEnabled(bool);
extern void IsleDebug_Init();
extern void IsleDebug_Quit();
extern bool IsleDebug_Event(SDL_Event* event);
extern void IsleDebug_Render();
@ -35,6 +37,10 @@ extern void IsleDebug_ResetStepMode();
do { \
} while (0)
#define IsleDebug_Quit() \
do { \
} while (0)
#define IsleDebug_Event(EVENT) (false)
#define IsleDebug_Render() \

View File

@ -312,6 +312,8 @@ BOOL MxDirect3D::SetDevice(MxDeviceEnumerate& p_deviceEnumerate, MxDriver* p_dri
d->m_desc = device.m_HELDesc;
}
m_deviceName = p_device->m_deviceName;
m_deviceDesc = p_device->m_deviceDesc;
m_currentDeviceInfo = d;
m_currentDevInfo = d->m_deviceInfo;
break;

View File

@ -6,6 +6,8 @@
#include "mxdirectxinfo.h"
#include "mxstl/stlcompat.h"
#include <string>
#ifdef MINIWIN
#include "miniwin/d3d.h"
#else
@ -44,6 +46,9 @@ class MxDirect3D : public MxDirectDraw {
BOOL SetDevice(MxDeviceEnumerate& p_deviceEnumerate, MxDriver* p_driver, Direct3DDeviceInfo* p_device);
const std::string& GetDeviceName() const { return m_deviceName; }
const std::string& GetDeviceDescription() const { return m_deviceDesc; }
protected:
BOOL D3DCreate();
BOOL D3DSetMode();
@ -60,6 +65,8 @@ class MxDirect3D : public MxDirectDraw {
IDirect3DDevice2* m_pDirect3dDevice; // 0x888
BOOL m_bTexturesDisabled; // 0x88c
undefined4 m_unk0x890; // 0x890
std::string m_deviceName;
std::string m_deviceDesc;
};
// GLOBAL: LEGO1 0x100dd1b0

View File

@ -1,3 +1,6 @@
add_library(miniwin-headers INTERFACE)
target_include_directories(miniwin-headers INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
add_library(miniwin STATIC EXCLUDE_FROM_ALL
# Core
src/windows/windows.cpp
@ -39,12 +42,11 @@ target_compile_definitions(miniwin PRIVATE MINIWIN_PIXELFORMAT=SDL_PIXELFORMAT_R
target_compile_definitions(miniwin PUBLIC MINIWIN)
target_include_directories(miniwin
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src/internal
${CMAKE_CURRENT_SOURCE_DIR}/src/d3drm/backends/sdl3gpu/shaders/generated
)
target_link_libraries(miniwin PUBLIC miniwin-headers)
target_link_libraries(miniwin PRIVATE SDL3::SDL3)

View File

@ -100,6 +100,7 @@ typedef D3DRMPROJECTIONTYPE* LPD3DRMPROJECTIONTYPE;
// --- GUIDs ---
DEFINE_GUID(IID_IDirect3DRM2, 0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
DEFINE_GUID(IID_IDirect3DRMDevice2, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
DEFINE_GUID(IID_IDirect3DRMWinDevice, 0xc5016cc0, 0xd273, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
DEFINE_GUID(IID_IDirect3DRMFrame, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
DEFINE_GUID(IID_IDirect3DRMMesh, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
@ -151,7 +152,7 @@ struct D3DRMVERTEX {
};
};
struct IDirect3DRMObject : public IUnknown {
struct IDirect3DRMObject : virtual public IUnknown {
virtual HRESULT AddDestroyCallback(D3DRMOBJECTCALLBACK callback, void* arg) = 0;
virtual HRESULT DeleteDestroyCallback(D3DRMOBJECTCALLBACK callback, void* arg) = 0;
virtual HRESULT SetAppData(LPD3DRM_APPDATA appData) = 0;

View File

@ -0,0 +1,8 @@
#pragma once
DEFINE_GUID(IID_IDirect3DRMMiniwinDevice, 0x6eb09673, 0x8d30, 0x4d8a, 0x8d, 0x81, 0x34, 0xea, 0x69, 0x30, 0x12, 0x01);
struct IDirect3DRMMiniwinDevice : virtual public IUnknown {
virtual float GetShininessFactor() = 0;
virtual HRESULT SetShininessFactor(float factor) = 0;
};

View File

@ -10,11 +10,11 @@
// DXIL only makes sense on Windows platforms
#if defined(SDL_PLATFORM_WINDOWS)
static const Uint8 PositionColor_vert_dxil[5124] = {
0x44, 0x58, 0x42, 0x43, 0x93, 0x7a, 0xa7, 0xae, 0x9e, 0x1a, 0x88, 0x7f, 0x74, 0x8a, 0x83, 0x33,
0xcb, 0xfe, 0xed, 0xa8, 0x01, 0x00, 0x00, 0x00, 0x04, 0x14, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
static const Uint8 PositionColor_vert_dxil[5132] = {
0x44, 0x58, 0x42, 0x43, 0x4a, 0x28, 0x54, 0x85, 0x4b, 0xb0, 0x04, 0x11, 0x56, 0x33, 0x94, 0x85,
0x05, 0x1a, 0xb4, 0x05, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x14, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x3c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00,
0xc4, 0x02, 0x00, 0x00, 0x14, 0x0a, 0x00, 0x00, 0x30, 0x0a, 0x00, 0x00, 0x53, 0x46, 0x49, 0x30,
0xc4, 0x02, 0x00, 0x00, 0x18, 0x0a, 0x00, 0x00, 0x34, 0x0a, 0x00, 0x00, 0x53, 0x46, 0x49, 0x30,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x53, 0x47, 0x31,
0x74, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
@ -55,9 +55,9 @@ static const Uint8 PositionColor_vert_dxil[5124] = {
0x03, 0x04, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x41, 0x54, 0x48, 0x07, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00,
0xd2, 0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x30, 0x07, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x41, 0x54, 0x4c, 0x07, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00,
0xd3, 0x01, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x34, 0x07, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0xca, 0x01, 0x00, 0x00,
0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91,
0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19,
0x1e, 0x04, 0x8b, 0x62, 0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14,
@ -99,245 +99,245 @@ static const Uint8 PositionColor_vert_dxil[5124] = {
0xe5, 0x51, 0x2c, 0x05, 0x1e, 0x50, 0x10, 0x85, 0x41, 0xa5, 0x24, 0x46, 0x00, 0xca, 0xa0, 0x08,
0x0a, 0x81, 0x6a, 0x0d, 0xd0, 0x9e, 0x01, 0x20, 0x3e, 0x03, 0x40, 0x7d, 0x2c, 0x46, 0x81, 0x40,
0xbc, 0x0f, 0x40, 0xbc, 0x0f, 0x40, 0xbc, 0x0f, 0x80, 0xe3, 0x38, 0x00, 0x08, 0x0c, 0x00, 0x00,
0x79, 0x18, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0xc4,
0x8f, 0x0c, 0x6f, 0x0c, 0x05, 0x4e, 0x2e, 0xcd, 0x2e, 0x8c, 0xae, 0x2c, 0x05, 0x24, 0xc6, 0x05,
0xc7, 0x05, 0xc6, 0x25, 0x06, 0x04, 0x05, 0x46, 0xac, 0x2c, 0x2c, 0xec, 0xc6, 0xe6, 0x26, 0x65,
0x43, 0x10, 0x4c, 0x10, 0x08, 0x64, 0x82, 0x40, 0x24, 0x1b, 0x84, 0x81, 0xd8, 0x20, 0x10, 0x04,
0x05, 0xbb, 0xb9, 0x09, 0x02, 0xa1, 0x6c, 0x18, 0x0e, 0x84, 0x98, 0x20, 0x70, 0x1f, 0x2b, 0xba,
0x3c, 0xb8, 0xb2, 0x2f, 0xab, 0xb4, 0xb2, 0x3b, 0xb8, 0x37, 0x39, 0xba, 0x2a, 0xb7, 0x34, 0xb3,
0x37, 0xb9, 0xb6, 0xb9, 0x09, 0x02, 0xb1, 0x6c, 0x40, 0x08, 0x65, 0x19, 0x88, 0x81, 0x01, 0x36,
0x04, 0xcd, 0x06, 0x02, 0x00, 0x1c, 0x60, 0x82, 0xb0, 0x79, 0xdc, 0xac, 0xd2, 0xca, 0xee, 0xe0,
0xde, 0xe4, 0xe8, 0xaa, 0xdc, 0xd2, 0xcc, 0xde, 0xe4, 0xda, 0xe6, 0xbe, 0xe0, 0xe4, 0xde, 0xd4,
0xca, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0x26, 0x08, 0x04, 0x33, 0x41, 0x20, 0x9a, 0x0d, 0xc3, 0x34,
0x49, 0x13, 0x04, 0xc2, 0x99, 0x20, 0x10, 0xcf, 0x04, 0x81, 0x80, 0x26, 0x08, 0x55, 0xb7, 0x41,
0x41, 0x22, 0x89, 0xaa, 0x08, 0xeb, 0xba, 0x30, 0x82, 0x81, 0x55, 0x5a, 0xd9, 0x1d, 0xdc, 0x9b,
0x1c, 0x5d, 0x95, 0x5b, 0x9a, 0xd9, 0x9b, 0x5c, 0xdb, 0xdc, 0xd7, 0xdd, 0x9b, 0x1c, 0x1b, 0x99,
0x55, 0x5a, 0xd9, 0x5d, 0x53, 0x18, 0x9d, 0x5c, 0x1a, 0xde, 0x04, 0x81, 0x88, 0x36, 0x28, 0x88,
0x26, 0x51, 0xd5, 0x66, 0x5d, 0x17, 0xc6, 0xce, 0x2a, 0xad, 0xec, 0x0e, 0xee, 0x4d, 0x8e, 0xae,
0xca, 0x2d, 0xcd, 0xec, 0x4d, 0xae, 0x6d, 0xee, 0xcb, 0xed, 0x4d, 0xae, 0x2d, 0x8c, 0xad, 0x29,
0x8c, 0x4e, 0x2e, 0x0d, 0x6f, 0x82, 0x40, 0x48, 0x1b, 0x14, 0xa4, 0x93, 0xa8, 0xca, 0xb3, 0xae,
0x0b, 0xdb, 0x40, 0x30, 0x19, 0xf7, 0x6d, 0x18, 0x08, 0x08, 0x0c, 0x26, 0x08, 0x02, 0xb0, 0x01,
0xd8, 0x30, 0x10, 0x63, 0x30, 0x06, 0x1b, 0x02, 0x32, 0xd8, 0x30, 0x0c, 0x62, 0x50, 0x06, 0x13,
0x84, 0x0e, 0x0c, 0x36, 0x04, 0x67, 0x40, 0xa2, 0x2d, 0x2c, 0xcd, 0x8d, 0x08, 0x55, 0x11, 0xd6,
0xd0, 0xd3, 0x93, 0x14, 0xd1, 0x04, 0xa1, 0xc0, 0x26, 0x08, 0x45, 0xb6, 0x21, 0x20, 0x26, 0x08,
0x85, 0xb6, 0x41, 0xa8, 0xac, 0x0d, 0x0b, 0xa1, 0x06, 0x6b, 0xc0, 0x06, 0x6d, 0xc0, 0x06, 0x83,
0x1b, 0x10, 0x6c, 0xf0, 0x06, 0x1b, 0x82, 0x61, 0xc3, 0x32, 0xa8, 0xc1, 0x1a, 0xb0, 0x41, 0x1c,
0xb0, 0xc1, 0xe0, 0x06, 0x03, 0x1b, 0xbc, 0xc1, 0x86, 0x40, 0x9a, 0x20, 0x14, 0xdb, 0x06, 0xa1,
0xaa, 0x36, 0x2c, 0x92, 0x1a, 0xac, 0x01, 0x1b, 0xcc, 0x01, 0x1b, 0x0c, 0x74, 0x20, 0xb1, 0x41,
0x1d, 0x6c, 0x18, 0xe0, 0x40, 0x0e, 0xec, 0x60, 0xc3, 0x42, 0xa8, 0xc1, 0x1a, 0xb0, 0x41, 0x1b,
0xd0, 0xc1, 0xe0, 0x06, 0x04, 0x1b, 0xbc, 0xc1, 0x86, 0x65, 0x50, 0x83, 0x35, 0x60, 0x83, 0x38,
0xa0, 0x83, 0x81, 0x0e, 0x06, 0x36, 0xa8, 0x83, 0x0d, 0x8b, 0xa4, 0x06, 0x6b, 0xc0, 0x06, 0x73,
0x40, 0x07, 0x83, 0x1b, 0x48, 0x6c, 0xf0, 0x06, 0x5c, 0xa6, 0xac, 0xbe, 0xa0, 0xde, 0xe6, 0xd2,
0xe8, 0xd2, 0xde, 0xdc, 0x26, 0x08, 0x05, 0x37, 0x41, 0x20, 0xa6, 0x0d, 0x42, 0xd5, 0x07, 0x1b,
0x96, 0x6a, 0x0f, 0xd6, 0xc0, 0x0d, 0xda, 0x80, 0x0f, 0x06, 0x3e, 0xa8, 0xd8, 0xc0, 0x0f, 0x36,
0x10, 0x78, 0x90, 0x07, 0x7a, 0xf0, 0x07, 0x1b, 0x86, 0x3b, 0x00, 0x05, 0x60, 0x43, 0x21, 0x06,
0x69, 0x10, 0x0a, 0x0f, 0x40, 0xc3, 0x8c, 0xed, 0x2d, 0x8c, 0x6e, 0x6e, 0x82, 0x40, 0x50, 0x2c,
0xd2, 0xdc, 0xe6, 0xe8, 0xe6, 0x26, 0x08, 0x44, 0x45, 0x63, 0x2e, 0xed, 0xec, 0x8b, 0x8d, 0x6c,
0x82, 0x40, 0x58, 0x34, 0xe6, 0xd2, 0xce, 0xbe, 0xe6, 0xe8, 0x26, 0x08, 0xc4, 0xb5, 0x01, 0x19,
0x05, 0x52, 0x28, 0x05, 0x53, 0x38, 0x05, 0x54, 0x48, 0x05, 0x55, 0xa8, 0xc2, 0xc6, 0x66, 0xd7,
0xe6, 0x92, 0x46, 0x56, 0xe6, 0x46, 0x37, 0x25, 0x08, 0xaa, 0x90, 0xe1, 0xb9, 0xd8, 0x95, 0xc9,
0xcd, 0xa5, 0xbd, 0xb9, 0x4d, 0x09, 0x88, 0x26, 0x64, 0x78, 0x2e, 0x76, 0x61, 0x6c, 0x76, 0x65,
0x72, 0x53, 0x82, 0xa2, 0x0e, 0x19, 0x9e, 0xcb, 0x1c, 0x5a, 0x18, 0x59, 0x99, 0x5c, 0xd3, 0x1b,
0x59, 0x19, 0xdb, 0x94, 0x00, 0x29, 0x43, 0x86, 0xe7, 0x22, 0x57, 0x36, 0xf7, 0x56, 0x27, 0x37,
0x56, 0x36, 0x37, 0x25, 0x70, 0x2a, 0x91, 0xe1, 0xb9, 0xd0, 0xe5, 0xc1, 0x95, 0x05, 0xb9, 0xb9,
0xbd, 0xd1, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0xcd, 0x4d, 0x11, 0xc0, 0xa0, 0x0c, 0xea, 0x90, 0xe1,
0xb9, 0xd8, 0xa5, 0x95, 0xdd, 0x25, 0x91, 0x4d, 0xd1, 0x85, 0xd1, 0x95, 0x4d, 0x09, 0xce, 0xa0,
0x0e, 0x19, 0x9e, 0x4b, 0x99, 0x1b, 0x9d, 0x5c, 0x1e, 0xd4, 0x5b, 0x9a, 0x1b, 0xdd, 0xdc, 0x94,
0x20, 0x14, 0xba, 0x90, 0xe1, 0xb9, 0x8c, 0xbd, 0xd5, 0xb9, 0xd1, 0x95, 0xc9, 0xcd, 0x4d, 0x09,
0x54, 0x01, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c,
0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07,
0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e,
0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43,
0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c,
0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76,
0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e,
0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8,
0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4,
0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68,
0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07,
0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71,
0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5,
0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4,
0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90,
0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43,
0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b,
0xb0, 0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87, 0x73, 0x70, 0x03, 0x7b,
0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a, 0x98, 0x81, 0x3c, 0xe4,
0x80, 0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00,
0x1f, 0x00, 0x00, 0x00, 0x56, 0xb0, 0x0d, 0x97, 0xef, 0x3c, 0xbe, 0x10, 0x50, 0x45, 0x41, 0x44,
0xa5, 0x03, 0x0c, 0x25, 0x61, 0x00, 0x02, 0xe6, 0x17, 0xb7, 0x6d, 0x07, 0xd2, 0x70, 0xf9, 0xce,
0xe3, 0x0b, 0x11, 0x01, 0x4c, 0x44, 0x08, 0x34, 0xc3, 0x42, 0xd8, 0x80, 0x33, 0x5c, 0xbe, 0xf3,
0xf8, 0x83, 0x33, 0xdd, 0x7e, 0x71, 0xdb, 0x16, 0x30, 0x0d, 0x97, 0xef, 0x3c, 0xfe, 0xe2, 0x00,
0x83, 0xd8, 0x3c, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70, 0xf9, 0xce, 0xe3, 0x4b, 0x93,
0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x06, 0xd2, 0x70, 0xf9, 0xce, 0xe3,
0x4f, 0x44, 0x34, 0x21, 0x40, 0x84, 0xf9, 0xc5, 0x6d, 0x1b, 0xc1, 0x33, 0x5c, 0xbe, 0xf3, 0xf8,
0x54, 0x03, 0x44, 0x98, 0x5f, 0xdc, 0xb6, 0x01, 0x10, 0x0c, 0x80, 0x34, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x48, 0x41, 0x53, 0x48, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xd1, 0x26, 0xd4, 0x2b, 0x72, 0xb1, 0x78, 0x87, 0xc0, 0x6d, 0x39, 0x17, 0xb8, 0xd5, 0xc2, 0x70,
0x44, 0x58, 0x49, 0x4c, 0xcc, 0x09, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0x73, 0x02, 0x00, 0x00,
0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xb4, 0x09, 0x00, 0x00,
0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x6a, 0x02, 0x00, 0x00, 0x0b, 0x82, 0x20, 0x00,
0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91, 0x41, 0xc8, 0x04, 0x49,
0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19, 0x1e, 0x04, 0x8b, 0x62,
0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14, 0x38, 0x08, 0x18, 0x4b,
0x0a, 0x32, 0x52, 0x88, 0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5, 0x00, 0x19, 0x32, 0x42,
0xe4, 0x48, 0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c, 0xe1, 0x83, 0xe5, 0x8a,
0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1b, 0x8c, 0xe0, 0xff,
0xff, 0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x20,
0x6d, 0x30, 0x86, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x09, 0xa8, 0x00, 0x49, 0x18, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42, 0x20, 0x4c, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00,
0x89, 0x20, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09, 0x20, 0x64, 0x85, 0x04,
0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14, 0x12, 0x4c, 0x8a, 0x8c,
0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x78, 0x23, 0x00, 0x25, 0x00, 0x14, 0x66, 0x00, 0xe6, 0x08, 0xc0,
0x60, 0x8e, 0x00, 0x29, 0xc6, 0x20, 0x84, 0x14, 0x42, 0xa6, 0x18, 0x80, 0x10, 0x52, 0x06, 0xa1,
0x82, 0x0c, 0x32, 0xc6, 0x18, 0x63, 0x90, 0x2a, 0xc3, 0x20, 0x83, 0xd8, 0x51, 0xc3, 0xe5, 0x4f,
0xd8, 0x43, 0x48, 0x3e, 0xb7, 0x51, 0xc5, 0x4a, 0x4c, 0x7e, 0x71, 0xdb, 0x88, 0x18, 0x63, 0x0c,
0x2a, 0xf7, 0x0c, 0x97, 0x3f, 0x61, 0x0f, 0x21, 0xf9, 0x21, 0xd0, 0x0c, 0x0b, 0x81, 0x82, 0x57,
0x08, 0x47, 0x20, 0xa1, 0x58, 0x8a, 0x41, 0xc6, 0x18, 0x34, 0xe7, 0x08, 0x82, 0x62, 0x40, 0x52,
0x08, 0xa9, 0x64, 0x07, 0x02, 0x86, 0x11, 0x88, 0x21, 0x09, 0xf2, 0x81, 0xc1, 0xe1, 0x48, 0xd3,
0x02, 0x60, 0x0e, 0x35, 0xf9, 0x13, 0xf6, 0x10, 0xff, 0x8b, 0x10, 0xd6, 0xe3, 0x44, 0x93, 0xdb,
0x20, 0x85, 0x13, 0x31, 0x12, 0x1a, 0xb4, 0xd6, 0xb4, 0x93, 0x81, 0x00, 0x13, 0x14, 0x72, 0xc0,
0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79, 0x68, 0x03, 0x72, 0xc0, 0x87, 0x0d, 0xaf, 0x50,
0x0e, 0x6d, 0xd0, 0x0e, 0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07,
0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x78,
0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0,
0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x76, 0x40, 0x07,
0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d,
0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6, 0x60, 0x07, 0x74, 0xa0,
0x07, 0x76, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60, 0x07, 0x7a, 0x30, 0x07,
0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0c, 0x79, 0x10, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xf2, 0x28,
0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe4, 0x61, 0x80, 0x00, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xc8, 0x13, 0x01, 0x01, 0x30, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0x90, 0x67, 0x02, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x21, 0x8f, 0x05, 0x04, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59,
0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14, 0x19, 0x11, 0x4c, 0x90,
0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x22, 0x25, 0x30, 0x02, 0x50, 0x12, 0xc5, 0x50, 0x80,
0x03, 0x65, 0x50, 0x0e, 0x45, 0x50, 0x1e, 0x54, 0x4a, 0x62, 0x04, 0xa0, 0x0c, 0x8a, 0xa0, 0x10,
0x88, 0xcf, 0x00, 0x50, 0x1f, 0x8b, 0x51, 0x20, 0x10, 0xef, 0x03, 0x10, 0xef, 0x03, 0x10, 0xef,
0x03, 0xe0, 0x38, 0x0e, 0x00, 0x02, 0x03, 0x00, 0x79, 0x18, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
0x1a, 0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0xc4, 0x8f, 0x0c, 0x6f, 0x0c, 0x05, 0x4e, 0x2e, 0xcd,
0x2e, 0x8c, 0xae, 0x2c, 0x05, 0x24, 0xc6, 0x05, 0xc7, 0x05, 0xc6, 0x25, 0x06, 0x04, 0x05, 0x46,
0xac, 0x2c, 0x2c, 0xec, 0xc6, 0xe6, 0x26, 0x65, 0x43, 0x10, 0x4c, 0x10, 0x08, 0x64, 0x82, 0x40,
0x24, 0x1b, 0x84, 0x81, 0x98, 0x20, 0x10, 0xca, 0x06, 0x61, 0x30, 0x28, 0xd8, 0xcd, 0x4d, 0x10,
0x88, 0x65, 0xc3, 0x80, 0x24, 0xc4, 0x04, 0x81, 0xb3, 0x08, 0x4c, 0x10, 0x08, 0x66, 0x03, 0x42,
0x2c, 0xcc, 0x40, 0x0c, 0x0d, 0xb0, 0x21, 0x70, 0x36, 0x10, 0x00, 0xf0, 0x00, 0x13, 0x84, 0xee,
0xda, 0x10, 0x44, 0x13, 0x04, 0x01, 0x20, 0xd1, 0x16, 0x96, 0xe6, 0x46, 0x84, 0xaa, 0x08, 0x6b,
0xe8, 0xe9, 0x49, 0x8a, 0x68, 0x82, 0x50, 0x44, 0x13, 0x84, 0x42, 0xda, 0x10, 0x10, 0x13, 0x84,
0x62, 0x9a, 0x20, 0x10, 0xcd, 0x04, 0x81, 0x70, 0x36, 0x08, 0xda, 0xb6, 0x61, 0x21, 0x2a, 0xeb,
0xc2, 0xae, 0x21, 0x23, 0x2e, 0x6e, 0x43, 0x30, 0x6c, 0x58, 0x86, 0xca, 0xba, 0xbc, 0x6b, 0xc8,
0x86, 0x8b, 0x9b, 0x20, 0x10, 0xcf, 0x86, 0x00, 0x0c, 0x26, 0x08, 0x05, 0xb5, 0x41, 0xd0, 0xb4,
0x0d, 0x0b, 0x18, 0x54, 0xd6, 0x15, 0x06, 0xd7, 0x20, 0x06, 0x60, 0x70, 0x8d, 0xc1, 0x86, 0xa1,
0xfb, 0xc8, 0x60, 0xc3, 0x42, 0x54, 0xd6, 0x85, 0x89, 0xc1, 0x90, 0x11, 0x17, 0xb7, 0x61, 0x19,
0x2a, 0xeb, 0xf2, 0xc4, 0x60, 0x10, 0x83, 0xe1, 0x1a, 0x83, 0x0d, 0x0b, 0x18, 0x54, 0xd6, 0x15,
0x06, 0x62, 0x30, 0x64, 0x60, 0x70, 0x71, 0x5c, 0xa6, 0xac, 0xbe, 0xa0, 0xde, 0xe6, 0xd2, 0xe8,
0xd2, 0xde, 0xdc, 0x26, 0x08, 0x45, 0x35, 0x41, 0x20, 0xa0, 0x0d, 0x82, 0xb6, 0x06, 0x1b, 0x16,
0x2d, 0x0d, 0xac, 0x0c, 0x53, 0x83, 0x41, 0x0d, 0xb4, 0x8b, 0x0d, 0x36, 0x10, 0x66, 0x70, 0x06,
0x68, 0xd0, 0x06, 0x1b, 0x86, 0x32, 0x70, 0x03, 0x60, 0x43, 0x31, 0x51, 0x6f, 0x00, 0x01, 0x55,
0xd8, 0xd8, 0xec, 0xda, 0x5c, 0xd2, 0xc8, 0xca, 0xdc, 0xe8, 0xa6, 0x04, 0x41, 0x15, 0x32, 0x3c,
0x17, 0xbb, 0x32, 0xb9, 0xb9, 0xb4, 0x37, 0xb7, 0x29, 0x01, 0xd1, 0x84, 0x0c, 0xcf, 0xc5, 0x2e,
0x8c, 0xcd, 0xae, 0x4c, 0x6e, 0x4a, 0x60, 0xd4, 0x21, 0xc3, 0x73, 0x99, 0x43, 0x0b, 0x23, 0x2b,
0x93, 0x6b, 0x7a, 0x23, 0x2b, 0x63, 0x9b, 0x12, 0x24, 0x65, 0xc8, 0xf0, 0x5c, 0xe4, 0xca, 0xe6,
0xde, 0xea, 0xe4, 0xc6, 0xca, 0xe6, 0xa6, 0x04, 0x4f, 0x1d, 0x32, 0x3c, 0x17, 0xbb, 0xb4, 0xb2,
0xbb, 0x24, 0xb2, 0x29, 0xba, 0x30, 0xba, 0xb2, 0x29, 0x41, 0x54, 0x87, 0x0c, 0xcf, 0xa5, 0xcc,
0x8d, 0x4e, 0x2e, 0x0f, 0xea, 0x2d, 0xcd, 0x8d, 0x6e, 0x6e, 0x4a, 0xf0, 0x06, 0x00, 0x00, 0x00,
0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66,
0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3, 0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73,
0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10, 0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e,
0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30, 0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b,
0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03, 0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b,
0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07, 0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20,
0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e, 0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0,
0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d, 0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61,
0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b, 0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83,
0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76, 0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87,
0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90, 0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76,
0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87, 0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98,
0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e, 0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30,
0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61,
0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca, 0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43,
0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8, 0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b,
0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82, 0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8,
0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87, 0x73, 0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60,
0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a, 0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40,
0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x71, 0x20, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
0x56, 0xb0, 0x0d, 0x97, 0xef, 0x3c, 0xbe, 0x10, 0x50, 0x45, 0x41, 0x44, 0xa5, 0x03, 0x0c, 0x25,
0x61, 0x00, 0x02, 0xe6, 0x17, 0xb7, 0x6d, 0x07, 0xd2, 0x70, 0xf9, 0xce, 0xe3, 0x0b, 0x11, 0x01,
0x4c, 0x44, 0x08, 0x34, 0xc3, 0x42, 0xd8, 0x80, 0x33, 0x5c, 0xbe, 0xf3, 0xf8, 0x83, 0x33, 0xdd,
0x7e, 0x71, 0xdb, 0x16, 0x30, 0x0d, 0x97, 0xef, 0x3c, 0xfe, 0xe2, 0x00, 0x83, 0xd8, 0x3c, 0xd4,
0xe4, 0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70, 0xf9, 0xce, 0xe3, 0x4b, 0x93, 0x13, 0x11, 0x28, 0x35,
0x3d, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x06, 0xd2, 0x70, 0xf9, 0xce, 0xe3, 0x4f, 0x44, 0x34, 0x21,
0x40, 0x84, 0xf9, 0xc5, 0x6d, 0x1b, 0xc1, 0x33, 0x5c, 0xbe, 0xf3, 0xf8, 0x54, 0x03, 0x44, 0x98,
0x5f, 0xdc, 0xb6, 0x01, 0x10, 0x0c, 0x80, 0x34, 0x00, 0x00, 0x00, 0x00, 0x61, 0x20, 0x00, 0x00,
0xf3, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x44, 0x8a, 0xab, 0x14, 0xca, 0xae, 0x10, 0x66, 0x00, 0x4a, 0xae, 0x20, 0x8a, 0xa2, 0xdc, 0x4a,
0x86, 0x4a, 0x09, 0x50, 0x1d, 0x01, 0x00, 0x00, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0x60, 0x75,
0x07, 0xb4, 0x6d, 0xc1, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x18, 0x64, 0xa0, 0x58, 0xdc, 0x94,
0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x81, 0x51, 0x06, 0xcb, 0xd5, 0x11, 0xca, 0x88, 0x41, 0x02,
0x80, 0x20, 0x18, 0x18, 0x66, 0xc0, 0x7c, 0x5e, 0xb5, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x81,
0x71, 0x06, 0x0d, 0x18, 0x7c, 0x06, 0x33, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0x06, 0x1a, 0x38,
0x61, 0x00, 0x06, 0x55, 0x33, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0x46, 0x1a, 0x3c, 0x61, 0x10,
0x06, 0x98, 0x33, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0x86, 0x1a, 0x40, 0x62, 0x20, 0x06, 0xc9,
0x33, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0xc6, 0x1a, 0x44, 0x63, 0x30, 0x06, 0x18, 0x34, 0x62,
0x70, 0x00, 0x20, 0x08, 0x06, 0x11, 0x1a, 0x4c, 0x89, 0x34, 0x9a, 0x10, 0x00, 0xa3, 0x09, 0x42,
0x30, 0x9a, 0x30, 0x08, 0x23, 0x06, 0x07, 0x00, 0x82, 0x60, 0x10, 0xb1, 0xc1, 0xd5, 0x60, 0xa3,
0x09, 0x01, 0x30, 0x9a, 0x20, 0x04, 0xa3, 0x09, 0x83, 0x30, 0x62, 0x70, 0x00, 0x20, 0x08, 0x06,
0x11, 0x1c, 0x6c, 0x91, 0x1a, 0x8c, 0x26, 0x04, 0xc0, 0x68, 0x82, 0x10, 0x8c, 0x26, 0x0c, 0xc2,
0x88, 0xc1, 0x01, 0x80, 0x20, 0x18, 0x44, 0x74, 0xf0, 0x55, 0x6b, 0x30, 0x9a, 0x10, 0x00, 0xa3,
0x09, 0x42, 0x30, 0x9a, 0x30, 0x08, 0xf6, 0x4c, 0xf2, 0x19, 0x31, 0x40, 0x00, 0x10, 0x04, 0x83,
0x09, 0x0f, 0xcc, 0x80, 0x99, 0x82, 0x11, 0x03, 0x04, 0x00, 0x41, 0x30, 0x98, 0xf2, 0xe0, 0x0c,
0x92, 0x29, 0xb0, 0xc0, 0x80, 0x8e, 0x49, 0x97, 0x7c, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0x60,
0xe2, 0x03, 0x35, 0x78, 0xae, 0x60, 0xc4, 0x00, 0x01, 0x40, 0x10, 0x0c, 0xa6, 0x3e, 0x58, 0x03,
0xe6, 0x0a, 0x2c, 0x48, 0xa0, 0x63, 0xd5, 0x26, 0x9f, 0x11, 0x03, 0x04, 0x00, 0x41, 0x30, 0x98,
0x40, 0xc1, 0x0d, 0xa4, 0x2d, 0x18, 0x31, 0x40, 0x00, 0x10, 0x04, 0x83, 0x29, 0x14, 0xde, 0xe0,
0xd9, 0x02, 0x0b, 0x18, 0xe8, 0x8c, 0x18, 0x1c, 0x00, 0x08, 0x82, 0x41, 0x44, 0x0a, 0x6f, 0x50,
0x06, 0xa0, 0x30, 0x9a, 0x10, 0x00, 0xa3, 0x09, 0x42, 0x30, 0x9a, 0x30, 0x08, 0xa3, 0x09, 0xc4,
0x30, 0x62, 0x70, 0x00, 0x20, 0x08, 0x06, 0x51, 0x2a, 0xd0, 0x81, 0x1a, 0x98, 0xc2, 0x68, 0x42,
0x00, 0x8c, 0x26, 0x08, 0xc1, 0x68, 0xc2, 0x20, 0x8c, 0x26, 0x10, 0xc3, 0x88, 0xc1, 0x01, 0x80,
0x20, 0x18, 0x44, 0xae, 0x90, 0x07, 0x6f, 0x40, 0x0a, 0xa3, 0x09, 0x01, 0x30, 0x9a, 0x20, 0x04,
0xa3, 0x09, 0x83, 0x30, 0x9a, 0x40, 0x0c, 0x23, 0x06, 0x07, 0x00, 0x82, 0x60, 0x10, 0xcd, 0x82,
0x1f, 0xd0, 0xc1, 0x2a, 0x8c, 0x26, 0x04, 0xc0, 0x68, 0x82, 0x10, 0x8c, 0x26, 0x0c, 0xc2, 0x68,
0x02, 0x31, 0xd8, 0xd4, 0xc9, 0x67, 0xc4, 0x00, 0x01, 0x40, 0x10, 0x0c, 0x26, 0x5c, 0x30, 0x85,
0x47, 0x0b, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0x60, 0xca, 0x85, 0x53, 0x58, 0xae, 0xc0, 0x82,
0x03, 0x3a, 0x66, 0x85, 0x81, 0x7c, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0x60, 0xe2, 0x05, 0x55,
0x90, 0xbc, 0x60, 0xc4, 0x00, 0x01, 0x40, 0x10, 0x0c, 0xa6, 0x5e, 0x58, 0x05, 0x67, 0x0b, 0x2c,
0x50, 0xa0, 0x63, 0x59, 0x19, 0xc8, 0x67, 0xc4, 0x00, 0x01, 0x40, 0x10, 0x0c, 0x26, 0x70, 0x70,
0x85, 0x4a, 0x0c, 0x82, 0x11, 0x03, 0x04, 0x00, 0x41, 0x30, 0x98, 0xc2, 0xe1, 0x15, 0xa2, 0x2f,
0xb0, 0xa0, 0x81, 0x8e, 0x71, 0x69, 0x20, 0x9f, 0x11, 0x03, 0x04, 0x00, 0x41, 0x30, 0x98, 0xc8,
0x41, 0x16, 0x30, 0x33, 0x08, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0x60, 0x2a, 0x87, 0x59, 0xa0,
0xc6, 0x20, 0xb0, 0x00, 0x82, 0xce, 0x88, 0xc1, 0x01, 0x80, 0x20, 0x18, 0x44, 0xe8, 0x30, 0x0b,
0xa9, 0xf0, 0x0a, 0xa3, 0x09, 0x01, 0x30, 0x62, 0x70, 0x00, 0x20, 0x08, 0x06, 0x91, 0x3a, 0xd4,
0xc2, 0x2a, 0x94, 0xc3, 0x68, 0x42, 0x00, 0x8c, 0x18, 0x1c, 0x00, 0x08, 0x82, 0x41, 0xc4, 0x0e,
0xb7, 0xd0, 0x0a, 0xb2, 0x30, 0x9a, 0x10, 0x00, 0xa3, 0x09, 0x46, 0x30, 0x9a, 0x50, 0x04, 0xa3,
0x09, 0x44, 0x30, 0x9a, 0x90, 0x08, 0xa3, 0x09, 0x88, 0x30, 0x9a, 0x70, 0x08, 0xb6, 0xc8, 0x82,
0x7c, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0x60, 0xa2, 0x07, 0x71, 0x90, 0x85, 0x23, 0x18, 0x31,
0x40, 0x00, 0x10, 0x04, 0x83, 0xa9, 0x1e, 0xc6, 0x41, 0x16, 0x8a, 0xc0, 0x98, 0x5a, 0x90, 0xcf,
0x88, 0x01, 0x02, 0x80, 0x20, 0x18, 0x4c, 0xf7, 0x50, 0x0e, 0xb5, 0x90, 0x04, 0x23, 0x06, 0x08,
0x00, 0x82, 0x60, 0x30, 0xe1, 0x83, 0x39, 0xd4, 0xc2, 0x11, 0x58, 0x83, 0x0b, 0xf2, 0x19, 0x31,
0x40, 0x00, 0x10, 0x04, 0x83, 0x49, 0x1f, 0xd0, 0x01, 0x17, 0x96, 0x60, 0xc4, 0x00, 0x01, 0x40,
0x10, 0x0c, 0xa6, 0x7d, 0x48, 0x07, 0x5c, 0x48, 0x82, 0x11, 0x83, 0x05, 0x00, 0x41, 0x30, 0x50,
0xfe, 0x41, 0x1c, 0x0e, 0x22, 0x38, 0x88, 0x60, 0xc4, 0xc0, 0x00, 0x40, 0x10, 0x0c, 0x98, 0x7f,
0x10, 0x87, 0xc0, 0x82, 0x44, 0x3e, 0x26, 0x1c, 0xf2, 0xb1, 0xa1, 0x90, 0xcf, 0x88, 0x41, 0x02,
0x80, 0x20, 0x18, 0x20, 0x25, 0xe1, 0x0e, 0xfe, 0xe0, 0x0f, 0xf5, 0x30, 0x8c, 0x18, 0x24, 0x00,
0x08, 0x82, 0x01, 0x52, 0x12, 0xee, 0xe0, 0x0f, 0xfe, 0x50, 0x0e, 0xc2, 0x88, 0x41, 0x02, 0x80,
0x20, 0x18, 0x20, 0x25, 0xe1, 0x0e, 0xfe, 0xe0, 0x0f, 0xf3, 0x10, 0x8c, 0x18, 0x24, 0x00, 0x08,
0x82, 0x01, 0x52, 0x12, 0xee, 0xf0, 0x0f, 0xfe, 0x50, 0x0f, 0xe2, 0x30, 0x62, 0x90, 0x00, 0x20,
0x08, 0x06, 0x48, 0x49, 0xb8, 0xc3, 0x3f, 0xf8, 0x43, 0x39, 0x84, 0xc3, 0x88, 0x41, 0x02, 0x80,
0x20, 0x18, 0x20, 0x25, 0xe1, 0x0e, 0xf8, 0xe0, 0x0f, 0xf5, 0x70, 0x0a, 0x23, 0x06, 0x09, 0x00,
0x82, 0x60, 0x80, 0x94, 0x84, 0x3b, 0xe0, 0x83, 0x3f, 0x94, 0xc3, 0x28, 0x8c, 0x18, 0x24, 0x00,
0x08, 0x82, 0x01, 0x52, 0x12, 0xee, 0x80, 0x0f, 0xfe, 0x30, 0x0f, 0x7f, 0x30, 0x62, 0x90, 0x00,
0x20, 0x08, 0x06, 0x48, 0x49, 0xb8, 0x83, 0x3e, 0xf8, 0x43, 0x3d, 0x9c, 0xc1, 0x88, 0x41, 0x02,
0x80, 0x20, 0x18, 0x20, 0x25, 0xe1, 0x0e, 0xfa, 0xe0, 0x0f, 0xe5, 0x30, 0x06, 0x23, 0x06, 0x09,
0x00, 0x82, 0x60, 0x80, 0x94, 0x84, 0x3b, 0xe8, 0x83, 0x3f, 0xcc, 0xc3, 0x37, 0x62, 0x90, 0x00,
0x20, 0x08, 0x06, 0x48, 0x49, 0xb8, 0x83, 0x3e, 0xf8, 0x03, 0x3d, 0x6c, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x79, 0x18, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0xc4,
0x31, 0x20, 0xc3, 0x1b, 0x43, 0x81, 0x93, 0x4b, 0xb3, 0x0b, 0xa3, 0x2b, 0x4b, 0x01, 0x89, 0x71,
0xc1, 0x71, 0x81, 0x71, 0xa1, 0xb9, 0xc1, 0xc9, 0x01, 0x41, 0x11, 0xa3, 0xb9, 0x89, 0x89, 0xc1,
0x99, 0xc9, 0x29, 0x4b, 0xd9, 0x10, 0x04, 0x13, 0x04, 0x02, 0x99, 0x20, 0x10, 0xc9, 0x06, 0x61,
0x20, 0x36, 0x08, 0x04, 0x41, 0xc1, 0x6e, 0x6e, 0x82, 0x40, 0x28, 0x1b, 0x86, 0x03, 0x21, 0x26,
0x08, 0xdc, 0xc7, 0x8a, 0x2e, 0x0f, 0xae, 0xec, 0xcb, 0x2a, 0xad, 0xec, 0x0e, 0xee, 0x4d, 0x8e,
0xae, 0xca, 0x2d, 0xcd, 0xec, 0x4d, 0xae, 0x6d, 0x6e, 0x82, 0x40, 0x2c, 0x1b, 0x10, 0x42, 0x59,
0x06, 0x62, 0x60, 0x80, 0x0d, 0x41, 0xb3, 0x81, 0x00, 0x00, 0x07, 0x98, 0x20, 0x6c, 0x1e, 0x37,
0xab, 0xb4, 0xb2, 0x3b, 0xb8, 0x37, 0x39, 0xba, 0x2a, 0xb7, 0x34, 0xb3, 0x37, 0xb9, 0xb6, 0xb9,
0x2f, 0x38, 0xb9, 0x37, 0xb5, 0xb2, 0x31, 0xba, 0xb4, 0x37, 0xb7, 0x09, 0x02, 0xc1, 0x4c, 0x10,
0x88, 0x66, 0xc3, 0x30, 0x4d, 0xd2, 0x04, 0x81, 0x70, 0x26, 0x08, 0xc4, 0x33, 0x41, 0x20, 0xa0,
0x09, 0x42, 0xd5, 0x6d, 0x50, 0x90, 0x48, 0xa2, 0x2a, 0xc2, 0xba, 0x2e, 0x8c, 0x60, 0x60, 0x95,
0x56, 0x76, 0x07, 0xf7, 0x26, 0x47, 0x57, 0xe5, 0x96, 0x66, 0xf6, 0x26, 0xd7, 0x36, 0xf7, 0x75,
0xf7, 0x26, 0xc7, 0x46, 0x66, 0x95, 0x56, 0x76, 0xd7, 0x14, 0x46, 0x27, 0x97, 0x86, 0x37, 0x41,
0x20, 0xa2, 0x0d, 0x0a, 0xa2, 0x49, 0x54, 0xb5, 0x59, 0xd7, 0x85, 0xb1, 0xb3, 0x4a, 0x2b, 0xbb,
0x83, 0x7b, 0x93, 0xa3, 0xab, 0x72, 0x4b, 0x33, 0x7b, 0x93, 0x6b, 0x9b, 0xfb, 0x72, 0x7b, 0x93,
0x6b, 0x0b, 0x63, 0x6b, 0x0a, 0xa3, 0x93, 0x4b, 0xc3, 0x9b, 0x20, 0x10, 0xd2, 0x06, 0x05, 0xe9,
0x24, 0xaa, 0xf2, 0xac, 0xeb, 0xc2, 0x36, 0x10, 0x4c, 0xc6, 0x7d, 0x1b, 0x06, 0x02, 0x02, 0x83,
0x09, 0x82, 0x00, 0x6c, 0x00, 0x36, 0x0c, 0xc4, 0x18, 0x8c, 0xc1, 0x86, 0x80, 0x0c, 0x36, 0x0c,
0x83, 0x18, 0x94, 0xc1, 0x04, 0xa1, 0x03, 0x83, 0x0d, 0xc1, 0x19, 0x90, 0x68, 0x0b, 0x4b, 0x73,
0x23, 0x42, 0x55, 0x84, 0x35, 0xf4, 0xf4, 0x24, 0x45, 0x34, 0x41, 0x28, 0xb0, 0x09, 0x42, 0x91,
0x6d, 0x08, 0x88, 0x09, 0x42, 0xa1, 0x6d, 0x10, 0x2a, 0x6b, 0xc3, 0x42, 0xa8, 0xc1, 0x1a, 0xb0,
0x41, 0x1b, 0xb0, 0xc1, 0xe0, 0x06, 0x04, 0x1b, 0xbc, 0xc1, 0x86, 0x60, 0xd8, 0xb0, 0x0c, 0x6a,
0xb0, 0x06, 0x6c, 0x10, 0x07, 0x6c, 0x30, 0xb8, 0xc1, 0xc0, 0x06, 0x6f, 0xb0, 0x21, 0x90, 0x26,
0x08, 0xc5, 0xb6, 0x41, 0xa8, 0xaa, 0x0d, 0x8b, 0xa4, 0x06, 0x6b, 0xc0, 0x06, 0x73, 0xc0, 0x06,
0x03, 0x1d, 0x48, 0x6c, 0x50, 0x07, 0x1b, 0x06, 0x38, 0x90, 0x03, 0x3b, 0xd8, 0xb0, 0x10, 0x6a,
0xb0, 0x06, 0x6c, 0xd0, 0x06, 0x74, 0x30, 0xb8, 0x01, 0xc1, 0x06, 0x6f, 0xb0, 0x61, 0x19, 0xd4,
0x60, 0x0d, 0xd8, 0x20, 0x0e, 0xe8, 0x60, 0xa0, 0x83, 0x81, 0x0d, 0xea, 0x60, 0xc3, 0x22, 0xa9,
0xc1, 0x1a, 0xb0, 0xc1, 0x1c, 0xd0, 0xc1, 0xe0, 0x06, 0x12, 0x1b, 0xbc, 0x01, 0x97, 0x29, 0xab,
0x2f, 0xa8, 0xb7, 0xb9, 0x34, 0xba, 0xb4, 0x37, 0xb7, 0x09, 0x42, 0xc1, 0x4d, 0x10, 0x88, 0x69,
0x83, 0x50, 0xf5, 0xc1, 0x86, 0xa5, 0xda, 0x83, 0x35, 0x70, 0x83, 0x36, 0xe0, 0x83, 0x81, 0x0f,
0x2a, 0x36, 0xf0, 0x83, 0x0d, 0x04, 0x1e, 0xe4, 0x81, 0x1e, 0xfc, 0xc1, 0x86, 0xe1, 0x0e, 0x40,
0x01, 0xd8, 0x50, 0x88, 0x41, 0x1a, 0x84, 0xc2, 0x03, 0xd0, 0x30, 0x63, 0x7b, 0x0b, 0xa3, 0x9b,
0x9b, 0x20, 0x10, 0x14, 0x8b, 0x34, 0xb7, 0x39, 0xba, 0xb9, 0x09, 0x02, 0x51, 0xd1, 0x98, 0x4b,
0x3b, 0xfb, 0x62, 0x23, 0x9b, 0x20, 0x10, 0x16, 0x8d, 0xb9, 0xb4, 0xb3, 0xaf, 0x39, 0xba, 0x09,
0x02, 0x71, 0x6d, 0x40, 0x46, 0x81, 0x14, 0x4a, 0xc1, 0x14, 0x4e, 0x01, 0x15, 0x52, 0x41, 0x15,
0xaa, 0xb0, 0xb1, 0xd9, 0xb5, 0xb9, 0xa4, 0x91, 0x95, 0xb9, 0xd1, 0x4d, 0x09, 0x82, 0x2a, 0x64,
0x78, 0x2e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x02, 0xa2, 0x09, 0x19, 0x9e, 0x8b,
0x5d, 0x18, 0x9b, 0x5d, 0x99, 0xdc, 0x94, 0xa0, 0xa8, 0x43, 0x86, 0xe7, 0x32, 0x87, 0x16, 0x46,
0x56, 0x26, 0xd7, 0xf4, 0x46, 0x56, 0xc6, 0x36, 0x25, 0x40, 0xca, 0x90, 0xe1, 0xb9, 0xc8, 0x95,
0xcd, 0xbd, 0xd5, 0xc9, 0x8d, 0x95, 0xcd, 0x4d, 0x09, 0x9c, 0x4a, 0x64, 0x78, 0x2e, 0x74, 0x79,
0x70, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x04, 0x30,
0x28, 0x83, 0x3a, 0x64, 0x78, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x49, 0x64, 0x53, 0x74, 0x61, 0x74,
0x65, 0x53, 0x82, 0x33, 0xa8, 0x43, 0x86, 0xe7, 0x52, 0xe6, 0x46, 0x27, 0x97, 0x07, 0xf5, 0x96,
0xe6, 0x46, 0x37, 0x37, 0x25, 0x08, 0x85, 0x2e, 0x64, 0x78, 0x2e, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x65, 0x72, 0x73, 0x53, 0x02, 0x55, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00,
0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3,
0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10,
0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30,
0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03,
0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07,
0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e,
0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d,
0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b,
0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76,
0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90,
0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87,
0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e,
0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c,
0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca,
0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8,
0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82,
0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87,
0x73, 0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a,
0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00,
0x71, 0x20, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x56, 0xb0, 0x0d, 0x97, 0xef, 0x3c, 0xbe, 0x10,
0x50, 0x45, 0x41, 0x44, 0xa5, 0x03, 0x0c, 0x25, 0x61, 0x00, 0x02, 0xe6, 0x17, 0xb7, 0x6d, 0x07,
0xd2, 0x70, 0xf9, 0xce, 0xe3, 0x0b, 0x11, 0x01, 0x4c, 0x44, 0x08, 0x34, 0xc3, 0x42, 0xd8, 0x80,
0x33, 0x5c, 0xbe, 0xf3, 0xf8, 0x83, 0x33, 0xdd, 0x7e, 0x71, 0xdb, 0x16, 0x30, 0x0d, 0x97, 0xef,
0x3c, 0xfe, 0xe2, 0x00, 0x83, 0xd8, 0x3c, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70, 0xf9,
0xce, 0xe3, 0x4b, 0x93, 0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x06, 0xd2,
0x70, 0xf9, 0xce, 0xe3, 0x4f, 0x44, 0x34, 0x21, 0x40, 0x84, 0xf9, 0xc5, 0x6d, 0x1b, 0xc1, 0x33,
0x5c, 0xbe, 0xf3, 0xf8, 0x54, 0x03, 0x44, 0x98, 0x5f, 0xdc, 0xb6, 0x01, 0x10, 0x0c, 0x80, 0x34,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x41, 0x53, 0x48, 0x14, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x83, 0xb6, 0x50, 0xbb, 0x0d, 0xbf, 0x5b, 0x40, 0x75, 0x62, 0x54, 0x58,
0xb1, 0xa1, 0x1b, 0x04, 0x44, 0x58, 0x49, 0x4c, 0xd0, 0x09, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00,
0x74, 0x02, 0x00, 0x00, 0x44, 0x58, 0x49, 0x4c, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0xb8, 0x09, 0x00, 0x00, 0x42, 0x43, 0xc0, 0xde, 0x21, 0x0c, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00,
0x0b, 0x82, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x07, 0x81, 0x23, 0x91,
0x41, 0xc8, 0x04, 0x49, 0x06, 0x10, 0x32, 0x39, 0x92, 0x01, 0x84, 0x0c, 0x25, 0x05, 0x08, 0x19,
0x1e, 0x04, 0x8b, 0x62, 0x80, 0x14, 0x45, 0x02, 0x42, 0x92, 0x0b, 0x42, 0xa4, 0x10, 0x32, 0x14,
0x38, 0x08, 0x18, 0x4b, 0x0a, 0x32, 0x52, 0x88, 0x48, 0x90, 0x14, 0x20, 0x43, 0x46, 0x88, 0xa5,
0x00, 0x19, 0x32, 0x42, 0xe4, 0x48, 0x0e, 0x90, 0x91, 0x22, 0xc4, 0x50, 0x41, 0x51, 0x81, 0x8c,
0xe1, 0x83, 0xe5, 0x8a, 0x04, 0x29, 0x46, 0x06, 0x51, 0x18, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x1b, 0x8c, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x40, 0x02, 0xa8, 0x0d, 0x84, 0xf0, 0xff, 0xff,
0xff, 0xff, 0x03, 0x20, 0x6d, 0x30, 0x86, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x09, 0xa8, 0x00,
0x49, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x13, 0x82, 0x60, 0x42, 0x20, 0x4c, 0x08, 0x06,
0x00, 0x00, 0x00, 0x00, 0x89, 0x20, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x32, 0x22, 0x48, 0x09,
0x20, 0x64, 0x85, 0x04, 0x93, 0x22, 0xa4, 0x84, 0x04, 0x93, 0x22, 0xe3, 0x84, 0xa1, 0x90, 0x14,
0x12, 0x4c, 0x8a, 0x8c, 0x0b, 0x84, 0xa4, 0x4c, 0x10, 0x78, 0x23, 0x00, 0x25, 0x00, 0x14, 0x66,
0x00, 0xe6, 0x08, 0xc0, 0x60, 0x8e, 0x00, 0x29, 0xc6, 0x20, 0x84, 0x14, 0x42, 0xa6, 0x18, 0x80,
0x10, 0x52, 0x06, 0xa1, 0x82, 0x0c, 0x32, 0xc6, 0x18, 0x63, 0x90, 0x2a, 0xc3, 0x20, 0x83, 0xd8,
0x51, 0xc3, 0xe5, 0x4f, 0xd8, 0x43, 0x48, 0x3e, 0xb7, 0x51, 0xc5, 0x4a, 0x4c, 0x7e, 0x71, 0xdb,
0x88, 0x18, 0x63, 0x0c, 0x2a, 0xf7, 0x0c, 0x97, 0x3f, 0x61, 0x0f, 0x21, 0xf9, 0x21, 0xd0, 0x0c,
0x0b, 0x81, 0x82, 0x57, 0x08, 0x47, 0x20, 0xa1, 0x58, 0x8a, 0x41, 0xc6, 0x18, 0x34, 0xe7, 0x08,
0x82, 0x62, 0x40, 0x52, 0x08, 0xa9, 0x64, 0x07, 0x02, 0x86, 0x11, 0x88, 0x21, 0x09, 0xf2, 0x81,
0xc1, 0xe1, 0x48, 0xd3, 0x02, 0x60, 0x0e, 0x35, 0xf9, 0x13, 0xf6, 0x10, 0xff, 0x8b, 0x10, 0xd6,
0xe3, 0x44, 0x93, 0xdb, 0x20, 0x85, 0x13, 0x31, 0x12, 0x1a, 0xb4, 0xd6, 0xb4, 0x93, 0x81, 0x00,
0x13, 0x14, 0x72, 0xc0, 0x87, 0x74, 0x60, 0x87, 0x36, 0x68, 0x87, 0x79, 0x68, 0x03, 0x72, 0xc0,
0x87, 0x0d, 0xaf, 0x50, 0x0e, 0x6d, 0xd0, 0x0e, 0x7a, 0x50, 0x0e, 0x6d, 0x00, 0x0f, 0x7a, 0x30,
0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0xa0, 0x07, 0x73, 0x20, 0x07,
0x6d, 0x90, 0x0e, 0x78, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90, 0x0e, 0x71, 0x60, 0x07, 0x7a,
0x30, 0x07, 0x72, 0xd0, 0x06, 0xe9, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x73, 0x20, 0x07, 0x6d, 0x90,
0x0e, 0x76, 0x40, 0x07, 0x7a, 0x60, 0x07, 0x74, 0xd0, 0x06, 0xe6, 0x10, 0x07, 0x76, 0xa0, 0x07,
0x73, 0x20, 0x07, 0x6d, 0x60, 0x0e, 0x73, 0x20, 0x07, 0x7a, 0x30, 0x07, 0x72, 0xd0, 0x06, 0xe6,
0x60, 0x07, 0x74, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x6d, 0xe0, 0x0e, 0x78, 0xa0, 0x07, 0x71, 0x60,
0x07, 0x7a, 0x30, 0x07, 0x72, 0xa0, 0x07, 0x76, 0x40, 0x07, 0x43, 0x9e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3c, 0x06, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0c, 0x79, 0x10, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x18, 0xf2, 0x28, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe4,
0x61, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xc8, 0x13, 0x01, 0x01,
0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x90, 0x67, 0x02, 0x02, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x21, 0x8f, 0x05, 0x04, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x59, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x32, 0x1e, 0x98, 0x14,
0x19, 0x11, 0x4c, 0x90, 0x8c, 0x09, 0x26, 0x47, 0xc6, 0x04, 0x43, 0x22, 0x25, 0x30, 0x02, 0x50,
0x10, 0xc5, 0x50, 0x80, 0x03, 0x65, 0x50, 0x0e, 0x45, 0x50, 0x1e, 0x54, 0x4a, 0x62, 0x04, 0xa0,
0x0c, 0x8a, 0xa0, 0x10, 0x88, 0xcf, 0x00, 0x50, 0x1f, 0x8b, 0x51, 0x20, 0x10, 0xef, 0x03, 0x10,
0xef, 0x03, 0x10, 0xef, 0x03, 0xe0, 0x38, 0x0e, 0x00, 0x02, 0x03, 0x00, 0x79, 0x18, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x4c, 0x90, 0x46, 0x02, 0x13, 0xc4, 0x31, 0x20, 0xc3, 0x1b,
0x43, 0x81, 0x93, 0x4b, 0xb3, 0x0b, 0xa3, 0x2b, 0x4b, 0x01, 0x89, 0x71, 0xc1, 0x71, 0x81, 0x71,
0xa1, 0xb9, 0xc1, 0xc9, 0x01, 0x41, 0x11, 0xa3, 0xb9, 0x89, 0x89, 0xc1, 0x99, 0xc9, 0x29, 0x4b,
0xd9, 0x10, 0x04, 0x13, 0x04, 0x02, 0x99, 0x20, 0x10, 0xc9, 0x06, 0x61, 0x20, 0x26, 0x08, 0x84,
0xb2, 0x41, 0x18, 0x0c, 0x0a, 0x76, 0x73, 0x13, 0x04, 0x62, 0xd9, 0x30, 0x20, 0x09, 0x31, 0x41,
0xe0, 0x2c, 0x02, 0x13, 0x04, 0x82, 0xd9, 0x80, 0x10, 0x0b, 0x33, 0x10, 0x43, 0x03, 0x6c, 0x08,
0x9c, 0x0d, 0x04, 0x00, 0x3c, 0xc0, 0x04, 0xa1, 0xbb, 0x36, 0x04, 0xd1, 0x04, 0x41, 0x00, 0x48,
0xb4, 0x85, 0xa5, 0xb9, 0x11, 0xa1, 0x2a, 0xc2, 0x1a, 0x7a, 0x7a, 0x92, 0x22, 0x9a, 0x20, 0x14,
0xd1, 0x04, 0xa1, 0x90, 0x36, 0x04, 0xc4, 0x04, 0xa1, 0x98, 0x26, 0x08, 0x44, 0x33, 0x41, 0x20,
0x9c, 0x0d, 0x82, 0xb6, 0x6d, 0x58, 0x88, 0xca, 0xba, 0xb0, 0x6b, 0xc8, 0x88, 0x8b, 0xdb, 0x10,
0x0c, 0x1b, 0x96, 0xa1, 0xb2, 0x2e, 0xef, 0x1a, 0xb2, 0xe1, 0xe2, 0x26, 0x08, 0xc4, 0xb3, 0x21,
0x00, 0x83, 0x09, 0x42, 0x41, 0x6d, 0x10, 0x34, 0x6d, 0xc3, 0x02, 0x06, 0x95, 0x75, 0x85, 0xc1,
0x35, 0x88, 0x01, 0x18, 0x5c, 0x63, 0xb0, 0x61, 0xe8, 0x3e, 0x32, 0xd8, 0xb0, 0x10, 0x95, 0x75,
0x61, 0x62, 0x30, 0x64, 0xc4, 0xc5, 0x6d, 0x58, 0x86, 0xca, 0xba, 0x3c, 0x31, 0x18, 0xc4, 0x60,
0xb8, 0xc6, 0x60, 0xc3, 0x02, 0x06, 0x95, 0x75, 0x85, 0x81, 0x18, 0x0c, 0x19, 0x18, 0x5c, 0x1c,
0x97, 0x29, 0xab, 0x2f, 0xa8, 0xb7, 0xb9, 0x34, 0xba, 0xb4, 0x37, 0xb7, 0x09, 0x42, 0x51, 0x4d,
0x10, 0x08, 0x68, 0x83, 0xa0, 0xad, 0xc1, 0x86, 0x45, 0x4b, 0x03, 0x2b, 0xc3, 0xd4, 0x60, 0x50,
0x03, 0xed, 0x62, 0x83, 0x0d, 0x84, 0x19, 0x9c, 0x01, 0x1a, 0xb4, 0xc1, 0x86, 0xa1, 0x0c, 0xdc,
0x00, 0xd8, 0x50, 0x4c, 0xd4, 0x1b, 0x40, 0x40, 0x15, 0x36, 0x36, 0xbb, 0x36, 0x97, 0x34, 0xb2,
0x32, 0x37, 0xba, 0x29, 0x41, 0x50, 0x85, 0x0c, 0xcf, 0xc5, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd,
0x6d, 0x4a, 0x40, 0x34, 0x21, 0xc3, 0x73, 0xb1, 0x0b, 0x63, 0xb3, 0x2b, 0x93, 0x9b, 0x12, 0x18,
0x75, 0xc8, 0xf0, 0x5c, 0xe6, 0xd0, 0xc2, 0xc8, 0xca, 0xe4, 0x9a, 0xde, 0xc8, 0xca, 0xd8, 0xa6,
0x04, 0x49, 0x19, 0x32, 0x3c, 0x17, 0xb9, 0xb2, 0xb9, 0xb7, 0x3a, 0xb9, 0xb1, 0xb2, 0xb9, 0x29,
0xc1, 0x53, 0x87, 0x0c, 0xcf, 0xc5, 0x2e, 0xad, 0xec, 0x2e, 0x89, 0x6c, 0x8a, 0x2e, 0x8c, 0xae,
0x6c, 0x4a, 0x10, 0xd5, 0x21, 0xc3, 0x73, 0x29, 0x73, 0xa3, 0x93, 0xcb, 0x83, 0x7a, 0x4b, 0x73,
0xa3, 0x9b, 0x9b, 0x12, 0xbc, 0x01, 0x00, 0x00, 0x79, 0x18, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00,
0x33, 0x08, 0x80, 0x1c, 0xc4, 0xe1, 0x1c, 0x66, 0x14, 0x01, 0x3d, 0x88, 0x43, 0x38, 0x84, 0xc3,
0x8c, 0x42, 0x80, 0x07, 0x79, 0x78, 0x07, 0x73, 0x98, 0x71, 0x0c, 0xe6, 0x00, 0x0f, 0xed, 0x10,
0x0e, 0xf4, 0x80, 0x0e, 0x33, 0x0c, 0x42, 0x1e, 0xc2, 0xc1, 0x1d, 0xce, 0xa1, 0x1c, 0x66, 0x30,
0x05, 0x3d, 0x88, 0x43, 0x38, 0x84, 0x83, 0x1b, 0xcc, 0x03, 0x3d, 0xc8, 0x43, 0x3d, 0x8c, 0x03,
0x3d, 0xcc, 0x78, 0x8c, 0x74, 0x70, 0x07, 0x7b, 0x08, 0x07, 0x79, 0x48, 0x87, 0x70, 0x70, 0x07,
0x7a, 0x70, 0x03, 0x76, 0x78, 0x87, 0x70, 0x20, 0x87, 0x19, 0xcc, 0x11, 0x0e, 0xec, 0x90, 0x0e,
0xe1, 0x30, 0x0f, 0x6e, 0x30, 0x0f, 0xe3, 0xf0, 0x0e, 0xf0, 0x50, 0x0e, 0x33, 0x10, 0xc4, 0x1d,
0xde, 0x21, 0x1c, 0xd8, 0x21, 0x1d, 0xc2, 0x61, 0x1e, 0x66, 0x30, 0x89, 0x3b, 0xbc, 0x83, 0x3b,
0xd0, 0x43, 0x39, 0xb4, 0x03, 0x3c, 0xbc, 0x83, 0x3c, 0x84, 0x03, 0x3b, 0xcc, 0xf0, 0x14, 0x76,
0x60, 0x07, 0x7b, 0x68, 0x07, 0x37, 0x68, 0x87, 0x72, 0x68, 0x07, 0x37, 0x80, 0x87, 0x70, 0x90,
0x87, 0x70, 0x60, 0x07, 0x76, 0x28, 0x07, 0x76, 0xf8, 0x05, 0x76, 0x78, 0x87, 0x77, 0x80, 0x87,
0x5f, 0x08, 0x87, 0x71, 0x18, 0x87, 0x72, 0x98, 0x87, 0x79, 0x98, 0x81, 0x2c, 0xee, 0xf0, 0x0e,
0xee, 0xe0, 0x0e, 0xf5, 0xc0, 0x0e, 0xec, 0x30, 0x03, 0x62, 0xc8, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c,
0xcc, 0xa1, 0x1c, 0xe4, 0xa1, 0x1c, 0xdc, 0x61, 0x1c, 0xca, 0x21, 0x1c, 0xc4, 0x81, 0x1d, 0xca,
0x61, 0x06, 0xd6, 0x90, 0x43, 0x39, 0xc8, 0x43, 0x39, 0x98, 0x43, 0x39, 0xc8, 0x43, 0x39, 0xb8,
0xc3, 0x38, 0x94, 0x43, 0x38, 0x88, 0x03, 0x3b, 0x94, 0xc3, 0x2f, 0xbc, 0x83, 0x3c, 0xfc, 0x82,
0x3b, 0xd4, 0x03, 0x3b, 0xb0, 0xc3, 0x8c, 0xc8, 0x21, 0x07, 0x7c, 0x70, 0x03, 0x72, 0x10, 0x87,
0x73, 0x70, 0x03, 0x7b, 0x08, 0x07, 0x79, 0x60, 0x87, 0x70, 0xc8, 0x87, 0x77, 0xa8, 0x07, 0x7a,
0x98, 0x81, 0x3c, 0xe4, 0x80, 0x0f, 0x6e, 0x40, 0x0f, 0xe5, 0xd0, 0x0e, 0xf0, 0x00, 0x00, 0x00,
0x71, 0x20, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x56, 0xb0, 0x0d, 0x97, 0xef, 0x3c, 0xbe, 0x10,
0x50, 0x45, 0x41, 0x44, 0xa5, 0x03, 0x0c, 0x25, 0x61, 0x00, 0x02, 0xe6, 0x17, 0xb7, 0x6d, 0x07,
0xd2, 0x70, 0xf9, 0xce, 0xe3, 0x0b, 0x11, 0x01, 0x4c, 0x44, 0x08, 0x34, 0xc3, 0x42, 0xd8, 0x80,
0x33, 0x5c, 0xbe, 0xf3, 0xf8, 0x83, 0x33, 0xdd, 0x7e, 0x71, 0xdb, 0x16, 0x30, 0x0d, 0x97, 0xef,
0x3c, 0xfe, 0xe2, 0x00, 0x83, 0xd8, 0x3c, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x02, 0xd5, 0x70, 0xf9,
0xce, 0xe3, 0x4b, 0x93, 0x13, 0x11, 0x28, 0x35, 0x3d, 0xd4, 0xe4, 0x17, 0xb7, 0x6d, 0x06, 0xd2,
0x70, 0xf9, 0xce, 0xe3, 0x4f, 0x44, 0x34, 0x21, 0x40, 0x84, 0xf9, 0xc5, 0x6d, 0x1b, 0xc1, 0x33,
0x5c, 0xbe, 0xf3, 0xf8, 0x54, 0x03, 0x44, 0x98, 0x5f, 0xdc, 0xb6, 0x01, 0x10, 0x0c, 0x80, 0x34,
0x00, 0x00, 0x00, 0x00, 0x61, 0x20, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x13, 0x04, 0x41, 0x2c,
0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x44, 0x8a, 0xab, 0x14, 0xca, 0xae, 0x10, 0x66,
0x00, 0x4a, 0xae, 0x24, 0x8a, 0xa2, 0xdc, 0x4a, 0x86, 0x4a, 0x09, 0x50, 0x1d, 0x01, 0x00, 0x00,
0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0x60, 0x75, 0x07, 0xb4, 0x6d, 0xc1, 0x88, 0x41, 0x02, 0x80,
0x20, 0x18, 0x18, 0x64, 0xa0, 0x58, 0xdc, 0x94, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x81, 0x51,
0x06, 0xcb, 0xd5, 0x11, 0xca, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x18, 0x66, 0xc0, 0x7c, 0x5e,
0xb5, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x81, 0x71, 0x06, 0x0d, 0x18, 0x7c, 0x06, 0x33, 0x62,
0x90, 0x00, 0x20, 0x08, 0x06, 0x06, 0x1a, 0x38, 0x61, 0x00, 0x06, 0x55, 0x33, 0x62, 0x90, 0x00,
0x20, 0x08, 0x06, 0x46, 0x1a, 0x3c, 0x61, 0x10, 0x06, 0x98, 0x33, 0x62, 0x90, 0x00, 0x20, 0x08,
0x06, 0x86, 0x1a, 0x40, 0x62, 0x20, 0x06, 0xc9, 0x33, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0xc6,
0x1a, 0x44, 0x63, 0x30, 0x06, 0x18, 0x34, 0x62, 0x70, 0x00, 0x20, 0x08, 0x06, 0x11, 0x1a, 0x4c,
0x89, 0x34, 0x9a, 0x10, 0x00, 0xa3, 0x09, 0x42, 0x30, 0x9a, 0x30, 0x08, 0x23, 0x06, 0x07, 0x00,
0x82, 0x60, 0x10, 0xb1, 0xc1, 0xd5, 0x60, 0xa3, 0x09, 0x01, 0x30, 0x9a, 0x20, 0x04, 0xa3, 0x09,
0x83, 0x30, 0x62, 0x70, 0x00, 0x20, 0x08, 0x06, 0x11, 0x1c, 0x6c, 0x91, 0x1a, 0x8c, 0x26, 0x04,
0xc0, 0x68, 0x82, 0x10, 0x8c, 0x26, 0x0c, 0xc2, 0x88, 0xc1, 0x01, 0x80, 0x20, 0x18, 0x44, 0x74,
0xf0, 0x55, 0x6b, 0x30, 0x9a, 0x10, 0x00, 0xa3, 0x09, 0x42, 0x30, 0x9a, 0x30, 0x08, 0xf6, 0x4c,
0xf2, 0x19, 0x31, 0x40, 0x00, 0x10, 0x04, 0x83, 0x09, 0x0f, 0xcc, 0x80, 0x99, 0x82, 0x11, 0x03,
0x04, 0x00, 0x41, 0x30, 0x98, 0xf2, 0xe0, 0x0c, 0x92, 0x29, 0xb0, 0xc0, 0x80, 0x8e, 0x49, 0x97,
0x7c, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0x60, 0xe2, 0x03, 0x35, 0x78, 0xae, 0x60, 0xc4, 0x00,
0x01, 0x40, 0x10, 0x0c, 0xa6, 0x3e, 0x58, 0x03, 0xe6, 0x0a, 0x2c, 0x48, 0xa0, 0x63, 0xd5, 0x26,
0x9f, 0x11, 0x03, 0x04, 0x00, 0x41, 0x30, 0x98, 0x40, 0xc1, 0x0d, 0xa4, 0x2d, 0x18, 0x31, 0x40,
0x00, 0x10, 0x04, 0x83, 0x29, 0x14, 0xde, 0xe0, 0xd9, 0x02, 0x0b, 0x18, 0xe8, 0x8c, 0x18, 0x1c,
0x00, 0x08, 0x82, 0x41, 0x44, 0x0a, 0x6f, 0x50, 0x06, 0xa0, 0x30, 0x9a, 0x10, 0x00, 0xa3, 0x09,
0x42, 0x30, 0x9a, 0x30, 0x08, 0xa3, 0x09, 0xc4, 0x30, 0x62, 0x70, 0x00, 0x20, 0x08, 0x06, 0x51,
0x2a, 0xd0, 0x81, 0x1a, 0x98, 0xc2, 0x68, 0x42, 0x00, 0x8c, 0x26, 0x08, 0xc1, 0x68, 0xc2, 0x20,
0x8c, 0x26, 0x10, 0xc3, 0x88, 0xc1, 0x01, 0x80, 0x20, 0x18, 0x44, 0xae, 0x90, 0x07, 0x6f, 0x40,
0x0a, 0xa3, 0x09, 0x01, 0x30, 0x9a, 0x20, 0x04, 0xa3, 0x09, 0x83, 0x30, 0x9a, 0x40, 0x0c, 0x23,
0x06, 0x07, 0x00, 0x82, 0x60, 0x10, 0xcd, 0x82, 0x1f, 0xd0, 0xc1, 0x2a, 0x8c, 0x26, 0x04, 0xc0,
0x68, 0x82, 0x10, 0x8c, 0x26, 0x0c, 0xc2, 0x68, 0x02, 0x31, 0xd8, 0xd4, 0xc9, 0x67, 0xc4, 0x00,
0x01, 0x40, 0x10, 0x0c, 0x26, 0x5c, 0x30, 0x85, 0x47, 0x0b, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1,
0x60, 0xca, 0x85, 0x53, 0x58, 0xae, 0xc0, 0x82, 0x03, 0x3a, 0x66, 0x85, 0x81, 0x7c, 0x46, 0x0c,
0x10, 0x00, 0x04, 0xc1, 0x60, 0xe2, 0x05, 0x55, 0x90, 0xbc, 0x60, 0xc4, 0x00, 0x01, 0x40, 0x10,
0x0c, 0xa6, 0x5e, 0x58, 0x05, 0x67, 0x0b, 0x2c, 0x50, 0xa0, 0x63, 0x59, 0x19, 0xc8, 0x67, 0xc4,
0x00, 0x01, 0x40, 0x10, 0x0c, 0x26, 0x70, 0x70, 0x85, 0x4a, 0x0c, 0x82, 0x11, 0x03, 0x04, 0x00,
0x41, 0x30, 0x98, 0xc2, 0xe1, 0x15, 0xa2, 0x2f, 0xb0, 0xa0, 0x81, 0x8e, 0x71, 0x69, 0x20, 0x9f,
0x11, 0x03, 0x04, 0x00, 0x41, 0x30, 0x98, 0xc8, 0x41, 0x16, 0x30, 0x33, 0x08, 0x46, 0x0c, 0x10,
0x00, 0x04, 0xc1, 0x60, 0x2a, 0x87, 0x59, 0xa0, 0xc6, 0x20, 0xb0, 0x00, 0x82, 0xce, 0x88, 0xc1,
0x01, 0x80, 0x20, 0x18, 0x44, 0xe8, 0x30, 0x0b, 0xa9, 0x30, 0x0e, 0xa3, 0x09, 0x01, 0x30, 0x62,
0x70, 0x00, 0x20, 0x08, 0x06, 0x91, 0x3a, 0xd4, 0xc2, 0x2a, 0xc4, 0xc2, 0x68, 0x42, 0x00, 0x8c,
0x18, 0x1c, 0x00, 0x08, 0x82, 0x41, 0xc4, 0x0e, 0xb7, 0xd0, 0x0a, 0xb2, 0x30, 0x9a, 0x10, 0x00,
0xa3, 0x09, 0x46, 0x30, 0x9a, 0x50, 0x04, 0xa3, 0x09, 0x44, 0x30, 0x9a, 0x90, 0x08, 0xa3, 0x09,
0x88, 0x30, 0x9a, 0x70, 0x08, 0xb6, 0xc8, 0x82, 0x7c, 0x46, 0x0c, 0x10, 0x00, 0x04, 0xc1, 0x60,
0xa2, 0x07, 0x71, 0x90, 0x85, 0x23, 0x18, 0x31, 0x40, 0x00, 0x10, 0x04, 0x83, 0xa9, 0x1e, 0xc6,
0x41, 0x16, 0x8a, 0xc0, 0x98, 0x5a, 0x90, 0xcf, 0x88, 0x01, 0x02, 0x80, 0x20, 0x18, 0x4c, 0xf7,
0x50, 0x0e, 0xb5, 0x90, 0x04, 0x23, 0x06, 0x08, 0x00, 0x82, 0x60, 0x30, 0xe1, 0x83, 0x39, 0xd4,
0xc2, 0x11, 0x58, 0x83, 0x0b, 0xf2, 0x19, 0x31, 0x40, 0x00, 0x10, 0x04, 0x83, 0x49, 0x1f, 0xd0,
0x01, 0x17, 0x96, 0x60, 0xc4, 0x00, 0x01, 0x40, 0x10, 0x0c, 0xa6, 0x7d, 0x48, 0x07, 0x5c, 0x48,
0x82, 0x11, 0x83, 0x05, 0x00, 0x41, 0x30, 0x50, 0xfe, 0x41, 0x1c, 0x0e, 0x22, 0x38, 0x88, 0x60,
0xc4, 0xc0, 0x00, 0x40, 0x10, 0x0c, 0x98, 0x7f, 0x10, 0x87, 0xc0, 0x82, 0x44, 0x3e, 0x26, 0x1c,
0xf2, 0xb1, 0xa1, 0x90, 0xcf, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x20, 0x25, 0xe1, 0x0e, 0xfe,
0xe0, 0x0f, 0xf5, 0x30, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x01, 0x52, 0x12, 0xee, 0xe0, 0x0f,
0xfe, 0x50, 0x0e, 0xc2, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x20, 0x25, 0xe1, 0x0e, 0xfe, 0xe0,
0x0f, 0xf3, 0x10, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x01, 0x52, 0x12, 0xee, 0xf0, 0x0f, 0xfe,
0x50, 0x0f, 0xe2, 0x30, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0x48, 0x49, 0xb8, 0xc3, 0x3f, 0xf8,
0x43, 0x39, 0x84, 0xc3, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x20, 0x25, 0xe1, 0x0e, 0xf8, 0xe0,
0x0f, 0xf5, 0x70, 0x0a, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0x80, 0x94, 0x84, 0x3b, 0xe0, 0x83,
0x3f, 0x94, 0xc3, 0x28, 0x8c, 0x18, 0x24, 0x00, 0x08, 0x82, 0x01, 0x52, 0x12, 0xee, 0x80, 0x0f,
0xfe, 0x30, 0x0f, 0x7f, 0x30, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0x48, 0x49, 0xb8, 0x83, 0x3e,
0xf8, 0x43, 0x3d, 0x9c, 0xc1, 0x88, 0x41, 0x02, 0x80, 0x20, 0x18, 0x20, 0x25, 0xe1, 0x0e, 0xfa,
0xe0, 0x0f, 0xe5, 0x30, 0x06, 0x23, 0x06, 0x09, 0x00, 0x82, 0x60, 0x80, 0x94, 0x84, 0x3b, 0xe8,
0x83, 0x3f, 0xcc, 0xc3, 0x37, 0x62, 0x90, 0x00, 0x20, 0x08, 0x06, 0x48, 0x49, 0xb8, 0x83, 0x3e,
0xf8, 0x03, 0x3d, 0x6c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
#endif
// MSL only makes sense on Apple platforms
#if defined(SDL_PLATFORM_APPLE)
static const Uint8 PositionColor_vert_msl[2097] = {
static const Uint8 PositionColor_vert_msl[1498] = {
0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x5f,
0x73, 0x74, 0x64, 0x6c, 0x69, 0x62, 0x3e, 0x0a, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
0x20, 0x3c, 0x73, 0x69, 0x6d, 0x64, 0x2f, 0x73, 0x69, 0x6d, 0x64, 0x2e, 0x68, 0x3e, 0x0a, 0x0a,
@ -350,18 +350,6 @@ static const Uint8 PositionColor_vert_msl[2097] = {
0x6c, 0x64, 0x56, 0x69, 0x65, 0x77, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x3b, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x78, 0x34, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61,
0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72,
0x75, 0x63, 0x74, 0x20, 0x56, 0x53, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x0a, 0x7b, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x4e,
0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74,
0x32, 0x20, 0x54, 0x65, 0x78, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a,
0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x46, 0x53, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x0a,
0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x50, 0x6f, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74,
0x33, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c,
0x6f, 0x61, 0x74, 0x32, 0x20, 0x54, 0x65, 0x78, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x3b, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x50,
0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x72,
0x75, 0x63, 0x74, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x0a, 0x7b, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x6f, 0x75, 0x74, 0x5f, 0x76,
0x61, 0x72, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30, 0x20, 0x5b, 0x5b, 0x75, 0x73, 0x65,
@ -393,130 +381,89 @@ static const Uint8 PositionColor_vert_msl[2097] = {
0x5b, 0x5b, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x5f, 0x6f, 0x75, 0x74, 0x20, 0x6f,
0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f,
0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x34, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f,
0x76, 0x61, 0x72, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x3b, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x33, 0x20, 0x3d, 0x20, 0x69,
0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30,
0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x20, 0x5f, 0x34, 0x32,
0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58,
0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61,
0x74, 0x34, 0x20, 0x5f, 0x36, 0x34, 0x20, 0x3d, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72,
0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x56,
0x69, 0x65, 0x77, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61,
0x74, 0x34, 0x28, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x50, 0x4f, 0x53,
0x49, 0x54, 0x49, 0x4f, 0x4e, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x36, 0x35, 0x20, 0x3d, 0x20, 0x5f, 0x36,
0x34, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74,
0x33, 0x20, 0x5f, 0x35, 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x36, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x39, 0x20, 0x3d, 0x20, 0x5f, 0x36,
0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x37,
0x32, 0x20, 0x3d, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66,
0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, 0x32, 0x20, 0x3d, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f,
0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x77, 0x6f, 0x72, 0x6c, 0x64,
0x56, 0x69, 0x65, 0x77, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f,
0x61, 0x74, 0x34, 0x28, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x50, 0x4f,
0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x20, 0x3d, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66,
0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x36, 0x34, 0x2e, 0x78, 0x79, 0x7a,
0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61,
0x74, 0x34, 0x20, 0x5f, 0x35, 0x32, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x32, 0x3b, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x38, 0x33, 0x20, 0x3d, 0x20, 0x66,
0x61, 0x73, 0x74, 0x3a, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x66,
0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x56,
0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e,
0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x30, 0x5d, 0x5b,
0x30, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66,
0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69,
0x78, 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72,
0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c,
0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x32, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x56, 0x69,
0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e,
0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x33, 0x5d, 0x5b, 0x30,
0x5d, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x56,
0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e,
0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x30, 0x5d, 0x5b,
0x31, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66,
0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69,
0x78, 0x5b, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72,
0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c,
0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x32, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x56, 0x69,
0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e,
0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x33, 0x5d, 0x5b, 0x31,
0x5d, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x56,
0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e,
0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x30, 0x5d, 0x5b,
0x32, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66,
0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69,
0x78, 0x5b, 0x31, 0x5d, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72,
0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c,
0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x32, 0x5d, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x56, 0x69,
0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e,
0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x33, 0x5d, 0x5b, 0x32,
0x5d, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f,
0x76, 0x61, 0x72, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x35, 0x31, 0x20, 0x3d, 0x20, 0x5f,
0x38, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x20, 0x5f,
0x35, 0x30, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54,
0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c,
0x6f, 0x61, 0x74, 0x34, 0x20, 0x5f, 0x34, 0x38, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x32, 0x3b, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x37, 0x20, 0x3d,
0x20, 0x5f, 0x38, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32,
0x20, 0x5f, 0x34, 0x36, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72,
0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x5f, 0x34, 0x35, 0x20, 0x3d, 0x20, 0x5f, 0x36, 0x35,
0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x5f, 0x37, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x6f, 0x75, 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x4e, 0x4f, 0x52,
0x4d, 0x41, 0x4c, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x38, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x6f, 0x75, 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43,
0x4f, 0x4f, 0x52, 0x44, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, 0x69, 0x6e, 0x5f, 0x76, 0x61,
0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x6f, 0x75, 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58,
0x43, 0x4f, 0x4f, 0x52, 0x44, 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x36, 0x35, 0x3b, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a,
0x0a,
0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x5f, 0x34, 0x32, 0x2e, 0x78, 0x79, 0x7a,
0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e,
0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30, 0x20,
0x3d, 0x20, 0x66, 0x61, 0x73, 0x74, 0x3a, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x78, 0x33, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74,
0x34, 0x28, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72,
0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b,
0x30, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55,
0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61,
0x74, 0x72, 0x69, 0x78, 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77,
0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72,
0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x32, 0x5d, 0x5b, 0x30, 0x5d, 0x2c,
0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d,
0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x33,
0x5d, 0x5b, 0x30, 0x5d, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74,
0x34, 0x28, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72,
0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b,
0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55,
0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61,
0x74, 0x72, 0x69, 0x78, 0x5b, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77,
0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72,
0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x32, 0x5d, 0x5b, 0x31, 0x5d, 0x2c,
0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d,
0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x33,
0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74,
0x34, 0x28, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72,
0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b,
0x30, 0x5d, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55,
0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61,
0x74, 0x72, 0x69, 0x78, 0x5b, 0x31, 0x5d, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x56, 0x69, 0x65, 0x77,
0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x2e, 0x6e, 0x6f, 0x72,
0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x32, 0x5d, 0x5b, 0x32, 0x5d, 0x2c,
0x20, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d,
0x73, 0x2e, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5b, 0x33,
0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x29, 0x20, 0x2a, 0x20, 0x69, 0x6e, 0x2e,
0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30, 0x29, 0x3b,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72,
0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e,
0x69, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31,
0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x2e, 0x6f, 0x75, 0x74, 0x5f, 0x76, 0x61,
0x72, 0x5f, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x33, 0x20, 0x3d, 0x20, 0x5f, 0x34,
0x32, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72,
0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a,
};
#endif
static const Uint8 PositionColor_vert_spirv[2708] = {
0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x55, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0xdf, 0x13, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x07, 0x00, 0x53, 0x50, 0x56, 0x5f, 0x4b, 0x48, 0x52, 0x5f,
0x71, 0x75, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x00, 0x00, 0x00, 0x00,
0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64,
0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00,
0x05, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x56, 0x69, 0x65,
0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x00, 0x00, 0x00,
0x06, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x72, 0x6f, 0x6a,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x56, 0x69, 0x65, 0x77, 0x4d, 0x61, 0x74,
0x72, 0x69, 0x78, 0x00, 0x06, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74,
0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
0x03, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x54,
0x49, 0x4f, 0x4e, 0x00, 0x05, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x2e, 0x76,
0x61, 0x72, 0x2e, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
0x05, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54, 0x45, 0x58, 0x43, 0x4f,
0x4f, 0x52, 0x44, 0x31, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x00, 0x00,
0x6f, 0x75, 0x74, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30, 0x00,
0x05, 0x00, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x2e, 0x76, 0x61, 0x72, 0x2e,
0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
0x09, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54, 0x45, 0x58, 0x43,
0x4f, 0x4f, 0x52, 0x44, 0x33, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00,
0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00,
0x56, 0x53, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x54, 0x65, 0x78, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x46, 0x53, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74,
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x00, 0x00,
0x06, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x54, 0x65, 0x78, 0x43,
0x6f, 0x6f, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
static const Uint8 PositionColor_vert_spirv[1924] = {
0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30,
0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0f, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e,
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00,
0x0a, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72,
0x74, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x77, 0x6f, 0x72, 0x6c, 0x64, 0x56, 0x69, 0x65, 0x77, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00,
0x06, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x6f, 0x72, 0x6d,
0x61, 0x6c, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
0x0b, 0x00, 0x00, 0x00, 0x56, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x69, 0x66,
0x6f, 0x72, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x03, 0x00, 0x00, 0x00,
0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00,
0x05, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x4e,
0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x05, 0x00, 0x00, 0x00,
0x69, 0x6e, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x31,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x2e,
0x76, 0x61, 0x72, 0x2e, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x30, 0x00, 0x05, 0x00, 0x07, 0x00,
0x08, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54, 0x45, 0x58, 0x43,
0x4f, 0x4f, 0x52, 0x44, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00,
0x6f, 0x75, 0x74, 0x2e, 0x76, 0x61, 0x72, 0x2e, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44,
0x33, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e,
0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
@ -536,112 +483,78 @@ static const Uint8 PositionColor_vert_spirv[2708] = {
0x23, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00,
0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00,
0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x11, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00,
0x21, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x05, 0x00,
0x0c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
0x1e, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x21, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00,
0x0d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00,
0x0b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
0x2c, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2b, 0x00, 0x00, 0x00,
0x37, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
0x0f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
0x3a, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
0x3d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x11, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x50, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00,
0x15, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
0x4f, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x3e, 0x00, 0x03, 0x00, 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
0x31, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00,
0x42, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
0x16, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00,
0x47, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
0x47, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00,
0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00,
0x0b, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00,
0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x4b, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00,
0x18, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x15, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x4f, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00,
0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x4f, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x27, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
0x4c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x91, 0x00, 0x05, 0x00,
0x18, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00,
0x0c, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x45, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00,
0x53, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x32, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
0x50, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
0x53, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00,
0x53, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
0x3e, 0x00, 0x03, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00,
0x53, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00,
0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00,
0x0f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00,
0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00,
0x21, 0x00, 0x03, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00,
0x1f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
0x14, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
0x16, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
0x16, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
0x18, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
0x1a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
0x1b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00,
0x1a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00,
0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00,
0xf8, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00,
0x22, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00,
0x24, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
0x13, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x0f, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00,
0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00,
0x2c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
0x13, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x0f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x2a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x90, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00,
0x33, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00,
0x13, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x12, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4f, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00,
0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00,
0x37, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x00,
0x3a, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x50, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00,
0x3b, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00,
0x91, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
0x22, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00,
0x06, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00,
0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00,
0x38, 0x00, 0x01, 0x00,
};

View File

@ -6,6 +6,7 @@
#include "ddraw_impl.h"
#include "miniwin.h"
#include "miniwin/d3drm.h"
#include "miniwin/miniwindevice.h"
#include <SDL3/SDL.h>
@ -26,6 +27,22 @@ Direct3DRMDevice2Impl::~Direct3DRMDevice2Impl()
delete m_renderer;
}
HRESULT Direct3DRMDevice2Impl::QueryInterface(const GUID& riid, void** ppvObject)
{
if (SDL_memcmp(&riid, &IID_IDirect3DRMDevice2, sizeof(riid)) == 0) {
this->IUnknown::AddRef();
*ppvObject = static_cast<IDirect3DRMDevice2*>(this);
return DD_OK;
}
else if (SDL_memcmp(&riid, &IID_IDirect3DRMMiniwinDevice, sizeof(riid)) == 0) {
this->IUnknown::AddRef();
*ppvObject = static_cast<IDirect3DRMMiniwinDevice*>(this);
return DD_OK;
}
MINIWIN_NOT_IMPLEMENTED();
return E_NOINTERFACE;
}
DWORD Direct3DRMDevice2Impl::GetWidth()
{
return m_width;
@ -121,3 +138,13 @@ HRESULT Direct3DRMDevice2Impl::GetViewports(IDirect3DRMViewportArray** ppViewpor
*ppViewportArray = m_viewports;
return DD_OK;
}
float Direct3DRMDevice2Impl::GetShininessFactor()
{
return m_renderer->GetShininessFactor();
}
HRESULT Direct3DRMDevice2Impl::SetShininessFactor(float factor)
{
return m_renderer->SetShininessFactor(factor);
}

View File

@ -214,6 +214,8 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
Matrix3x3 worldMatrixInvert;
D3DRMMatrixInvertForNormal(worldMatrixInvert, worldMatrix);
const float shininessFactor = m_renderer->GetShininessFactor();
IDirect3DRMVisualArray* visuals = nullptr;
frame->GetVisuals(&visuals);
DWORD n = visuals->GetSize();
@ -283,7 +285,7 @@ void Direct3DRMViewportImpl::CollectMeshesFromFrame(
mesh->GetGroupMaterial(gi, &material);
float shininess = 0.0f;
if (material) {
shininess = material->GetPower();
shininess = material->GetPower() * shininessFactor;
material->Release();
}

View File

@ -3,12 +3,14 @@
#include "d3drmobject_impl.h"
#include "d3drmrenderer.h"
#include "miniwin/d3drm.h"
#include "miniwin/miniwindevice.h"
#include <SDL3/SDL.h>
struct Direct3DRMDevice2Impl : public Direct3DRMObjectBaseImpl<IDirect3DRMDevice2> {
struct Direct3DRMDevice2Impl : public Direct3DRMObjectBaseImpl<IDirect3DRMDevice2>, public IDirect3DRMMiniwinDevice {
Direct3DRMDevice2Impl(DWORD width, DWORD height, Direct3DRMRenderer* renderer);
~Direct3DRMDevice2Impl() override;
HRESULT QueryInterface(const GUID& riid, void** ppvObject) override;
DWORD GetWidth() override;
DWORD GetHeight() override;
HRESULT SetBufferCount(int count) override;
@ -30,6 +32,10 @@ struct Direct3DRMDevice2Impl : public Direct3DRMObjectBaseImpl<IDirect3DRMDevice
HRESULT AddViewport(IDirect3DRMViewport* viewport) override;
HRESULT GetViewports(IDirect3DRMViewportArray** ppViewportArray) override;
// IDirect3DRMMiniwinDevice interface
float GetShininessFactor() override;
HRESULT SetShininessFactor(float factor) override;
Direct3DRMRenderer* m_renderer;
private:

View File

@ -2,6 +2,7 @@
#include "mathutils.h"
#include "miniwin/d3drm.h"
#include "miniwin/miniwindevice.h"
#include <SDL3/SDL.h>
@ -49,4 +50,17 @@ class Direct3DRMRenderer : public IDirect3DDevice2 {
const Appearance& appearance
) = 0;
virtual HRESULT FinalizeFrame() = 0;
float GetShininessFactor() { return m_shininessFactor; }
HRESULT SetShininessFactor(float factor)
{
if (factor < 0.f) {
return DDERR_GENERIC;
}
m_shininessFactor = factor;
return DD_OK;
}
protected:
float m_shininessFactor = 1.f;
};