Commit 69ea7238 authored by Nathan De Castro's avatar Nathan De Castro
Browse files

Now using RMS, made mesh smaller

parent 44344a15
......@@ -49,6 +49,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\AudioAnalysis.cs" />
<Compile Include="Assets\Scripts\AI\AI.cs" />
<Compile Include="Assets\Scripts\AI\CurrentPlayer.cs" />
<Compile Include="Assets\Scripts\Effects\BigEnabler.cs" />
......
 using UnityEngine;
public class AudioAnalysis : MonoBehaviour {
static public AudioAnalysis i;
public float RmsValue;
public float DbValue;
public float PitchValue;
private const int QSamples = 1024;
private const float RefValue = 0.1f;
private const float Threshold = 0.02f;
float[] _samples;
private float[] _spectrum;
private float _fSample;
void Start () {
i = this;
GetComponent<AudioSource> ().clip = Microphone.Start ("Built-in Microphone", true, 1, AudioSettings.outputSampleRate);
GetComponent<AudioSource> ().loop = true;
GetComponent<AudioSource> ().Play ();
GetComponent<AudioSource> ().volume = 0.0f;
_samples = new float[QSamples];
_spectrum = new float[QSamples];
_fSample = AudioSettings.outputSampleRate;
}
void Update () {
AnalyzeSound ();
}
void AnalyzeSound () {
GetComponent<AudioSource> ().GetOutputData (_samples, 0); // fill array with samples
int i;
float sum = 0;
for (i = 0; i < QSamples; i++) {
sum += _samples[i] * _samples[i]; // sum squared samples
}
RmsValue = Mathf.Sqrt (sum / QSamples); // rms = square root of average
DbValue = 20 * Mathf.Log10 (RmsValue / RefValue); // calculate dB
if (DbValue < -160) DbValue = -160; // clamp it to -160dB min
// get sound spectrum
GetComponent<AudioSource> ().GetSpectrumData (_spectrum, 0, FFTWindow.BlackmanHarris);
float maxV = 0;
var maxN = 0;
for (i = 0; i < QSamples; i++) { // find max
if (!(_spectrum[i] > maxV) || !(_spectrum[i] > Threshold))
continue;
maxV = _spectrum[i];
maxN = i; // maxN is the index of max
}
float freqN = maxN; // pass the index to a float variable
if (maxN > 0 && maxN < QSamples - 1) { // interpolate index using neighbours
var dL = _spectrum[maxN - 1] / _spectrum[maxN];
var dR = _spectrum[maxN + 1] / _spectrum[maxN];
freqN += 0.5f * (dR * dR - dL * dL);
}
PitchValue = freqN * (_fSample / 2) / QSamples; // convert index to frequency
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 0affc6b8d6d55dd4692f15bf27ff327d
timeCreated: 1490099850
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: ea36b06c362d00a46b21d2c6fe734634
timeCreated: 1490029294
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: d28af33c617a9d843ac1c7e4dfc26a7a
timeCreated: 1490029683
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!43 &4300000
Mesh:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Plane32x32W1L1HC
serializedVersion: 8
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 6144
topology: 0
firstVertex: 0
vertexCount: 1089
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0.5, y: 0, z: 0.5}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 1
m_KeepVertices: 0
m_KeepIndices: 0
m_IndexBuffer: 00002100010021002200010001002200020022002300020002002300030023002400030003002400040024002500040004002500050025002600050005002600060026002700060006002700070027002800070007002800080028002900080008002900090029002a00090009002a000a002a002b000a000a002b000b002b002c000b000b002c000c002c002d000c000c002d000d002d002e000d000d002e000e002e002f000e000e002f000f002f0030000f000f003000100030003100100010003100110031003200110011003200120032003300120012003300130033003400130013003400140034003500140014003500150035003600150015003600160036003700160016003700170037003800170017003800180038003900180018003900190039003a00190019003a001a003a003b001a001a003b001b003b003c001b001b003c001c003c003d001c001c003d001d003d003e001d001d003e001e003e003f001e001e003f001f003f0040001f001f004000200040004100200021004200220042004300220022004300230043004400230023004400240044004500240024004500250045004600250025004600260046004700260026004700270047004800270027004800280048004900280028004900290049004a00290029004a002a004a004b002a002a004b002b004b004c002b002b004c002c004c004d002c002c004d002d004d004e002d002d004e002e004e004f002e002e004f002f004f0050002f002f005000300050005100300030005100310051005200310031005200320052005300320032005300330053005400330033005400340054005500340034005500350055005600350035005600360056005700360036005700370057005800370037005800380058005900380038005900390059005a00390039005a003a005a005b003a003a005b003b005b005c003b003b005c003c005c005d003c003c005d003d005d005e003d003d005e003e005e005f003e003e005f003f005f0060003f003f006000400060006100400040006100410061006200410042006300430063006400430043006400440064006500440044006500450065006600450045006600460066006700460046006700470067006800470047006800480068006900480048006900490069006a00490049006a004a006a006b004a004a006b004b006b006c004b004b006c004c006c006d004c004c006d004d006d006e004d004d006e004e006e006f004e004e006f004f006f0070004f004f007000500070007100500050007100510071007200510051007200520072007300520052007300530073007400530053007400540074007500540054007500550075007600550055007600560076007700560056007700570077007800570057007800580078007900580058007900590079007a00590059007a005a007a007b005a005a007b005b007b007c005b005b007c005c007c007d005c005c007d005d007d007e005d005d007e005e007e007f005e005e007f005f007f0080005f005f008000600080008100600060008100610081008200610061008200620082008300620063008400640084008500640064008500650085008600650065008600660086008700660066008700670087008800670067008800680088008900680068008900690089008a00690069008a006a008a008b006a006a008b006b008b008c006b006b008c006c008c008d006c006c008d006d008d008e006d006d008e006e008e008f006e006e008f006f008f0090006f006f009000700090009100700070009100710091009200710071009200720092009300720072009300730093009400730073009400740094009500740074009500750095009600750075009600760096009700760076009700770097009800770077009800780098009900780078009900790099009a00790079009a007a009a009b007a007a009b007b009b009c007b007b009c007c009c009d007c007c009d007d009d009e007d007d009e007e009e009f007e007e009f007f009f00a0007f007f00a0008000a000a10080008000a1008100a100a20081008100a2008200a200a30082008200a3008300a300a40083008400a5008500a500a60085008500a6008600a600a70086008600a7008700a700a80087008700a8008800a800a90088008800a9008900a900aa0089008900aa008a00aa00ab008a008a00ab008b00ab00ac008b008b00ac008c00ac00ad008c008c00ad008d00ad00ae008d008d00ae008e00ae00af008e008e00af008f00af00b0008f008f00b0009000b000b10090009000b1009100b100b20091009100b2009200b200b30092009200b3009300b300b40093009300b4009400b400b50094009400b5009500b500b60095009500b6009600b600b70096009600b7009700b700b80097009700b8009800b800b90098009800b9009900b900ba0099009900ba009a00ba00bb009a009a00bb009b00bb00bc009b009b00bc009c00bc00bd009c009c00bd009d00bd00be009d009d00be009e00be00bf009e009e00bf009f00bf00c0009f009f00c000a000c000c100a000a000c100a100c100c200a100a100c200a200c200c300a200a200c300a300c300c400a300a300c400a400c400c500a400a500c600a600c600c700a600a600c700a700c700c800a700a700c800a800c800c900a800a800c900a900c900ca00a900a900ca00aa00ca00cb00aa00aa00cb00ab00cb00cc00ab00ab00cc00ac00cc00cd00ac00ac00cd00ad00cd00ce00ad00ad00ce00ae00ce00cf00ae00ae00cf00af00cf00d000af00af00d000b000d000d100b000b000d100b100d100d200b100b100d200b200d200d300b200b200d300b300d300d400b300b300d400b400d400d500b400b400d500b500d500d600b500b500d600b600d600d700b600b600d700b700d700d800b700b700d800b800d800d900b800b800d900b900d900da00b900b900da00ba00da00db00ba00ba00db00bb00db00dc00bb00bb00dc00bc00dc00dd00bc00bc00dd00bd00dd00de00bd00bd00de00be00de00df00be00be00df00bf00df00e000bf00bf00e000c000e000e100c000c000e100c100e100e200c100c100e200c200e200e300c200c200e300c300e300e400c300c300e400c400e400e500c400c400e500c500e500e600c500c600e700c700e700e800c700c700e800c800e800e900c800c800e900c900e900ea00c900c900ea00ca00ea00eb00ca00ca00eb00cb00eb00ec00cb00cb00ec00cc00ec00ed00cc00cc00ed00cd00ed00ee00cd00cd00ee00ce00ee00ef00ce00ce00ef00cf00ef00f000cf00cf00f000d000f000f100d000d000f100d100f100f200d100d100f200d200f200f300d200d200f300d300f300f400d300d300f400d400f400f500d400d400f500d500f500f600d500d500f600d600f600f700d600d600f700d700f700f800d700d700f800d800f800f900d800d800f900d900f900fa00d900d900fa00da00fa00fb00da00da00fb00db00fb00fc00db00db00fc00dc00fc00fd00dc00dc00fd00dd00fd00fe00dd00dd00fe00de00fe00ff00de00de00ff00df00ff000001df00df000001e00000010101e000e0000101e10001010201e100e1000201e20002010301e200e2000301e30003010401e300e3000401e40004010501e400e4000501e50005010601e500e5000601e60006010701e600e7000801e80008010901e800e8000901e90009010a01e900e9000a01ea000a010b01ea00ea000b01eb000b010c01eb00eb000c01ec000c010d01ec00ec000d01ed000d010e01ed00ed000e01ee000e010f01ee00ee000f01ef000f011001ef00ef001001f00010011101f000f0001101f10011011201f100f1001201f20012011301f200f2001301f30013011401f300f3001401f40014011501f400f4001501f50015011601f500f5001601f60016011701f600f6001701f70017011801f700f7001801f80018011901f800f8001901f90019011a01f900f9001a01fa001a011b01fa00fa001b01fb001b011c01fb00fb001c01fc001c011d01fc00fc001d01fd001d011e01fd00fd001e01fe001e011f01fe00fe001f01ff001f012001ff00ff002001000120012101000100012101010121012201010101012201020122012301020102012301030123012401030103012401040124012501040104012501050125012601050105012601060126012701060106012701070127012801070108012901090129012a01090109012a010a012a012b010a010a012b010b012b012c010b010b012c010c012c012d010c010c012d010d012d012e010d010d012e010e012e012f010e010e012f010f012f0130010f010f013001100130013101100110013101110131013201110111013201120132013301120112013301130133013401130113013401140134013501140114013501150135013601150115013601160136013701160116013701170137013801170117013801180138013901180118013901190139013a01190119013a011a013a013b011a011a013b011b013b013c011b011b013c011c013c013d011c011c013d011d013d013e011d011d013e011e013e013f011e011e013f011f013f0140011f011f014001200140014101200120014101210141014201210121014201220142014301220122014301230143014401230123014401240144014501240124014501250145014601250125014601260146014701260126014701270147014801270127014801280148014901280129014a012a014a014b012a012a014b012b014b014c012b012b014c012c014c014d012c012c014d012d014d014e012d012d014e012e014e014f012e012e014f012f014f0150012f012f015001300150015101300130015101310151015201310131015201320152015301320132015301330153015401330133015401340154015501340134015501350155015601350135015601360156015701360136015701370157015801370137015801380158015901380138015901390159015a01390139015a013a015a015b013a013a015b013b015b015c013b013b015c013c015c015d013c013c015d013d015d015e013d013d015e013e015e015f013e013e015f013f015f0160013f013f016001400160016101400140016101410161016201410141016201420162016301420142016301430163016401430143016401440164016501440144016501450165016601450145016601460166016701460146016701470167016801470147016801480168016901480148016901490169016a0149014a016b014b016b016c014b014b016c014c016c016d014c014c016d014d016d016e014d014d016e014e016e016f014e014e016f014f016f0170014f014f017001500170017101500150017101510171017201510151017201520172017301520152017301530173017401530153017401540174017501540154017501550175017601550155017601560176017701560156017701570177017801570157017801580178017901580158017901590179017a01590159017a015a017a017b015a015a017b015b017b017c015b015b017c015c017c017d015c015c017d015d017d017e015d015d017e015e017e017f015e015e017f015f017f0180015f015f018001600180018101600160018101610181018201610161018201620182018301620162018301630183018401630163018401640184018501640164018501650185018601650165018601660186018701660166018701670187018801670167018801680188018901680168018901690189018a01690169018a016a018a018b016a016b018c016c018c018d016c016c018d016d018d018e016d016d018e016e018e018f016e016e018f016f018f0190016f016f019001700190019101700170019101710191019201710171019201720192019301720172019301730193019401730173019401740194019501740174019501750195019601750175019601760196019701760176019701770197019801770177019801780198019901780178019901790199019a01790179019a017a019a019b017a017a019b017b019b019c017b017b019c017c019c019d017c017c019d017d019d019e017d017d019e017e019e019f017e017e019f017f019f01a0017f017f01a0018001a001a10180018001a1018101a101a20181018101a2018201a201a30182018201a3018301a301a40183018301a4018401a401a50184018401a5018501a501a60185018501a6018601a601a70186018601a7018701a701a80187018701a8018801a801a90188018801a9018901a901aa0189018901aa018a01aa01ab018a018a01ab018b01ab01ac018b018c01ad018d01ad01ae018d018d01ae018e01ae01af018e018e01af018f01af01b0018f018f01b0019001b001b10190019001b1019101b101b20191019101b2019201b201b30192019201b3019301b301b40193019301b4019401b401b50194019401b5019501b501b60195019501b6019601b601b70196019601b7019701b701b80197019701b8019801b801b90198019801b9019901b901ba0199019901ba019a01ba01bb019a019a01bb019b01bb01bc019b019b01bc019c01bc01bd019c019c01bd019d01bd01be019d019d01be019e01be01bf019e019e01bf019f01bf01c0019f019f01c001a001c001c101a001a001c101a101c101c201a101a101c201a201c201c301a201a201c301a301c301c401a301a301c401a401c401c501a401a401c501a501c501c601a501a501c601a601c601c701a601a601c701a701c701c801a701a701c801a801c801c901a801a801c901a901c901ca01a901a901ca01aa01ca01cb01aa01aa01cb01ab01cb01cc01ab01ab01cc01ac01cc01cd01ac01ad01ce01ae01ce01cf01ae01ae01cf01af01cf01d001af01af01d001b001d001d101b001b001d101b101d101d201b101b101d201b201d201d301b201b201d301b301d301d401b301b301d401b401d401d501b401b401d501b501d501d601b501b501d601b601d601d701b601b601d701b701d701d801b701b701d801b801d801d901b801b801d901b901d901da01b901b901da01ba01da01db01ba01ba01db01bb01db01dc01bb01bb01dc01bc01dc01dd01bc01bc01dd01bd01dd01de01bd01bd01de01be01de01df01be01be01df01bf01df01e001bf01bf01e001c001e001e101c001c001e101c101e101e201c101c101e201c201e201e301c201c201e301c301e301e401c301c301e401c401e401e501c401c401e501c501e501e601c501c501e601c601e601e701c601c601e701c701e701e801c701c701e801c801e801e901c801c801e901c901e901ea01c901c901ea01ca01ea01eb01ca01ca01eb01cb01eb01ec01cb01cb01ec01cc01ec01ed01cc01cc01ed01cd01ed01ee01cd01ce01ef01cf01ef01f001cf01cf01f001d001f001f101d001d001f101d101f101f201d101d101f201d201f201f301d201d201f301d301f301f401d301d301f401d401f401f501d401d401f501d501f501f601d501d501f601d601f601f701d601d601f701d701f701f801d701d701f801d801f801f901d801d801f901d901f901fa01d901d901fa01da01fa01fb01da01da01fb01db01fb01fc01db01db01fc01dc01fc01fd01dc01dc01fd01dd01fd01fe01dd01dd01fe01de01fe01ff01de01de01ff01df01ff010002df01df010002e00100020102e001e0010102e10101020202e101e1010202e20102020302e201e2010302e30103020402e301e3010402e40104020502e401e4010502e50105020602e501e5010602e60106020702e601e6010702e70107020802e701e7010802e80108020902e801e8010902e90109020a02e901e9010a02ea010a020b02ea01ea010b02eb010b020c02eb01eb010c02ec010c020d02ec01ec010d02ed010d020e02ed01ed010e02ee010e020f02ee01ef011002f00110021102f001f0011102f10111021202f101f1011202f20112021302f201f2011302f30113021402f301f3011402f40114021502f401f4011502f50115021602f501f5011602f60116021702f601f6011702f70117021802f701f7011802f80118021902f801f8011902f90119021a02f901f9011a02fa011a021b02fa01fa011b02fb011b021c02fb01fb011c02fc011c021d02fc01fc011d02fd011d021e02fd01fd011e02fe011e021f02fe01fe011f02ff011f022002ff01ff012002000220022102000200022102010221022202010201022202020222022302020202022302030223022402030203022402040224022502040204022502050225022602050205022602060226022702060206022702070227022802070207022802080228022902080208022902090229022a02090209022a020a022a022b020a020a022b020b022b022c020b020b022c020c022c022d020c020c022d020d022d022e020d020d022e020e022e022f020e020e022f020f022f0230020f0210023102110231023202110211023202120232023302120212023302130233023402130213023402140234023502140214023502150235023602150215023602160236023702160216023702170237023802170217023802180238023902180218023902190239023a02190219023a021a023a023b021a021a023b021b023b023c021b021b023c021c023c023d021c021c023d021d023d023e021d021d023e021e023e023f021e021e023f021f023f0240021f021f024002200240024102200220024102210241024202210221024202220242024302220222024302230243024402230223024402240244024502240224024502250245024602250225024602260246024702260226024702270247024802270227024802280248024902280228024902290249024a02290229024a022a024a024b022a022a024b022b024b024c022b022b024c022c024c024d022c022c024d022d024d024e022d022d024e022e024e024f022e022e024f022f024f0250022f022f025002300250025102300231025202320252025302320232025302330253025402330233025402340254025502340234025502350255025602350235025602360256025702360236025702370257025802370237025802380258025902380238025902390259025a02390239025a023a025a025b023a023a025b023b025b025c023b023b025c023c025c025d023c023c025d023d025d025e023d023d025e023e025e025f023e023e025f023f025f0260023f023f026002400260026102400240026102410261026202410241026202420262026302420242026302430263026402430243026402440264026502440244026502450265026602450245026602460266026702460246026702470267026802470247026802480268026902480248026902490269026a02490249026a024a026a026b024a024a026b024b026b026c024b024b026c024c026c026d024c024c026d024d026d026e024d024d026e024e026e026f024e024e026f024f026f0270024f024f027002500270027102500250027102510271027202510252027302530273027402530253027402540274027502540254027502550275027602550255027602560276027702560256027702570277027802570257027802580278027902580258027902590279027a02590259027a025a027a027b025a025a027b025b027b027c025b025b027c025c027c027d025c025c027d025d027d027e025d025d027e025e027e027f025e025e027f025f027f0280025f025f028002600280028102600260028102610281028202610261028202620282028302620262028302630283028402630263028402640284028502640264028502650285028602650265028602660286028702660266028702670287028802670267028802680288028902680268028902690289028a02690269028a026a028a028b026a026a028b026b028b028c026b026b028c026c028c028d026c026c028d026d028d028e026d026d028e026e028e028f026e026e028f026f028f0290026f026f029002700290029102700270029102710291029202710271029202720292029302720273029402740294029502740274029502750295029602750275029602760296029702760276029702770297029802770277029802780298029902780278029902790299029a02790279029a027a029a029b027a027a029b027b029b029c027b027b029c027c029c029d027c027c029d027d029d029e027d027d029e027e029e029f027e027e029f027f029f02a0027f027f02a0028002a002a10280028002a1028102a102a20281028102a2028202a202a30282028202a3028302a302a40283028302a4028402a402a50284028402a5028502a502a60285028502a6028602a602a70286028602a7028702a702a80287028702a8028802a802a90288028802a9028902a902aa0289028902aa028a02aa02ab028a028a02ab028b02ab02ac028b028b02ac028c02ac02ad028c028c02ad028d02ad02ae028d028d02ae028e02ae02af028e028e02af028f02af02b0028f028f02b0029002b002b10290029002b1029102b102b20291029102b2029202b202b30292029202b3029302b302b40293029402b5029502b502b60295029502b6029602b602b70296029602b7029702b702b80297029702b8029802b802b90298029802b9029902b902ba0299029902ba029a02ba02bb029a029a02bb029b02bb02bc029b029b02bc029c02bc02bd029c029c02bd029d02bd02be029d029d02be029e02be02bf029e029e02bf029f02bf02c0029f029f02c002a002c002c102a002a002c102a102c102c202a102a102c202a202c202c302a202a202c302a302c302c402a302a302c402a402c402c502a402a402c502a502c502c602a502a502c602a602c602c702a602a602c702a702c702c802a702a702c802a802c802c902a802a802c902a902c902ca02a902a902ca02aa02ca02cb02aa02aa02cb02ab02cb02cc02ab02ab02cc02ac02cc02cd02ac02ac02cd02ad02cd02ce02ad02ad02ce02ae02ce02cf02ae02ae02cf02af02cf02d002af02af02d002b002d002d102b002b002d102b102d102d202b102b102d202b202d202d302b202b202d302b302d302d402b302b302d402b402d402d502b402b502d602b602d602d702b602b602d702b702d702d802b702b702d802b802d802d902b802b802d902b902d902da02b902b902da02ba02da02db02ba02ba02db02bb02db02dc02bb02bb02dc02bc02dc02dd02bc02bc02dd02bd02dd02de02bd02bd02de02be02de02df02be02be02df02bf02df02e002bf02bf02e002c002e002e102c002c002e102c102e102e202c102c102e202c202e202e302c202c202e302c302e302e402c302c302e402c402e402e502c402c402e502c502e502e602c502c502e602c602e602e702c602c602e702c702e702e802c702c702e802c802e802e902c802c802e902c902e902ea02c902c902ea02ca02ea02eb02ca02ca02eb02cb02eb02ec02cb02cb02ec02cc02ec02ed02cc02cc02ed02cd02ed02ee02cd02cd02ee02ce02ee02ef02ce02ce02ef02cf02ef02f002cf02cf02f002d002f002f102d002d002f102d102f102f202d102d102f202d202f202f302d202d202f302d302f302f402d302d302f402d402f402f502d402d402f502d502f502f602d502d602f702d702f702f802d702d702f802d802f802f902d802d802f902d902f902fa02d902d902fa02da02fa02fb02da02da02fb02db02fb02fc02db02db02fc02dc02fc02fd02dc02dc02fd02dd02fd02fe02dd02dd02fe02de02fe02ff02de02de02ff02df02ff020003df02df020003e00200030103e002e0020103e10201030203e102e1020203e20202030303e202e2020303e30203030403e302e3020403e40204030503e402e4020503e50205030603e502e5020603e60206030703e602e6020703e70207030803e702e7020803e80208030903e802e8020903e90209030a03e902e9020a03ea020a030b03ea02ea020b03eb020b030c03eb02eb020c03ec020c030d03ec02ec020d03ed020d030e03ed02ed020e03ee020e030f03ee02ee020f03ef020f031003ef02ef021003f00210031103f002f0021103f10211031203f102f1021203f20212031303f202f2021303f30213031403f302f3021403f40214031503f402f4021503f50215031603f502f5021603f60216031703f602f7021803f80218031903f802f8021903f90219031a03f902f9021a03fa021a031b03fa02fa021b03fb021b031c03fb02fb021c03fc021c031d03fc02fc021d03fd021d031e03fd02fd021e03fe021e031f03fe02fe021f03ff021f032003ff02ff022003000320032103000300032103010321032203010301032203020322032303020302032303030323032403030303032403040324032503040304032503050325032603050305032603060326032703060306032703070327032803070307032803080328032903080308032903090329032a03090309032a030a032a032b030a030a032b030b032b032c030b030b032c030c032c032d030c030c032d030d032d032e030d030d032e030e032e032f030e030e032f030f032f0330030f030f033003100330033103100310033103110331033203110311033203120332033303120312033303130333033403130313033403140334033503140314033503150335033603150315033603160336033703160316033703170337033803170318033903190339033a03190319033a031a033a033b031a031a033b031b033b033c031b031b033c031c033c033d031c031c033d031d033d033e031d031d033e031e033e033f031e031e033f031f033f0340031f031f034003200340034103200320034103210341034203210321034203220342034303220322034303230343034403230323034403240344034503240324034503250345034603250325034603260346034703260326034703270347034803270327034803280348034903280328034903290349034a03290329034a032a034a034b032a032a034b032b034b034c032b032b034c032c034c034d032c032c034d032d034d034e032d032d034e032e034e034f032e032e034f032f034f0350032f032f035003300350035103300330035103310351035203310331035203320352035303320332035303330353035403330333035403340354035503340334035503350355035603350335035603360356035703360336035703370357035803370337035803380358035903380339035a033a035a035b033a033a035b033b035b035c033b033b035c033c035c035d033c033c035d033d035d035e033d033d035e033e035e035f033e033e035f033f035f0360033f033f036003400360036103400340036103410361036203410341036203420362036303420342036303430363036403430343036403440364036503440344036503450365036603450345036603460366036703460346036703470367036803470347036803480368036903480348036903490369036a03490349036a034a036a036b034a034a036b034b036b036c034b034b036c034c036c036d034c034c036d034d036d036e034d034d036e034e036e036f034e034e036f034f036f0370034f034f037003500370037103500350037103510371037203510351037203520372037303520352037303530373037403530353037403540374037503540354037503550375037603550355037603560376037703560356037703570377037803570357037803580378037903580358037903590379037a0359035a037b035b037b037c035b035b037c035c037c037d035c035c037d035d037d037e035d035d037e035e037e037f035e035e037f035f037f0380035f035f038003600380038103600360038103610381038203610361038203620382038303620362038303630383038403630363038403640384038503640364038503650385038603650365038603660386038703660366038703670387038803670367038803680388038903680368038903690389038a03690369038a036a038a038b036a036a038b036b038b038c036b036b038c036c038c038d036c036c038d036d038d038e036d036d038e036e038e038f036e036e038f036f038f0390036f036f039003700390039103700370039103710391039203710371039203720392039303720372039303730393039403730373039403740394039503740374039503750395039603750375039603760396039703760376039703770397039803770377039803780398039903780378039903790399039a03790379039a037a039a039b037a037b039c037c039c039d037c037c039d037d039d039e037d037d039e037e039e039f037e037e039f037f039f03a0037f037f03a0038003a003a10380038003a1038103a103a20381038103a2038203a203a30382038203a3038303a303a40383038303a4038403a403a50384038403a5038503a503a60385038503a6038603a603a70386038603a7038703a703a80387038703a8038803a803a90388038803a9038903a903aa0389038903aa038a03aa03ab038a038a03ab038b03ab03ac038b038b03ac038c03ac03ad038c038c03ad038d03ad03ae038d038d03ae038e03ae03af038e038e03af038f03af03b0038f038f03b0039003b003b10390039003b1039103b103b20391039103b2039203b203b30392039203b3039303b303b40393039303b4039403b403b50394039403b5039503b503b60395039503b6039603b603b70396039603b7039703b703b80397039703b8039803b803b90398039803b9039903b903ba0399039903ba039a03ba03bb039a039a03bb039b03bb03bc039b039c03bd039d03bd03be039d039d03be039e03be03bf039e039e03bf039f03bf03c0039f039f03c003a003c003c103a003a003c103a103c103c203a103a103c203a203c203c303a203a203c303a303c303c403a303a303c403a403c403c503a403a403c503a503c503c603a503a503c603a603c603c703a603a603c703a703c703c803a703a703c803a803c803c903a803a803c903a903c903ca03a903a903ca03aa03ca03cb03aa03aa03cb03ab03cb03cc03ab03ab03cc03ac03cc03cd03ac03ac03cd03ad03cd03ce03ad03ad03ce03ae03ce03cf03ae03ae03cf03af03cf03d003af03af03d003b003d003d103b003b003d103b103d103d203b103b103d203b203d203d303b203b203d303b303d303d403b303b303d403b403d403d503b403b403d503b503d503d603b503b503d603b603d603d703b603b603d703b703d703d803b703b703d803b803d803d903b803b803d903b903d903da03b903b903da03ba03da03db03ba03ba03db03bb03db03dc03bb03bb03dc03bc03dc03dd03bc03bd03de03be03de03df03be03be03df03bf03df03e003bf03bf03e003c003e003e103c003c003e103c103e103e203c103c103e203c203e203e303c203c203e303c303e303e403c303c303e403c403e403e503c403c403e503c503e503e603c503c503e603c603e603e703c603c603e703c703e703e803c703c703e803c803e803e903c803c803e903c903e903ea03c903c903ea03ca03ea03eb03ca03ca03eb03cb03eb03ec03cb03cb03ec03cc03ec03ed03cc03cc03ed03cd03ed03ee03cd03cd03ee03ce03ee03ef03ce03ce03ef03cf03ef03f003cf03cf03f003d003f003f103d003d003f103d103f103f203d103d103f203d203f203f303d203d203f303d303f303f403d303d303f403d403f403f503d403d403f503d503f503f603d503d503f603d603f603f703d603d603f703d703f703f803d703d703f803d803f803f903d803d803f903d903f903fa03d903d903fa03da03fa03fb03da03da03fb03db03fb03fc03db03db03fc03dc03fc03fd03dc03dc03fd03dd03fd03fe03dd03de03ff03df03ff030004df03df030004e00300040104e003e0030104e10301040204e103e1030204e20302040304e203e2030304e30303040404e303e3030404e40304040504e403e4030504e50305040604e503e5030604e60306040704e603e6030704e70307040804e703e7030804e80308040904e803e8030904e90309040a04e903e9030a04ea030a040b04ea03ea030b04eb030b040c04eb03eb030c04ec030c040d04ec03ec030d04ed030d040e04ed03ed030e04ee030e040f04ee03ee030f04ef030f041004ef03ef031004f00310041104f003f0031104f10311041204f103f1031204f20312041304f203f2031304f30313041404f303f3031404f40314041504f403f4031504f50315041604f503f5031604f60316041704f603f6031704f70317041804f703f7031804f80318041904f803f8031904f90319041a04f903f9031a04fa031a041b04fa03fa031b04fb031b041c04fb03fb031c04fc031c041d04fc03fc031d04fd031d041e04fd03fd031e04fe031e041f04fe03ff032004000420042104000400042104010421042204010401042204020422042304020402042304030423042404030403042404040424042504040404042504050425042604050405042604060426042704060406042704070427042804070407042804080428042904080408042904090429042a04090409042a040a042a042b040a040a042b040b042b042c040b040b042c040c042c042d040c040c042d040d042d042e040d040d042e040e042e042f040e040e042f040f042f0430040f040f043004100430043104100410043104110431043204110411043204120432043304120412043304130433043404130413043404140434043504140414043504150435043604150415043604160436043704160416043704170437043804170417043804180438043904180418043904190439043a04190419043a041a043a043b041a041a043b041b043b043c041b041b043c041c043c043d041c041c043d041d043d043e041d041d043e041e043e043f041e041e043f041f043f0440041f04
m_Skin: []
m_VertexData:
m_CurrentChannels: 139
m_VertexCount: 1089
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 12
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 24
format: 0
dimension: 2
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 32
format: 0
dimension: 4
m_DataSize: 52272
_typelessdata: 000000bf00000000000000bf000000000000803f0000000000000000000000000000803f0000000000000000000080bf0000f0be00000000000000bf000000000000803f000000000000003d000000000000803f0000000000000000000080bf0000e0be00000000000000bf000000000000803f000000000000803d000000000000803f0000000000000000000080bf0000d0be00000000000000bf000000000000803f000000000000c03d000000000000803f0000000000000000000080bf0000c0be00000000000000bf000000000000803f000000000000003e000000000000803f0000000000000000000080bf0000b0be00000000000000bf000000000000803f000000000000203e000000000000803f0000000000000000000080bf0000a0be00000000000000bf000000000000803f000000000000403e000000000000803f0000000000000000000080bf000090be00000000000000bf000000000000803f000000000000603e000000000000803f0000000000000000000080bf000080be00000000000000bf000000000000803f000000000000803e000000000000803f0000000000000000000080bf000060be00000000000000bf000000000000803f000000000000903e000000000000803f0000000000000000000080bf000040be00000000000000bf000000000000803f000000000000a03e000000000000803f0000000000000000000080bf000020be00000000000000bf000000000000803f000000000000b03e000000000000803f0000000000000000000080bf000000be00000000000000bf000000000000803f000000000000c03e000000000000803f0000000000000000000080bf0000c0bd00000000000000bf000000000000803f000000000000d03e000000000000803f0000000000000000000080bf000080bd00000000000000bf000000000000803f000000000000e03e000000000000803f0000000000000000000080bf000000bd00000000000000bf000000000000803f000000000000f03e000000000000803f0000000000000000000080bf0000000000000000000000bf000000000000803f000000000000003f000000000000803f0000000000000000000080bf0000003d00000000000000bf000000000000803f000000000000083f000000000000803f0000000000000000000080bf0000803d00000000000000bf000000000000803f000000000000103f000000000000803f0000000000000000000080bf0000c03d00000000000000bf000000000000803f000000000000183f000000000000803f0000000000000000000080bf0000003e00000000000000bf000000000000803f000000000000203f000000000000803f0000000000000000000080bf0000203e00000000000000bf000000000000803f000000000000283f000000000000803f0000000000000000000080bf0000403e00000000000000bf000000000000803f000000000000303f000000000000803f0000000000000000000080bf0000603e00000000000000bf000000000000803f000000000000383f000000000000803f0000000000000000000080bf0000803e00000000000000bf000000000000803f000000000000403f000000000000803f0000000000000000000080bf0000903e00000000000000bf000000000000803f000000000000483f000000000000803f0000000000000000000080bf0000a03e00000000000000bf000000000000803f000000000000503f000000000000803f0000000000000000000080bf0000b03e00000000000000bf000000000000803f000000000000583f000000000000803f0000000000000000000080bf0000c03e00000000000000bf000000000000803f000000000000603f000000000000803f0000000000000000000080bf0000d03e00000000000000bf000000000000803f000000000000683f000000000000803f0000000000000000000080bf0000e03e00000000000000bf000000000000803f000000000000703f000000000000803f0000000000000000000080bf0000f03e00000000000000bf000000000000803f000000000000783f000000000000803f0000000000000000000080bf0000003f00000000000000bf000000000000803f000000000000803f000000000000803f0000000000000000000080bf000000bf000000000000f0be000000000000803f00000000000000000000003d0000803f0000000000000000000080bf0000f0be000000000000f0be000000000000803f000000000000003d0000003d0000803f0000000000000000000080bf0000e0be000000000000f0be000000000000803f000000000000803d0000003d0000803f0000000000000000000080bf0000d0be000000000000f0be000000000000803f000000000000c03d0000003d0000803f0000000000000000000080bf0000c0be000000000000f0be000000000000803f000000000000003e0000003d0000803f0000000000000000000080bf0000b0be000000000000f0be000000000000803f000000000000203e0000003d0000803f0000000000000000000080bf0000a0be000000000000f0be000000000000803f000000000000403e0000003d0000803f0000000000000000000080bf000090be000000000000f0be000000000000803f000000000000603e0000003d0000803f0000000000000000000080bf000080be000000000000f0be000000000000803f000000000000803e0000003d0000803f0000000000000000000080bf000060be000000000000f0be000000000000803f000000000000903e0000003d0000803f0000000000000000000080bf000040be000000000000f0be000000000000803f000000000000a03e0000003d0000803f0000000000000000000080bf000020be000000000000f0be000000000000803f000000000000b03e0000003d0000803f0000000000000000000080bf000000be000000000000f0be000000000000803f000000000000c03e0000003d0000803f0000000000000000000080bf0000c0bd000000000000f0be000000000000803f000000000000d03e0000003d0000803f0000000000000000000080bf000080bd000000000000f0be000000000000803f000000000000e03e0000003d0000803f0000000000000000000080bf000000bd000000000000f0be000000000000803f000000000000f03e0000003d0000803f0000000000000000000080bf00000000000000000000f0be000000000000803f000000000000003f0000003d0000803f0000000000000000000080bf0000003d000000000000f0be000000000000803f000000000000083f0000003d0000803f0000000000000000000080bf0000803d000000000000f0be000000000000803f000000000000103f0000003d0000803f0000000000000000000080bf0000c03d000000000000f0be000000000000803f000000000000183f0000003d0000803f0000000000000000000080bf0000003e000000000000f0be000000000000803f000000000000203f0000003d0000803f0000000000000000000080bf0000203e000000000000f0be000000000000803f000000000000283f0000003d0000803f0000000000000000000080bf0000403e000000000000f0be000000000000803f000000000000303f0000003d0000803f0000000000000000000080bf0000603e000000000000f0be000000000000803f000000000000383f0000003d0000803f0000000000000000000080bf0000803e000000000000f0be000000000000803f000000000000403f0000003d0000803f0000000000000000000080bf0000903e000000000000f0be000000000000803f000000000000483f0000003d0000803f0000000000000000000080bf0000a03e000000000000f0be000000000000803f000000000000503f0000003d0000803f0000000000000000000080bf0000b03e000000000000f0be000000000000803f000000000000583f0000003d0000803f0000000000000000000080bf0000c03e000000000000f0be000000000000803f000000000000603f0000003d0000803f0000000000000000000080bf0000d03e000000000000f0be000000000000803f000000000000683f0000003d0000803f0000000000000000000080bf0000e03e000000000000f0be000000000000803f000000000000703f0000003d0000803f0000000000000000000080bf0000f03e000000000000f0be000000000000803f000000000000783f0000003d0000803f0000000000000000000080bf0000003f000000000000f0be000000000000803f000000000000803f0000003d0000803f0000000000000000000080bf000000bf000000000000e0be000000000000803f00000000000000000000803d0000803f0000000000000000000080bf0000f0be000000000000e0be000000000000803f000000000000003d0000803d0000803f0000000000000000000080bf0000e0be000000000000e0be000000000000803f000000000000803d0000803d0000803f0000000000000000000080bf0000d0be000000000000e0be000000000000803f000000000000c03d0000803d0000803f0000000000000000000080bf0000c0be000000000000e0be000000000000803f000000000000003e0000803d0000803f0000000000000000000080bf0000b0be000000000000e0be000000000000803f000000000000203e0000803d0000803f0000000000000000000080bf0000a0be000000000000e0be000000000000803f000000000000403e0000803d0000803f0000000000000000000080bf000090be000000000000e0be000000000000803f000000000000603e0000803d0000803f0000000000000000000080bf000080be000000000000e0be000000000000803f000000000000803e0000803d0000803f0000000000000000000080bf000060be000000000000e0be000000000000803f000000000000903e0000803d0000803f0000000000000000000080bf000040be000000000000e0be000000000000803f000000000000a03e0000803d0000803f0000000000000000000080bf000020be000000000000e0be000000000000803f000000000000b03e0000803d0000803f0000000000000000000080bf000000be000000000000e0be000000000000803f000000000000c03e0000803d0000803f0000000000000000000080bf0000c0bd000000000000e0be000000000000803f000000000000d03e0000803d0000803f0000000000000000000080bf000080bd000000000000e0be000000000000803f000000000000e03e0000803d0000803f0000000000000000000080bf000000bd000000000000e0be000000000000803f000000000000f03e0000803d0000803f0000000000000000000080bf00000000000000000000e0be000000000000803f000000000000003f0000803d0000803f0000000000000000000080bf0000003d000000000000e0be000000000000803f000000000000083f0000803d0000803f0000000000000000000080bf0000803d000000000000e0be000000000000803f000000000000103f0000803d0000803f0000000000000000000080bf0000c03d000000000000e0be000000000000803f000000000000183f0000803d0000803f0000000000000000000080bf0000003e000000000000e0be000000000000803f000000000000203f0000803d0000803f0000000000000000000080bf0000203e000000000000e0be000000000000803f000000000000283f0000803d0000803f0000000000000000000080bf0000403e000000000000e0be000000000000803f000000000000303f0000803d0000803f0000000000000000000080bf0000603e000000000000e0be000000000000803f000000000000383f0000803d0000803f0000000000000000000080bf0000803e000000000000e0be000000000000803f000000000000403f0000803d0000803f0000000000000000000080bf0000903e000000000000e0be000000000000803f000000000000483f0000803d0000803f0000000000000000000080bf0000a03e000000000000e0be000000000000803f000000000000503f0000803d0000803f0000000000000000000080bf0000b03e000000000000e0be000000000000803f000000000000583f0000803d0000803f0000000000000000000080bf0000c03e000000000000e0be000000000000803f000000000000603f0000803d0000803f0000000000000000000080bf0000d03e000000000000e0be000000000000803f000000000000683f0000803d0000803f0000000000000000000080bf0000e03e000000000000e0be000000000000803f000000000000703f0000803d0000803f0000000000000000000080bf0000f03e000000000000e0be000000000000803f000000000000783f0000803d0000803f0000000000000000000080bf0000003f000000000000e0be000000000000803f000000000000803f0000803d0000803f0000000000000000000080bf000000bf000000000000d0be000000000000803f00000000000000000000c03d0000803f0000000000000000000080bf0000f0be000000000000d0be000000000000803f000000000000003d0000c03d0000803f0000000000000000000080bf0000e0be000000000000d0be000000000000803f000000000000803d0000c03d0000803f0000000000000000000080bf0000d0be000000000000d0be000000000000803f000000000000c03d0000c03d0000803f0000000000000000000080bf0000c0be000000000000d0be000000000000803f000000000000003e0000c03d0000803f0000000000000000000080bf0000b0be000000000000d0be000000000000803f000000000000203e0000c03d0000803f0000000000000000000080bf0000a0be000000000000d0be000000000000803f000000000000403e0000c03d0000803f0000000000000000000080bf000090be000000000000d0be000000000000803f000000000000603e0000c03d0000803f0000000000000000000080bf000080be000000000000d0be000000000000803f000000000000803e0000c03d0000803f0000000000000000000080bf000060be000000000000d0be000000000000803f000000000000903e0000c03d0000803f0000000000000000000080bf000040be000000000000d0be000000000000803f000000000000a03e0000c03d0000803f0000000000000000000080bf000020be000000000000d0be000000000000803f000000000000b03e0000c03d0000803f0000000000000000000080bf000000be000000000000d0be000000000000803f000000000000c03e0000c03d0000803f0000000000000000000080bf0000c0bd000000000000d0be000000000000803f000000000000d03e0000c03d0000803f0000000000000000000080bf000080bd000000000000d0be000000000000803f000000000000e03e0000c03d0000803f0000000000000000000080bf000000bd000000000000d0be000000000000803f000000000000f03e0000c03d0000803f0000000000000000000080bf00000000000000000000d0be000000000000803f000000000000003f0000c03d0000803f0000000000000000000080bf0000003d000000000000d0be000000000000803f000000000000083f0000c03d0000803f0000000000000000000080bf0000803d000000000000d0be000000000000803f000000000000103f0000c03d0000803f0000000000000000000080bf0000c03d000000000000d0be000000000000803f000000000000183f0000c03d0000803f0000000000000000000080bf0000003e000000000000d0be000000000000803f000000000000203f0000c03d0000803f0000000000000000000080bf0000203e000000000000d0be000000000000803f000000000000283f0000c03d0000803f0000000000000000000080bf0000403e000000000000d0be000000000000803f000000000000303f0000c03d0000803f0000000000000000000080bf0000603e000000000000d0be000000000000803f000000000000383f0000c03d0000803f0000000000000000000080bf0000803e000000000000d0be000000000000803f000000000000403f0000c03d0000803f0000000000000000000080bf0000903e000000000000d0be000000000000803f000000000000483f0000c03d0000803f0000000000000000000080bf0000a03e000000000000d0be000000000000803f000000000000503f0000c03d0000803f0000000000000000000080bf0000b03e000000000000d0be000000000000803f000000000000583f0000c03d0000803f0000000000000000000080bf0000c03e000000000000d0be000000000000803f000000000000603f0000c03d0000803f0000000000000000000080bf0000d03e000000000000d0be000000000000803f000000000000683f0000c03d0000803f0000000000000000000080bf0000e03e000000000000d0be000000000000803f000000000000703f0000c03d0000803f0000000000000000000080bf0000f03e000000000000d0be000000000000803f000000000000783f0000c03d0000803f0000000000000000000080bf0000003f000000000000d0be000000000000803f000000000000803f0000c03d0000803f0000000000000000000080bf000000bf000000000000c0be000000000000803f00000000000000000000003e0000803f0000000000000000000080bf0000f0be000000000000c0be000000000000803f000000000000003d0000003e0000803f0000000000000000000080bf0000e0be000000000000c0be000000000000803f000000000000803d0000003e0000803f0000000000000000000080bf0000d0be000000000000c0be000000000000803f000000000000c03d0000003e0000803f0000000000000000000080bf0000c0be000000000000c0be000000000000803f000000000000003e0000003e0000803f0000000000000000000080bf0000b0be000000000000c0be000000000000803f000000000000203e0000003e0000803f0000000000000000000080bf0000a0be000000000000c0be000000000000803f000000000000403e0000003e0000803f0000000000000000000080bf000090be000000000000c0be000000000000803f000000000000603e0000003e0000803f0000000000000000000080bf000080be000000000000c0be000000000000803f000000000000803e0000003e0000803f0000000000000000000080bf000060be000000000000c0be000000000000803f000000000000903e0000003e0000803f0000000000000000000080bf000040be000000000000c0be000000000000803f000000000000a03e0000003e0000803f0000000000000000000080bf000020be000000000000c0be000000000000803f000000000000b03e0000003e0000803f0000000000000000000080bf000000be000000000000c0be000000000000803f000000000000c03e0000003e0000803f0000000000000000000080bf0000c0bd000000000000c0be000000000000803f000000000000d03e0000003e0000803f0000000000000000000080bf000080bd000000000000c0be000000000000803f000000000000e03e0000003e0000803f0000000000000000000080bf000000bd000000000000c0be000000000000803f000000000000f03e0000003e0000803f0000000000000000000080bf00000000000000000000c0be000000000000803f000000000000003f0000003e0000803f0000000000000000000080bf0000003d000000000000c0be000000000000803f000000000000083f0000003e0000803f0000000000000000000080bf0000803d000000000000c0be000000000000803f000000000000103f0000003e0000803f0000000000000000000080bf0000c03d000000000000c0be000000000000803f000000000000183f0000003e0000803f0000000000000000000080bf0000003e000000000000c0be000000000000803f000000000000203f0000003e0000803f0000000000000000000080bf0000203e000000000000c0be000000000000803f000000000000283f0000003e0000803f0000000000000000000080bf0000403e000000000000c0be000000000000803f000000000000303f0000003e0000803f0000000000000000000080bf0000603e000000000000c0be000000000000803f000000000000383f0000003e0000803f0000000000000000000080bf0000803e000000000000c0be000000000000803f000000000000403f0000003e0000803f0000000000000000000080bf0000903e000000000000c0be000000000000803f000000000000483f0000003e0000803f0000000000000000000080bf0000a03e000000000000c0be000000000000803f000000000000503f0000003e0000803f0000000000000000000080bf0000b03e000000000000c0be000000000000803f000000000000583f0000003e0000803f0000000000000000000080bf0000c03e000000000000c0be000000000000803f000000000000603f0000003e0000803f0000000000000000000080bf0000d03e000000000000c0be000000000000803f000000000000683f0000003e0000803f0000000000000000000080bf0000e03e000000000000c0be000000000000803f000000000000703f0000003e0000803f0000000000000000000080bf0000f03e000000000000c0be000000000000803f000000000000783f0000003e0000803f0000000000000000000080bf0000003f000000000000c0be000000000000803f000000000000803f0000003e0000803f0000000000000000000080bf000000bf000000000000b0be000000000000803f00000000000000000000203e0000803f0000000000000000000080bf0000f0be000000000000b0be000000000000803f000000000000003d0000203e0000803f0000000000000000000080bf0000e0be000000000000b0be000000000000803f000000000000803d0000203e0000803f0000000000000000000080bf0000d0be000000000000b0be000000000000803f000000000000c03d0000203e0000803f0000000000000000000080bf0000c0be000000000000b0be000000000000803f000000000000003e0000203e0000803f0000000000000000000080bf0000b0be000000000000b0be000000000000803f000000000000203e0000203e0000803f0000000000000000000080bf0000a0be000000000000b0be000000000000803f000000000000403e0000203e0000803f0000000000000000000080bf000090be000000000000b0be000000000000803f000000000000603e0000203e0000803f0000000000000000000080bf000080be000000000000b0be000000000000803f000000000000803e0000203e0000803f0000000000000000000080bf000060be000000000000b0be000000000000803f000000000000903e0000203e0000803f0000000000000000000080bf000040be000000000000b0be000000000000803f000000000000a03e0000203e0000803f0000000000000000000080bf000020be000000000000b0be000000000000803f000000000000b03e0000203e0000803f0000000000000000000080bf000000be000000000000b0be000000000000803f000000000000c03e0000203e0000803f0000000000000000000080bf0000c0bd000000000000b0be000000000000803f000000000000d03e0000203e0000803f0000000000000000000080bf000080bd000000000000b0be000000000000803f000000000000e03e0000203e0000803f0000000000000000000080bf000000bd000000000000b0be000000000000803f000000000000f03e0000203e0000803f0000000000000000000080bf00000000000000000000b0be000000000000803f000000000000003f0000203e0000803f0000000000000000000080bf0000003d000000000000b0be000000000000803f000000000000083f0000203e0000803f0000000000000000000080bf0000803d000000000000b0be000000000000803f000000000000103f0000203e0000803f0000000000000000000080bf0000c03d000000000000b0be000000000000803f000000000000183f0000203e0000803f0000000000000000000080bf0000003e000000000000b0be000000000000803f000000000000203f0000203e0000803f0000000000000000000080bf0000203e000000000000b0be000000000000803f000000000000283f0000203e0000803f0000000000000000000080bf0000403e000000000000b0be000000000000803f000000000000303f0000203e0000803f0000000000000000000080bf0000603e000000000000b0be000000000000803f000000000000383f0000203e0000803f0000000000000000000080bf0000803e000000000000b0be000000000000803f000000000000403f0000203e0000803f0000000000000000000080bf0000903e000000000000b0be000000000000803f000000000000483f0000203e0000803f0000000000000000000080bf0000a03e000000000000b0be000000000000803f000000000000503f0000203e0000803f0000000000000000000080bf0000b03e000000000000b0be000000000000803f000000000000583f0000203e0000803f0000000000000000000080bf0000c03e000000000000b0be000000000000803f000000000000603f0000203e0000803f0000000000000000000080bf0000d03e000000000000b0be000000000000803f000000000000683f0000203e0000803f0000000000000000000080bf0000e03e000000000000b0be000000000000803f000000000000703f0000203e0000803f0000000000000000000080bf0000f03e000000000000b0be000000000000803f000000000000783f0000203e0000803f0000000000000000000080bf0000003f000000000000b0be000000000000803f000000000000803f0000203e0000803f0000000000000000000080bf000000bf000000000000a0be000000000000803f00000000000000000000403e0000803f0000000000000000000080bf0000f0be000000000000a0be000000000000803f000000000000003d0000403e0000803f0000000000000000000080bf0000e0be000000000000a0be000000000000803f000000000000803d0000403e0000803f0000000000000000000080bf0000d0be000000000000a0be000000000000803f000000000000c03d0000403e0000803f0000000000000000000080bf0000c0be000000000000a0be000000000000803f000000000000003e0000403e0000803f0000000000000000000080bf0000b0be000000000000a0be000000000000803f000000000000203e0000403e0000803f0000000000000000000080bf0000a0be000000000000a0be000000000000803f000000000000403e0000403e0000803f0000000000000000000080bf000090be000000000000a0be000000000000803f000000000000603e0000403e0000803f0000000000000000000080bf000080be000000000000a0be000000000000803f000000000000803e0000403e0000803f0000000000000000000080bf000060be000000000000a0be000000000000803f000000000000903e0000403e0000803f0000000000000000000080bf000040be000000000000a0be000000000000803f000000000000a03e0000403e0000803f0000000000000000000080bf000020be000000000000a0be000000000000803f000000000000b03e0000403e0000803f0000000000000000000080bf000000be000000000000a0be000000000000803f000000000000c03e0000403e0000803f0000000000000000000080bf0000c0bd000000000000a0be000000000000803f000000000000d03e0000403e0000803f0000000000000000000080bf000080bd000000000000a0be000000000000803f000000000000e03e0000403e0000803f0000000000000000000080bf000000bd000000000000a0be000000000000803f000000000000f03e0000403e0000803f0000000000000000000080bf00000000000000000000a0be000000000000803f000000000000003f0000403e0000803f0000000000000000000080bf0000003d000000000000a0be000000000000803f000000000000083f0000403e0000803f0000000000000000000080bf0000803d000000000000a0be000000000000803f000000000000103f0000403e0000803f0000000000000000000080bf0000c03d000000000000a0be000000000000803f000000000000183f0000403e0000803f0000000000000000000080bf0000003e000000000000a0be000000000000803f000000000000203f0000403e0000803f0000000000000000000080bf0000203e000000000000a0be000000000000803f000000000000283f0000403e0000803f0000000000000000000080bf0000403e000000000000a0be000000000000803f000000000000303f0000403e0000803f0000000000000000000080bf0000603e000000000000a0be000000000000803f000000000000383f0000403e0000803f0000000000000000000080bf0000803e000000000000a0be000000000000803f000000000000403f0000403e0000803f0000000000000000000080bf0000903e000000000000a0be000000000000803f000000000000483f0000403e0000803f0000000000000000000080bf0000a03e000000000000a0be000000000000803f000000000000503f0000403e0000803f0000000000000000000080bf0000b03e000000000000a0be000000000000803f000000000000583f0000403e0000803f0000000000000000000080bf0000c03e000000000000a0be000000000000803f000000000000603f0000403e0000803f0000000000000000000080bf0000d03e000000000000a0be000000000000803f000000000000683f0000403e0000803f0000000000000000000080bf0000e03e000000000000a0be000000000000803f000000000000703f0000403e0000803f0000000000000000000080bf0000f03e000000000000a0be000000000000803f000000000000783f0000403e0000803f0000000000000000000080bf0000003f000000000000a0be000000000000803f000000000000803f0000403e0000803f0000000000000000000080bf000000bf00000000000090be000000000000803f00000000000000000000603e0000803f0000000000000000000080bf0000f0be00000000000090be000000000000803f000000000000003d0000603e0000803f0000000000000000000080bf0000e0be00000000000090be000000000000803f000000000000803d0000603e0000803f0000000000000000000080bf0000d0be00000000000090be000000000000803f000000000000c03d0000603e0000803f0000000000000000000080bf0000c0be00000000000090be000000000000803f000000000000003e0000603e0000803f0000000000000000000080bf0000b0be00000000000090be000000000000803f000000000000203e0000603e0000803f0000000000000000000080bf0000a0be00000000000090be000000000000803f000000000000403e0000603e0000803f0000000000000000000080bf000090be00000000000090be000000000000803f000000000000603e0000603e0000803f0000000000000000000080bf000080be00000000000090be000000000000803f000000000000803e0000603e0000803f0000000000000000000080bf000060be00000000000090be000000000000803f000000000000903e0000603e0000803f0000000000000000000080bf000040be00000000000090be000000000000803f000000000000a03e0000603e0000803f0000000000000000000080bf000020be00000000000090be000000000000803f000000000000b03e0000603e0000803f0000000000000000000080bf000000be00000000000090be000000000000803f000000000000c03e0000603e0000803f0000000000000000000080bf0000c0bd00000000000090be000000000000803f000000000000d03e0000603e0000803f0000000000000000000080bf000080bd00000000000090be000000000000803f000000000000e03e0000603e0000803f0000000000000000000080bf000000bd00000000000090be000000000000803f000000000000f03e0000603e0000803f0000000000000000000080bf0000000000000000000090be000000000000803f000000000000003f0000603e0000803f0000000000000000000080bf0000003d00000000000090be000000000000803f000000000000083f0000603e0000803f0000000000000000000080bf0000803d00000000000090be000000000000803f000000000000103f0000603e0000803f0000000000000000000080bf0000c03d00000000000090be000000000000803f000000000000183f0000603e0000803f0000000000000000000080bf0000003e00000000000090be000000000000803f000000000000203f0000603e0000803f0000000000000000000080bf0000203e00000000000090be000000000000803f000000000000283f0000603e0000803f0000000000000000000080bf0000403e00000000000090be000000000000803f000000000000303f0000603e0000803f0000000000000000000080bf0000603e00000000000090be000000000000803f000000000000383f0000603e0000803f0000000000000000000080bf0000803e00000000000090be000000000000803f000000000000403f0000603e0000803f0000000000000000000080bf0000903e00000000000090be000000000000803f000000000000483f0000603e0000803f0000000000000000000080bf0000a03e00000000000090be000000000000803f000000000000503f0000603e0000803f0000000000000000000080bf0000b03e00000000000090be000000000000803f000000000000583f0000603e0000803f0000000000000000000080bf0000c03e00000000000090be000000000000803f000000000000603f0000603e0000803f0000000000000000000080bf0000d03e00000000000090be000000000000803f000000000000683f0000603e0000803f0000000000000000000080bf0000e03e00000000000090be000000000000803f000000000000703f0000603e0000803f0000000000000000000080bf0000f03e00000000000090be000000000000803f000000000000783f0000603e0000803f0000000000000000000080bf0000003f00000000000090be000000000000803f000000000000803f0000603e0000803f0000000000000000000080bf000000bf00000000000080be000000000000803f00000000000000000000803e0000803f0000000000000000000080bf0000f0be00000000000080be000000000000803f000000000000003d0000803e0000803f0000000000000000000080bf0000e0be00000000000080be000000000000803f000000000000803d0000803e0000803f0000000000000000000080bf0000d0be00000000000080be000000000000803f000000000000c03d0000803e0000803f0000000000000000000080bf0000c0be00000000000080be000000000000803f000000000000003e0000803e0000803f0000000000000000000080bf0000b0be00000000000080be000000000000803f000000000000203e0000803e0000803f0000000000000000000080bf0000a0be00000000000080be000000000000803f000000000000403e0000803e0000803f0000000000000000000080bf000090be00000000000080be000000000000803f000000000000603e0000803e0000803f0000000000000000000080bf000080be00000000000080be000000000000803f000000000000803e0000803e0000803f0000000000000000000080bf000060be00000000000080be000000000000803f000000000000903e0000803e0000803f0000000000000000000080bf000040be00000000000080be000000000000803f000000000000a03e0000803e0000803f0000000000000000000080bf000020be00000000000080be000000000000803f000000000000b03e0000803e0000803f0000000000000000000080bf000000be00000000000080be000000000000803f000000000000c03e0000803e0000803f0000000000000000000080bf0000c0bd00000000000080be000000000000803f000000000000d03e0000803e0000803f0000000000000000000080bf000080bd00000000000080be000000000000803f000000000000e03e0000803e0000803f0000000000000000000080bf000000bd00000000000080be000000000000803f000000000000f03e0000803e0000803f0000000000000000000080bf0000000000000000000080be000000000000803f000000000000003f0000803e0000803f0000000000000000000080bf0000003d00000000000080be000000000000803f000000000000083f0000803e0000803f0000000000000000000080bf0000803d00000000000080be000000000000803f000000000000103f0000803e0000803f0000000000000000000080bf0000c03d00000000000080be000000000000803f000000000000183f0000803e0000803f0000000000000000000080bf0000003e00000000000080be000000000000803f000000000000203f0000803e0000803f0000000000000000000080bf0000203e00000000000080be000000000000803f000000000000283f0000803e0000803f0000000000000000000080bf0000403e00000000000080be000000000000803f000000000000303f0000803e0000803f0000000000000000000080bf0000603e00000000000080be000000000000803f000000000000383f0000803e0000803f0000000000000000000080bf0000803e00000000000080be000000000000803f000000000000403f0000803e0000803f0000000000000000000080bf0000903e00000000000080be000000000000803f000000000000483f0000803e0000803f0000000000000000000080bf0000a03e00000000000080be000000000000803f000000000000503f0000803e0000803f0000000000000000000080bf0000b03e00000000000080be000000000000803f000000000000583f0000803e0000803f0000000000000000000080bf0000c03e00000000000080be000000000000803f000000000000603f0000803e0000803f0000000000000000000080bf0000d03e00000000000080be000000000000803f000000000000683f0000803e0000803f0000000000000000000080bf0000e03e00000000000080be000000000000803f000000000000703f0000803e0000803f0000000000000000000080bf0000f03e00000000000080be000000000000803f000000000000783f0000803e0000803f0000000000000000000080bf0000003f00000000000080be000000000000803f000000000000803f0000803e0000803f0000000000000000000080bf000000bf00000000000060be000000000000803f00000000000000000000903e0000803f0000000000000000000080bf0000f0be00000000000060be000000000000803f000000000000003d0000903e0000803f0000000000000000000080bf0000e0be00000000000060be000000000000803f000000000000803d0000903e0000803f0000000000000000000080bf0000d0be00000000000060be000000000000803f000000000000c03d0000903e0000803f0000000000000000000080bf0000c0be00000000000060be000000000000803f000000000000003e0000903e0000803f0000000000000000000080bf0000b0be00000000000060be000000000000803f000000000000203e0000903e0000803f0000000000000000000080bf0000a0be00000000000060be000000000000803f000000000000403e0000903e0000803f0000000000000000000080bf000090be00000000000060be000000000000803f000000000000603e0000903e0000803f0000000000000000000080bf000080be00000000000060be000000000000803f000000000000803e0000903e0000803f0000000000000000000080bf000060be00000000000060be000000000000803f000000000000903e0000903e0000803f0000000000000000000080bf000040be00000000000060be000000000000803f000000000000a03e0000903e0000803f0000000000000000000080bf000020be00000000000060be000000000000803f000000000000b03e0000903e0000803f0000000000000000000080bf000000be00000000000060be000000000000803f000000000000c03e0000903e0000803f0000000000000000000080bf0000c0bd00000000000060be000000000000803f000000000000d03e0000903e0000803f0000000000000000000080bf000080bd00000000000060be000000000000803f000000000000e03e0000903e0000803f0000000000000000000080bf000000bd00000000000060be000000000000803f000000000000f03e0000903e0000803f0000000000000000000080bf0000000000000000000060be000000000000803f000000000000003f0000903e0000803f0000000000000000000080bf0000003d00000000000060be000000000000803f000000000000083f0000903e0000803f0000000000000000000080bf0000803d00000000000060be000000000000803f000000000000103f0000903e0000803f0000000000000000000080bf0000c03d00000000000060be000000000000803f000000000000183f0000903e0000803f0000000000000000000080bf0000003e00000000000060be000000000000803f000000000000203f0000903e0000803f0000000000000000000080bf0000203e00000000000060be000000000000803f000000000000283f0000903e0000803f0000000000000000000080bf0000403e00000000000060be000000000000803f000000000000303f0000903e0000803f0000000000000000000080bf0000603e00000000000060be000000000000803f000000000000383f0000903e0000803f0000000000000000000080bf0000803e00000000000060be000000000000803f000000000000403f0000903e0000803f0000000000000000000080bf0000903e00000000000060be000000000000803f000000000000483f0000903e0000803f0000000000000000000080bf0000a03e00000000000060be000000000000803f000000000000503f0000903e0000803f0000000000000000000080bf0000b03e00000000000060be000000000000803f000000000000583f0000903e0000803f0000000000000000000080bf0000c03e00000000000060be000000000000803f000000000000603f0000903e0000803f0000000000000000000080bf0000d03e00000000000060be000000000000803f000000000000683f0000903e0000803f0000000000000000000080bf0000e03e00000000000060be000000000000803f000000000000703f0000903e0000803f0000000000000000000080bf0000f03e00000000000060be000000000000803f000000000000783f0000903e0000803f0000000000000000000080bf0000003f00000000000060be000000000000803f000000000000803f0000903e0000803f0000000000000000000080bf000000bf00000000000040be000000000000803f00000000000000000000a03e0000803f0000000000000000000080bf0000f0be00000000000040be000000000000803f000000000000003d0000a03e0000803f0000000000000000000080bf0000e0be00000000000040be000000000000803f000000000000803d0000a03e0000803f0000000000000000000080bf0000d0be00000000000040be000000000000803f000000000000c03d0000a03e0000803f0000000000000000000080bf0000c0be00000000000040be000000000000803f000000000000003e0000a03e0000803f0000000000000000000080bf0000b0be00000000000040be000000000000803f000000000000203e0000a03e0000803f0000000000000000000080bf0000a0be00000000000040be000000000000803f000000000000403e0000a03e0000803f0000000000000000000080bf000090be00000000000040be000000000000803f000000000000603e0000a03e0000803f0000000000000000000080bf000080be00000000000040be000000000000803f000000000000803e0000a03e0000803f0000000000000000000080bf000060be00000000000040be000000000000803f000000000000903e0000a03e0000803f0000000000000000000080bf000040be00000000000040be000000000000803f000000000000a03e0000a03e0000803f0000000000000000000080bf000020be00000000000040be000000000000803f000000000000b03e0000a03e0000803f0000000000000000000080bf000000be00000000000040be000000000000803f000000000000c03e0000a03e0000803f0000000000000000000080bf0000c0bd00000000000040be000000000000803f000000000000d03e0000a03e0000803f0000000000000000000080bf000080bd00000000000040be000000000000803f000000000000e03e0000a03e0000803f0000000000000000000080bf000000bd00000000000040be000000000000803f000000000000f03e0000a03e0000803f0000000000000000000080bf0000000000000000000040be000000000000803f000000000000003f0000a03e0000803f0000000000000000000080bf0000003d00000000000040be000000000000803f000000000000083f0000a03e0000803f0000000000000000000080bf0000803d00000000000040be000000000000803f000000000000103f0000a03e0000803f0000000000000000000080bf0000c03d00000000000040be000000000000803f000000000000183f0000a03e0000803f0000000000000000000080bf0000003e00000000000040be000000000000803f000000000000203f0000a03e0000803f0000000000000000000080bf0000203e00000000000040be000000000000803f000000000000283f0000a03e0000803f0000000000000000000080bf0000403e00000000000040be000000000000803f000000000000303f0000a03e0000803f0000000000000000000080bf0000603e00000000000040be000000000000803f000000000000383f0000a03e0000803f0000000000000000000080bf0000803e00000000000040be000000000000803f000000000000403f0000a03e0000803f0000000000000000000080bf0000903e00000000000040be000000000000803f000000000000483f0000a03e0000803f0000000000000000000080bf0000a03e00000000000040be000000000000803f000000000000503f0000a03e0000803f0000000000000000000080bf0000b03e00000000000040be000000000000803f000000000000583f0000a03e0000803f0000000000000000000080bf0000c03e00000000000040be000000000000803f000000000000603f0000a03e0000803f0000000000000000000080bf0000d03e00000000000040be000000000000803f000000000000683f0000a03e0000803f0000000000000000000080bf0000e03e00000000000040be000000000000803f000000000000703f0000a03e0000803f0000000000000000000080bf0000f03e00000000000040be000000000000803f000000000000783f0000a03e0000803f0000000000000000000080bf0000003f00000000000040be000000000000803f000000000000803f0000a03e0000803f0000000000000000000080bf000000bf00000000000020be000000000000803f00000000000000000000b03e0000803f0000000000000000000080bf0000f0be00000000000020be000000000000803f000000000000003d0000b03e0000803f0000000000000000000080bf0000e0be00000000000020be000000000000803f000000000000803d0000b03e0000803f0000000000000000000080bf0000d0be00000000000020be000000000000803f000000000000c03d0000b03e0000803f0000000000000000000080bf0000c0be00000000000020be000000000000803f000000000000003e0000b03e0000803f0000000000000000000080bf0000b0be00000000000020be000000000000803f000000000000203e0000b03e0000803f0000000000000000000080bf0000a0be00000000000020be000000000000803f000000000000403e0000b03e0000803f0000000000000000000080bf000090be00000000000020be000000000000803f000000000000603e0000b03e0000803f0000000000000000000080bf000080be00000000000020be000000000000803f000000000000803e0000b03e0000803f0000000000000000000080bf000060be00000000000020be000000000000803f000000000000903e0000b03e0000803f0000000000000000000080bf000040be00000000000020be000000000000803f000000000000a03e0000b03e0000803f0000000000000000000080bf000020be00000000000020be000000000000803f000000000000b03e0000b03e0000803f0000000000000000000080bf000000be00000000000020be000000000000803f000000000000c03e0000b03e0000803f0000000000000000000080bf0000c0bd00000000000020be000000000000803f000000000000d03e0000b03e0000803f0000000000000000000080bf000080bd00000000000020be000000000000803f000000000000e03e0000b03e0000803f0000000000000000000080bf000000bd00000000000020be000000000000803f000000000000f03e0000b03e0000803f0000000000000000000080bf0000000000000000000020be000000000000803f000000000000003f0000b03e0000803f0000000000000000000080bf0000003d00000000000020be000000000000803f000000000000083f0000b03e0000803f0000000000000000000080bf0000803d00000000000020be000000000000803f000000000000103f0000b03e0000803f0000000000000000000080bf0000c03d00000000000020be000000000000803f000000000000183f0000b03e0000803f0000000000000000000080bf0000003e00000000000020be000000000000803f000000000000203f0000b03e0000803f0000000000000000000080bf0000203e00000000000020be000000000000803f000000000000283f0000b03e0000803f0000000000000000000080bf0000403e00000000000020be000000000000803f000000000000303f0000b03e0000803f0000000000000000000080bf0000603e00000000000020be000000000000803f000000000000383f0000b03e0000803f0000000000000000000080bf0000803e00000000000020be000000000000803f000000000000403f0000b03e0000803f0000000000000000000080bf0000903e00000000000020be000000000000803f000000000000483f0000b03e0000803f0000000000000000000080bf0000a03e00000000000020be000000000000803f000000000000503f0000b03e0000803f0000000000000000000080bf0000b03e00000000000020be000000000000803f000000000000583f0000b03e0000803f0000000000000000000080bf0000c03e00000000000020be000000000000803f000000000000603f0000b03e0000803f0000000000000000000080bf0000d03e00000000000020be000000000000803f000000000000683f0000b03e0000803f0000000000000000000080bf0000e03e00000000000020be000000000000803f000000000000703f0000b03e0000803f0000000000000000000080bf0000f03e00000000000020be000000000000803f000000000000783f0000b03e0000803f0000000000000000000080bf0000003f00000000000020be000000000000803f000000000000803f0000b03e0000803f0000000000000000000080bf000000bf00000000000000be000000000000803f00000000000000000000c03e0000803f0000000000000000000080bf0000f0be00000000000000be000000000000803f000000000000003d0000c03e0000803f0000000000000000000080bf0000e0be00000000000000be000000000000803f000000000000803d0000c03e0000803f0000000000000000000080bf0000d0be00000000000000be000000000000803f000000000000c03d0000c03e0000803f0000000000000000000080bf0000c0be00000000000000be000000000000803f000000000000003e0000c03e0000803f0000000000000000000080bf0000b0be00000000000000be000000000000803f000000000000203e0000c03e0000803f0000000000000000000080bf0000a0be00000000000000be000000000000803f000000000000403e0000c03e0000803f0000000000000000000080bf000090be00000000000000be000000000000803f000000000000603e0000c03e0000803f0000000000000000000080bf000080be00000000000000be000000000000803f000000000000803e0000c03e0000803f0000000000000000000080bf000060be00000000000000be000000000000803f000000000000903e0000c03e0000803f0000000000000000000080bf000040be00000000000000be000000000000803f000000000000a03e0000c03e0000803f0000000000000000000080bf000020be00000000000000be000000000000803f000000000000b03e0000c03e0000803f0000000000000000000080bf000000be00000000000000be000000000000803f000000000000c03e0000c03e0000803f0000000000000000000080bf0000c0bd00000000000000be000000000000803f000000000000d03e0000c03e0000803f0000000000000000000080bf000080bd00000000000000be000000000000803f000000000000e03e0000c03e0000803f0000000000000000000080bf000000bd00000000000000be000000000000803f000000000000f03e0000c03e0000803f0000000000000000000080bf0000000000000000000000be000000000000803f000000000000003f0000c03e0000803f0000000000000000000080bf0000003d00000000000000be000000000000803f000000000000083f0000c03e0000803f0000000000000000000080bf0000803d00000000000000be000000000000803f000000000000103f0000c03e0000803f0000000000000000000080bf0000c03d00000000000000be000000000000803f000000000000183f0000c03e0000803f0000000000000000000080bf0000003e00000000000000be000000000000803f000000000000203f0000c03e0000803f0000000000000000000080bf0000203e00000000000000be000000000000803f000000000000283f0000c03e0000803f0000000000000000000080bf0000403e00000000000000be000000000000803f000000000000303f0000c03e0000803f0000000000000000000080bf0000603e00000000000000be000000000000803f000000000000383f0000c03e0000803f0000000000000000000080bf0000803e00000000000000be000000000000803f000000000000403f0000c03e0000803f0000000000000000000080bf0000903e00000000000000be000000000000803f000000000000483f0000c03e0000803f0000000000000000000080bf0000a03e00000000000000be000000000000803f000000000000503f0000c03e0000803f0000000000000000000080bf0000b03e00000000000000be000000000000803f000000000000583f0000c03e0000803f0000000000000000000080bf0000c03e00000000000000be000000000000803f000000000000603f0000c03e0000803f0000000000000000000080bf0000d03e00000000000000be000000000000803f000000000000683f0000c03e0000803f0000000000000000000080bf0000e03e00000000000000be000000000000803f000000000000703f0000c03e0000803f0000000000000000000080bf0000f03e00000000000000be000000000000803f000000000000783f0000c03e0000803f0000000000000000000080bf0000003f00000000000000be000000000000803f000000000000803f0000c03e0000803f0000000000000000000080bf000000bf000000000000c0bd000000000000803f00000000000000000000d03e0000803f0000000000000000000080bf0000f0be000000000000c0bd000000000000803f000000000000003d0000d03e0000803f0000000000000000000080bf0000e0be000000000000c0bd000000000000803f000000000000803d0000d03e0000803f0000000000000000000080bf0000d0be000000000000c0bd000000000000803f000000000000c03d0000d03e0000803f0000000000000000000080bf0000c0be000000000000c0bd000000000000803f000000000000003e0000d03e0000803f0000000000000000000080bf0000b0be000000000000c0bd000000000000803f000000000000203e0000d03e0000803f0000000000000000000080bf0000a0be000000000000c0bd000000000000803f000000000000403e0000d03e0000803f0000000000000000000080bf000090be000000000000c0bd000000000000803f000000000000603e0000d03e0000803f0000000000000000000080bf000080be000000000000c0bd000000000000803f000000000000803e0000d03e0000803f0000000000000000000080bf000060be000000000000c0bd000000000000803f000000000000903e0000d03e0000803f0000000000000000000080bf000040be000000000000c0bd000000000000803f000000000000a03e0000d03e0000803f0000000000000000000080bf000020be000000000000c0bd000000000000803f000000000000b03e0000d03e0000803f0000000000000000000080bf000000be000000000000c0bd000000000000803f000000000000c03e0000d03e0000803f0000000000000000000080bf0000c0bd000000000000c0bd000000000000803f000000000000d03e0000d03e0000803f0000000000000000000080bf000080bd000000000000c0bd000000000000803f000000000000e03e0000d03e0000803f0000000000000000000080bf000000bd000000000000c0bd000000000000803f000000000000f03e0000d03e0000803f0000000000000000000080bf00000000000000000000c0bd000000000000803f000000000000003f0000d03e0000803f0000000000000000000080bf0000003d000000000000c0bd000000000000803f000000000000083f0000d03e0000803f0000000000000000000080bf0000803d000000000000c0bd000000000000803f000000000000103f0000d03e0000803f0000000000000000000080bf0000c03d000000000000c0bd000000000000803f000000000000183f0000d03e0000803f0000000000000000000080bf0000003e000000000000c0bd000000000000803f000000000000203f0000d03e0000803f0000000000000000000080bf0000203e000000000000c0bd000000000000803f000000000000283f0000d03e0000803f0000000000000000000080bf0000403e000000000000c0bd000000000000803f000000000000303f0000d03e0000803f0000000000000000000080bf0000603e000000000000c0bd000000000000803f000000000000383f0000d03e0000803f0000000000000000000080bf0000803e000000000000c0bd000000000000803f000000000000403f0000d03e0000803f0000000000000000000080bf0000903e000000000000c0bd000000000000803f000000000000483f0000d03e0000803f0000000000000000000080bf0000a03e000000000000c0bd000000000000803f000000000000503f0000d03e0000803f0000000000000000000080bf0000b03e000000000000c0bd000000000000803f000000000000583f0000d03e0000803f0000000000000000000080bf0000c03e000000000000c0bd000000000000803f000000000000603f0000d03e0000803f0000000000000000000080bf0000d03e000000000000c0bd000000000000803f000000000000683f0000d03e0000803f0000000000000000000080bf0000e03e000000000000c0bd000000000000803f000000000000703f0000d03e0000803f0000000000000000000080bf0000f03e000000000000c0bd000000000000803f000000000000783f0000d03e0000803f0000000000000000000080bf0000003f000000000000c0bd000000000000803f000000000000803f0000d03e0000803f0000000000000000000080bf000000bf00000000000080bd000000000000803f00000000000000000000e03e0000803f0000000000000000000080bf0000f0be00000000000080bd000000000000803f000000000000003d0000e03e0000803f0000000000000000000080bf0000e0be00000000000080bd000000000000803f000000000000803d0000e03e0000803f0000000000000000000080bf0000d0be00000000000080bd000000000000803f000000000000c03d0000e03e0000803f0000000000000000000080bf0000c0be00000000000080bd000000000000803f000000000000003e0000e03e0000803f0000000000000000000080bf0000b0be00000000000080bd000000000000803f000000000000203e0000e03e0000803f0000000000000000000080bf0000a0be00000000000080bd000000000000803f000000000000403e0000e03e0000803f0000000000000000000080bf000090be00000000000080bd000000000000803f000000000000603e0000e03e0000803f0000000000000000000080bf000080be00000000000080bd000000000000803f000000000000803e0000e03e0000803f0000000000000000000080bf000060be00000000000080bd000000000000803f000000000000903e0000e03e0000803f0000000000000000000080bf000040be00000000000080bd000000000000803f000000000000a03e0000e03e0000803f0000000000000000000080bf000020be00000000000080bd000000000000803f000000000000b03e0000e03e0000803f0000000000000000000080bf000000be00000000000080bd000000000000803f000000000000c03e0000e03e0000803f0000000000000000000080bf0000c0bd00000000000080bd000000000000803f000000000000d03e0000e03e0000803f0000000000000000000080bf000080bd00000000000080bd000000000000803f000000000000e03e0000e03e0000803f0000000000000000000080bf000000bd00000000000080bd000000000000803f000000000000f03e0000e03e0000803f0000000000000000000080bf0000000000000000000080bd000000000000803f000000000000003f0000e03e0000803f0000000000000000000080bf0000003d00000000000080bd000000000000803f000000000000083f0000e03e0000803f0000000000000000000080bf0000803d00000000000080bd000000000000803f000000000000103f0000e03e0000803f0000000000000000000080bf0000c03d00000000000080bd000000000000803f000000000000183f0000e03e0000803f0000000000000000000080bf0000003e00000000000080bd000000000000803f000000000000203f0000e03e0000803f0000000000000000000080bf0000203e00000000000080bd000000000000803f000000000000283f0000e03e0000803f0000000000000000000080bf0000403e00000000000080bd000000000000803f000000000000303f0000e03e0000803f0000000000000000000080bf0000603e00000000000080bd000000000000803f000000000000383f0000e03e0000803f0000000000000000000080bf0000803e00000000000080bd000000000000803f000000000000403f0000e03e0000803f0000000000000000000080bf0000903e00000000000080bd000000000000803f000000000000483f0000e03e0000803f0000000000000000000080bf0000a03e00000000000080bd000000000000803f000000000000503f0000e03e0000803f0000000000000000000080bf0000b03e00000000000080bd000000000000803f000000000000583f0000e03e0000803f0000000000000000000080bf0000c03e00000000000080bd000000000000803f000000000000603f0000e03e0000803f0000000000000000000080bf0000d03e00000000000080bd000000000000803f000000000000683f0000e03e0000803f0000000000000000000080bf0000e03e00000000000080bd000000000000803f000000000000703f0000e03e0000803f0000000000000000000080bf0000f03e00000000000080bd000000000000803f000000000000783f0000e03e0000803f0000000000000000000080bf0000003f00000000000080bd000000000000803f000000000000803f0000e03e0000803f0000000000000000000080bf000000bf00000000000000bd000000000000803f00000000000000000000f03e0000803f0000000000000000000080bf0000f0be00000000000000bd000000000000803f000000000000003d0000f03e0000803f0000000000000000000080bf0000e0be00000000000000bd000000000000803f000000000000803d0000f03e0000803f0000000000000000000080bf0000d0be00000000000000bd000000000000803f000000000000c03d0000f03e0000803f0000000000000000000080bf0000c0be00000000000000bd000000000000803f000000000000003e0000f03e0000803f0000000000000000000080bf0000b0be00000000000000bd000000000000803f000000000000203e0000f03e0000803f0000000000000000000080bf0000a0be00000000000000bd000000000000803f000000000000403e0000f03e0000803f0000000000000000000080bf000090be00000000000000bd000000000000803f000000000000603e0000f03e0000803f0000000000000000000080bf000080be00000000000000bd000000000000803f000000000000803e0000f03e0000803f0000000000000000000080bf000060be00000000000000bd000000000000803f000000000000903e0000f03e0000803f0000000000000000000080bf000040be00000000000000bd000000000000803f000000000000a03e0000f03e0000803f0000000000000000000080bf000020be00000000000000bd000000000000803f000000000000b03e0000f03e0000803f0000000000000000000080bf000000be00000000000000bd000000000000803f000000000000c03e0000f03e0000803f0000000000000000000080bf0000c0bd00000000000000bd000000000000803f000000000000d03e0000f03e0000803f0000000000000000000080bf000080bd00000000000000bd000000000000803f000000000000e03e0000f03e0000803f0000000000000000000080bf000000bd00000000000000bd000000000000803f000000000000f03e0000f03e0000803f0000000000000000000080bf0000000000000000000000bd000000000000803f000000000000003f0000f03e0000803f0000000000000000000080bf0000003d00000000000000bd000000000000803f000000000000083f0000f03e0000803f0000000000000000000080bf0000803d00000000000000bd000000000000803f000000000000103f0000f03e0000803f0000000000000000000080bf0000c03d00000000000000bd000000000000803f000000000000183f0000f03e0000803f0000000000000000000080bf0000003e00000000000000bd000000000000803f000000000000203f0000f03e0000803f0000000000000000000080bf0000203e00000000000000bd000000000000803f000000000000283f0000f03e0000803f0000000000000000000080bf0000403e00000000000000bd000000000000803f000000000000303f0000f03e0000803f0000000000000000000080bf0000603e00000000000000bd000000000000803f000000000000383f0000f03e0000803f0000000000000000000080bf0000803e00000000000000bd000000000000803f000000000000403f0000f03e0000803f0000000000000000000080bf0000903e00000000000000bd000000000000803f000000000000483f0000f03e0000803f0000000000000000000080bf0000a03e00000000000000bd000000000000803f000000000000503f0000f03e0000803f0000000000000000000080bf0000b03e00000000000000bd000000000000803f000000000000583f0000f03e0000803f0000000000000000000080bf0000c03e00000000000000bd000000000000803f000000000000603f0000f03e0000803f0000000000000000000080bf0000d03e00000000000000bd000000000000803f000000000000683f0000f03e0000803f0000000000000000000080bf0000e03e00000000000000bd000000000000803f000000000000703f0000f03e0000803f0000000000000000000080bf0000f03e00000000000000bd000000000000803f000000000000783f0000f03e0000803f0000000000000000000080bf0000003f00000000000000bd000000000000803f000000000000803f0000f03e0000803f0000000000000000000080bf000000bf0000000000000000000000000000803f00000000000000000000003f0000803f0000000000000000000080bf0000f0be0000000000000000000000000000803f000000000000003d0000003f0000803f0000000000000000000080bf0000e0be0000000000000000000000000000803f000000000000803d0000003f0000803f0000000000000000000080bf0000d0be0000000000000000000000000000803f000000000000c03d0000003f0000803f0000000000000000000080bf0000c0be0000000000000000000000000000803f000000000000003e0000003f0000803f0000000000000000000080bf0000b0be0000000000000000000000000000803f000000000000203e0000003f0000803f0000000000000000000080bf0000a0be0000000000000000000000000000803f000000000000403e0000003f0000803f0000000000000000000080bf000090be0000000000000000000000000000803f000000000000603e0000003f0000803f0000000000000000000080bf000080be0000000000000000000000000000803f000000000000803e0000003f0000803f0000000000000000000080bf000060be0000000000000000000000000000803f000000000000903e0000003f0000803f0000000000000000000080bf000040be0000000000000000000000000000803f000000000000a03e0000003f0000803f0000000000000000000080bf000020be0000000000000000000000000000803f000000000000b03e0000003f0000803f0000000000000000000080bf000000be0000000000000000000000000000803f000000000000c03e0000003f0000803f0000000000000000000080bf0000c0bd0000000000000000000000000000803f000000000000d03e0000003f0000803f0000000000000000000080bf000080bd0000000000000000000000000000803f000000000000e03e0000003f0000803f0000000000000000000080bf000000bd0000000000000000000000000000803f000000000000f03e0000003f0000803f0000000000000000000080bf000000000000000000000000000000000000803f000000000000003f0000003f0000803f0000000000000000000080bf0000003d0000000000000000000000000000803f000000000000083f0000003f0000803f0000000000000000000080bf0000803d0000000000000000000000000000803f000000000000103f0000003f0000803f0000000000000000000080bf0000c03d0000000000000000000000000000803f000000000000183f0000003f0000803f0000000000000000000080bf0000003e0000000000000000000000000000803f000000000000203f0000003f0000803f0000000000000000000080bf0000203e0000000000000000000000000000803f000000000000283f0000003f0000803f0000000000000000000080bf0000403e0000000000000000000000000000803f000000000000303f0000003f0000803f0000000000000000000080bf0000603e0000000000000000000000000000803f000000000000383f0000003f0000803f0000000000000000000080bf0000803e0000000000000000000000000000803f000000000000403f0000003f0000803f0000000000000000000080bf0000903e0000000000000000000000000000803f000000000000483f0000003f0000803f0000000000000000000080bf0000a03e0000000000000000000000000000803f000000000000503f0000003f0000803f0000000000000000000080bf0000b03e0000000000000000000000000000803f000000000000583f0000003f0000803f0000000000000000000080bf0000c03e0000000000000000000000000000803f000000000000603f0000003f0000803f0000000000000000000080bf0000d03e0000000000000000000000000000803f000000000000683f0000003f0000803f0000000000000000000080bf0000e03e0000000000000000000000000000803f000000000000703f0000003f0000803f0000000000000000000080bf0000f03e0000000000000000000000000000803f000000000000783f0000003f0000803f0000000000000000000080bf0000003f0000000000000000000000000000803f000000000000803f0000003f0000803f0000000000000000000080bf000000bf000000000000003d000000000000803f00000000000000000000083f0000803f0000000000000000000080bf0000f0be000000000000003d000000000000803f000000000000003d0000083f0000803f0000000000000000000080bf0000e0be000000000000003d000000000000803f000000000000803d0000083f0000803f0000000000000000000080bf0000d0be000000000000003d000000000000803f000000000000c03d0000083f0000803f0000000000000000000080bf0000c0be000000000000003d000000000000803f000000000000003e0000083f0000803f0000000000000000000080bf0000b0be000000000000003d000000000000803f000000000000203e0000083f0000803f0000000000000000000080bf0000a0be000000000000003d000000000000803f000000000000403e0000083f0000803f0000000000000000000080bf000090be000000000000003d000000000000803f000000000000603e0000083f0000803f0000000000000000000080bf000080be000000000000003d000000000000803f000000000000803e0000083f0000803f0000000000000000000080bf000060be000000000000003d000000000000803f000000000000903e0000083f0000803f0000000000000000000080bf000040be000000000000003d000000000000803f000000000000a03e0000083f0000803f0000000000000000000080bf000020be000000000000003d000000000000803f000000000000b03e0000083f0000803f0000000000000000000080bf000000be000000000000003d000000000000803f000000000000c03e0000083f0000803f0000000000000000000080bf0000c0bd000000000000003d000000000000803f000000000000d03e0000083f0000803f0000000000000000000080bf000080bd000000000000003d000000000000803f000000000000e03e0000083f0000803f0000000000000000000080bf000000bd000000000000003d000000000000803f000000000000f03e0000083f0000803f0000000000000000000080bf00000000000000000000003d000000000000803f000000000000003f0000083f0000803f0000000000000000000080bf0000003d000000000000003d000000000000803f000000000000083f0000083f0000803f0000000000000000000080bf0000803d000000000000003d000000000000803f000000000000103f0000083f0000803f0000000000000000000080bf0000c03d000000000000003d000000000000803f000000000000183f0000083f0000803f0000000000000000000080bf0000003e000000000000003d000000000000803f000000000000203f0000083f0000803f0000000000000000000080bf0000203e000000000000003d000000000000803f000000000000283f0000083f0000803f0000000000000000000080bf0000403e000000000000003d000000000000803f000000000000303f0000083f0000803f0000000000000000000080bf0000603e000000000000003d000000000000803f000000000000383f0000083f0000803f0000000000000000000080bf0000803e000000000000003d000000000000803f000000000000403f0000083f0000803f0000000000000000000080bf0000903e000000000000003d000000000000803f000000000000483f0000083f0000803f0000000000000000000080bf0000a03e000000000000003d000000000000803f000000000000503f0000083f0000803f0000000000000000000080bf0000b03e000000000000003d000000000000803f000000000000583f0000083f0000803f0000000000000000000080bf0000c03e000000000000003d000000000000803f000000000000603f0000083f0000803f0000000000000000000080bf0000d03e000000000000003d000000000000803f000000000000683f0000083f0000803f0000000000000000000080bf0000e03e000000000000003d000000000000803f000000000000703f0000083f0000803f0000000000000000000080bf0000f03e000000000000003d000000000000803f000000000000783f0000083f0000803f0000000000000000000080bf0000003f000000000000003d000000000000803f000000000000803f0000083f0000803f0000000000000000000080bf000000bf000000000000803d000000000000803f00000000000000000000103f0000803f0000000000000000000080bf0000f0be000000000000803d000000000000803f000000000000003d0000103f0000803f0000000000000000000080bf0000e0be000000000000803d000000000000803f000000000000803d0000103f0000803f0000000000000000000080bf0000d0be000000000000803d000000000000803f000000000000c03d0000103f0000803f0000000000000000000080bf0000c0be000000000000803d000000000000803f000000000000003e0000103f0000803f0000000000000000000080bf0000b0be000000000000803d000000000000803f000000000000203e0000103f0000803f0000000000000000000080bf0000a0be000000000000803d000000000000803f000000000000403e0000103f0000803f0000000000000000000080bf000090be000000000000803d000000000000803f000000000000603e0000103f0000803f0000000000000000000080bf000080be000000000000803d000000000000803f000000000000803e0000103f0000803f0000000000000000000080bf000060be000000000000803d000000000000803f000000000000903e0000103f0000803f0000000000000000000080bf000040be000000000000803d000000000000803f000000000000a03e0000103f0000803f0000000000000000000080bf000020be000000000000803d000000000000803f000000000000b03e0000103f0000803f0000000000000000000080bf000000be000000000000803d000000000000803f000000000000c03e0000103f0000803f0000000000000000000080bf0000c0bd000000000000803d000000000000803f000000000000d03e0000103f0000803f0000000000000000000080bf000080bd000000000000803d000000000000803f000000000000e03e0000103f0000803f0000000000000000000080bf000000bd000000000000803d000000000000803f000000000000f03e0000103f0000803f0000000000000000000080bf00000000000000000000803d000000000000803f000000000000003f0000103f0000803f0000000000000000000080bf0000003d000000000000803d000000000000803f000000000000083f0000103f0000803f0000000000000000000080bf0000803d000000000000803d000000000000803f000000000000103f0000103f0000803f0000000000000000000080bf0000c03d000000000000803d000000000000803f000000000000183f0000103f0000803f0000000000000000000080bf0000003e000000000000803d000000000000803f000000000000203f0000103f0000803f0000000000000000000080bf0000203e000000000000803d000000000000803f000000000000283f0000103f0000803f0000000000000000000080bf0000403e000000000000803d000000000000803f000000000000303f0000103f0000803f0000000000000000000080bf0000603e000000000000803d000000000000803f000000000000383f0000103f0000803f0000000000000000000080bf0000803e000000000000803d000000000000803f000000000000403f0000103f0000803f0000000000000000000080bf0000903e000000000000803d000000000000803f000000000000483f0000103f0000803f0000000000000000000080bf0000a03e000000000000803d000000000000803f000000000000503f0000103f0000803f0000000000000000000080bf0000b03e000000000000803d000000000000803f000000000000583f0000103f0000803f0000000000000000000080bf0000c03e000000000000803d000000000000803f000000000000603f0000103f0000803f0000000000000000000080bf0000d03e000000000000803d000000000000803f000000000000683f0000103f0000803f0000000000000000000080bf0000e03e000000000000803d000000000000803f000000000000703f0000103f0000803f0000000000000000000080bf0000f03e000000000000803d000000000000803f000000000000783f0000103f0000803f0000000000000000000080bf0000003f000000000000803d000000000000803f000000000000803f0000103f0000803f0000000000000000000080bf000000bf000000000000c03d000000000000803f00000000000000000000183f0000803f0000000000000000000080bf0000f0be000000000000c03d000000000000803f000000000000003d0000183f0000803f0000000000000000000080bf0000e0be000000000000c03d000000000000803f000000000000803d0000183f0000803f0000000000000000000080bf0000d0be000000000000c03d000000000000803f000000000000c03d0000183f0000803f0000000000000000000080bf0000c0be000000000000c03d000000000000803f000000000000003e0000183f0000803f0000000000000000000080bf0000b0be000000000000c03d000000000000803f000000000000203e0000183f0000803f0000000000000000000080bf0000a0be000000000000c03d000000000000803f000000000000403e0000183f0000803f0000000000000000000080bf000090be000000000000c03d000000000000803f000000000000603e0000183f0000803f0000000000000000000080bf000080be000000000000c03d000000000000803f000000000000803e0000183f0000803f0000000000000000000080bf000060be000000000000c03d000000000000803f000000000000903e0000183f0000803f0000000000000000000080bf000040be000000000000c03d000000000000803f000000000000a03e0000183f0000803f0000000000000000000080bf000020be000000000000c03d000000000000803f000000000000b03e0000183f0000803f0000000000000000000080bf000000be000000000000c03d000000000000803f000000000000c03e0000183f0000803f0000000000000000000080bf0000c0bd000000000000c03d000000000000803f000000000000d03e0000183f0000803f0000000000000000000080bf000080bd000000000000c03d000000000000803f000000000000e03e0000183f0000803f0000000000000000000080bf000000bd000000000000c03d000000000000803f000000000000f03e0000183f0000803f0000000000000000000080bf00000000000000000000c03d000000000000803f000000000000003f0000183f0000803f0000000000000000000080bf0000003d000000000000c03d000000000000803f000000000000083f0000183f0000803f0000000000000000000080bf0000803d000000000000c03d000000000000803f000000000000103f0000183f0000803f0000000000000000000080bf0000c03d000000000000c03d000000000000803f000000000000183f0000183f0000803f0000000000000000000080bf0000003e000000000000c03d000000000000803f000000000000203f0000183f0000803f0000000000000000000080bf0000203e000000000000c03d000000000000803f000000000000283f0000183f0000803f0000000000000000000080bf0000403e000000000000c03d000000000000803f000000000000303f0000183f0000803f0000000000000000000080bf0000603e000000000000c03d000000000000803f000000000000383f0000183f0000803f0000000000000000000080bf0000803e000000000000c03d000000000000803f000000000000403f0000183f0000803f0000000000000000000080bf0000903e000000000000c03d000000000000803f000000000000483f0000183f0000803f0000000000000000000080bf0000a03e000000000000c03d000000000000803f000000000000503f0000183f0000803f0000000000000000000080bf0000b03e000000000000c03d000000000000803f000000000000583f0000183f0000803f0000000000000000000080bf0000c03e000000000000c03d000000000000803f000000000000603f0000183f0000803f0000000000000000000080bf0000d03e000000000000c03d000000000000803f000000000000683f0000183f0000803f0000000000000000000080bf0000e03e000000000000c03d000000000000803f000000000000703f0000183f0000803f0000000000000000000080bf0000f03e000000000000c03d000000000000803f000000000000783f0000183f0000803f0000000000000000000080bf0000003f000000000000c03d000000000000803f000000000000803f0000183f0000803f0000000000000000000080bf000000bf000000000000003e000000000000803f00000000000000000000203f0000803f0000000000000000000080bf0000f0be000000000000003e000000000000803f000000000000003d0000203f0000803f0000000000000000000080bf0000e0be000000000000003e000000000000803f000000000000803d0000203f0000803f0000000000000000000080bf0000d0be000000000000003e000000000000803f000000000000c03d0000203f0000803f0000000000000000000080bf0000c0be000000000000003e000000000000803f000000000000003e0000203f0000803f0000000000000000000080bf0000b0be000000000000003e000000000000803f000000000000203e0000203f0000803f0000000000000000000080bf0000a0be000000000000003e000000000000803f000000000000403e0000203f0000803f0000000000000000000080bf000090be000000000000003e000000000000803f000000000000603e0000203f0000803f0000000000000000000080bf000080be000000000000003e000000000000803f000000000000803e0000203f0000803f0000000000000000000080bf000060be000000000000003e000000000000803f000000000000903e0000203f0000803f0000000000000000000080bf000040be000000000000003e000000000000803f000000000000a03e0000203f0000803f0000000000000000000080bf000020be000000000000003e000000000000803f000000000000b03e0000203f0000803f0000000000000000000080bf000000be000000000000003e000000000000803f000000000000c03e0000203f0000803f0000000000000000000080bf0000c0bd000000000000003e000000000000803f000000000000d03e0000203f0000803f0000000000000000000080bf000080bd000000000000003e000000000000803f000000000000e03e0000203f0000803f0000000000000000000080bf000000bd000000000000003e000000000000803f000000000000f03e0000203f0000803f0000000000000000000080bf00000000000000000000003e000000000000803f000000000000003f0000203f0000803f0000000000000000000080bf0000003d000000000000003e000000000000803f000000000000083f0000203f0000803f0000000000000000000080bf0000803d000000000000003e000000000000803f000000000000103f0000203f0000803f0000000000000000000080bf0000c03d000000000000003e000000000000803f000000000000183f0000203f0000803f0000000000000000000080bf0000003e000000000000003e000000000000803f000000000000203f0000203f0000803f0000000000000000000080bf0000203e000000000000003e000000000000803f000000000000283f0000203f0000803f0000000000000000000080bf0000403e000000000000003e000000000000803f000000000000303f0000203f0000803f0000000000000000000080bf0000603e000000000000003e000000000000803f000000000000383f0000203f0000803f0000000000000000000080bf0000803e000000000000003e000000000000803f000000000000403f0000203f0000803f0000000000000000000080bf0000903e000000000000003e000000000000803f000000000000483f0000203f0000803f0000000000000000000080bf0000a03e000000000000003e000000000000803f000000000000503f0000203f0000803f0000000000000000000080bf0000b03e000000000000003e000000000000803f000000000000583f0000203f0000803f0000000000000000000080bf0000c03e000000000000003e000000000000803f000000000000603f0000203f0000803f0000000000000000000080bf0000d03e000000000000003e000000000000803f000000000000683f0000203f0000803f0000000000000000000080bf0000e03e000000000000003e000000000000803f000000000000703f0000203f0000803f0000000000000000000080bf0000f03e000000000000003e000000000000803f000000000000783f0000203f0000803f0000000000000000000080bf0000003f000000000000003e000000000000803f000000000000803f0000203f0000803f0000000000000000000080bf000000bf000000000000203e000000000000803f00000000000000000000283f0000803f0000000000000000000080bf0000f0be000000000000203e000000000000803f000000000000003d0000283f0000803f0000000000000000000080bf0000e0be000000000000203e000000000000803f000000000000803d0000283f0000803f0000000000000000000080bf0000d0be000000000000203e000000000000803f000000000000c03d0000283f0000803f0000000000000000000080bf0000c0be000000000000203e000000000000803f000000000000003e0000283f0000803f0000000000000000000080bf0000b0be000000000000203e000000000000803f000000000000203e0000283f0000803f0000000000000000000080bf0000a0be000000000000203e000000000000803f000000000000403e0000283f0000803f0000000000000000000080bf000090be000000000000203e000000000000803f000000000000603e0000283f0000803f0000000000000000000080bf000080be000000000000203e000000000000803f000000000000803e0000283f0000803f0000000000000000000080bf000060be000000000000203e000000000000803f000000000000903e0000283f0000803f0000000000000000000080bf000040be000000000000203e000000000000803f000000000000a03e0000283f0000803f0000000000000000000080bf000020be000000000000203e000000000000803f000000000000b03e0000283f0000803f0000000000000000000080bf000000be000000000000203e000000000000803f000000000000c03e0000283f0000803f0000000000000000000080bf0000c0bd000000000000203e000000000000803f000000000000d03e0000283f0000803f0000000000000000000080bf000080bd000000000000203e000000000000803f000000000000e03e0000283f0000803f0000000000000000000080bf000000bd000000000000203e000000000000803f000000000000f03e0000283f0000803f0000000000000000000080bf00000000000000000000203e000000000000803f000000000000003f0000283f0000803f0000000000000000000080bf0000003d000000000000203e000000000000803f000000000000083f0000283f0000803f0000000000000000000080bf0000803d000000000000203e000000000000803f000000000000103f0000283f0000803f0000000000000000000080bf0000c03d000000000000203e000000000000803f000000000000183f0000283f0000803f0000000000000000000080bf0000003e000000000000203e000000000000803f000000000000203f0000283f0000803f0000000000000000000080bf0000203e000000000000203e000000000000803f000000000000283f0000283f0000803f0000000000000000000080bf0000403e000000000000203e000000000000803f000000000000303f0000283f0000803f0000000000000000000080bf0000603e000000000000203e000000000000803f000000000000383f0000283f0000803f0000000000000000000080bf0000803e000000000000203e000000000000803f000000000000403f0000283f0000803f0000000000000000000080bf0000903e000000000000203e000000000000803f000000000000483f0000283f0000803f0000000000000000000080bf0000a03e000000000000203e000000000000803f000000000000503f0000283f0000803f0000000000000000000080bf0000b03e000000000000203e000000000000803f000000000000583f0000283f0000803f0000000000000000000080bf0000c03e000000000000203e000000000000803f000000000000603f0000283f0000803f0000000000000000000080bf0000d03e000000000000203e000000000000803f000000000000683f0000283f0000803f0000000000000000000080bf0000e03e000000000000203e000000000000803f000000000000703f0000283f0000803f0000000000000000000080bf0000f03e000000000000203e000000000000803f000000000000783f0000283f0000803f0000000000000000000080bf0000003f000000000000203e000000000000803f000000000000803f0000283f0000803f0000000000000000000080bf000000bf000000000000403e000000000000803f00000000000000000000303f0000803f0000000000000000000080bf0000f0be000000000000403e000000000000803f000000000000003d0000303f0000803f0000000000000000000080bf0000e0be000000000000403e000000000000803f000000000000803d0000303f0000803f0000000000000000000080bf0000d0be000000000000403e000000000000803f000000000000c03d0000303f0000803f0000000000000000000080bf0000c0be000000000000403e000000000000803f000000000000003e0000303f0000803f0000000000000000000080bf0000b0be000000000000403e000000000000803f000000000000203e0000303f0000803f0000000000000000000080bf0000a0be000000000000403e000000000000803f000000000000403e0000303f0000803f0000000000000000000080bf000090be000000000000403e000000000000803f000000000000603e0000303f0000803f0000000000000000000080bf000080be000000000000403e000000000000803f000000000000803e0000303f0000803f0000000000000000000080bf000060be000000000000403e000000000000803f000000000000903e0000303f0000803f0000000000000000000080bf000040be000000000000403e000000000000803f000000000000a03e0000303f0000803f0000000000000000000080bf000020be000000000000403e000000000000803f000000000000b03e0000303f0000803f0000000000000000000080bf000000be000000000000403e000000000000803f000000000000c03e0000303f0000803f0000000000000000000080bf0000c0bd000000000000403e000000000000803f000000000000d03e0000303f0000803f0000000000000000000080bf000080bd000000000000403e000000000000803f000000000000e03e0000303f0000803f0000000000000000000080bf000000bd000000000000403e000000000000803f000000000000f03e0000303f0000803f0000000000000000000080bf00000000000000000000403e000000000000803f000000000000003f0000303f0000803f0000000000000000000080bf0000003d000000000000403e000000000000803f000000000000083f0000303f0000803f0000000000000000000080bf0000803d000000000000403e000000000000803f000000000000103f0000303f0000803f0000000000000000000080bf0000c03d000000000000403e000000000000803f000000000000183f0000303f0000803f0000000000000000000080bf0000003e000000000000403e000000000000803f000000000000203f0000303f0000803f0000000000000000000080bf0000203e000000000000403e000000000000803f000000000000283f0000303f0000803f0000000000000000000080bf0000403e000000000000403e000000000000803f000000000000303f0000303f0000803f0000000000000000000080bf0000603e000000000000403e000000000000803f000000000000383f0000303f0000803f0000000000000000000080bf0000803e000000000000403e000000000000803f000000000000403f0000303f0000803f0000000000000000000080bf0000903e000000000000403e000000000000803f000000000000483f0000303f0000803f0000000000000000000080bf0000a03e000000000000403e000000000000803f000000000000503f0000303f0000803f0000000000000000000080bf0000b03e000000000000403e000000000000803f000000000000583f0000303f0000803f0000000000000000000080bf0000c03e000000000000403e000000000000803f000000000000603f0000303f0000803f0000000000000000000080bf0000d03e000000000000403e000000000000803f000000000000683f0000303f0000803f0000000000000000000080bf0000e03e000000000000403e000000000000803f000000000000703f0000303f0000803f0000000000000000000080bf0000f03e000000000000403e000000000000803f000000000000783f0000303f0000803f0000000000000000000080bf0000003f000000000000403e000000000000803f000000000000803f0000303f0000803f0000000000000000000080bf000000bf000000000000603e000000000000803f00000000000000000000383f0000803f0000000000000000000080bf0000f0be000000000000603e000000000000803f000000000000003d0000383f0000803f0000000000000000000080bf0000e0be000000000000603e000000000000803f000000000000803d0000383f0000803f0000000000000000000080bf0000d0be000000000000603e000000000000803f000000000000c03d0000383f0000803f0000000000000000000080bf0000c0be000000000000603e000000000000803f000000000000003e0000383f0000803f0000000000000000000080bf0000b0be000000000000603e000000000000803f000000000000203e0000383f0000803f0000000000000000000080bf0000a0be000000000000603e000000000000803f000000000000403e0000383f0000803f0000000000000000000080bf000090be000000000000603e000000000000803f000000000000603e0000383f0000803f0000000000000000000080bf000080be000000000000603e000000000000803f000000000000803e0000383f0000803f0000000000000000000080bf000060be000000000000603e000000000000803f000000000000903e0000383f0000803f0000000000000000000080bf000040be000000000000603e000000000000803f000000000000a03e0000383f0000803f0000000000000000000080bf000020be000000000000603e000000000000803f000000000000b03e0000383f0000803f0000000000000000000080bf000000be000000000000603e000000000000803f000000000000c03e0000383f0000803f0000000000000000000080bf0000c0bd000000000000603e000000000000803f000000000000d03e0000383f0000803f0000000000000000000080bf000080bd000000000000603e000000000000803f000000000000e03e0000383f0000803f0000000000000000000080bf000000bd000000000000603e000000000000803f000000000000f03e0000383f0000803f0000000000000000000080bf00000000000000000000603e000000000000803f000000000000003f0000383f0000803f0000000000000000000080bf0000003d000000000000603e000000000000803f000000000000083f0000383f0000803f0000000000000000000080bf0000803d000000000000603e000000000000803f000000000000103f0000383f0000803f0000000000000000000080bf0000c03d000000000000603e000000000000803f000000000000183f0000383f0000803f0000000000000000000080bf0000003e000000000000603e000000000000803f000000000000203f0000383f0000803f0000000000000000000080bf0000203e000000000000603e000000000000803f000000000000283f0000383f0000803f0000000000000000000080bf0000403e000000000000603e000000000000803f000000000000303f0000383f0000803f0000000000000000000080bf0000603e000000000000603e000000000000803f000000000000383f0000383f0000803f0000000000000000000080bf0000803e000000000000603e000000000000803f000000000000403f0000383f0000803f0000000000000000000080bf0000903e000000000000603e000000000000803f000000000000483f0000383f0000803f0000000000000000000080bf0000a03e000000000000603e000000000000803f000000000000503f0000383f0000803f0000000000000000000080bf0000b03e000000000000603e000000000000803f000000000000583f0000383f0000803f0000000000000000000080bf0000c03e000000000000603e000000000000803f000000000000603f0000383f0000803f0000000000000000000080bf0000d03e000000000000603e000000000000803f000000000000683f0000383f0000803f0000000000000000000080bf0000e03e000000000000603e000000000000803f000000000000703f0000383f0000803f0000000000000000000080bf0000f03e000000000000603e000000000000803f000000000000783f0000383f0000803f0000000000000000000080bf0000003f000000000000603e000000000000803f000000000000803f0000383f0000803f0000000000000000000080bf000000bf000000000000803e000000000000803f00000000000000000000403f0000803f0000000000000000000080bf0000f0be000000000000803e000000000000803f000000000000003d0000403f0000803f0000000000000000000080bf0000e0be000000000000803e000000000000803f000000000000803d0000403f0000803f0000000000000000000080bf0000d0be000000000000803e000000000000803f000000000000c03d0000403f0000803f0000000000000000000080bf0000c0be000000000000803e000000000000803f000000000000003e0000403f0000803f0000000000000000000080bf0000b0be000000000000803e000000000000803f000000000000203e0000403f0000803f0000000000000000000080bf0000a0be000000000000803e000000000000803f000000000000403e0000403f0000803f0000000000000000000080bf000090be000000000000803e000000000000803f000000000000603e0000403f0000803f0000000000000000000080bf000080be000000000000803e000000000000803f000000000000803e0000403f0000803f0000000000000000000080bf000060be000000000000803e000000000000803f000000000000903e0000403f0000803f0000000000000000000080bf000040be000000000000803e000000000000803f000000000000a03e0000403f0000803f0000000000000000000080bf000020be000000000000803e000000000000803f000000000000b03e0000403f0000803f0000000000000000000080bf000000be000000000000803e000000000000803f000000000000c03e0000403f0000803f0000000000000000000080bf0000c0bd000000000000803e000000000000803f000000000000d03e0000403f0000803f0000000000000000000080bf000080bd000000000000803e000000000000803f000000000000e03e0000403f0000803f0000000000000000000080bf000000bd000000000000803e000000000000803f000000000000f03e0000403f0000803f0000000000000000000080bf00000000000000000000803e000000000000803f000000000000003f0000403f0000803f0000000000000000000080bf0000003d000000000000803e000000000000803f000000000000083f0000403f0000803f0000000000000000000080bf0000803d000000000000803e000000000000803f000000000000103f0000403f0000803f0000000000000000000080bf0000c03d000000000000803e000000000000803f000000000000183f0000403f0000803f0000000000000000000080bf0000003e000000000000803e000000000000803f000000000000203f0000403f0000803f0000000000000000000080bf0000203e000000000000803e000000000000803f000000000000283f0000403f0000803f0000000000000000000080bf0000403e000000000000803e000000000000803f000000000000303f0000403f0000803f0000000000000000000080bf0000603e000000000000803e000000000000803f000000000000383f0000403f0000803f0000000000000000000080bf0000803e000000000000803e000000000000803f000000000000403f0000403f0000803f0000000000000000000080bf0000903e000000000000803e000000000000803f000000000000483f0000403f0000803f0000000000000000000080bf0000a03e000000000000803e000000000000803f000000000000503f0000403f0000803f0000000000000000000080bf0000b03e000000000000803e000000000000803f000000000000583f0000403f0000803f0000000000000000000080bf0000c03e000000000000803e000000000000803f000000000000603f0000403f0000803f0000000000000000000080bf0000d03e000000000000803e000000000000803f000000000000683f0000403f0000803f0000000000000000000080bf0000e03e000000000000803e000000000000803f000000000000703f0000403f0000803f0000000000000000000080bf0000f03e000000000000803e000000000000803f000000000000783f0000403f0000803f0000000000000000000080bf0000003f000000000000803e000000000000803f000000000000803f0000403f0000803f0000000000000000000080bf000000bf000000000000903e000000000000803f00000000000000000000483f0000803f0000000000000000000080bf0000f0be000000000000903e000000000000803f000000000000003d0000483f0000803f0000000000000000000080bf0000e0be000000000000903e000000000000803f000000000000803d0000483f0000803f0000000000000000000080bf0000d0be000000000000903e000000000000803f000000000000c03d0000483f0000803f0000000000000000000080bf0000c0be000000000000903e000000000000803f000000000000003e0000483f0000803f0000000000000000000080bf0000b0be000000000000903e000000000000803f000000000000203e0000483f0000803f0000000000000000000080bf0000a0be000000000000903e000000000000803f000000000000403e0000483f0000803f0000000000000000000080bf000090be000000000000903e000000000000803f000000000000603e0000483f0000803f0000000000000000000080bf000080be000000000000903e000000000000803f000000000000803e0000483f0000803f0000000000000000000080bf000060be000000000000903e000000000000803f000000000000903e0000483f0000803f0000000000000000000080bf000040be000000000000903e000000000000803f000000000000a03e0000483f0000803f0000000000000000000080bf000020be000000000000903e000000000000803f000000000000b03e0000483f0000803f0000000000000000000080bf000000be000000000000903e000000000000803f000000000000c03e0000483f0000803f0000000000000000000080bf0000c0bd000000000000903e000000000000803f000000000000d03e0000483f0000803f0000000000000000000080bf000080bd000000000000903e000000000000803f000000000000e03e0000483f0000803f0000000000000000000080bf000000bd000000000000903e000000000000803f000000000000f03e0000483f0000803f0000000000000000000080bf00000000000000000000903e000000000000803f000000000000003f0000483f0000803f0000000000000000000080bf0000003d000000000000903e000000000000803f000000000000083f0000483f0000803f0000000000000000000080bf0000803d000000000000903e000000000000803f000000000000103f0000483f0000803f0000000000000000000080bf0000c03d000000000000903e000000000000803f000000000000183f0000483f0000803f0000000000000000000080bf0000003e000000000000903e000000000000803f000000000000203f0000483f0000803f0000000000000000000080bf0000203e000000000000903e000000000000803f000000000000283f0000483f0000803f0000000000000000000080bf0000403e000000000000903e000000000000803f000000000000303f0000483f0000803f0000000000000000000080bf0000603e000000000000903e000000000000803f000000000000383f0000483f0000803f0000000000000000000080bf0000803e000000000000903e000000000000803f000000000000403f0000483f0000803f0000000000000000000080bf0000903e000000000000903e000000000000803f000000000000483f0000483f0000803f0000000000000000000080bf0000a03e000000000000903e000000000000803f000000000000503f0000483f0000803f0000000000000000000080bf0000b03e000000000000903e000000000000803f000000000000583f0000483f0000803f0000000000000000000080bf0000c03e000000000000903e000000000000803f000000000000603f0000483f0000803f0000000000000000000080bf0000d03e000000000000903e000000000000803f000000000000683f0000483f0000803f0000000000000000000080bf0000e03e000000000000903e000000000000803f000000000000703f0000483f0000803f0000000000000000000080bf0000f03e000000000000903e000000000000803f000000000000783f0000483f0000803f0000000000000000000080bf0000003f000000000000903e000000000000803f000000000000803f0000483f0000803f0000000000000000000080bf000000bf000000000000a03e000000000000803f00000000000000000000503f0000803f0000000000000000000080bf0000f0be000000000000a03e000000000000803f000000000000003d0000503f0000803f0000000000000000000080bf0000e0be000000000000a03e000000000000803f000000000000803d0000503f0000803f0000000000000000000080bf0000d0be000000000000a03e000000000000803f000000000000c03d0000503f0000803f0000000000000000000080bf0000c0be000000000000a03e000000000000803f000000000000003e0000503f0000803f0000000000000000000080bf0000b0be000000000000a03e000000000000803f000000000000203e0000503f0000803f0000000000000000000080bf0000a0be000000000000a03e000000000000803f000000000000403e0000503f0000803f0000000000000000000080bf000090be000000000000a03e000000000000803f000000000000603e0000503f0000803f0000000000000000000080bf000080be000000000000a03e000000000000803f000000000000803e0000503f0000803f0000000000000000000080bf000060be000000000000a03e000000000000803f000000000000903e0000503f0000803f0000000000000000000080bf000040be000000000000a03e000000000000803f000000000000a03e0000503f0000803f0000000000000000000080bf000020be000000000000a03e000000000000803f000000000000b03e0000503f0000803f0000000000000000000080bf000000be000000000000a03e000000000000803f000000000000c03e0000503f0000803f0000000000000000000080bf0000c0bd000000000000a03e000000000000803f000000000000d03e0000503f0000803f0000000000000000000080bf000080bd000000000000a03e000000000000803f000000000000e03e0000503f0000803f0000000000000000000080bf000000bd000000000000a03e000000000000803f000000000000f03e0000503f0000803f0000000000000000000080bf00000000000000000000a03e000000000000803f000000000000003f0000503f0000803f0000000000000000000080bf0000003d000000000000a03e000000000000803f000000000000083f0000503f0000803f0000000000000000000080bf0000803d000000000000a03e000000000000803f000000000000103f0000503f0000803f0000000000000000000080bf0000c03d000000000000a03e000000000000803f000000000000183f0000503f0000803f0000000000000000000080bf0000003e000000000000a03e000000000000803f000000000000203f0000503f0000803f0000000000000000000080bf0000203e000000000000a03e000000000000803f000000000000283f0000503f0000803f0000000000000000000080bf0000403e000000000000a03e000000000000803f000000000000303f0000503f0000803f0000000000000000000080bf0000603e000000000000a03e000000000000803f000000000000383f0000503f0000803f0000000000000000000080bf0000803e000000000000a03e000000000000803f000000000000403f0000503f0000803f0000000000000000000080bf0000903e000000000000a03e000000000000803f000000000000483f0000503f0000803f0000000000000000000080bf0000a03e000000000000a03e000000000000803f000000000000503f0000503f0000803f0000000000000000000080bf0000b03e000000000000a03e000000000000803f000000000000583f0000503f0000803f0000000000000000000080bf0000c03e000000000000a03e000000000000803f000000000000603f0000503f0000803f0000000000000000000080bf0000d03e000000000000a03e000000000000803f000000000000683f0000503f0000803f0000000000000000000080bf0000e03e000000000000a03e000000000000803f000000000000703f0000503f0000803f0000000000000000000080bf0000f03e000000000000a03e000000000000803f000000000000783f0000503f0000803f0000000000000000000080bf0000003f000000000000a03e000000000000803f000000000000803f0000503f0000803f0000000000000000000080bf000000bf000000000000b03e000000000000803f00000000000000000000583f0000803f0000000000000000000080bf0000f0be000000000000b03e000000000000803f000000000000003d0000583f0000803f0000000000000000000080bf0000e0be000000000000b03e000000000000803f000000000000803d0000583f0000803f0000000000000000000080bf0000d0be000000000000b03e000000000000803f000000000000c03d0000583f0000803f0000000000000000000080bf0000c0be000000000000b03e000000000000803f000000000000003e0000583f0000803f0000000000000000000080bf0000b0be000000000000b03e000000000000803f000000000000203e0000583f0000803f0000000000000000000080bf0000a0be000000000000b03e000000000000803f000000000000403e0000583f0000803f0000000000000000000080bf000090be000000000000b03e000000000000803f000000000000603e0000583f0000803f0000000000000000000080bf000080be000000000000b03e000000000000803f000000000000803e0000583f0000803f0000000000000000000080bf000060be000000000000b03e000000000000803f000000000000903e0000583f0000803f0000000000000000000080bf000040be000000000000b03e000000000000803f000000000000a03e0000583f0000803f0000000000000000000080bf000020be000000000000b03e000000000000803f000000000000b03e0000583f0000803f0000000000000000000080bf000000be000000000000b03e000000000000803f000000000000c03e0000583f0000803f0000000000000000000080bf0000c0bd000000000000b03e000000000000803f000000000000d03e0000583f0000803f0000000000000000000080bf000080bd000000000000b03e000000000000803f000000000000e03e0000583f0000803f0000000000000000000080bf000000bd000000000000b03e000000000000803f000000000000f03e0000583f0000803f0000000000000000000080bf00000000000000000000b03e000000000000803f000000000000003f0000583f0000803f0000000000000000000080bf0000003d000000000000b03e000000000000803f000000000000083f0000583f0000803f0000000000000000000080bf0000803d000000000000b03e000000000000803f000000000000103f0000583f0000803f0000000000000000000080bf0000c03d000000000000b03e000000000000803f000000000000183f0000583f0000803f0000000000000000000080bf0000003e000000000000b03e000000000000803f000000000000203f0000583f0000803f0000000000000000000080bf0000203e000000000000b03e000000000000803f000000000000283f0000583f0000803f0000000000000000000080bf0000403e000000000000b03e000000000000803f000000000000303f0000583f0000803f0000000000000000000080bf0000603e000000000000b03e000000000000803f000000000000383f0000583f0000803f0000000000000000000080bf0000803e000000000000b03e000000000000803f000000000000403f0000583f0000803f0000000000000000000080bf0000903e000000000000b03e000000000000803f000000000000483f0000583f0000803f0000000000000000000080bf0000a03e000000000000b03e000000000000803f000000000000503f0000583f0000803f0000000000000000000080bf0000b03e000000000000b03e000000000000803f000000000000583f0000583f0000803f0000000000000000000080bf0000c03e000000000000b03e000000000000803f000000000000603f0000583f0000803f0000000000000000000080bf0000d03e000000000000b03e000000000000803f000000000000683f0000583f0000803f0000000000000000000080bf0000e03e000000000000b03e000000000000803f000000000000703f0000583f0000803f0000000000000000000080bf0000f03e000000000000b03e000000000000803f000000000000783f0000583f0000803f0000000000000000000080bf0000003f000000000000b03e000000000000803f000000000000803f0000583f0000803f0000000000000000000080bf000000bf000000000000c03e000000000000803f00000000000000000000603f0000803f0000000000000000000080bf0000f0be000000000000c03e000000000000803f000000000000003d0000603f0000803f0000000000000000000080bf0000e0be000000000000c03e000000000000803f000000000000803d0000603f0000803f0000000000000000000080bf0000d0be000000000000c03e000000000000803f000000000000c03d0000603f0000803f0000000000000000000080bf0000c0be000000000000c03e000000000000803f000000000000003e0000603f0000803f0000000000000000000080bf0000b0be000000000000c03e000000000000803f000000000000203e0000603f0000803f0000000000000000000080bf0000a0be000000000000c03e000000000000803f000000000000403e0000603f0000803f0000000000000000000080bf000090be000000000000c03e000000000000803f000000000000603e0000603f0000803f0000000000000000000080bf000080be000000000000c03e000000000000803f000000000000803e0000603f0000803f0000000000000000000080bf000060be000000000000c03e000000000000803f000000000000903e0000603f0000803f0000000000000000000080bf000040be000000000000c03e000000000000803f000000000000a03e0000603f0000803f0000000000000000000080bf000020be000000000000c03e000000000000803f000000000000b03e0000603f0000803f0000000000000000000080bf000000be000000000000c03e000000000000803f000000000000c03e0000603f0000803f0000000000000000000080bf0000c0bd000000000000c03e000000000000803f000000000000d03e0000603f0000803f0000000000000000000080bf000080bd000000000000c03e000000000000803f000000000000e03e0000603f0000803f0000000000000000000080bf000000bd000000000000c03e000000000000803f000000000000f03e0000603f0000803f0000000000000000000080bf00000000000000000000c03e000000000000803f000000000000003f0000603f0000803f0000000000000000000080bf0000003d000000000000c03e000000000000803f000000000000083f0000603f0000803f0000000000000000000080bf0000803d000000000000c03e000000000000803f000000000000103f0000603f0000803f0000000000000000000080bf0000c03d000000000000c03e000000000000803f000000000000183f0000603f0000803f0000000000000000000080bf0000003e000000000000c03e000000000000803f000000000000203f0000603f0000803f0000000000000000000080bf0000203e000000000000c03e000000000000803f000000000000283f0000603f0000803f0000000000000000000080bf0000403e000000000000c03e000000000000803f000000000000303f0000603f0000803f0000000000000000000080bf0000603e000000000000c03e000000000000803f000000000000383f0000603f0000803f0000000000000000000080bf0000803e000000000000c03e000000000000803f000000000000403f0000603f0000803f0000000000000000000080bf0000903e000000000000c03e000000000000803f000000000000483f0000603f0000803f0000000000000000000080bf0000a03e000000000000c03e000000000000803f000000000000503f0000603f0000803f0000000000000000000080bf0000b03e000000000000c03e000000000000803f000000000000583f0000603f0000803f0000000000000000000080bf0000c03e000000000000c03e000000000000803f000000000000603f0000603f0000803f0000000000000000000080bf0000d03e000000000000c03e000000000000803f000000000000683f0000603f0000803f0000000000000000000080bf0000e03e000000000000c03e000000000000803f000000000000703f0000603f0000803f0000000000000000000080bf0000f03e000000000000c03e000000000000803f000000000000783f0000603f0000803f0000000000000000000080bf0000003f000000000000c03e000000000000803f000000000000803f0000603f0000803f0000000000000000000080bf000000bf000000000000d03e000000000000803f00000000000000000000683f0000803f0000000000000000000080bf0000f0be000000000000d03e000000000000803f000000000000003d0000683f0000803f0000000000000000000080bf0000e0be000000000000d03e000000000000803f000000000000803d0000683f0000803f0000000000000000000080bf0000d0be000000000000d03e000000000000803f000000000000c03d0000683f0000803f0000000000000000000080bf0000c0be000000000000d03e000000000000803f000000000000003e0000683f0000803f0000000000000000000080bf0000b0be000000000000d03e000000000000803f000000000000203e0000683f0000803f0000000000000000000080bf0000a0be000000000000d03e000000000000803f000000000000403e0000683f0000803f0000000000000000000080bf000090be000000000000d03e000000000000803f000000000000603e0000683f0000803f0000000000000000000080bf000080be000000000000d03e000000000000803f000000000000803e0000683f0000803f0000000000000000000080bf000060be000000000000d03e000000000000803f000000000000903e0000683f0000803f0000000000000000000080bf000040be000000000000d03e000000000000803f000000000000a03e0000683f0000803f0000000000000000000080bf000020be000000000000d03e000000000000803f000000000000b03e0000683f0000803f0000000000000000000080bf000000be000000000000d03e000000000000803f000000000000c03e0000683f0000803f0000000000000000000080bf0000c0bd000000000000d03e000000000000803f000000000000d03e0000683f0000803f0000000000000000000080bf000080bd000000000000d03e000000000000803f000000000000e03e0000683f0000803f0000000000000000000080bf000000bd000000000000d03e000000000000803f000000000000f03e0000683f0000803f0000000000000000000080bf00000000000000000000d03e000000000000803f000000000000003f0000683f0000803f0000000000000000000080bf0000003d000000000000d03e000000000000803f000000000000083f0000683f0000803f0000000000000000000080bf0000803d000000000000d03e000000000000803f000000000000103f0000683f0000803f0000000000000000000080bf0000c03d000000000000d03e000000000000803f000000000000183f0000683f0000803f0000000000000000000080bf0000003e000000000000d03e000000000000803f000000000000203f0000683f0000803f0000000000000000000080bf0000203e000000000000d03e000000000000803f000000000000283f0000683f0000803f0000000000000000000080bf0000403e000000000000d03e000000000000803f000000000000303f0000683f0000803f0000000000000000000080bf0000603e000000000000d03e000000000000803f000000000000383f0000683f0000803f0000000000000000000080bf0000803e000000000000d03e000000000000803f000000000000403f0000683f0000803f0000000000000000000080bf0000903e000000000000d03e000000000000803f000000000000483f0000683f0000803f0000000000000000000080bf0000a03e000000000000d03e000000000000803f000000000000503f0000683f0000803f0000000000000000000080bf0000b03e000000000000d03e000000000000803f000000000000583f0000683f0000803f0000000000000000000080bf0000c03e000000000000d03e000000000000803f000000000000603f0000683f0000803f0000000000000000000080bf0000d03e000000000000d03e000000000000803f000000000000683f0000683f0000803f0000000000000000000080bf0000e03e000000000000d03e000000000000803f000000000000703f0000683f0000803f0000000000000000000080bf0000f03e000000000000d03e000000000000803f000000000000783f0000683f0000803f0000000000000000000080bf0000003f000000000000d03e000000000000803f000000000000803f0000683f0000803f0000000000000000000080bf000000bf000000000000e03e000000000000803f00000000000000000000703f0000803f0000000000000000000080bf0000f0be000000000000e03e000000000000803f000000000000003d0000703f0000803f0000000000000000000080bf0000e0be000000000000e03e000000000000803f000000000000803d0000703f0000803f0000000000000000000080bf0000d0be000000000000e03e000000000000803f000000000000c03d0000703f0000803f0000000000000000000080bf0000c0be000000000000e03e000000000000803f000000000000003e0000703f0000803f0000000000000000000080bf0000b0be000000000000e03e000000000000803f000000000000203e0000703f0000803f0000000000000000000080bf0000a0be000000000000e03e000000000000803f000000000000403e0000703f0000803f0000000000000000000080bf000090be000000000000e03e000000000000803f000000000000603e0000703f0000803f0000000000000000000080bf000080be000000000000e03e000000000000803f000000000000803e0000703f0000803f0000000000000000000080bf000060be000000000000e03e000000000000803f000000000000903e0000703f0000803f0000000000000000000080bf000040be000000000000e03e000000000000803f000000000000a03e0000703f0000803f0000000000000000000080bf000020be000000000000e03e000000000000803f000000000000b03e0000703f0000803f0000000000000000000080bf000000be000000000000e03e000000000000803f000000000000c03e0000703f0000803f0000000000000000000080bf0000c0bd000000000000e03e000000000000803f000000000000d03e0000703f0000803f0000000000000000000080bf000080bd000000000000e03e000000000000803f000000000000e03e0000703f0000803f0000000000000000000080bf000000bd000000000000e03e000000000000803f000000000000f03e0000703f0000803f0000000000000000000080bf00000000000000000000e03e000000000000803f000000000000003f0000703f0000803f0000000000000000000080bf0000003d000000000000e03e000000000000803f000000000000083f0000703f0000803f0000000000000000000080bf0000803d000000000000e03e000000000000803f000000000000103f0000703f0000803f0000000000000000000080bf0000c03d000000000000e03e000000000000803f000000000000183f0000703f0000803f0000000000000000000080bf0000003e000000000000e03e000000000000803f000000000000203f0000703f0000803f0000000000000000000080bf0000203e000000000000e03e000000000000803f000000000000283f0000703f0000803f0000000000000000000080bf0000403e000000000000e03e000000000000803f000000000000303f0000703f0000803f0000000000000000000080bf0000603e000000000000e03e000000000000803f000000000000383f0000703f0000803f0000000000000000000080bf0000803e000000000000e03e000000000000803f000000000000403f0000703f0000803f0000000000000000000080bf0000903e000000000000e03e000000000000803f000000000000483f0000703f0000803f0000000000000000000080bf0000a03e000000000000e03e000000000000803f000000000000503f0000703f0000803f0000000000000000000080bf0000b03e000000000000e03e000000000000803f000000000000583f0000703f0000803f0000000000000000000080bf0000c03e000000000000e03e000000000000803f000000000000603f0000703f0000803f0000000000000000000080bf0000d03e000000000000e03e000000000000803f000000000000683f0000703f0000803f0000000000000000000080bf0000e03e000000000000e03e000000000000803f000000000000703f0000703f0000803f0000000000000000000080bf0000f03e000000000000e03e000000000000803f000000000000783f0000703f0000803f0000000000000000000080bf0000003f000000000000e03e000000000000803f000000000000803f0000703f0000803f0000000000000000000080bf000000bf000000000000f03e000000000000803f00000000000000000000783f0000803f0000000000000000000080bf0000f0be000000000000f03e000000000000803f000000000000003d0000783f0000803f0000000000000000000080bf0000e0be000000000000f03e000000000000803f000000000000803d0000783f0000803f0000000000000000000080bf0000d0be000000000000f03e000000000000803f000000000000c03d0000783f0000803f0000000000000000000080bf0000c0be000000000000f03e000000000000803f000000000000003e0000783f0000803f0000000000000000000080bf0000b0be000000000000f03e000000000000803f000000000000203e0000783f0000803f0000000000000000000080bf0000a0be000000000000f03e000000000000803f000000000000403e0000783f0000803f0000000000000000000080bf000090be000000000000f03e000000000000803f000000000000603e0000783f0000803f0000000000000000000080bf000080be000000000000f03e000000000000803f000000000000803e0000783f0000803f0000000000000000000080bf000060be000000000000f03e000000000000803f000000000000903e0000783f0000803f0000000000000000000080bf000040be000000000000f03e000000000000803f000000000000a03e0000783f0000803f0000000000000000000080bf000020be000000000000f03e000000000000803f000000000000b03e0000783f0000803f0000000000000000000080bf000000be000000000000f03e000000000000803f000000000000c03e0000783f0000803f0000000000000000000080bf0000c0bd000000000000f03e000000000000803f000000000000d03e0000783f0000803f0000000000000000000080bf000080bd000000000000f03e000000000000803f000000000000e03e0000783f0000803f0000000000000000000080bf000000bd000000000000f03e000000000000803f000000000000f03e0000783f0000803f0000000000000000000080bf00000000000000000000f03e000000000000803f000000000000003f0000783f0000803f0000000000000000000080bf0000003d000000000000f03e000000000000803f000000000000083f0000783f0000803f0000000000000000000080bf0000803d000000000000f03e000000000000803f000000000000103f0000783f0000803f0000000000000000000080bf0000c03d000000000000f03e000000000000803f000000000000183f0000783f0000803f0000000000000000000080bf0000003e000000000000f03e000000000000803f000000000000203f0000783f0000803f0000000000000000000080bf0000203e000000000000f03e000000000000803f000000000000283f0000783f0000803f0000000000000000000080bf0000403e000000000000f03e000000000000803f000000000000303f0000783f0000803f0000000000000000000080bf0000603e000000000000f03e000000000000803f000000000000383f0000783f0000803f0000000000000000000080bf0000803e000000000000f03e000000000000803f000000000000403f0000783f0000803f0000000000000000000080bf0000903e000000000000f03e000000000000803f000000000000483f0000783f0000803f0000000000000000000080bf0000a03e000000000000f03e000000000000803f000000000000503f0000783f0000803f0000000000000000000080bf0000b03e000000000000f03e000000000000803f000000000000583f0000783f0000803f0000000000000000000080bf0000c03e000000000000f03e000000000000803f000000000000603f0000783f0000803f0000000000000000000080bf0000d03e000000000000f03e000000000000803f000000000000683f0000783f0000803f0000000000000000000080bf0000e03e000000000000f03e000000000000803f000000000000703f0000783f0000803f0000000000000000000080bf0000f03e000000000000f03e000000000000803f000000000000783f0000783f0000803f0000000000000000000080bf0000003f000000000000f03e000000000000803f000000000000803f0000783f0000803f0000000000000000000080bf000000bf000000000000003f000000000000803f00000000000000000000803f0000803f0000000000000000000080bf0000f0be000000000000003f000000000000803f000000000000003d0000803f0000803f0000000000000000000080bf0000e0be000000000000003f000000000000803f000000000000803d0000803f0000803f0000000000000000000080bf0000d0be000000000000003f000000000000803f000000000000c03d0000803f0000803f0000000000000000000080bf0000c0be000000000000003f000000000000803f000000000000003e0000803f0000803f0000000000000000000080bf0000b0be000000000000003f000000000000803f000000000000203e0000803f0000803f0000000000000000000080bf0000a0be000000000000003f000000000000803f000000000000403e0000803f0000803f0000000000000000000080bf000090be000000000000003f000000000000803f000000000000603e0000803f0000803f0000000000000000000080bf000080be000000000000003f000000000000803f000000000000803e0000803f0000803f0000000000000000000080bf000060be000000000000003f000000000000803f000000000000903e0000803f0000803f0000000000000000000080bf000040be000000000000003f000000000000803f000000000000a03e0000803f0000803f0000000000000000000080bf000020be000000000000003f000000000000803f000000000000b03e0000803f0000803f0000000000000000000080bf000000be000000000000003f000000000000803f000000000000c03e0000803f0000803f0000000000000000000080bf0000c0bd000000000000003f000000000000803f000000000000d03e0000803f0000803f0000000000000000000080bf000080bd000000000000003f000000000000803f000000000000e03e0000803f0000803f0000000000000000000080bf000000bd000000000000003f000000000000803f000000000000f03e0000803f0000803f0000000000000000000080bf00000000000000000000003f000000000000803f000000000000003f0000803f0000803f0000000000000000000080bf0000003d000000000000003f000000000000803f000000000000083f0000803f0000803f0000000000000000000080bf0000803d000000000000003f000000000000803f000000000000103f0000803f0000803f0000000000000000000080bf0000c03d000000000000003f000000000000803f000000000000183f0000803f0000803f0000000000000000000080bf0000003e000000000000003f000000000000803f000000000000203f0000803f0000803f0000000000000000000080bf0000203e000000000000003f000000000000803f000000000000283f0000803f0000803f0000000000000000000080bf0000403e000000000000003f000000000000803f000000000000303f0000803f0000803f0000000000000000000080bf0000603e000000000000003f000000000000803f000000000000383f0000803f0000803f0000000000000000000080bf0000803e000000000000003f000000000000803f000000000000403f0000803f0000803f0000000000000000000080bf0000903e000000000000003f000000000000803f000000000000483f0000803f0000803f0000000000000000000080bf0000a03e000000000000003f000000000000803f000000000000503f0000803f0000803f0000000000000000000080bf0000b03e000000000000003f000000000000803f000000000000583f0000803f0000803f0000000000000000000080bf0000c03e000000000000003f000000000000803f000000000000603f0000803f0000803f0000000000000000000080bf0000d03e000000000000003f000000000000803f000000000000683f0000803f0000803f0000000000000000000080bf0000e03e000000000000003f000000000000803f000000000000703f0000803f0000803f0000000000000000000080bf0000f03e000000000000003f000000000000803f000000000000783f0000803f0000803f0000000000000000000080bf0000003f000000000000003f000000000000803f000000000000803f0000803f0000803f0000000000000000000080bf
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0.5, y: 0, z: 0.5}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshOptimized: 0
fileFormatVersion: 2
guid: 07450b72d45f7884181c594c53bcbcf0
timeCreated: 1490096407
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
......@@ -10,7 +10,7 @@ public class BigEnabler : MonoBehaviour {
}
// Update is called once per frame
void Update () {
if (AudioManager.instance.GetPitchValue () == 1) {
if (AudioManager.instance.GetAveragePitch ()[2] > 0.5f) {
Activated = true;
} else {
Activated = false;
......
......@@ -10,7 +10,7 @@ public class MediumEnabler : MonoBehaviour {
}
// Update is called once per frame
void Update () {
if (AudioManager.instance.GetPitchValue () == 1) {
if (AudioManager.instance.GetAveragePitch ()[1] < 0.5f) {
Activated = true;
} else {
Activated = false;
......
......@@ -10,7 +10,7 @@ public class SmallEnabler : MonoBehaviour {
}
// Update is called once per frame
void Update () {
if (AudioManager.instance.GetPitchValue () == 0) {
if (AudioManager.instance.GetAveragePitch ()[0] < 0.5f) {
Activated = true;
} else {
Activated = false;
......
......@@ -6,7 +6,6 @@ public class AudioManager : MonoBehaviour {
public static AudioManager instance;
//Global
private AudioClip mic;
private AudioSource mic_source;
public float volume_range_min;
public float volume_range_max;
......@@ -16,73 +15,105 @@ public class AudioManager : MonoBehaviour {
public float light_angle_max;
public float splash_force_value;
private float rms;
private float vol;
private float low_pitch = 0;
private float med_pitch = 0;
private float high_pitch = 0;
void Start () {
instance = this;
mic_source = GetComponent<AudioSource> ();
// print ("AudioManager initialized");
mic = Microphone.Start ("Built-in Microphone", true, 1, buffer_size); //Microphone setup (null will select the default Microphone)
mic_source.clip = mic;
mic_source.clip = Microphone.Start ("Built-in Microphone", true, 1, 256); //Microphone setup (null will select the default Microphone);
mic_source.loop = true;
mic_source.Play ();
mic_source.volume = 0.0f;
}
void Update () {
PitchAnalysis ();
AmplitudeAnalysis ();
}
public Vector3 GetSpecEnergy () {
float[] spec_data = new float[buffer_size]; //Creates an array pre-allocated (We want it quite small to reduce latency, I made it tweakable from the inspector)
mic.GetData (spec_data, 0); //Stores all the output data into the array I pre-allocated
public void AmplitudeAnalysis () {
int buf_size = 256;
float[] spec_data = new float[buf_size]; //Creates an array pre-allocated (We want it quite small to reduce latency, I made it tweakable from the inspector)
mic_source.clip.GetData (spec_data, 0); //Stores all the output data into the array I pre-allocated
float vol_sum = 0;
for (int i = 0; i < buf_size; i++) {
vol_sum += Mathf.Abs (spec_data[i] * spec_data[i]); //Only grabs the second Third values of the array (so the "low" pitch values)
}
rms = Mathf.Sqrt (vol_sum / buf_size) * 100; //RMS value
vol = 0;
if (!(vol < -30))
vol = 20 * Mathf.Log10 (rms / 0.1f);
else vol = -30;
}
public float GetRMS () {
return rms;
}
public float GetVolume(){
return vol;
}
public void PitchAnalysis () {
int buf_size = 256;
float[] spec_data = new float[buf_size];
AudioListener.GetSpectrumData (spec_data, 0, FFTWindow.Rectangular);
print (spec_data[100]);
//Low Pitch
float low_pitch_sum = 0; //Inits a float to store the sum of all the index arrays
for (int spec_index = 0; spec_index < spec_data.Length / 3; spec_index++) {
for (int spec_index = 0; spec_index < 20; spec_index++) {
low_pitch_sum += Mathf.Abs (spec_data[spec_index]); //Only grabs the first Third values of the array (so the "low" pitch values)
}
//Medium Pitch
float mid_pitch_sum = 0; //Inits a float to store the sum of all the index arrays
for (int spec_index = 0; spec_index < spec_data.Length / 3; spec_index++) {
mid_pitch_sum += Mathf.Abs (spec_data[spec_index + spec_data.Length / 3]); //Only grabs the second Third values of the array (so the "low" pitch values)
for (int spec_index = 20; spec_index < 100; spec_index++) {
mid_pitch_sum += Mathf.Abs (spec_data[spec_index]); //Only grabs the second Third values of the array (so the "low" pitch values)
}
//High Pitch<
float high_pitch_sum = 0; //Inits a float to store the sum of all the index arrays
for (int spec_index = 0; spec_index < spec_data.Length / 3; spec_index++) {
high_pitch_sum += Mathf.Abs (spec_data[spec_index + ((spec_data.Length / 3) * 2)]); //Only grabs the third Third values of the array (so the "low" pitch values)
for (int spec_index = 100; spec_index < spec_data.Length; spec_index++) {
high_pitch_sum += Mathf.Abs (spec_data[spec_index]); //Only grabs the third Third values of the array (so the "low" pitch values)
}
return new Vector3 ((low_pitch_sum / (spec_data.Length / 3) * 30), (mid_pitch_sum / (spec_data.Length / 3) * 30), (high_pitch_sum / (spec_data.Length / 3) * 30)); //Populates a Final vectore with the average of the sums of the all three parts of the buffer
}
public float GetAverageVolume () {
return ((GetSpecEnergy ()[0] + GetSpecEnergy ()[1] + GetSpecEnergy ()[2]) / 3); //Grouping all 3 arrays into 1 to get average of all values (global volume)
low_pitch = low_pitch_sum / 20;
med_pitch = mid_pitch_sum / 80;
high_pitch = high_pitch_sum / 156;
}
public Vector4 GetPitchData () {
float[] spec_data = new float[1024];
mic_source.GetSpectrumData (spec_data, 0, FFTWindow.Rectangular);
float Bin_1 = (spec_data[0] + spec_data[2] + spec_data[4]) / 3;
float Bin_2 = (spec_data[10] + spec_data[11] + spec_data[12]) / 3;
float Bin_3 = (spec_data[20] + spec_data[21] + spec_data[22]) / 3;
float Bin_4 = (spec_data[40] + spec_data[41] + spec_data[42] + spec_data[43]) / 4;
float Bin_5 = (spec_data[80] + spec_data[81] + spec_data[82] + spec_data[83]) / 4;
float Bin_6 = (spec_data[160] + spec_data[161] + spec_data[162] + spec_data[163]) / 5;
float Bin_7 = (spec_data[320] + spec_data[321] + spec_data[322] + spec_data[323]) / 5;
return new Vector4(Bin_1, Bin_3, Bin_5, Bin_7);
public Vector3 GetAveragePitch () {
return new Vector3 (low_pitch, med_pitch, high_pitch);
}
public float GetLightAngle () {
bool threshold_reached = PlayerSound.instance.GetComponentInChildren<Light> ().spotAngle > light_angle_max;
if (!threshold_reached) {
return GetAverageVolume () * light_angle_value;
return rms * light_angle_value;
} else {
return light_angle_max;
}
}
public int GetSplashForce () {
return (int) (GetAverageVolume () * splash_force_value);
return (int) (rms * splash_force_value);
}
public Color GetLightColor () {
Color output;
//Linear interpolation:
if (linear) {
float r = Mathf.Abs ((GetAverageVolume () - volume_range_min) / volume_range_max);
float r = Mathf.Abs ((rms - volume_range_min) / volume_range_max);
float b = Mathf.Abs (1 - r);
output = new Color (r, 0, b, 0.8f);
} else {
......@@ -91,13 +122,4 @@ public class AudioManager : MonoBehaviour {
return output;
}
public int GetPitchValue () {
int output = 0;
if (GetAverageVolume () > volume_range_max - (volume_range_max / 3)) {
return output = 2;
} else if (GetAverageVolume () > volume_range_max / 3) {
return output = 1;
}
return output;
}
}
\ No newline at end of file
......@@ -5,12 +5,8 @@ public class PlayerSound : MonoBehaviour {
//LIGHT
private Light light_self;
private Color update_color;
private float update_blue;
private float update_red;
private float light_angle;
public bool use_mic = false;
// Use this for initialization
void Start () {
instance = this;
......@@ -19,16 +15,10 @@ public class PlayerSound : MonoBehaviour {
// Update is called once per frame
void Update () {
light_angle = AudioManager.instance.GetLightAngle ();
// Fade color change:
// Range 40 - 220
update_color = AudioManager.instance.GetLightColor ();
if (use_mic && this.gameObject.tag == "Player") {
light_self.spotAngle = light_angle;
light_self.color = update_color;
light_self.spotAngle = AudioManager.instance.GetLightAngle ();;
light_self.color = AudioManager.instance.GetLightColor ();;
}
}
}
\ No newline at end of file
......@@ -11,19 +11,16 @@ public class RippleEffect : MonoBehaviour {
//This is why we need to create our own plane with many many vertices
private Mesh mesh; //Will store the created mesh
private Vector3[] vertices; //private Vector3[] normals ;
public float dampner = 0.800f; //How fast we want the wave to fade out
public float dampner; //How fast we want the wave to fade out
private int splash_force = 150; //How strongly we want our splash to be
private int splash_force_mic = 0; //Variable that will update the splash_force according to the mic
private bool swap_buffer = true; //Switches between the first and the second buffer
private bool ticked = false;
public int update_rate = 120;
public int mic_threshold = 2;
public int spread_bit_shift = 1;
public float wave_height_max = 2.0f;
static public int update_rate = 5;
public int spread_bit_shift;
private Vector3[] current_vertices;
public int cols = 128; //Number of the columns we want our plane to have (The bigger this is, the more computer intensive the calculations will be)
public int rows = 128; //Number of the rows we want our plane to have
public int cols; //Number of the columns we want our plane to have (The bigger this is, the more computer intensive the calculations will be)
public int rows; //Number of the rows we want our plane to have
void Start () {
MeshFilter mesh_filter = GetComponent<MeshFilter> (); //Attaches the mesh filter in he object to the mesh filter variable
......@@ -39,7 +36,7 @@ public class RippleEffect : MonoBehaviour {
vertex_indexes = new int[vertices.Length]; // Create an int array and allocates it's size to the number of vertices
/* ***************** Initializes and Populates the buffers (These two for loops have been inspired by the work of Ben Britten) ******************** */
/* ***************** Initializes and Populates then buffers (These two for loops have been inspired by the work of Ben Britten) ******************** */
int vertices_index = 0;
for (vertices_index = 0; vertices_index < vertices.Length; vertices_index++) {
vertex_indexes[vertices_index] = -1;
......@@ -93,10 +90,11 @@ public class RippleEffect : MonoBehaviour {
}
// Update is called once per frame
void Update () {
ticked = tick (update_rate);
splash_force_mic = AudioManager.instance.GetSplashForce ();
SplashDetect (); //Checks wether a splash has been initiated
update_rate = 3 + Mathf.Abs(20 - ((int) AudioManager.instance.GetRMS ()));
if (tick (update_rate) && PlayerSound.instance.use_mic == true && AudioManager.instance.GetRMS () >= 4f) {
splash_force_mic = AudioManager.instance.GetSplashForce ();
SplashDetect (); //Checks wether a splash has been initiated
}
int[] current_buffer;
if (swap_buffer) {
// process the ripples for this frame
......@@ -116,31 +114,31 @@ public class RippleEffect : MonoBehaviour {