<?xml version='1.0'?>
<!DOCTYPE signatures SYSTEM "file://localhost/System/Library/DTDs/BridgeSupport.dtd">
<signatures version='1.0'>
<struct name='FFCAPABILITIES' type64='{FFCAPABILITIES=&quot;ffSpecVer&quot;{NumVersion}&quot;supportedEffects&quot;I&quot;emulatedEffects&quot;I&quot;subType&quot;I&quot;numFfAxes&quot;I&quot;ffAxes&quot;[32C]&quot;storageCapacity&quot;I&quot;playbackCapacity&quot;I&quot;firmwareVer&quot;{NumVersion}&quot;hardwareVer&quot;{NumVersion}&quot;driverVer&quot;{NumVersion}}'/>
<struct name='FFCONDITION' type64='{FFCONDITION=&quot;lOffset&quot;i&quot;lPositiveCoefficient&quot;i&quot;lNegativeCoefficient&quot;i&quot;dwPositiveSaturation&quot;I&quot;dwNegativeSaturation&quot;I&quot;lDeadBand&quot;i}'/>
<struct name='FFCONSTANTFORCE' type64='{FFCONSTANTFORCE=&quot;lMagnitude&quot;i}'/>
<struct name='FFCUSTOMFORCE' type64='{FFCUSTOMFORCE=&quot;cChannels&quot;I&quot;dwSamplePeriod&quot;I&quot;cSamples&quot;I&quot;rglForceData&quot;^i}'/>
<struct name='FFEFFECT' type64='{FFEFFECT=&quot;dwSize&quot;I&quot;dwFlags&quot;I&quot;dwDuration&quot;I&quot;dwSamplePeriod&quot;I&quot;dwGain&quot;I&quot;dwTriggerButton&quot;I&quot;dwTriggerRepeatInterval&quot;I&quot;cAxes&quot;I&quot;rgdwAxes&quot;^I&quot;rglDirection&quot;^i&quot;lpEnvelope&quot;^{FFENVELOPE}&quot;cbTypeSpecificParams&quot;I&quot;lpvTypeSpecificParams&quot;^v&quot;dwStartDelay&quot;I}'/>
<struct name='FFEFFESCAPE' type64='{FFEFFESCAPE=&quot;dwSize&quot;I&quot;dwCommand&quot;I&quot;lpvInBuffer&quot;^v&quot;cbInBuffer&quot;I&quot;lpvOutBuffer&quot;^v&quot;cbOutBuffer&quot;I}'/>
<struct name='FFENVELOPE' type64='{FFENVELOPE=&quot;dwSize&quot;I&quot;dwAttackLevel&quot;I&quot;dwAttackTime&quot;I&quot;dwFadeLevel&quot;I&quot;dwFadeTime&quot;I}'/>
<struct name='FFPERIODIC' type64='{FFPERIODIC=&quot;dwMagnitude&quot;I&quot;lOffset&quot;i&quot;dwPhase&quot;I&quot;dwPeriod&quot;I}'/>
<struct name='FFRAMPFORCE' type64='{FFRAMPFORCE=&quot;lStart&quot;i&quot;lEnd&quot;i}'/>
<struct name='ForceFeedbackDeviceState' type64='{ForceFeedbackDeviceState=&quot;dwSize&quot;I&quot;dwState&quot;I&quot;dwLoad&quot;I}'/>
<struct name='ForceFeedbackDeviceStatePtr' type64='{ForceFeedbackDeviceState=&quot;dwSize&quot;I&quot;dwState&quot;I&quot;dwLoad&quot;I}'/>
<struct name='ForceFeedbackVersion' type64='{ForceFeedbackVersion=&quot;apiVersion&quot;{NumVersion}&quot;plugInVersion&quot;{NumVersion}}'/>
<struct name='ForceFeedbackVersionPtr' type64='{ForceFeedbackVersion=&quot;apiVersion&quot;{NumVersion}&quot;plugInVersion&quot;{NumVersion}}'/>
<struct name='IOForceFeedbackDeviceInterface' type64='{IOForceFeedbackDeviceInterface=&quot;_reserved&quot;^v&quot;QueryInterface&quot;^?&quot;AddRef&quot;^?&quot;Release&quot;^?&quot;ForceFeedbackGetVersion&quot;^?&quot;InitializeTerminate&quot;^?&quot;DestroyEffect&quot;^?&quot;DownloadEffect&quot;^?&quot;Escape&quot;^?&quot;GetEffectStatus&quot;^?&quot;GetForceFeedbackCapabilities&quot;^?&quot;GetForceFeedbackState&quot;^?&quot;SendForceFeedbackCommand&quot;^?&quot;SetProperty&quot;^?&quot;StartEffect&quot;^?&quot;StopEffect&quot;^?}'/>
<struct name='IOForceFeedbackDeviceInterfacePtr' type64='{IOForceFeedbackDeviceInterface=&quot;_reserved&quot;^v&quot;QueryInterface&quot;^?&quot;AddRef&quot;^?&quot;Release&quot;^?&quot;ForceFeedbackGetVersion&quot;^?&quot;InitializeTerminate&quot;^?&quot;DestroyEffect&quot;^?&quot;DownloadEffect&quot;^?&quot;Escape&quot;^?&quot;GetEffectStatus&quot;^?&quot;GetForceFeedbackCapabilities&quot;^?&quot;GetForceFeedbackState&quot;^?&quot;SendForceFeedbackCommand&quot;^?&quot;SetProperty&quot;^?&quot;StartEffect&quot;^?&quot;StopEffect&quot;^?}'/>
<struct name='PFFCAPABILITIES' type64='{FFCAPABILITIES=&quot;ffSpecVer&quot;{NumVersion}&quot;supportedEffects&quot;I&quot;emulatedEffects&quot;I&quot;subType&quot;I&quot;numFfAxes&quot;I&quot;ffAxes&quot;[32C]&quot;storageCapacity&quot;I&quot;playbackCapacity&quot;I&quot;firmwareVer&quot;{NumVersion}&quot;hardwareVer&quot;{NumVersion}&quot;driverVer&quot;{NumVersion}}'/>
<struct name='PFFCONDITION' type64='{FFCONDITION=&quot;lOffset&quot;i&quot;lPositiveCoefficient&quot;i&quot;lNegativeCoefficient&quot;i&quot;dwPositiveSaturation&quot;I&quot;dwNegativeSaturation&quot;I&quot;lDeadBand&quot;i}'/>
<struct name='PFFCONSTANTFORCE' type64='{FFCONSTANTFORCE=&quot;lMagnitude&quot;i}'/>
<struct name='PFFCUSTOMFORCE' type64='{FFCUSTOMFORCE=&quot;cChannels&quot;I&quot;dwSamplePeriod&quot;I&quot;cSamples&quot;I&quot;rglForceData&quot;^i}'/>
<struct name='PFFEFFECT' type64='{FFEFFECT=&quot;dwSize&quot;I&quot;dwFlags&quot;I&quot;dwDuration&quot;I&quot;dwSamplePeriod&quot;I&quot;dwGain&quot;I&quot;dwTriggerButton&quot;I&quot;dwTriggerRepeatInterval&quot;I&quot;cAxes&quot;I&quot;rgdwAxes&quot;^I&quot;rglDirection&quot;^i&quot;lpEnvelope&quot;^{FFENVELOPE}&quot;cbTypeSpecificParams&quot;I&quot;lpvTypeSpecificParams&quot;^v&quot;dwStartDelay&quot;I}'/>
<struct name='PFFEFFESCAPE' type64='{FFEFFESCAPE=&quot;dwSize&quot;I&quot;dwCommand&quot;I&quot;lpvInBuffer&quot;^v&quot;cbInBuffer&quot;I&quot;lpvOutBuffer&quot;^v&quot;cbOutBuffer&quot;I}'/>
<struct name='PFFENVELOPE' type64='{FFENVELOPE=&quot;dwSize&quot;I&quot;dwAttackLevel&quot;I&quot;dwAttackTime&quot;I&quot;dwFadeLevel&quot;I&quot;dwFadeTime&quot;I}'/>
<struct name='PFFPERIODIC' type64='{FFPERIODIC=&quot;dwMagnitude&quot;I&quot;lOffset&quot;i&quot;dwPhase&quot;I&quot;dwPeriod&quot;I}'/>
<struct name='PFFRAMPFORCE' type64='{FFRAMPFORCE=&quot;lStart&quot;i&quot;lEnd&quot;i}'/>
<opaque name='FFDeviceObjectReference' type64='^{__FFDHIDDEN=}'/>
<opaque name='FFEffectObjectReference' type64='^{__FFEHIDDEN=}'/>
<enum name='E_PENDING' value64='-2147483638'/>
<enum name='FFCAP_ET_CONSTANTFORCE' value64='1'/>
<enum name='FFCAP_ET_CUSTOMFORCE' value64='2048'/>
<enum name='FFCAP_ET_DAMPER' value64='256'/>
<enum name='FFCAP_ET_FRICTION' value64='1024'/>
<enum name='FFCAP_ET_INERTIA' value64='512'/>
<enum name='FFCAP_ET_RAMPFORCE' value64='2'/>
<enum name='FFCAP_ET_SAWTOOTHDOWN' value64='64'/>
<enum name='FFCAP_ET_SAWTOOTHUP' value64='32'/>
<enum name='FFCAP_ET_SINE' value64='8'/>
<enum name='FFCAP_ET_SPRING' value64='128'/>
<enum name='FFCAP_ET_SQUARE' value64='4'/>
<enum name='FFCAP_ET_TRIANGLE' value64='16'/>
<enum name='FFCAP_ST_KINESTHETIC' value64='1'/>
<enum name='FFCAP_ST_VIBRATION' value64='2'/>
<enum name='FFEB_NOTRIGGER' value64='-1'/>
<enum name='FFEFF_CARTESIAN' value64='16'/>
<enum name='FFEFF_OBJECTOFFSETS' value64='2'/>
<enum name='FFEFF_POLAR' value64='32'/>
<enum name='FFEFF_SPHERICAL' value64='64'/>
<enum name='FFEGES_EMULATED' value64='2'/>
<enum name='FFEGES_NOTPLAYING' value64='0'/>
<enum name='FFEGES_PLAYING' value64='1'/>
<enum name='FFEP_ALLPARAMS' value64='1023'/>
<enum name='FFEP_AXES' value64='32'/>
<enum name='FFEP_DIRECTION' value64='64'/>
<enum name='FFEP_DURATION' value64='1'/>
<enum name='FFEP_ENVELOPE' value64='128'/>
<enum name='FFEP_GAIN' value64='4'/>
<enum name='FFEP_NODOWNLOAD' value64='-2147483648'/>
<enum name='FFEP_NORESTART' value64='1073741824'/>
<enum name='FFEP_SAMPLEPERIOD' value64='2'/>
<enum name='FFEP_START' value64='536870912'/>
<enum name='FFEP_STARTDELAY' value64='512'/>
<enum name='FFEP_TRIGGERBUTTON' value64='8'/>
<enum name='FFEP_TRIGGERREPEATINTERVAL' value64='16'/>
<enum name='FFEP_TYPESPECIFICPARAMS' value64='256'/>
<enum name='FFERR_DEVICEFULL' value64='-2147220991'/>
<enum name='FFERR_DEVICEPAUSED' value64='-2147220735'/>
<enum name='FFERR_DEVICERELEASED' value64='-2147220729'/>
<enum name='FFERR_EFFECTPLAYING' value64='-2147220984'/>
<enum name='FFERR_EFFECTTYPEMISMATCH' value64='-2147220733'/>
<enum name='FFERR_EFFECTTYPENOTSUPPORTED' value64='-2147220730'/>
<enum name='FFERR_GENERIC' value64='-2147483640'/>
<enum name='FFERR_HASEFFECTS' value64='-2147220988'/>
<enum name='FFERR_INCOMPLETEEFFECT' value64='-2147220986'/>
<enum name='FFERR_INTERNAL' value64='-2147220734'/>
<enum name='FFERR_INVALIDDOWNLOADID' value64='-2147220736'/>
<enum name='FFERR_INVALIDPARAM' value64='-2147483645'/>
<enum name='FFERR_MOREDATA' value64='-2147220990'/>
<enum name='FFERR_NOINTERFACE' value64='-2147483644'/>
<enum name='FFERR_NOTDOWNLOADED' value64='-2147220989'/>
<enum name='FFERR_NOTINITIALIZED' value64='-2147220731'/>
<enum name='FFERR_OUTOFMEMORY' value64='-2147483646'/>
<enum name='FFERR_UNPLUGGED' value64='-2147220983'/>
<enum name='FFERR_UNSUPPORTED' value64='-2147483647'/>
<enum name='FFERR_UNSUPPORTEDAXIS' value64='-2147220732'/>
<enum name='FFES_NODOWNLOAD' value64='-2147483648'/>
<enum name='FFES_SOLO' value64='1'/>
<enum name='FFGFFS_ACTUATORSOFF' value64='32'/>
<enum name='FFGFFS_ACTUATORSON' value64='16'/>
<enum name='FFGFFS_DEVICELOST' value64='-2147483648'/>
<enum name='FFGFFS_EMPTY' value64='1'/>
<enum name='FFGFFS_PAUSED' value64='4'/>
<enum name='FFGFFS_POWEROFF' value64='128'/>
<enum name='FFGFFS_POWERON' value64='64'/>
<enum name='FFGFFS_SAFETYSWITCHOFF' value64='512'/>
<enum name='FFGFFS_SAFETYSWITCHON' value64='256'/>
<enum name='FFGFFS_STOPPED' value64='2'/>
<enum name='FFGFFS_USERFFSWITCHOFF' value64='2048'/>
<enum name='FFGFFS_USERFFSWITCHON' value64='1024'/>
<enum name='FFJOFS_BUTTON0' value64='48'/>
<enum name='FFJOFS_BUTTON1' value64='49'/>
<enum name='FFJOFS_BUTTON10' value64='58'/>
<enum name='FFJOFS_BUTTON11' value64='59'/>
<enum name='FFJOFS_BUTTON12' value64='60'/>
<enum name='FFJOFS_BUTTON13' value64='61'/>
<enum name='FFJOFS_BUTTON14' value64='62'/>
<enum name='FFJOFS_BUTTON15' value64='63'/>
<enum name='FFJOFS_BUTTON16' value64='64'/>
<enum name='FFJOFS_BUTTON17' value64='65'/>
<enum name='FFJOFS_BUTTON18' value64='66'/>
<enum name='FFJOFS_BUTTON19' value64='67'/>
<enum name='FFJOFS_BUTTON2' value64='50'/>
<enum name='FFJOFS_BUTTON20' value64='68'/>
<enum name='FFJOFS_BUTTON21' value64='69'/>
<enum name='FFJOFS_BUTTON22' value64='70'/>
<enum name='FFJOFS_BUTTON23' value64='71'/>
<enum name='FFJOFS_BUTTON24' value64='72'/>
<enum name='FFJOFS_BUTTON25' value64='73'/>
<enum name='FFJOFS_BUTTON26' value64='74'/>
<enum name='FFJOFS_BUTTON27' value64='75'/>
<enum name='FFJOFS_BUTTON28' value64='76'/>
<enum name='FFJOFS_BUTTON29' value64='77'/>
<enum name='FFJOFS_BUTTON3' value64='51'/>
<enum name='FFJOFS_BUTTON30' value64='78'/>
<enum name='FFJOFS_BUTTON31' value64='79'/>
<enum name='FFJOFS_BUTTON4' value64='52'/>
<enum name='FFJOFS_BUTTON5' value64='53'/>
<enum name='FFJOFS_BUTTON6' value64='54'/>
<enum name='FFJOFS_BUTTON7' value64='55'/>
<enum name='FFJOFS_BUTTON8' value64='56'/>
<enum name='FFJOFS_BUTTON9' value64='57'/>
<enum name='FFJOFS_RX' value64='12'/>
<enum name='FFJOFS_RY' value64='16'/>
<enum name='FFJOFS_RZ' value64='20'/>
<enum name='FFJOFS_X' value64='0'/>
<enum name='FFJOFS_Y' value64='4'/>
<enum name='FFJOFS_Z' value64='8'/>
<enum name='FFPROP_AUTOCENTER' value64='3'/>
<enum name='FFPROP_FFGAIN' value64='1'/>
<enum name='FFSCL_BACKGROUND' value64='8'/>
<enum name='FFSCL_EXCLUSIVE' value64='1'/>
<enum name='FFSCL_FOREGROUND' value64='4'/>
<enum name='FFSCL_NONEXCLUSIVE' value64='2'/>
<enum name='FFSFFC_CONTINUE' value64='8'/>
<enum name='FFSFFC_PAUSE' value64='4'/>
<enum name='FFSFFC_RESET' value64='1'/>
<enum name='FFSFFC_SETACTUATORSOFF' value64='32'/>
<enum name='FFSFFC_SETACTUATORSON' value64='16'/>
<enum name='FFSFFC_STOPALL' value64='2'/>
<enum name='FF_DEGREES' value64='100'/>
<enum name='FF_DOWNLOADSKIPPED' value64='3'/>
<enum name='FF_EFFECTRESTARTED' value64='4'/>
<enum name='FF_FALSE' value64='1'/>
<enum name='FF_FFNOMINALMAX' value64='10000'/>
<enum name='FF_INFINITE' value64='-1'/>
<enum name='FF_OK' value64='0'/>
<enum name='FF_SECONDS' value64='1000000'/>
<enum name='FF_TRUNCATED' value64='8'/>
<enum name='FF_TRUNCATEDANDRESTARTED' value64='12'/>
<enum name='kFFAPIMajorRev' value64='1'/>
<enum name='kFFAPIMinorAndBugRev' value64='0'/>
<enum name='kFFAPINonRelRev' value64='0'/>
<enum name='kFFAPIStage' value64='128'/>
<enum name='kFFPlugInAPIMajorRev' value64='1'/>
<enum name='kFFPlugInAPIMinorAndBugRev' value64='0'/>
<enum name='kFFPlugInAPINonRelRev' value64='0'/>
<enum name='kFFPlugInAPIStage' value64='128'/>
<function name='FFCreateDevice'>
<arg type64='I'/>
<arg type64='^^{__FFDHIDDEN}'/>
<retval type64='i'/>
</function>
<function name='FFDeviceCreateEffect'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='^{__CFUUID=}'/>
<arg type64='^{FFEFFECT=IIIIIIII^I^i^{FFENVELOPE}I^vI}'/>
<arg type64='^^{__FFEHIDDEN}'/>
<retval type64='i'/>
</function>
<function name='FFDeviceEscape'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='^{FFEFFESCAPE=II^vI^vI}'/>
<retval type64='i'/>
</function>
<function name='FFDeviceGetForceFeedbackCapabilities'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='^{FFCAPABILITIES={NumVersion=CCCC}IIII[32C]II{NumVersion=CCCC}{NumVersion=CCCC}{NumVersion=CCCC}}'/>
<retval type64='i'/>
</function>
<function name='FFDeviceGetForceFeedbackProperty'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='I'/>
<arg type64='^v'/>
<arg type64='I'/>
<retval type64='i'/>
</function>
<function name='FFDeviceGetForceFeedbackState'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='^I'/>
<retval type64='i'/>
</function>
<function name='FFDeviceReleaseEffect'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='^{__FFEHIDDEN=}'/>
<retval type64='i'/>
</function>
<function name='FFDeviceSendForceFeedbackCommand'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='I'/>
<retval type64='i'/>
</function>
<function name='FFDeviceSetCooperativeLevel'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='^v'/>
<arg type64='I'/>
<retval type64='i'/>
</function>
<function name='FFDeviceSetForceFeedbackProperty'>
<arg type64='^{__FFDHIDDEN=}'/>
<arg type64='I'/>
<arg type64='^v'/>
<retval type64='i'/>
</function>
<function name='FFEffectDownload'>
<arg type64='^{__FFEHIDDEN=}'/>
<retval type64='i'/>
</function>
<function name='FFEffectEscape'>
<arg type64='^{__FFEHIDDEN=}'/>
<arg type64='^{FFEFFESCAPE=II^vI^vI}'/>
<retval type64='i'/>
</function>
<function name='FFEffectGetEffectStatus'>
<arg type64='^{__FFEHIDDEN=}'/>
<arg type64='^I'/>
<retval type64='i'/>
</function>
<function name='FFEffectGetParameters'>
<arg type64='^{__FFEHIDDEN=}'/>
<arg type64='^{FFEFFECT=IIIIIIII^I^i^{FFENVELOPE}I^vI}'/>
<arg type64='I'/>
<retval type64='i'/>
</function>
<function name='FFEffectSetParameters'>
<arg type64='^{__FFEHIDDEN=}'/>
<arg type64='^{FFEFFECT=IIIIIIII^I^i^{FFENVELOPE}I^vI}'/>
<arg type64='I'/>
<retval type64='i'/>
</function>
<function name='FFEffectStart'>
<arg type64='^{__FFEHIDDEN=}'/>
<arg type64='I'/>
<arg type64='I'/>
<retval type64='i'/>
</function>
<function name='FFEffectStop'>
<arg type64='^{__FFEHIDDEN=}'/>
<retval type64='i'/>
</function>
<function name='FFEffectUnload'>
<arg type64='^{__FFEHIDDEN=}'/>
<retval type64='i'/>
</function>
<function name='FFIsForceFeedback'>
<arg type64='I'/>
<retval type64='i'/>
</function>
<function name='FFReleaseDevice'>
<arg type64='^{__FFDHIDDEN=}'/>
<retval type64='i'/>
</function>
</signatures>
