diff options
Diffstat (limited to 'vendor/winapi/src/um/d3d11shader.rs')
-rw-r--r-- | vendor/winapi/src/um/d3d11shader.rs | 477 |
1 files changed, 0 insertions, 477 deletions
diff --git a/vendor/winapi/src/um/d3d11shader.rs b/vendor/winapi/src/um/d3d11shader.rs deleted file mode 100644 index ebe06b4..0000000 --- a/vendor/winapi/src/um/d3d11shader.rs +++ /dev/null @@ -1,477 +0,0 @@ -// Licensed under the Apache License, Version 2.0 -// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. -// All files in the project carrying such notice may not be copied, modified, or distributed -// except according to those terms. -use ctypes::c_int; -use shared::basetsd::UINT64; -use shared::minwindef::{BOOL, BYTE, INT, LPVOID, UINT}; -use um::d3dcommon::{ - D3D_CBUFFER_TYPE, D3D_FEATURE_LEVEL, D3D_INTERPOLATION_MODE, D3D_MIN_PRECISION, D3D_NAME, - D3D_PARAMETER_FLAGS, D3D_PRIMITIVE, D3D_PRIMITIVE_TOPOLOGY, D3D_REGISTER_COMPONENT_TYPE, - D3D_RESOURCE_RETURN_TYPE, D3D_SHADER_INPUT_TYPE, D3D_SHADER_VARIABLE_CLASS, - D3D_SHADER_VARIABLE_TYPE, D3D_SRV_DIMENSION, D3D_TESSELLATOR_DOMAIN, - D3D_TESSELLATOR_OUTPUT_PRIMITIVE, D3D_TESSELLATOR_PARTITIONING, ID3DBlob, -}; -use um::unknwnbase::{IUnknown, IUnknownVtbl}; -use um::winnt::{HRESULT, LPCSTR}; -ENUM!{enum D3D11_SHADER_VERSION_TYPE { - D3D11_SHVER_PIXEL_SHADER = 0, - D3D11_SHVER_VERTEX_SHADER = 1, - D3D11_SHVER_GEOMETRY_SHADER = 2, - D3D11_SHVER_HULL_SHADER = 3, - D3D11_SHVER_DOMAIN_SHADER = 4, - D3D11_SHVER_COMPUTE_SHADER = 5, - D3D11_SHVER_RESERVED0 = 0xFFF0, -}} -pub const D3D_RETURN_PARAMETER_INDEX: c_int = -1; -pub type D3D11_RESOURCE_RETURN_TYPE = D3D_RESOURCE_RETURN_TYPE; -pub type D3D11_CBUFFER_TYPE = D3D_CBUFFER_TYPE; -STRUCT!{struct D3D11_SIGNATURE_PARAMETER_DESC { - SemanticName: LPCSTR, - SemanticIndex: UINT, - Register: UINT, - SystemValueType: D3D_NAME, - ComponentType: D3D_REGISTER_COMPONENT_TYPE, - Mask: BYTE, - ReadWriteMask: BYTE, - Stream: UINT, - MinPrecision: D3D_MIN_PRECISION, -}} -STRUCT!{struct D3D11_SHADER_BUFFER_DESC { - Name: LPCSTR, - Type: D3D_CBUFFER_TYPE, - Variables: UINT, - Size: UINT, - uFlags: UINT, -}} -STRUCT!{struct D3D11_SHADER_VARIABLE_DESC { - Name: LPCSTR, - StartOffset: UINT, - Size: UINT, - uFlags: UINT, - DefaultValue: LPVOID, - StartTexture: UINT, - TextureSize: UINT, - StartSampler: UINT, - SamplerSize: UINT, -}} -STRUCT!{struct D3D11_SHADER_TYPE_DESC { - Class: D3D_SHADER_VARIABLE_CLASS, - Type: D3D_SHADER_VARIABLE_TYPE, - Rows: UINT, - Columns: UINT, - Elements: UINT, - Members: UINT, - Offset: UINT, - Name: LPCSTR, -}} -pub type D3D11_TESSELLATOR_DOMAIN = D3D_TESSELLATOR_DOMAIN; -pub type D3D11_TESSELLATOR_PARTITIONING = D3D_TESSELLATOR_PARTITIONING; -pub type D3D11_TESSELLATOR_OUTPUT_PRIMITIVE = D3D_TESSELLATOR_OUTPUT_PRIMITIVE; -STRUCT!{struct D3D11_SHADER_DESC { - Version: UINT, - Creator: LPCSTR, - Flags: UINT, - ConstantBuffers: UINT, - BoundResources: UINT, - InputParameters: UINT, - OutputParameters: UINT, - InstructionCount: UINT, - TempRegisterCount: UINT, - TempArrayCount: UINT, - DefCount: UINT, - DclCount: UINT, - TextureNormalInstructions: UINT, - TextureLoadInstructions: UINT, - TextureCompInstructions: UINT, - TextureBiasInstructions: UINT, - TextureGradientInstructions: UINT, - FloatInstructionCount: UINT, - IntInstructionCount: UINT, - UintInstructionCount: UINT, - StaticFlowControlCount: UINT, - DynamicFlowControlCount: UINT, - MacroInstructionCount: UINT, - ArrayInstructionCount: UINT, - CutInstructionCount: UINT, - EmitInstructionCount: UINT, - GSOutputTopology: D3D_PRIMITIVE_TOPOLOGY, - GSMaxOutputVertexCount: UINT, - InputPrimitive: D3D_PRIMITIVE, - PatchConstantParameters: UINT, - cGSInstanceCount: UINT, - cControlPoints: UINT, - HSOutputPrimitive: D3D_TESSELLATOR_OUTPUT_PRIMITIVE, - HSPartitioning: D3D_TESSELLATOR_PARTITIONING, - TessellatorDomain: D3D_TESSELLATOR_DOMAIN, - cBarrierInstructions: UINT, - cInterlockedInstructions: UINT, - cTextureStoreInstructions: UINT, -}} -STRUCT!{struct D3D11_SHADER_INPUT_BIND_DESC { - Name: LPCSTR, - Type: D3D_SHADER_INPUT_TYPE, - BindPoint: UINT, - BindCount: UINT, - uFlags: UINT, - ReturnType: D3D_RESOURCE_RETURN_TYPE, - Dimension: D3D_SRV_DIMENSION, - NumSamples: UINT, -}} -pub const D3D_SHADER_REQUIRES_DOUBLES: UINT64 = 0x00000001; -pub const D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL: UINT64 = 0x00000002; -pub const D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE: UINT64 = 0x00000004; -pub const D3D_SHADER_REQUIRES_64_UAVS: UINT64 = 0x00000008; -pub const D3D_SHADER_REQUIRES_MINIMUM_PRECISION: UINT64 = 0x00000010; -pub const D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS: UINT64 = 0x00000020; -pub const D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS: UINT64 = 0x00000040; -pub const D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING: UINT64 = 0x00000080; -pub const D3D_SHADER_REQUIRES_TILED_RESOURCES: UINT64 = 0x00000100; -STRUCT!{struct D3D11_LIBRARY_DESC { - Creator: LPCSTR, - Flags: UINT, - FunctionCount: UINT, -}} -STRUCT!{struct D3D11_FUNCTION_DESC { - Version: UINT, - Creator: LPCSTR, - Flags: UINT, - ConstantBuffers: UINT, - BoundResources: UINT, - InstructionCount: UINT, - TempRegisterCount: UINT, - TempArrayCount: UINT, - DefCount: UINT, - DclCount: UINT, - TextureNormalInstructions: UINT, - TextureLoadInstructions: UINT, - TextureCompInstructions: UINT, - TextureBiasInstructions: UINT, - TextureGradientInstructions: UINT, - FloatInstructionCount: UINT, - IntInstructionCount: UINT, - UintInstructionCount: UINT, - StaticFlowControlCount: UINT, - DynamicFlowControlCount: UINT, - MacroInstructionCount: UINT, - ArrayInstructionCount: UINT, - MovInstructionCount: UINT, - MovcInstructionCount: UINT, - ConversionInstructionCount: UINT, - BitwiseInstructionCount: UINT, - MinFeatureLevel: D3D_FEATURE_LEVEL, - RequiredFeatureFlags: UINT64, - Name: LPCSTR, - FunctionParameterCount: INT, - HasReturn: BOOL, - Has10Level9VertexShader: BOOL, - Has10Level9PixelShader: BOOL, -}} -STRUCT!{struct D3D11_PARAMETER_DESC { - Name: LPCSTR, - SemanticName: LPCSTR, - Type: D3D_SHADER_VARIABLE_TYPE, - Class: D3D_SHADER_VARIABLE_CLASS, - Rows: UINT, - Columns: UINT, - InterpolationMode: D3D_INTERPOLATION_MODE, - Flags: D3D_PARAMETER_FLAGS, - FirstInRegister: UINT, - FirstInComponent: UINT, - FirstOutRegister: UINT, - FirstOutComponent: UINT, -}} -DEFINE_GUID!{IID_ID3D11ShaderReflectionType, - 0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21} -RIDL!{#[uuid(0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21)] -interface ID3D11ShaderReflectionType(ID3D11ShaderReflectionTypeVtbl) { - fn GetDesc( - pDesc: *mut D3D11_SHADER_TYPE_DESC, - ) -> HRESULT, - fn GetMemberTypeByIndex( - Index: UINT, - ) -> *mut ID3D11ShaderReflectionType, - fn GetMemberTypeByName( - Name: LPCSTR, - ) -> *mut ID3D11ShaderReflectionType, - fn GetMemberTypeName( - Index: UINT, - ) -> LPCSTR, - fn IsEqual( - pType: *mut ID3D11ShaderReflectionType, - ) -> HRESULT, - fn GetSubType() -> *mut ID3D11ShaderReflectionType, - fn GetBaseClass() -> *mut ID3D11ShaderReflectionType, - fn GetNumInterfaces() -> UINT, - fn GetInterfaceByIndex( - uIndex: UINT, - ) -> *mut ID3D11ShaderReflectionType, - fn IsOfType( - pType: *mut ID3D11ShaderReflectionType, - ) -> HRESULT, - fn ImplementsInterface( - pBase: *mut ID3D11ShaderReflectionType, - ) -> HRESULT, -}} -DEFINE_GUID!{IID_ID3D11ShaderReflectionVariable, - 0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c} -RIDL!{#[uuid(0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c)] -interface ID3D11ShaderReflectionVariable(ID3D11ShaderReflectionVariableVtbl) { - fn GetDesc( - pDesc: *mut D3D11_SHADER_VARIABLE_DESC, - ) -> HRESULT, - fn GetType() -> *mut ID3D11ShaderReflectionType, - fn GetBuffer() -> *mut ID3D11ShaderReflectionConstantBuffer, - fn GetInterfaceSlot( - uArrayIndex: UINT, - ) -> UINT, -}} -DEFINE_GUID!{IID_ID3D11ShaderReflectionConstantBuffer, - 0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8} -RIDL!{#[uuid(0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8)] -interface ID3D11ShaderReflectionConstantBuffer(ID3D11ShaderReflectionConstantBufferVtbl) { - fn GetDesc( - pDesc: *mut D3D11_SHADER_BUFFER_DESC, - ) -> HRESULT, - fn GetVariableByIndex( - Index: UINT, - ) -> *mut ID3D11ShaderReflectionVariable, - fn GetVariableByName( - Name: LPCSTR, - ) -> *mut ID3D11ShaderReflectionVariable, -}} -DEFINE_GUID!{IID_ID3D11ShaderReflection, - 0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84} -RIDL!{#[uuid(0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84)] -interface ID3D11ShaderReflection(ID3D11ShaderReflectionVtbl): IUnknown(IUnknownVtbl) { - fn GetDesc( - pDesc: *mut D3D11_SHADER_DESC, - ) -> HRESULT, - fn GetConstantBufferByIndex( - Index: UINT, - ) -> *mut ID3D11ShaderReflectionConstantBuffer, - fn GetConstantBufferByName( - Name: LPCSTR, - ) -> *mut ID3D11ShaderReflectionConstantBuffer, - fn GetResourceBindingDesc( - ResourceIndex: UINT, - pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC, - ) -> HRESULT, - fn GetInputParameterDesc( - ParameterIndex: UINT, - pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC, - ) -> HRESULT, - fn GetOutputParameterDesc( - ParameterIndex: UINT, - pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC, - ) -> HRESULT, - fn GetPatchConstantParameterDesc( - ParameterIndex: UINT, - pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC, - ) -> HRESULT, - fn GetVariableByName( - Name: LPCSTR, - ) -> *mut ID3D11ShaderReflectionVariable, - fn GetResourceBindingDescByName( - Name: LPCSTR, - pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC, - ) -> HRESULT, - fn GetMovInstructionCount() -> UINT, - fn GetMovcInstructionCount() -> UINT, - fn GetConversionInstructionCount() -> UINT, - fn GetBitwiseInstructionCount() -> UINT, - fn GetGSInputPrimitive() -> D3D_PRIMITIVE, - fn IsSampleFrequencyShader() -> BOOL, - fn GetNumInterfaceSlots() -> UINT, - fn GetMinFeatureLevel( - pLevel: *mut D3D_FEATURE_LEVEL, - ) -> HRESULT, - fn GetThreadGroupSize( - pSizeX: *mut UINT, - pSizeY: *mut UINT, - pSizeZ: *mut UINT, - ) -> UINT, - fn GetRequiresFlags() -> UINT64, -}} -DEFINE_GUID!{IID_ID3D11LibraryReflection, - 0x54384f1b, 0x5b3e, 0x4bb7, 0xae, 0x01, 0x60, 0xba, 0x30, 0x97, 0xcb, 0xb6} -RIDL!{#[uuid(0x54384f1b, 0x5b3e, 0x4bb7, 0xae, 0x01, 0x60, 0xba, 0x30, 0x97, 0xcb, 0xb6)] -interface ID3D11LibraryReflection(ID3D11LibraryReflectionVtbl): IUnknown(IUnknownVtbl) { - fn GetDesc( - pDesc: *mut D3D11_LIBRARY_DESC, - ) -> HRESULT, - fn GetFunctionByIndex( - FunctionIndex: INT, - ) -> *mut ID3D11FunctionReflection, -}} -DEFINE_GUID!{IID_ID3D11FunctionReflection, - 0x207bcecb, 0xd683, 0x4a06, 0xa8, 0xa3, 0x9b, 0x14, 0x9b, 0x9f, 0x73, 0xa4} -RIDL!{#[uuid(0x207bcecb, 0xd683, 0x4a06, 0xa8, 0xa3, 0x9b, 0x14, 0x9b, 0x9f, 0x73, 0xa4)] -interface ID3D11FunctionReflection(ID3D11FunctionReflectionVtbl) { - fn GetDesc( - pDesc: *mut D3D11_FUNCTION_DESC, - ) -> HRESULT, - fn GetConstantBufferByIndex( - BufferIndex: UINT, - ) -> *mut ID3D11ShaderReflectionConstantBuffer, - fn GetConstantBufferByName( - Name: LPCSTR, - ) -> *mut ID3D11ShaderReflectionConstantBuffer, - fn GetResourceBindingDesc( - ResourceIndex: UINT, - pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC, - ) -> HRESULT, - fn GetVariableByName( - Name: LPCSTR, - ) -> *mut ID3D11ShaderReflectionVariable, - fn GetResourceBindingDescByName( - Name: LPCSTR, - pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC, - ) -> HRESULT, - fn GetFunctionParameter( - ParameterIndex: INT, - ) -> *mut ID3D11FunctionParameterReflection, -}} -DEFINE_GUID!{IID_ID3D11FunctionParameterReflection, - 0x42757488, 0x334f, 0x47fe, 0x98, 0x2e, 0x1a, 0x65, 0xd0, 0x8c, 0xc4, 0x62} -RIDL!{#[uuid(0x42757488, 0x334f, 0x47fe, 0x98, 0x2e, 0x1a, 0x65, 0xd0, 0x8c, 0xc4, 0x62)] -interface ID3D11FunctionParameterReflection(ID3D11FunctionParameterReflectionVtbl) { - fn GetDesc( - pDesc: *mut D3D11_PARAMETER_DESC, - ) -> HRESULT, -}} -DEFINE_GUID!{IID_ID3D11Module, - 0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34} -RIDL!{#[uuid(0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34)] -interface ID3D11Module(ID3D11ModuleVtbl): IUnknown(IUnknownVtbl) { - fn CreateInstance( - pNamespace: LPCSTR, - ppModuleInstance: *mut *mut ID3D11ModuleInstance, - ) -> HRESULT, -}} -DEFINE_GUID!{IID_ID3D11ModuleInstance, - 0x469e07f7, 0x045a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d} -RIDL!{#[uuid(0x469e07f7, 0x045a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d)] -interface ID3D11ModuleInstance(ID3D11ModuleInstanceVtbl): IUnknown(IUnknownVtbl) { - fn BindConstantBuffer( - uSrcSlot: UINT, - uDstSlot: UINT, - cbDstOffset: UINT, - ) -> HRESULT, - fn BindConstantBufferByName( - pName: LPCSTR, - uDstSlot: UINT, - cbDstOffset: UINT, - ) -> HRESULT, - fn BindResource( - uSrcSlot: UINT, - uDstSlot: UINT, - uCount: UINT, - ) -> HRESULT, - fn BindResourceByName( - pName: LPCSTR, - uDstSlot: UINT, - uCount: UINT, - ) -> HRESULT, - fn BindSampler( - uSrcSlot: UINT, - uDstSlot: UINT, - uCount: UINT, - ) -> HRESULT, - fn BindSamplerByName( - pName: LPCSTR, - uDstSlot: UINT, - uCount: UINT, - ) -> HRESULT, - fn BindUnorderedAccessView( - uSrcSlot: UINT, - uDstSlot: UINT, - uCount: UINT, - ) -> HRESULT, - fn BindUnorderedAccessViewByName( - pName: LPCSTR, - uDstSlot: UINT, - uCount: UINT, - ) -> HRESULT, - fn BindResourceAsUnorderedAccessView( - uSrcSrvSlot: UINT, - uDstUavSlot: UINT, - uCount: UINT, - ) -> HRESULT, - fn BindResourceAsUnorderedAccessViewByName( - pSrvName: LPCSTR, - uDstUavSlot: UINT, - uCount: UINT, - ) -> HRESULT, -}} -DEFINE_GUID!{IID_ID3D11Linker, - 0x59a6cd0e, 0xe10d, 0x4c1f, 0x88, 0xc0, 0x63, 0xab, 0xa1, 0xda, 0xf3, 0x0e} -RIDL!{#[uuid(0x59a6cd0e, 0xe10d, 0x4c1f, 0x88, 0xc0, 0x63, 0xab, 0xa1, 0xda, 0xf3, 0x0e)] -interface ID3D11Linker(ID3D11LinkerVtbl): IUnknown(IUnknownVtbl) { - fn Link( - pEntry: *mut ID3D11ModuleInstance, - pEntryName: LPCSTR, - pTargetName: LPCSTR, - uFlags: UINT, - ppShaderBlob: *mut *mut ID3DBlob, - ppErrorBuffer: *mut *mut ID3DBlob, - ) -> HRESULT, - fn UseLibrary( - pLibraryMI: *mut ID3D11ModuleInstance, - ) -> HRESULT, - fn AddClipPlaneFromCBuffer( - uCBufferSlot: UINT, - uCBufferEntry: UINT, - ) -> HRESULT, -}} -DEFINE_GUID!{IID_ID3D11LinkingNode, - 0xd80dd70c, 0x8d2f, 0x4751, 0x94, 0xa1, 0x03, 0xc7, 0x9b, 0x35, 0x56, 0xdb} -RIDL!{#[uuid(0xd80dd70c, 0x8d2f, 0x4751, 0x94, 0xa1, 0x03, 0xc7, 0x9b, 0x35, 0x56, 0xdb)] -interface ID3D11LinkingNode(ID3D11LinkingNodeVtbl): IUnknown(IUnknownVtbl) {}} -DEFINE_GUID!{IID_ID3D11FunctionLinkingGraph, - 0x54133220, 0x1ce8, 0x43d3, 0x82, 0x36, 0x98, 0x55, 0xc5, 0xce, 0xec, 0xff} -RIDL!{#[uuid(0x54133220, 0x1ce8, 0x43d3, 0x82, 0x36, 0x98, 0x55, 0xc5, 0xce, 0xec, 0xff)] -interface ID3D11FunctionLinkingGraph(ID3D11FunctionLinkingGraphVtbl): IUnknown(IUnknownVtbl) { - fn CreateModuleInstance( - ppModuleInstance: *mut *mut ID3D11ModuleInstance, - ppErrorBuffer: *mut *mut ID3DBlob, - ) -> HRESULT, - fn SetInputSignature( - pInputParameters: *const D3D11_PARAMETER_DESC, - cInputParameters: UINT, - ppInputNode: *mut *mut ID3D11LinkingNode, - ) -> HRESULT, - fn SetOutputSignature( - pOutputParameters: *const D3D11_PARAMETER_DESC, - cOutputParameters: UINT, - ppOutputNode: *mut *mut ID3D11LinkingNode, - ) -> HRESULT, - fn CallFunction( - pModuleInstanceNamespace: LPCSTR, - pModuleWithFunctionPrototype: *mut ID3D11Module, - pFunctionName: LPCSTR, - ppCallNode: *mut *mut ID3D11LinkingNode, - ) -> HRESULT, - fn PassValue( - pSrcNode: *mut ID3D11LinkingNode, - SrcParameterIndex: INT, - pDstNode: *mut ID3D11LinkingNode, - DstParameterIndex: INT, - ) -> HRESULT, - fn PassValueWithSwizzle( - pSrcNode: *mut ID3D11LinkingNode, - SrcParameterIndex: INT, - pSrcSwizzle: LPCSTR, - pDstNode: *mut ID3D11LinkingNode, - DstParameterIndex: INT, - pDstSwizzle: LPCSTR, - ) -> HRESULT, - fn GetLastError( - ppErrorBuffer: *mut *mut ID3DBlob, - ) -> HRESULT, - fn GenerateHlsl( - uFlags: UINT, - ppBuffer: *mut *mut ID3DBlob, - ) -> HRESULT, -}} |