Pulling from PaulStoffregen-Audiodds
#include "control_wm8731.h" | #include "control_wm8731.h" | ||||
#include "control_ak4558.h" | #include "control_ak4558.h" | ||||
#include "control_cs4272.h" | #include "control_cs4272.h" | ||||
#include "control_cs42448.h" | |||||
#include "effect_bitcrusher.h" | #include "effect_bitcrusher.h" | ||||
#include "effect_chorus.h" | #include "effect_chorus.h" | ||||
#include "effect_fade.h" | #include "effect_fade.h" | ||||
#include "effect_delay_ext.h" | #include "effect_delay_ext.h" | ||||
#include "effect_midside.h" | #include "effect_midside.h" | ||||
#include "effect_reverb.h" | #include "effect_reverb.h" | ||||
#include "effect_waveshaper.h" | |||||
#include "filter_biquad.h" | #include "filter_biquad.h" | ||||
#include "filter_fir.h" | #include "filter_fir.h" | ||||
#include "filter_variable.h" | #include "filter_variable.h" | ||||
#include "input_adcs.h" | #include "input_adcs.h" | ||||
#include "input_i2s.h" | #include "input_i2s.h" | ||||
#include "input_i2s_quad.h" | #include "input_i2s_quad.h" | ||||
#include "input_tdm.h" | |||||
#include "mixer.h" | #include "mixer.h" | ||||
#include "output_dac.h" | #include "output_dac.h" | ||||
#include "output_dacs.h" | #include "output_dacs.h" | ||||
#include "output_pwm.h" | #include "output_pwm.h" | ||||
#include "output_spdif.h" | #include "output_spdif.h" | ||||
#include "output_pt8211.h" | #include "output_pt8211.h" | ||||
#include "output_tdm.h" | |||||
#include "output_adat.h" | |||||
#include "play_memory.h" | #include "play_memory.h" | ||||
#include "play_queue.h" | #include "play_queue.h" | ||||
#include "play_sd_raw.h" | #include "play_sd_raw.h" | ||||
#include "synth_pinknoise.h" | #include "synth_pinknoise.h" | ||||
#include "synth_karplusstrong.h" | #include "synth_karplusstrong.h" | ||||
#include "synth_simple_drum.h" | #include "synth_simple_drum.h" | ||||
#include "synth_pwm.h" | |||||
#endif | #endif |
Use this graphical tool to design your audio project. Easily browse the library's many features, connect objects, export to Arduino code, and quickly access details for the functions each object provides for you to control it from your Arduino sketch! | Use this graphical tool to design your audio project. Easily browse the library's many features, connect objects, export to Arduino code, and quickly access details for the functions each object provides for you to control it from your Arduino sketch! | ||||
http://www.pjrc.com/teensy/gui/ | |||||
http://www.pjrc.com/teensy/gui/index.html | |||||
Supported Hardware | Supported Hardware |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "analyze_fft1024.h" | #include "analyze_fft1024.h" | ||||
#include "sqrt_integer.h" | #include "sqrt_integer.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "analyze_fft256.h" | #include "analyze_fft256.h" | ||||
#include "sqrt_integer.h" | #include "sqrt_integer.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" |
uint8_t naverage; | uint8_t naverage; | ||||
#endif | #endif | ||||
uint8_t count; | uint8_t count; | ||||
bool outputflag; | |||||
volatile bool outputflag; | |||||
audio_block_t *inputQueueArray[1]; | audio_block_t *inputQueueArray[1]; | ||||
arm_cfft_radix4_instance_q15 fft_inst; | arm_cfft_radix4_instance_q15 fft_inst; | ||||
}; | }; |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "analyze_notefreq.h" | #include "analyze_notefreq.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
#include "arm_math.h" | #include "arm_math.h" |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "analyze_peak.h" | #include "analyze_peak.h" | ||||
void AudioAnalyzePeak::update(void) | void AudioAnalyzePeak::update(void) |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "analyze_print.h" | #include "analyze_print.h" | ||||
#define STATE_IDLE 0 // doing nothing | #define STATE_IDLE 0 // doing nothing |
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "analyze_rms.h" | #include "analyze_rms.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
void AudioAnalyzeRMS::update(void) | void AudioAnalyzeRMS::update(void) | ||||
{ | { | ||||
audio_block_t *block = receiveReadOnly(); | audio_block_t *block = receiveReadOnly(); | ||||
if (!block) return; | |||||
if (!block) { | |||||
count++; | |||||
return; | |||||
} | |||||
#if defined(KINETISK) | #if defined(KINETISK) | ||||
uint32_t *p = (uint32_t *)(block->data); | uint32_t *p = (uint32_t *)(block->data); | ||||
uint32_t *end = p + AUDIO_BLOCK_SAMPLES/2; | uint32_t *end = p + AUDIO_BLOCK_SAMPLES/2; |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "analyze_tonedetect.h" | #include "analyze_tonedetect.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
* | * | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "control_ak4558.h" | #include "control_ak4558.h" | ||||
#include "Wire.h" | #include "Wire.h" | ||||
Serial.println(registers[AK4558_ROUT_VOL], BIN); | Serial.println(registers[AK4558_ROUT_VOL], BIN); | ||||
#endif | #endif | ||||
return ret; | return ret; | ||||
} | |||||
} |
/* Audio Library for Teensy 3.X | |||||
* Copyright (c) 2014, Paul Stoffregen, paul@pjrc.com | |||||
* | |||||
* Development of this audio library was funded by PJRC.COM, LLC by sales of | |||||
* Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | |||||
* open source software by purchasing Teensy or other PJRC products. | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice, development funding notice, and this permission | |||||
* notice shall be included in all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
* THE SOFTWARE. | |||||
*/ | |||||
#include <Arduino.h> | |||||
#include "control_cs42448.h" | |||||
#include "Wire.h" | |||||
#define CS42448_Chip_ID 0x01 | |||||
#define CS42448_Power_Control 0x02 | |||||
#define CS42448_Functional_Mode 0x03 | |||||
#define CS42448_Interface_Formats 0x04 | |||||
#define CS42448_ADC_Control_DAC_DeEmphasis 0x05 | |||||
#define CS42448_Transition_Control 0x06 | |||||
#define CS42448_DAC_Channel_Mute 0x07 | |||||
#define CS42448_AOUT1_Volume_Control 0x08 | |||||
#define CS42448_AOUT2_Volume_Control 0x09 | |||||
#define CS42448_AOUT3_Volume_Control 0x0A | |||||
#define CS42448_AOUT4_Volume_Control 0x0B | |||||
#define CS42448_AOUT5_Volume_Control 0x0C | |||||
#define CS42448_AOUT6_Volume_Control 0x0D | |||||
#define CS42448_AOUT7_Volume_Control 0x0E | |||||
#define CS42448_AOUT8_Volume_Control 0x0F | |||||
#define CS42448_DAC_Channel_Invert 0x10 | |||||
#define CS42448_AIN1_Volume_Control 0x11 | |||||
#define CS42448_AIN2_Volume_Control 0x12 | |||||
#define CS42448_AIN3_Volume_Control 0x13 | |||||
#define CS42448_AIN4_Volume_Control 0x14 | |||||
#define CS42448_AIN5_Volume_Control 0x15 | |||||
#define CS42448_AIN6_Volume_Control 0x16 | |||||
#define CS42448_ADC_Channel_Invert 0x17 | |||||
#define CS42448_Status_Control 0x18 | |||||
#define CS42448_Status 0x19 | |||||
#define CS42448_Status_Mask 0x1A | |||||
#define CS42448_MUTEC_Pin_Control 0x1B | |||||
// 4.9 Recommended Power-Up Sequence | |||||
// 1. Hold RST low until the power supply and clocks are stable. In this state, | |||||
// the control port is reset to its default settings and VQ will remain low. | |||||
// 2. Bring RST high. The device will initially be in a low power state with VQ | |||||
// low. All features will default as described in the "Register Quick Reference" | |||||
// on page 40. | |||||
// 3. Perform a write operation to the Power Control register ("Power Control | |||||
// (Address 02h)" on page 43) to set bit 0 to a '1'b. This will place the | |||||
// device in a power down state. | |||||
// 4. Load the desired register settings while keeping the PDN bit set to '1'b. | |||||
// 5. Mute all DACs. Muting the DACs suppresses any noise associated with the | |||||
// CODEC's first initialization after power is applied. | |||||
// 6. Set the PDN bit in the power control register to '0'b. VQ will ramp to | |||||
// approximately VA/2 according to the Popguard specification in section | |||||
// "Popguard" on page 29. | |||||
// 7. Following approximately 2000 LRCK cycles, the device is initialized and | |||||
// ready for normal operation. | |||||
// 8. After the CODEC is initialized, wait ~90 LRCK cycles (~1.9 ms @48 kHz) and | |||||
// then un-mute the DACs. | |||||
// 9. Normal operation begins. | |||||
static const uint8_t default_config[] = { | |||||
0xF4, // CS42448_Functional_Mode = slave mode, MCLK 25.6 MHz max | |||||
0x76, // CS42448_Interface_Formats = TDM mode | |||||
0x1C, // CS42448_ADC_Control_DAC_DeEmphasis = single ended ADC | |||||
0x63, // CS42448_Transition_Control = soft vol control | |||||
0xFF // CS42448_DAC_Channel_Mute = all outputs mute | |||||
}; | |||||
bool AudioControlCS42448::enable(void) | |||||
{ | |||||
Wire.begin(); | |||||
// TODO: wait for reset signal high?? | |||||
if (!write(CS42448_Power_Control, 0xFF)) return false; // power down | |||||
if (!write(CS42448_Functional_Mode, default_config, sizeof(default_config))) return false; | |||||
if (!write(CS42448_Power_Control, 0)) return false; // power up | |||||
return true; | |||||
} | |||||
bool AudioControlCS42448::volumeInteger(uint32_t n) | |||||
{ | |||||
uint8_t data[9]; | |||||
data[0] = 0; | |||||
for (int i=1; i < 9; i++) { | |||||
data[i] = n; | |||||
} | |||||
return write(CS42448_DAC_Channel_Mute, data, 9); | |||||
} | |||||
bool AudioControlCS42448::volumeInteger(int channel, uint32_t n) | |||||
{ | |||||
return true; | |||||
} | |||||
bool AudioControlCS42448::inputLevelInteger(int32_t n) | |||||
{ | |||||
return true; | |||||
} | |||||
bool AudioControlCS42448::inputLevelInteger(int chnnel, int32_t n) | |||||
{ | |||||
return true; | |||||
} | |||||
bool AudioControlCS42448::write(uint32_t address, uint32_t data) | |||||
{ | |||||
Wire.beginTransmission(i2c_addr); | |||||
Wire.write(address); | |||||
Wire.write(data); | |||||
if (Wire.endTransmission() == 0) return true; | |||||
return false; | |||||
} | |||||
bool AudioControlCS42448::write(uint32_t address, const void *data, uint32_t len) | |||||
{ | |||||
Wire.beginTransmission(i2c_addr); | |||||
Wire.write(address | 0x80); | |||||
const uint8_t *p = (const uint8_t *)data; | |||||
const uint8_t *end = p + len; | |||||
while (p < end) { | |||||
Wire.write(*p++); | |||||
} | |||||
if (Wire.endTransmission() == 0) return true; | |||||
return false; | |||||
} | |||||
/* Audio Library for Teensy 3.X | |||||
* Copyright (c) 2014, Paul Stoffregen, paul@pjrc.com | |||||
* | |||||
* Development of this audio library was funded by PJRC.COM, LLC by sales of | |||||
* Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | |||||
* open source software by purchasing Teensy or other PJRC products. | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice, development funding notice, and this permission | |||||
* notice shall be included in all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
* THE SOFTWARE. | |||||
*/ | |||||
#ifndef control_cs42448_h_ | |||||
#define control_cs42448_h_ | |||||
#include "AudioControl.h" | |||||
#include <math.h> | |||||
class AudioControlCS42448 : public AudioControl | |||||
{ | |||||
public: | |||||
AudioControlCS42448(void) : i2c_addr(0x48), muted(true) { } | |||||
void setAddress(uint8_t addr) { | |||||
i2c_addr = 0x48 | (addr & 3); | |||||
} | |||||
bool enable(void); | |||||
bool disable(void) { | |||||
return false; | |||||
} | |||||
bool volume(float level) { | |||||
return volumeInteger(volumebyte(level)); | |||||
} | |||||
bool inputLevel(float level) { | |||||
return inputLevelInteger(inputlevelbyte(level)); | |||||
} | |||||
bool inputSelect(int n) { | |||||
return (n == 0) ? true : false; | |||||
} | |||||
bool volume(int channel, float level) { | |||||
if (channel < 1 || channel > 8) return false; | |||||
return volumeInteger(channel, volumebyte(level)); | |||||
} | |||||
bool inputLevel(int channel, float level) { | |||||
if (channel < 1 || channel > 6) return false; | |||||
return inputLevelInteger(channel, inputlevelbyte(level)); | |||||
} | |||||
private: | |||||
bool volumeInteger(uint32_t n); | |||||
bool volumeInteger(int channel, uint32_t n); | |||||
bool inputLevelInteger(int32_t n); | |||||
bool inputLevelInteger(int chnnel, int32_t n); | |||||
// convert level to volume byte, section 6.9.1, page 50 | |||||
uint32_t volumebyte(float level) { | |||||
if (level >= 1.0) return 0; | |||||
if (level <= 0.0000003981) return 128; | |||||
return roundf(log10f(level) * -20.0); | |||||
} | |||||
// convert level to input gain, section 6.11.1, page 51 | |||||
int32_t inputlevelbyte(float level) { | |||||
if (level > 15.8489) return 48; | |||||
if (level < 0.00063095734) return -128; | |||||
return roundf(log10f(level) * 40.0); | |||||
} | |||||
bool write(uint32_t address, uint32_t data); | |||||
bool write(uint32_t address, const void *data, uint32_t len); | |||||
uint8_t i2c_addr; | |||||
bool muted; | |||||
}; | |||||
#endif |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "control_cs4272.h" | #include "control_cs4272.h" | ||||
#include "Wire.h" | #include "Wire.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "control_sgtl5000.h" | #include "control_sgtl5000.h" | ||||
#include "Wire.h" | #include "Wire.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "control_wm8731.h" | #include "control_wm8731.h" | ||||
#include "Wire.h" | #include "Wire.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_bitcrusher.h" | #include "effect_bitcrusher.h" | ||||
void AudioEffectBitcrusher::update(void) | void AudioEffectBitcrusher::update(void) |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_chorus.h" | #include "effect_chorus.h" | ||||
/******************************************************************/ | /******************************************************************/ |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_delay.h" | #include "effect_delay.h" | ||||
void AudioEffectDelay::update(void) | void AudioEffectDelay::update(void) | ||||
tail = tailindex; | tail = tailindex; | ||||
if (++head >= DELAY_QUEUE_SIZE) head = 0; | if (++head >= DELAY_QUEUE_SIZE) head = 0; | ||||
if (head == tail) { | if (head == tail) { | ||||
release(queue[tail]); | |||||
if (queue[tail] != NULL) release(queue[tail]); | |||||
if (++tail >= DELAY_QUEUE_SIZE) tail = 0; | if (++tail >= DELAY_QUEUE_SIZE) tail = 0; | ||||
} | } | ||||
queue[head] = receiveReadOnly(); | queue[head] = receiveReadOnly(); | ||||
if (count > maxblocks) { | if (count > maxblocks) { | ||||
count -= maxblocks; | count -= maxblocks; | ||||
do { | do { | ||||
release(queue[tail]); | |||||
queue[tail] = NULL; | |||||
if (queue[tail] != NULL) { | |||||
release(queue[tail]); | |||||
queue[tail] = NULL; | |||||
} | |||||
if (++tail >= DELAY_QUEUE_SIZE) tail = 0; | if (++tail >= DELAY_QUEUE_SIZE) tail = 0; | ||||
} while (--count > 0); | } while (--count > 0); | ||||
} | } |
#include "AudioStream.h" | #include "AudioStream.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
#define DELAY_QUEUE_SIZE 117 | |||||
#if defined(__MK66FX1M0__) | |||||
// 2.41 second maximum on Teensy 3.6 | |||||
#define DELAY_QUEUE_SIZE (106496 / AUDIO_BLOCK_SAMPLES) | |||||
#elif defined(__MK64FX512__) | |||||
// 1.67 second maximum on Teensy 3.5 | |||||
#define DELAY_QUEUE_SIZE (73728 / AUDIO_BLOCK_SAMPLES) | |||||
#elif defined(__MK20DX256__) | |||||
// 0.45 second maximum on Teensy 3.1 & 3.2 | |||||
#define DELAY_QUEUE_SIZE (19826 / AUDIO_BLOCK_SAMPLES) | |||||
#else | |||||
// 0.14 second maximum on Teensy 3.0 | |||||
#define DELAY_QUEUE_SIZE (6144 / AUDIO_BLOCK_SAMPLES) | |||||
#endif | |||||
class AudioEffectDelay : public AudioStream | class AudioEffectDelay : public AudioStream | ||||
{ | { | ||||
maxblocks = max; | maxblocks = max; | ||||
} | } | ||||
uint8_t activemask; // which output channels are active | uint8_t activemask; // which output channels are active | ||||
uint8_t headindex; // head index (incoming) data in quueu | |||||
uint8_t tailindex; // tail index (outgoing) data from queue | |||||
uint8_t maxblocks; // number of blocks needed in queue | |||||
uint16_t headindex; // head index (incoming) data in quueu | |||||
uint16_t tailindex; // tail index (outgoing) data from queue | |||||
uint16_t maxblocks; // number of blocks needed in queue | |||||
#if DELAY_QUEUE_SIZE * AUDIO_BLOCK_SAMPLES < 65535 | |||||
uint16_t position[8]; // # of sample delay for each channel | uint16_t position[8]; // # of sample delay for each channel | ||||
#else | |||||
uint32_t position[8]; // # of sample delay for each channel | |||||
#endif | |||||
audio_block_t *queue[DELAY_QUEUE_SIZE]; | audio_block_t *queue[DELAY_QUEUE_SIZE]; | ||||
audio_block_t *inputQueueArray[1]; | audio_block_t *inputQueueArray[1]; | ||||
}; | }; |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_delay_ext.h" | #include "effect_delay_ext.h" | ||||
//#define INTERNAL_TEST | //#define INTERNAL_TEST | ||||
// While 20 MHz (Teensy actually uses 16 MHz in most cases) and even 24 MHz | |||||
// have worked well in testing at room temperature with 3.3V power, to fully | |||||
// meet all the worst case timing specs, the SPI clock low time would need | |||||
// to be 40ns (12.5 MHz clock) for the single chip case and 51ns (9.8 MHz | |||||
// clock) for the 6-chip memoryboard with 74LCX126 buffers. | |||||
// | |||||
// Timing analysis and info is here: | |||||
// https://forum.pjrc.com/threads/29276-Limits-of-delay-effect-in-audio-library?p=97506&viewfull=1#post97506 | |||||
#define SPISETTING SPISettings(20000000, MSBFIRST, SPI_MODE0) | |||||
// Use these with the audio adaptor board (should be adjustable by the user...) | // Use these with the audio adaptor board (should be adjustable by the user...) | ||||
#define SPIRAM_MOSI_PIN 7 | #define SPIRAM_MOSI_PIN 7 | ||||
#define SPIRAM_MISO_PIN 12 | #define SPIRAM_MISO_PIN 12 | ||||
activemask = 0; | activemask = 0; | ||||
head_offset = 0; | head_offset = 0; | ||||
memory_type = type; | memory_type = type; | ||||
SPI.setMOSI(SPIRAM_MOSI_PIN); | |||||
SPI.setMISO(SPIRAM_MISO_PIN); | |||||
SPI.setSCK(SPIRAM_SCK_PIN); | |||||
SPI.begin(); | |||||
if (type == AUDIO_MEMORY_23LC1024) { | if (type == AUDIO_MEMORY_23LC1024) { | ||||
#ifdef INTERNAL_TEST | #ifdef INTERNAL_TEST | ||||
memsize = 8000; | memsize = 8000; | ||||
pinMode(MEMBOARD_CS2_PIN, OUTPUT); | pinMode(MEMBOARD_CS2_PIN, OUTPUT); | ||||
digitalWriteFast(MEMBOARD_CS0_PIN, LOW); | digitalWriteFast(MEMBOARD_CS0_PIN, LOW); | ||||
digitalWriteFast(MEMBOARD_CS1_PIN, LOW); | digitalWriteFast(MEMBOARD_CS1_PIN, LOW); | ||||
digitalWriteFast(MEMBOARD_CS2_PIN, LOW); | |||||
digitalWriteFast(MEMBOARD_CS2_PIN, LOW); | |||||
} else if (type == AUDIO_MEMORY_CY15B104) { | |||||
#ifdef INTERNAL_TEST | |||||
memsize = 8000; | |||||
#else | |||||
memsize = 262144; | |||||
#endif | |||||
pinMode(SPIRAM_CS_PIN, OUTPUT); | |||||
digitalWriteFast(SPIRAM_CS_PIN, HIGH); | |||||
} else { | } else { | ||||
return; | return; | ||||
} | } | ||||
allocated[type] += samples; | allocated[type] += samples; | ||||
memory_length = samples; | memory_length = samples; | ||||
SPI.setMOSI(SPIRAM_MOSI_PIN); | |||||
SPI.setMISO(SPIRAM_MISO_PIN); | |||||
SPI.setSCK(SPIRAM_SCK_PIN); | |||||
SPI.begin(); | |||||
zero(0, memory_length); | zero(0, memory_length); | ||||
} | } | ||||
static int16_t testmem[8000]; // testing only | static int16_t testmem[8000]; // testing only | ||||
#endif | #endif | ||||
#define SPISETTING SPISettings(20000000, MSBFIRST, SPI_MODE0) | |||||
// While 20 MHz (Teensy actually uses 16 MHz in most cases) and even 24 MHz | |||||
// have worked well in testing at room temperature with 3.3V power, to fully | |||||
// meet all the worst case timing specs, the SPI clock low time would need | |||||
// to be 40ns (12.5 MHz clock) for the single chip case and 51ns (9.8 MHz | |||||
// clock) for the 6-chip memoryboard with 74LCX126 buffers. | |||||
// | |||||
// Timing analysis and info is here: | |||||
// https://forum.pjrc.com/threads/29276-Limits-of-delay-effect-in-audio-library?p=97506&viewfull=1#post97506 | |||||
void AudioEffectDelayExternal::read(uint32_t offset, uint32_t count, int16_t *data) | void AudioEffectDelayExternal::read(uint32_t offset, uint32_t count, int16_t *data) | ||||
{ | { | ||||
uint32_t addr = memory_begin + offset; | uint32_t addr = memory_begin + offset; | ||||
#ifdef INTERNAL_TEST | #ifdef INTERNAL_TEST | ||||
while (count) { *data++ = testmem[addr++]; count--; } // testing only | while (count) { *data++ = testmem[addr++]; count--; } // testing only | ||||
#else | #else | ||||
if (memory_type == AUDIO_MEMORY_23LC1024) { | |||||
if (memory_type == AUDIO_MEMORY_23LC1024 || | |||||
memory_type == AUDIO_MEMORY_CY15B104) { | |||||
addr *= 2; | addr *= 2; | ||||
SPI.beginTransaction(SPISETTING); | SPI.beginTransaction(SPISETTING); | ||||
digitalWriteFast(SPIRAM_CS_PIN, LOW); | digitalWriteFast(SPIRAM_CS_PIN, LOW); | ||||
} | } | ||||
digitalWriteFast(SPIRAM_CS_PIN, HIGH); | digitalWriteFast(SPIRAM_CS_PIN, HIGH); | ||||
SPI.endTransaction(); | SPI.endTransaction(); | ||||
} else if (memory_type == AUDIO_MEMORY_MEMORYBOARD) { | |||||
} else if (memory_type == AUDIO_MEMORY_CY15B104) { | |||||
addr *= 2; | |||||
SPI.beginTransaction(SPISETTING); | |||||
digitalWriteFast(SPIRAM_CS_PIN, LOW); | |||||
SPI.transfer(0x06); //write-enable before every write | |||||
digitalWriteFast(SPIRAM_CS_PIN, HIGH); | |||||
asm volatile ("NOP\n NOP\n NOP\n NOP\n NOP\n NOP\n"); | |||||
digitalWriteFast(SPIRAM_CS_PIN, LOW); | |||||
SPI.transfer16((0x02 << 8) | (addr >> 16)); | |||||
SPI.transfer16(addr & 0xFFFF); | |||||
while (count) { | |||||
int16_t w = 0; | |||||
if (data) w = *data++; | |||||
SPI.transfer16(w); | |||||
count--; | |||||
} | |||||
digitalWriteFast(SPIRAM_CS_PIN, HIGH); | |||||
SPI.endTransaction(); | |||||
} else if (memory_type == AUDIO_MEMORY_MEMORYBOARD) { | |||||
SPI.beginTransaction(SPISETTING); | SPI.beginTransaction(SPISETTING); | ||||
while (count) { | while (count) { | ||||
uint32_t chip = (addr >> 16) + 1; | uint32_t chip = (addr >> 16) + 1; | ||||
} | } | ||||
#endif | #endif | ||||
} | } | ||||
#include "spi_interrupt.h" | #include "spi_interrupt.h" | ||||
enum AudioEffectDelayMemoryType_t { | enum AudioEffectDelayMemoryType_t { | ||||
AUDIO_MEMORY_23LC1024 = 0, | |||||
AUDIO_MEMORY_MEMORYBOARD = 1, | |||||
AUDIO_MEMORY_UNDEFINED = 2 | |||||
AUDIO_MEMORY_23LC1024 = 0, // 128k x 8 S-RAM | |||||
AUDIO_MEMORY_MEMORYBOARD = 1, | |||||
AUDIO_MEMORY_CY15B104 = 2, // 512k x 8 F-RAM | |||||
AUDIO_MEMORY_UNDEFINED = 3 | |||||
}; | }; | ||||
class AudioEffectDelayExternal : public AudioStream | class AudioEffectDelayExternal : public AudioStream |
/* Audio Library for Teensy 3.X | /* Audio Library for Teensy 3.X | ||||
* Copyright (c) 2014, Paul Stoffregen, paul@pjrc.com | |||||
* Copyright (c) 2017, Paul Stoffregen, paul@pjrc.com | |||||
* | * | ||||
* Development of this audio library was funded by PJRC.COM, LLC by sales of | * Development of this audio library was funded by PJRC.COM, LLC by sales of | ||||
* Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | * Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_envelope.h" | #include "effect_envelope.h" | ||||
#define STATE_IDLE 0 | #define STATE_IDLE 0 | ||||
#define STATE_DECAY 4 | #define STATE_DECAY 4 | ||||
#define STATE_SUSTAIN 5 | #define STATE_SUSTAIN 5 | ||||
#define STATE_RELEASE 6 | #define STATE_RELEASE 6 | ||||
#define STATE_FORCED 7 | |||||
void AudioEffectEnvelope::noteOn(void) | void AudioEffectEnvelope::noteOn(void) | ||||
{ | { | ||||
__disable_irq(); | __disable_irq(); | ||||
mult = 0; | |||||
count = delay_count; | |||||
if (count > 0) { | |||||
state = STATE_DELAY; | |||||
inc = 0; | |||||
} else { | |||||
state = STATE_ATTACK; | |||||
count = attack_count; | |||||
inc = (0x10000 / count) >> 3; | |||||
if (state == STATE_IDLE || state == STATE_DELAY || release_forced_count == 0) { | |||||
mult_hires = 0; | |||||
count = delay_count; | |||||
if (count > 0) { | |||||
state = STATE_DELAY; | |||||
inc_hires = 0; | |||||
} else { | |||||
state = STATE_ATTACK; | |||||
count = attack_count; | |||||
inc_hires = 0x40000000 / (int32_t)count; | |||||
} | |||||
} else if (state != STATE_FORCED) { | |||||
state = STATE_FORCED; | |||||
count = release_forced_count; | |||||
inc_hires = (-mult_hires) / (int32_t)count; | |||||
} | } | ||||
__enable_irq(); | __enable_irq(); | ||||
} | } | ||||
void AudioEffectEnvelope::noteOff(void) | void AudioEffectEnvelope::noteOff(void) | ||||
{ | { | ||||
__disable_irq(); | __disable_irq(); | ||||
state = STATE_RELEASE; | |||||
count = release_count; | |||||
mult = sustain_mult; | |||||
inc = (-mult / ((int32_t)count << 3)); | |||||
if (state != STATE_IDLE && state != STATE_FORCED) { | |||||
state = STATE_RELEASE; | |||||
count = release_count; | |||||
inc_hires = (-mult_hires) / (int32_t)count; | |||||
} | |||||
__enable_irq(); | __enable_irq(); | ||||
} | } | ||||
count = hold_count; | count = hold_count; | ||||
if (count > 0) { | if (count > 0) { | ||||
state = STATE_HOLD; | state = STATE_HOLD; | ||||
mult = 0x10000; | |||||
inc = 0; | |||||
mult_hires = 0x40000000; | |||||
inc_hires = 0; | |||||
} else { | } else { | ||||
count = decay_count; | |||||
state = STATE_DECAY; | state = STATE_DECAY; | ||||
inc = ((sustain_mult - 0x10000) / ((int32_t)count << 3)); | |||||
count = decay_count; | |||||
inc_hires = (sustain_mult - 0x40000000) / (int32_t)count; | |||||
} | } | ||||
continue; | continue; | ||||
} else if (state == STATE_HOLD) { | } else if (state == STATE_HOLD) { | ||||
state = STATE_DECAY; | state = STATE_DECAY; | ||||
count = decay_count; | count = decay_count; | ||||
inc = ((sustain_mult - 0x10000) / (int32_t)count) >> 3; | |||||
inc_hires = (sustain_mult - 0x40000000) / (int32_t)count; | |||||
continue; | continue; | ||||
} else if (state == STATE_DECAY) { | } else if (state == STATE_DECAY) { | ||||
state = STATE_SUSTAIN; | state = STATE_SUSTAIN; | ||||
count = 0xFFFF; | count = 0xFFFF; | ||||
mult = sustain_mult; | |||||
inc = 0; | |||||
mult_hires = sustain_mult; | |||||
inc_hires = 0; | |||||
} else if (state == STATE_SUSTAIN) { | } else if (state == STATE_SUSTAIN) { | ||||
count = 0xFFFF; | count = 0xFFFF; | ||||
} else if (state == STATE_RELEASE) { | } else if (state == STATE_RELEASE) { | ||||
*p++ = 0; | *p++ = 0; | ||||
} | } | ||||
break; | break; | ||||
} else if (state == STATE_FORCED) { | |||||
mult_hires = 0; | |||||
count = delay_count; | |||||
if (count > 0) { | |||||
state = STATE_DELAY; | |||||
inc_hires = 0; | |||||
} else { | |||||
state = STATE_ATTACK; | |||||
count = attack_count; | |||||
inc_hires = 0x40000000 / (int32_t)count; | |||||
} | |||||
} else if (state == STATE_DELAY) { | } else if (state == STATE_DELAY) { | ||||
state = STATE_ATTACK; | state = STATE_ATTACK; | ||||
count = attack_count; | count = attack_count; | ||||
inc = (0x10000 / count) >> 3; | |||||
inc_hires = 0x40000000 / count; | |||||
continue; | continue; | ||||
} | } | ||||
} | } | ||||
// process 8 samples, using only mult and inc | |||||
int32_t mult = mult_hires >> 14; | |||||
int32_t inc = inc_hires >> 17; | |||||
// process 8 samples, using only mult and inc (16 bit resolution) | |||||
sample12 = *p++; | sample12 = *p++; | ||||
sample34 = *p++; | sample34 = *p++; | ||||
sample56 = *p++; | sample56 = *p++; | ||||
*p++ = sample34; | *p++ = sample34; | ||||
*p++ = sample56; | *p++ = sample56; | ||||
*p++ = sample78; | *p++ = sample78; | ||||
// adjust the long-term gain using 30 bit resolution (fix #102) | |||||
// https://github.com/PaulStoffregen/Audio/issues/102 | |||||
mult_hires += inc_hires; | |||||
count--; | count--; | ||||
} | } | ||||
transmit(block); | transmit(block); |
/* Audio Library for Teensy 3.X | /* Audio Library for Teensy 3.X | ||||
* Copyright (c) 2014, Paul Stoffregen, paul@pjrc.com | |||||
* Copyright (c) 2017, Paul Stoffregen, paul@pjrc.com | |||||
* | * | ||||
* Development of this audio library was funded by PJRC.COM, LLC by sales of | * Development of this audio library was funded by PJRC.COM, LLC by sales of | ||||
* Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | * Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | ||||
public: | public: | ||||
AudioEffectEnvelope() : AudioStream(1, inputQueueArray) { | AudioEffectEnvelope() : AudioStream(1, inputQueueArray) { | ||||
state = 0; | state = 0; | ||||
delay(0.0); // default values... | |||||
attack(1.5); | |||||
hold(0.5); | |||||
decay(15.0); | |||||
sustain(0.667); | |||||
release(30.0); | |||||
delay(0.0f); // default values... | |||||
attack(10.5f); | |||||
hold(2.5f); | |||||
decay(35.0f); | |||||
sustain(0.5f); | |||||
release(300.0f); | |||||
releaseNoteOn(5.0f); | |||||
} | } | ||||
void noteOn(); | void noteOn(); | ||||
void noteOff(); | void noteOff(); | ||||
} | } | ||||
void attack(float milliseconds) { | void attack(float milliseconds) { | ||||
attack_count = milliseconds2count(milliseconds); | attack_count = milliseconds2count(milliseconds); | ||||
if (attack_count == 0) attack_count = 1; | |||||
} | } | ||||
void hold(float milliseconds) { | void hold(float milliseconds) { | ||||
hold_count = milliseconds2count(milliseconds); | hold_count = milliseconds2count(milliseconds); | ||||
} | } | ||||
void decay(float milliseconds) { | void decay(float milliseconds) { | ||||
decay_count = milliseconds2count(milliseconds); | decay_count = milliseconds2count(milliseconds); | ||||
if (decay_count == 0) decay_count = 1; | |||||
} | } | ||||
void sustain(float level) { | void sustain(float level) { | ||||
if (level < 0.0) level = 0; | if (level < 0.0) level = 0; | ||||
else if (level > 1.0) level = 1.0; | else if (level > 1.0) level = 1.0; | ||||
sustain_mult = level * 65536.0; | |||||
sustain_mult = level * 1073741824.0; | |||||
} | } | ||||
void release(float milliseconds) { | void release(float milliseconds) { | ||||
release_count = milliseconds2count(milliseconds); | release_count = milliseconds2count(milliseconds); | ||||
if (release_count == 0) release_count = 1; | |||||
} | |||||
void releaseNoteOn(float milliseconds) { | |||||
release_forced_count = milliseconds2count(milliseconds); | |||||
if (release_count == 0) release_count = 1; | |||||
} | } | ||||
using AudioStream::release; | using AudioStream::release; | ||||
virtual void update(void); | virtual void update(void); | ||||
uint16_t milliseconds2count(float milliseconds) { | uint16_t milliseconds2count(float milliseconds) { | ||||
if (milliseconds < 0.0) milliseconds = 0.0; | if (milliseconds < 0.0) milliseconds = 0.0; | ||||
uint32_t c = ((uint32_t)(milliseconds*SAMPLES_PER_MSEC)+7)>>3; | uint32_t c = ((uint32_t)(milliseconds*SAMPLES_PER_MSEC)+7)>>3; | ||||
if (c > 1103) return 1103; // allow up to 200 ms | |||||
if (c > 65535) c = 65535; // allow up to 11.88 seconds | |||||
return c; | return c; | ||||
} | } | ||||
audio_block_t *inputQueueArray[1]; | audio_block_t *inputQueueArray[1]; | ||||
// state | // state | ||||
uint8_t state; // idle, delay, attack, hold, decay, sustain, release | |||||
uint16_t count; // how much time remains in this state, in 8 sample units | |||||
int32_t mult; // attenuation, 0=off, 0x10000=unity gain | |||||
int32_t inc; // amount to change mult on each sample | |||||
uint8_t state; // idle, delay, attack, hold, decay, sustain, release, forced | |||||
uint16_t count; // how much time remains in this state, in 8 sample units | |||||
int32_t mult_hires; // attenuation, 0=off, 0x40000000=unity gain | |||||
int32_t inc_hires; // amount to change mult_hires every 8 samples | |||||
// settings | // settings | ||||
uint16_t delay_count; | uint16_t delay_count; | ||||
uint16_t attack_count; | uint16_t attack_count; | ||||
uint16_t decay_count; | uint16_t decay_count; | ||||
int32_t sustain_mult; | int32_t sustain_mult; | ||||
uint16_t release_count; | uint16_t release_count; | ||||
uint16_t release_forced_count; | |||||
}; | }; | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_fade.h" | #include "effect_fade.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_flange.h" | #include "effect_flange.h" | ||||
#include "arm_math.h" | #include "arm_math.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_midside.h" | #include "effect_midside.h" | ||||
void AudioEffectMidSide::update(void) | void AudioEffectMidSide::update(void) |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "effect_multiply.h" | #include "effect_multiply.h" | ||||
void AudioEffectMultiply::update(void) | void AudioEffectMultiply::update(void) |
// https://github.com/joaoRossiFilho/teensy_reverb | // https://github.com/joaoRossiFilho/teensy_reverb | ||||
#include <Arduino.h> | |||||
#include "effect_reverb.h" | #include "effect_reverb.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
#include "math_helper.h" | #include "math_helper.h" |
/* | |||||
* Waveshaper for Teensy 3.X audio | |||||
* | |||||
* Copyright (c) 2017 Damien Clarke, http://damienclarke.me | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice and this permission notice shall be included in all | |||||
* copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||||
* SOFTWARE. | |||||
*/ | |||||
#include <Arduino.h> | |||||
#include "effect_waveshaper.h" | |||||
AudioEffectWaveshaper::~AudioEffectWaveshaper() | |||||
{ | |||||
if(this->waveshape) { | |||||
delete [] this->waveshape; | |||||
} | |||||
} | |||||
void AudioEffectWaveshaper::shape(float* waveshape, int length) | |||||
{ | |||||
// length must be bigger than 1 and equal to a power of two + 1 | |||||
// anything else means we don't continue | |||||
if(!waveshape || length < 2 || length > 32769 || ((length - 1) & (length - 2))) return; | |||||
if(this->waveshape) { | |||||
delete [] this->waveshape; | |||||
} | |||||
this->waveshape = new int16_t[length]; | |||||
for(int i = 0; i < length; i++) { | |||||
this->waveshape[i] = 32767 * waveshape[i]; | |||||
} | |||||
// set lerpshift to the number of bits to shift while interpolating | |||||
// to cover the entire waveshape over a uint16_t input range | |||||
int index = length - 1; | |||||
lerpshift = 16; | |||||
while (index >>= 1) --lerpshift; | |||||
} | |||||
void AudioEffectWaveshaper::update(void) | |||||
{ | |||||
if(!waveshape) return; | |||||
audio_block_t *block; | |||||
block = receiveWritable(); | |||||
if (!block) return; | |||||
uint16_t x, xa; | |||||
int16_t i, ya, yb; | |||||
for (i = 0; i < AUDIO_BLOCK_SAMPLES; i++) { | |||||
// bring int16_t data into uint16_t range | |||||
x = block->data[i] + 32768; | |||||
// lerp waveshape (from http://coranac.com/tonc/text/fixed.htm) | |||||
xa = x >> lerpshift; | |||||
ya = waveshape[xa]; | |||||
yb = waveshape[xa + 1]; | |||||
block->data[i] = ya + ((yb - ya) * (x - (xa << lerpshift)) >> lerpshift); | |||||
} | |||||
transmit(block); | |||||
release(block); | |||||
} |
/* | |||||
* Waveshaper for Teensy 3.X audio | |||||
* | |||||
* Copyright (c) 2017 Damien Clarke, http://damienclarke.me | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice and this permission notice shall be included in all | |||||
* copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||||
* SOFTWARE. | |||||
*/ | |||||
#ifndef effect_waveshaper_h_ | |||||
#define effect_waveshaper_h_ | |||||
#include "Arduino.h" | |||||
#include "AudioStream.h" | |||||
class AudioEffectWaveshaper : public AudioStream | |||||
{ | |||||
public: | |||||
AudioEffectWaveshaper(void): AudioStream(1, inputQueueArray) {} | |||||
~AudioEffectWaveshaper(); | |||||
virtual void update(void); | |||||
void shape(float* waveshape, int length); | |||||
private: | |||||
audio_block_t *inputQueueArray[1]; | |||||
int16_t* waveshape; | |||||
int16_t lerpshift; | |||||
}; | |||||
#endif |
// | // | ||||
AudioControlSGTL5000 audioShield; | AudioControlSGTL5000 audioShield; | ||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
// Bounce objects to read six pushbuttons (pins 0-5) | // Bounce objects to read six pushbuttons (pins 0-5) | ||||
// | // | ||||
Bounce button0 = Bounce(0, 5); // cycles the bitcrusher through all bitdepths | Bounce button0 = Bounce(0, 5); // cycles the bitcrusher through all bitdepths | ||||
// sound can play simultaneously without clipping | // sound can play simultaneously without clipping | ||||
//SDCard Initialise | //SDCard Initialise | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
// stop here, but print a message repetitively | // stop here, but print a message repetitively | ||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); |
// ADAT 8 channel Toslink output test, by Ernstjan Freriks | |||||
// https://www.youtube.com/watch?v=e5ov3q02zxo | |||||
// https://forum.pjrc.com/threads/28639-S-pdif?p=159530&viewfull=1#post159530 | |||||
#include <Audio.h> | |||||
#include <Wire.h> | |||||
#include <SPI.h> | |||||
#include <SD.h> | |||||
#include <SerialFlash.h> | |||||
// WAV files converted to code by wav2sketch | |||||
#include "AudioSampleSnare.h" // http://www.freesound.org/people/KEVOY/sounds/82583/ | |||||
#include "AudioSampleTomtom.h" // http://www.freesound.org/people/zgump/sounds/86334/ | |||||
#include "AudioSampleHihat.h" // http://www.freesound.org/people/mhc/sounds/102790/ | |||||
#include "AudioSampleKick.h" // http://www.freesound.org/people/DWSD/sounds/171104/ | |||||
#include "AudioSampleGong.h" // http://www.freesound.org/people/juskiddink/sounds/86773/ | |||||
#include "AudioSampleCashregister.h" // http://www.freesound.org/people/kiddpark/sounds/201159/ | |||||
// Create the Audio components. These should be created in the | |||||
// order data flows, inputs/sources -> processing -> outputs | |||||
// | |||||
AudioPlayMemory sound0; | |||||
AudioPlayMemory sound1; // five memory players, so we can play | |||||
AudioPlayMemory sound2; // all five sounds simultaneously | |||||
AudioPlayMemory sound3; | |||||
AudioPlayMemory sound4; | |||||
AudioPlayMemory sound5; | |||||
// GUItool: begin automatically generated code | |||||
AudioSynthWaveform sine1; | |||||
AudioOutputADAT adat1; | |||||
AudioConnection patchCord1(sine1, 0, adat1, 0); | |||||
AudioConnection patchCord2(sine1, 0, adat1, 1); | |||||
AudioConnection patchCord3(sound0, 0, adat1, 2); | |||||
AudioConnection patchCord4(sound1, 0, adat1, 3); | |||||
AudioConnection patchCord5(sound2, 0, adat1, 4); | |||||
AudioConnection patchCord6(sound4, 0, adat1, 5); | |||||
AudioConnection patchCord7(sound5, 0, adat1, 6); | |||||
// GUItool: end automatically generated code | |||||
void setup() { | |||||
AudioMemory(10); | |||||
sine1.begin(WAVEFORM_SINE); | |||||
sine1.frequency(2000); | |||||
} | |||||
// the loop() methor runs over and over again, | |||||
// as long as the board has power | |||||
void loop() { | |||||
sine1.amplitude(1.0); | |||||
sound0.play(AudioSampleKick); | |||||
delay(250); | |||||
sound1.play(AudioSampleHihat); | |||||
delay(250); | |||||
sound1.play(AudioSampleHihat); | |||||
sound2.play(AudioSampleSnare); | |||||
delay(250); | |||||
sound1.play(AudioSampleHihat); | |||||
delay(250); | |||||
sound0.play(AudioSampleKick); | |||||
sound3.play(AudioSampleGong); | |||||
delay(1000); | |||||
} |
// Audio data converted from WAV file by wav2sketch | |||||
#include "AudioSampleCashregister.h" | |||||
// Converted from cashregister.wav, using 22050 Hz, u-law encoding | |||||
const unsigned int AudioSampleCashregister[5809] = { | |||||
0x02005AB4,0x82060707,0x03010301,0x08038287,0x81820200,0x09120407,0x15091108,0x02080611, | |||||
0x0D050D11,0x8008150C,0x93810480,0x000D8890,0x0A060406,0x06000681,0x80828702,0x89928405, | |||||
0x04820983,0x8C860D05,0x880D0004,0x84000B0B,0x8C8D8C8F,0x84829181,0x14860600,0x0A0C080C, | |||||
0x84878006,0x908B8B8D,0x0000858D,0x82800710,0x84820286,0x8E838103,0x85088680,0x0C820681, | |||||
0x06020B00,0x8189060B,0x93900105,0x9B99900F,0x9AA41F9D,0xB107A785,0x8AB10189,0xAE98A9B1, | |||||
0x92AEA192,0xA608A4A3,0x09A8A006,0x87A51AA3,0xAC1A830D,0x131FA831,0x30A23892,0x8B20261B, | |||||
0x8C109A2A,0x1D071116,0x20962589,0x05858012,0xAA92980E,0x948BA290,0x8FA58CA0,0xA10C9704, | |||||
0x88878807,0x8F988586,0x868E9082,0x288F0F04,0x00062305,0x8F0C930A,0x9CA6A2A0,0x96929A9E, | |||||
0xA0899401,0x95830B80,0x8E03A59F,0x1F810F03,0x9E17201B,0x1E1E1396,0xA6A3878B,0xA79E968D, | |||||
0x8C9C8886,0x239A959D,0x9CA69391,0xA1841610,0x0418A5A7,0x86039582,0xAD871C25,0xA19A9288, | |||||
0x15A1A38F,0xA2A01A82,0x15AC039C,0x84AD9BA4,0x078F952A,0xAC229C9E,0x18088884,0xB0A69F16, | |||||
0x24263180,0xA59E1E9A,0xB3A5931D,0x51350415,0x26444C4F,0xBFC0C01A,0xB3AA998C,0xC6C7CBD5, | |||||
0xC14F46C5,0xD7C347BA,0x473E3743,0x5550535E,0x51C44DA7,0xD84614C4,0xE4C4D2B9,0x96D2C2D3, | |||||
0x964850BC,0xD8A0D647,0x4D4644C2,0xC3D355D3,0x20B3A0C8,0xD4C1D24E,0x4540CCD5,0x37583021, | |||||
0x4050A91E,0x29CDD0BD,0x91B70733,0x8FD5CECC,0xC1D339D4,0x4421A5B1,0x525D505F,0x43474257, | |||||
0x44445256,0x4AC43056,0x45423453,0x45373B42,0x49945257,0x58AEAB30,0xAC47464D,0x33493627, | |||||
0xC4803034,0xA793A1C3,0xB9A2C0BC,0xC5B7B0C2,0xC7B8C2CC,0x231887D0,0xBEBEB5BC,0xB9BCC3CA, | |||||
0xD1B3213F,0x3C81CDD0,0xCFC0BC00,0x373F25C3,0xA3932C38,0x423830A4,0x36993141,0x82465146, | |||||
0x8D220C9F,0x52A2D2C6,0x3E3A2228,0x3F07C133,0x4A433645,0x46338E42,0x3627A509,0x9D35352A, | |||||
0x30C6C097,0x32182041,0x4C1BB630,0xB9B8483D,0x37442A3A,0xCBB9A240,0xC2D6D7D0,0xCBBA39AE, | |||||
0xC0C2ACC7,0xC3B2BD31,0x311A30B4,0x933B4F05,0x4847B6C0,0x98BA1940,0x36433834,0x2703A742, | |||||
0xBEA5A83D,0xDCB449AC,0xCDCB4AB6,0xD5D9CED0,0xD10240CF,0x404F52C1,0xC25948B7,0x63664C52, | |||||
0x59606560,0x5060624F,0x14556750,0x6252E033,0x58D6CC43,0xB343CF2C,0xB942D6A9,0xBED7D5EB, | |||||
0x4704CFD4,0xECECE9D1,0xC5CFE1E8,0x4A2D6162,0x402E5E64,0xDC153748,0x45A2D6E0,0x0DC74CB0, | |||||
0xBDCBAD51,0xD2C7D78E,0xC2D3E2E4,0xC55D60BE,0x635C47A2,0x5566A11E,0x4317DABB,0x4F2CD6C8, | |||||
0xE3D85C50,0xCACEB3D7,0x605554C0,0x5655505A,0x074C565F,0x4C584D3A,0x5752B03B,0x46BCB438, | |||||
0xDDC434B2,0xEDE6E3DF,0xC9D4E2E6,0xCADBDED7,0x37B1B253,0xDEE3D0C0,0x16CCC2D5,0x4C5731C9, | |||||
0x4A3B3937,0xD9D4C547,0xD2CECBC7,0xD1CBB5C5,0x3EAEB3D4,0x26464236,0xB3C5C546,0x584B400D, | |||||
0x56615E5F,0x50494C4F,0x5B333A55,0x47474643,0x18253358,0x32CE92AB,0x5030AC2B,0x59474E5C, | |||||
0x4E585D62,0x4A464652,0xC1D2C0A4,0xB132C0C7,0xBC932447,0xC8D5C0BA,0x17A84DA3,0xBD4D533E, | |||||
0xB8ABAB1E,0xBBADB8C6,0xA0C1D0CE,0x4C43B08A,0x4D554F4E,0x5135AC35,0xC6CE4B4C,0xD2C34034, | |||||
0x994424C2,0xC8C2C2BC,0xBACFD9D0,0x4497111B,0x24344335,0xC039BA35,0x38C4B7BA,0x0ECB3B87, | |||||
0x11B8BC35,0xC9C3BE3D,0xBE1CB2B7,0x4016D2D3,0x4D374D2D,0x334B4454,0x4120A6AD,0x4E534A3A, | |||||
0x9B1D4350,0xDBDBC0A3,0xCEB0C4CF,0xC7C6BDC4,0xC9CDBDC3,0xCEC395B8,0xD0AC99D0,0xC12FABD1, | |||||
0xB6C0B8C5,0xBCAACDC1,0xCAD4C3AD,0xC8D0D2C2,0x55504E3D,0x4B4C4B41,0x25484044,0x25224243, | |||||
0x48404A42,0x464E5447,0xB0BF1536,0x26443537,0x292B3330,0x303B3C22,0x42524343,0x86B40835, | |||||
0x301136BA,0x2C44A92A,0x95C4B223,0xB23D4221,0xC5B9AEB9,0x454D3CC5,0x55504343,0x48473F4A, | |||||
0x40404543,0x3A4B4249,0x42343835,0x423C4344,0x47504440,0x3508333C,0x48453D28,0x3D3C3743, | |||||
0x2921313A,0xACA3A113,0xB2C8C7B5,0xCEC6C1B7,0xD6D4D2CF,0xBDAFC1CD,0xC0C1CACC,0xB8C0C7C1, | |||||
0xC8D1C9BC,0xD2D1CCCC,0xC2CFCBCE,0xC0BDBEBB,0xC7BFBDC6,0x2D9EC7CA,0x48463F34,0x2A859042, | |||||
0xB2B00B2B,0xA6B0B1B5,0x45443A2D,0x1C093641,0x2FB2AA12,0x313F4040,0x35232326,0x40443B31, | |||||
0x26352043,0x39213295,0x49453F40,0x32374246,0x8C972131,0x30302006,0x3B3C362A,0x1B0C2631, | |||||
0x12082F34,0x132D320B,0x40493639,0x3A3B3032,0x20073B38,0xA12D3E32,0x342E2409,0x34333F3D, | |||||
0x2914231B,0x8E8CA907,0xB8BAA90E,0x8F2E169B,0xACAD8491,0xC5BDC1C1,0x1FA1B0B8,0xB4BDB09B, | |||||
0xABB3BAB7,0xB6BCB09A,0x832E29AB,0xAEADA2A9,0x2917B5B3,0xB0951136,0xA2BCB6B4,0x1E9E9E8B, | |||||
0xC4BE171D,0x32382795,0x272E391E,0xAD823427,0xC6AEC0A1,0xBDA9B4C3,0x9D233097,0x1B0521A2, | |||||
0x24414625,0x9B12352F,0x4B24A4BC,0x3D263437,0x2BCB2D32,0xDBC85646,0xDC431B35,0x486233D3, | |||||
0x5357D331,0x52582CB7,0x4BD0CAD2,0x8F843D92,0xCF13B132,0x51B551B6,0xAEC03228,0x4844C6BE, | |||||
0xA8C9C951,0x1CC8CB9B,0xA7354F49,0x95469AB0,0xC9535754,0x4B2041C0,0x432D2A3E,0xB1CA9240, | |||||
0x3E2E4E49,0xB6C12A38,0xB44404C2,0x30ACB9CE,0x52492E41,0x3843CFA5,0x88999744,0xD7CBC0C3, | |||||
0xA42511CD,0xC3D12731,0x47282E97,0x28334F53,0xB4C0100E,0xC808CD26,0xD2C216C5,0x554BA8DA, | |||||
0x34A5C527,0xBCC7374F,0xB627BD0F,0xAFC9B8CB,0xC4C8C098,0xC333A1B9,0xB6B7C8CD,0x4615B1C3, | |||||
0xBFBBC598,0x46190212,0xAE28464E,0xBBC2C8C1,0x32BBB6BF,0xA4A5A13B,0x43494037,0x3FA8AF33, | |||||
0x504423B1,0x50462F52,0x3C344349,0x8A391930,0x3D21BFC2,0x4E460B1E,0xA9A03545,0xC7A2BCBD, | |||||
0x8F9CB6CA,0xA5B4C9C6,0x383B3334,0xA2B2BBB1,0xB9253E35,0xB9B5B3C4,0x3C39341C,0xC1B61F0E, | |||||
0xAC97BFBF,0x46403987,0x49404049,0x392B2944,0x3394033C,0x04A29726,0x42404131,0x40404648, | |||||
0xA914AF1A,0xBEBDB693,0xA4B3A0B4,0x3F46411A,0xC3BCB126,0xC2C6C2C9,0xA82196BA,0x24A8B7B8, | |||||
0x29343E3C,0xA622049A,0x26323396,0xA704A985,0x98A0B0AD,0x372F2006,0x332AADA0,0x28323123, | |||||
0xA7A4AB0E,0xB3B4A195,0x0AA5B4B8,0x3031199C,0xC19B2233,0xB6B7B8C0,0xC6C5C1C2,0xC4CBC5C2, | |||||
0xA9A9B0BF,0xC7C5C8C0,0x303320B9,0xBCB02F35,0xBCB5C3C6,0x962710AB,0x82ADABB1,0x3A3B3037, | |||||
0x15220E82,0x42483F38,0x2C36393F,0x35093322,0x8691392A,0x12169423,0x8D8E111B,0xADA69320, | |||||
0xAEC0ACA1,0xA425AB93,0x37232091,0x91258B17,0x3A2E94B5,0x91172B2D,0x02ABA4B3,0x27444341, | |||||
0x030B0725,0x3B312926,0x1B1DAC13,0x48414237,0x28353844,0x2B2C3626,0x229F1F30,0x4099A034, | |||||
0x2C202C37,0x103A2F22,0xA1201C9B,0xB0BBB3AD,0xB1B3ADAE,0x052AAFAF,0x2221161C,0x93AB9C87, | |||||
0x9A03ADAD,0xBCC00319,0xABB0C3C4,0xA8A8A6AB,0x1EB7CAB7,0x37432820,0x992216A6,0x32A48C22, | |||||
0xBBB0A511,0xA3852B1C,0x3B243C12,0x383F8225,0xBBB1A225,0xC1C8BFB8,0xB9C4C1C2,0xB7C4C8BE, | |||||
0x1818B5B2,0xA433433C,0x2FB4A017,0xA6279BA0,0xBEA8B8BF,0xB9B3B6B8,0xA0940AA1,0x269FA699, | |||||
0x3D32432F,0x2A283440,0x0F212726,0x1A2B2829,0x3A28939F,0x2E3B3532,0x9C342E89,0x0E291811, | |||||
0x9825B197,0xAEB095AF,0x23BAA6B4,0xAEA5B50D,0x2890989C,0x9D9DA49D,0xB4B0ADA5,0x0E14A8A2, | |||||
0x29232628,0x32212126,0x821D1C31,0x2CA12A88,0x1F260A19,0x2B1A3235,0xB2322F2A,0x2D813836, | |||||
0x433C3A23,0x23A19042,0x3B403117,0x22380892,0x250EA891,0xA71CA4A5,0xB9B3B6A2,0x17B10DB7, | |||||
0xC0B7B2B2,0xB4BFB9B4,0xC0BFB1B1,0xB7A5C1BF,0xB2B2C2BE,0xAA923218,0x30313508,0x8F2A2D38, | |||||
0x88A6AEB8,0x1BC4BF1C,0x312823C0,0x032604B5,0xBF92A736,0x2CCAB952,0xA0D7C932,0x44D5303E, | |||||
0xC032D348,0x3DD7244E,0x3AA6C9B1,0x1DC0B41F,0x4E47C7DA,0x4899CB4B,0x4249C5C3,0x341E4515, | |||||
0x4A24D1B2,0x49B34E41,0xC446D349,0xCCAB6361,0x50379930,0xDDC45AC7,0x4884CA38,0xD6A5C5B0, | |||||
0x53492A53,0x3BD73BD4,0x4ED24056,0xC017BDC1,0xA7CC963C,0xA5CF2553,0xC3144643,0xA9AD2E36, | |||||
0xC641CBBC,0x9ACFCA52,0x4B46D5A0,0xCAC241D5,0xBC80A1B3,0x33D5B3C4,0xB422A73A,0x40C784BB, | |||||
0x3331323B,0xC6C13A40,0xCF3E2A47,0xC7CE36BE,0xB8BAB22E,0x8BD1CECB,0x91310540,0x364CB0C5, | |||||
0xA33635AE,0x28894291,0x30C5C09C,0x82202C42,0xBE33123A,0x5129282D,0xA498123C,0xC64084C7, | |||||
0x93B2A3C5,0x96ADB4B0,0x25ADC0A5,0x3117A4BB,0xC612C592,0x20C8C8C5,0xBBB6A4B6,0x82C6B746, | |||||
0x39B4AA39,0x2D12B1A0,0x2D4337CD,0x2133BAAF,0x214B1492,0x8F34C501,0x41A22D15,0x34133B9D, | |||||
0x40403418,0xB7B59140,0x352A4018,0xCBC02A32,0x42494021,0x411A412E,0x955EC91D,0x45341E43, | |||||
0xAFD847CC,0x47E19066,0x4FD758B7,0xDB4C3F4B,0xD5A2D161,0x4F92DD61,0x58ED56D6,0x3EDF2158, | |||||
0x5A63F05C,0x5CD6D5D1,0x20E5D0DA,0x325DE0D1,0xE3464A98,0x62E1D131,0x2062534B,0x6146E1E2, | |||||
0xD1C9DF60,0x444A668C,0x32415AD4,0xCF56E9B2,0x21E6D266,0x68EA6041,0xE04251E9,0xCB70C6B0, | |||||
0x5617E753,0xB9E04BB8,0xD911470C,0x5050AB5F,0x515BC7E4,0x5DD4D6D7,0xD9B8BFCC,0xCF60425A, | |||||
0x68CFCDD4,0x32DE50DC,0xC654E25A,0xCF4CE84E,0x4ACF5DE1,0xA9BB5BD5,0xE163D64C,0x2AE4D150, | |||||
0x68D7518D,0xCBE0E0CD,0xDE5D536D,0x565360D1,0x36CF4AE0,0xE3434261,0x39CC8065,0x42D55650, | |||||
0x455233DF,0xD73DE3C5,0xA6C6B940,0x9A47713B,0xB44E5BC9,0x94BAE260,0x08E3D32E,0x38DE2FD1, | |||||
0xE83DAD31,0xBD61D0B5,0x55E55414,0x3ADE58B4,0xD84ED648,0x5A3AE74B,0x4FD64390,0xC41C48CE, | |||||
0xDF4BD8A0,0x40C1515A,0x60C75DBF,0x28AAD342,0xD751A65B,0x653DD1D0,0x3BDD60C6,0xE2804254, | |||||
0xB81BD656,0x5CE0C052,0x52CA28BA,0xC15ACA57,0xD5C0CA43,0x50C06239,0xCCD253E0,0xC4A1C058, | |||||
0x41B1AF5E,0x51A5A8E2,0xC13CDCD4,0xC164B753,0x18BF4C3C,0xC5D06401,0xC04342D2,0x1525DF44, | |||||
0x56B70C2F,0x0BC52AE3,0xD94AD9C5,0xD64B1157,0x38E9C0D7,0x99DC9BB9,0xB252C653,0x4207E243, | |||||
0x5ACD4FCB,0xC24142D6,0xB943105D,0xC2DC3264,0x44E053B9,0x4142D1A8,0xD65BCB4A,0x584D3AAE, | |||||
0xCED15AD2,0xDFB45038,0x263F9D61,0x61D32DA5,0x5F2C31D1,0xC961DA44,0xA545A751,0x2EAD63C4, | |||||
0x3B3150CA,0xD8C5E35B,0x2ED2BC53,0x63AF22E0,0xB95DB8D8,0x39642B50,0x2DDCC08B,0xCFDE5C37, | |||||
0xCA45A43C,0x438AE14B,0x4DB7358E,0x133A53E1,0xE155C2B2,0x2F083051,0x62D75890,0x49CFC085, | |||||
0xDB4BD765,0x5250CDC5,0x12D427E0,0xD95656CB,0x84562057,0x47DAB041,0x48DA42D8,0xD156D6BE, | |||||
0x3454DC52,0x35CD6311,0xD5D359D3,0xE919BD45,0x5824CDA0,0x57D9D7CE,0xCB4328D1,0xD164D8B4, | |||||
0x4ED5ACB4,0xB2CA63C1,0xCF4925CB,0x5449D652,0x52824458,0x473B4BDD,0xCF5DC6C1,0xD64EB248, | |||||
0x48C5612C,0x44D746D0,0xD357C150,0x5641DD84,0x4ED8B5D4,0xC4580CDF,0xD547CB4E,0x25CA4055, | |||||
0x55B761B3,0x2AB0CDD1,0xD542E556,0x5AD556B0,0x46AFC0DF,0xE1BD3158,0xD143435A,0x65BC53C0, | |||||
0xA45B3DD4,0xD452CC54,0x4660B6A0,0xAF4262B1,0xBC464CE4,0xDDE8CF5D,0xB2CE6560,0x64C7BDE2, | |||||
0xC23BD163,0xC53DCF50,0xD2D5D3D8,0x51F15518,0xE935B749,0x5846D062,0x5CD0DCD8,0xE2E656CF, | |||||
0xDA6CDCB5,0x502ADAB1,0x51E132CB,0xC09A5E4A,0xB450E6CA,0x54319740,0x4F3157E2,0x23425959, | |||||
0xAA62CF40,0x61E1D34B,0xC0236130,0x6163CF33,0x9A17CA61,0x5C5643CD,0x2A324AE1,0x40553860, | |||||
0x5539D55B,0x65D55737,0xBAACBE90,0x3C67E039,0xAFDE3734,0xA3DCC5AC,0xE4465E29,0x40D2CA50, | |||||
0x48D856BB,0xC0D84A4A,0xE451CB3A,0xE4CDD139,0xA9DA50D8,0x49D9D6E2,0xD642DB49,0x2BA5D23F, | |||||
0x5FA9C0D5,0x32593EE4,0xD94FDB87,0xBBE4C4B1,0x4DA84FB0,0x363DCDA5,0x4F43CB63,0x51AC44C0, | |||||
0x3ECFA6DE,0xD1614150,0x555A485B,0x24CA6051,0xB7CE3E37,0xAC56D8B2,0x37C4CB4C,0x56A359C7, | |||||
0xCF1E48CC,0xC291D850,0x4CBB4C4A,0x46D83433,0xC043CB44,0xC053AD50,0xB8D8A9D5,0xCDD444D4, | |||||
0xC9501937,0x562FD141,0x51BD5149,0x3233B2CA,0xC54CDA87,0xA3B5BA08,0x47C55BCA,0xC4C3AD1B, | |||||
0xBE8EC562,0x5F3A4030,0x3DC22CC6,0xD1544942,0x4656D036,0x41DB551A,0xA9C64E42,0xBE3DDDB2, | |||||
0x399DDC31,0x503F54C4,0x433943CF,0xE451C948,0x4390499A,0x5AD040B4,0xC6413440,0xB34FD09F, | |||||
0xA1D3D1CE,0xD1D450C0,0xC34BC7BF,0x31BCBB41,0x49D65451,0x9B2E0EC0,0xD7C0DA1E,0xC755B2AD, | |||||
0x049657D4,0xD9B65FB9,0xC64AB852,0x5AB28621,0x42DF40DC,0xD162365A,0xD936BFC1,0xBBB41918, | |||||
0xC3CA66DA,0xD654955E,0xCBC84953,0x59D6319D,0xB0305DE7,0xDD60295F,0xCB2EC65D,0x5BD45D21, | |||||
0x95C943D9,0x5831E063,0x5AD7D242,0xA746C8CA,0xA55540D5,0xDD4D1E3B,0x5D564F3E,0x43493DD9, | |||||
0x21C0DD9C,0xB857A54A,0x56C494DA,0xC38F55DE,0xCF58D43B,0xA2D4E0C3,0xAFDF60B3,0x4C47CE4F, | |||||
0x16C8E9CD,0x90C4C9A5,0x41B7A1D6,0xD136B743,0x3B47424C,0x651D4453,0xB9D64035,0xD853484A, | |||||
0x2D49B4A5,0x39D24FC7,0xD9AB57C7,0x474AD654,0x37C53465,0x50B65388,0x41C8D8D5,0xC621D941, | |||||
0x3AA1A1CF,0xA9D1CFC9,0xD7D1C138,0x4A482D52,0x4BD1D1A3,0xC4A038BE,0xC156C5D4,0xC0CFA9B7, | |||||
0x3F3E5821,0x44B84637,0x1E2DD055,0x3B8F4048,0x4F4F2DC5,0xC936AC3B,0x2A5C4148,0x4EC843C6, | |||||
0xC0D930A3,0x324E263B,0x4630D23F,0x10C132A5,0xBA4031C5,0x9A37CAAF,0xB2B74851,0x4FB03302, | |||||
0x22B3DAA4,0x9E49B71E,0x51362FCA,0x93BE42AD,0xC8493A98,0x3D233233,0x53B2984E,0x50443146, | |||||
0xAC51BD35,0xC1C0B1AC,0xBFC04DCE,0x8CB2CED1,0xC382BE3E,0x46C7B331,0x4628D6C8,0xC2AAB737, | |||||
0x304DB6C9,0xB6D083BA,0xBDC8403C,0x4329B722,0x3FA7C145,0x412F4640,0x4C5E4CB6,0xC3B1AF34, | |||||
0xBD2741BB,0x4A2736C5,0x4C30A252,0x3A4A2155,0x9EA1C8C3,0xC1C3B2C8,0xC64B31B7,0x2FBA412F, | |||||
0x2CCF4D45,0x44402236,0x3911B948,0xC3C1A642,0x3543B9D4,0x9A42BFC6,0x29322AAB,0x4B23AE2D, | |||||
0xB5C7C8C2,0xB350B143,0x44562CA8,0x4DC9CDDA,0xC7C4553F,0x06B218B1,0xE0B1B7C4,0xC8493441, | |||||
0x4CBBD241,0xA7A955C5,0xC0C85337,0x0F43AB41,0xB0D63D40,0x614CC640,0xD610D138,0x4EBEACC2, | |||||
0x5234DAD0,0xD74507C8,0x1FC3C851,0x53434BC4,0x52D6D4D7,0x4F57CF35,0x5131C8A2,0xBF94CBCD, | |||||
0x88284BBB,0x2A52C1C6,0xA4BCDC31,0x2EAC4060,0x56A9B330,0xCBA09DAB,0x4DB225C6,0xB6B9CBCA, | |||||
0xAA1D5443,0x2A544A49,0x4E475144,0xD4419842,0xAA9E4AD0,0xB0C0B1BF,0x1B8850AD,0x1A37D0D1, | |||||
0x574B4D46,0xC2BCD049,0x250FD0C6,0xD9DCDA44,0x97AE4BC1,0x9CA31D54,0x4A968E3B,0xA9BB5240, | |||||
0x4D41B3D1,0xB5319839,0x3C31B4D1,0x2FB2CEB2,0xD2CD4455,0x402D502D,0xB7C1C499,0xC32EAE84, | |||||
0x3F3739C2,0x2C19B5C5,0xDCB53142,0x11ABC5CD,0x3FC1C637,0xCCB9452E,0xB3C6D9CD,0xCDC62BBE, | |||||
0x213030B7,0x34A2491C,0xB402BE45,0x8B484242,0x5E4C2CC7,0xCFB032AA,0xB04A41B2,0xC322B41D, | |||||
0xC3B73A8D,0x220F4CC7,0x474EC744,0x454B2A23,0x4E5A56C4,0x3039E1BE,0xD0B82348,0x62A240AA, | |||||
0x4BCABA91,0xB6C3B543,0x342CE021,0x31C1CEAD,0xB3C043D8,0xC252C9CA,0xD6D34757,0x57435433, | |||||
0x40565043,0xC984434F,0x46595146,0xDDEBD2D9,0xEADFD3D2,0xD941CDD0,0x44CA4A95,0x5F4C5A54, | |||||
0x5A6A5947,0x514E8C50,0x47CA3C4B,0x5F09BCD1,0xD8DDE12E,0x263EC21C,0x5A45444E,0x524DA23B, | |||||
0xDD323B50,0xD1D7D7D6,0x3BDA40CE,0x30574F26,0x9619E3B1,0xE1E2ACD2,0xBC92BBBC,0xD3BDD4DB, | |||||
0xD7A1D3C7,0xB6E44890,0x3CC0A3C8,0xD4C4C534,0xBDC9BA9B,0xB4C7AE85,0x50625E49,0x3E584758, | |||||
0x9FCD2E48,0xB6CA45E0,0x4E439437,0x0764CA53,0x6B4AD643,0x6028464E,0x5A468B24,0x5F2E59B3, | |||||
0xCAD7D1D3,0xE2BBC6A6,0xE646E15F,0x50CBBD50,0x62CC55D2,0x20B85BCF,0xC4B8B48E,0xDE34535D, | |||||
0x9CB09953,0xD06029C1,0xBBC1DECB,0x46D1C9BB,0x49E7D5DA,0x1D59CE53,0x2FD5A5CD,0x54B9A7D4, | |||||
0x3D5A56C4,0xA93DE234,0xC2C64554,0xC1E28324,0xC651D211,0x55B0DEA7,0x5D604A53,0x4CD35F45, | |||||
0xD03BB0C4,0x56C0E330,0x57494D58,0x4C4E6224,0xA8564A50,0x41BAC83F,0x4EA731A3,0xCF4A38D4, | |||||
0xCFA7DD4C,0xD943458B,0xC0EEBFE1,0xB5BBC4DD,0xC648C249,0x4115C542,0x39983941,0xCEC1D0C8, | |||||
0xC0BDD1C5,0xA1DD9EB8,0x4A4B50D8,0xD03ECBA1,0x264AB441,0x45403095,0xD8DB27CA,0xB551B8B6, | |||||
0x024B1841,0x50D5ADD0,0xC145B384,0x4151A897,0x60444449,0xC3B35542,0x3345B5C7,0xA843A74B, | |||||
0x4AC45530,0xC25337D0,0xC944B335,0xA2573E50,0x97B755C1,0x4AD64CAB,0x3B5E9150,0x4F40B253, | |||||
0xBBD043CB,0xC3C6C8CA,0xD12CD8C5,0x3ABA4647,0x233F30D0,0xDBC5D4CD,0xD4D6DA23,0x48C2A1D8, | |||||
0x444B3EB4,0xB14D5954,0x2EA0404B,0x4EC02F2F,0x4C4939A4,0x49623756,0x402C5451,0xBD3C5BBB, | |||||
0xC510DDD0,0xA7472153,0x51C15126,0x3BBE47C5,0xD620C439,0xC253BEA6,0xA3D432D0,0xD1B851C9, | |||||
0xBD45D0AE,0xBCD0D940,0x9BC636D4,0xB64436C7,0xB125C52B,0xC8B54F47,0x42D02ED7,0xC136B528, | |||||
0x40472559,0x49B99898,0xB70330D1,0xCC56A7BB,0xCBCED3A4,0xB5DFBFC2,0xB8B932C6,0x4C56C948, | |||||
0x3DAF4853,0x82C73DD8,0xCF8ABBCF,0xC142B750,0x5831424F,0x4EC24995,0xCB41BC0B,0x984DCC33, | |||||
0x44B92EC3,0x513A5004,0x415A4D58,0x3CA53457,0x12BA4291,0x4410D3D6,0xA14CBC40,0x85053B39, | |||||
0x26D435CF,0xD4A7BB27,0x272ED142,0x55353C3A,0x88CE4B81,0xD927B1BD,0xC9C4CD18,0x50AD4F94, | |||||
0x3730539B,0x8934B653,0xB741BB4D,0x42C6B3D2,0x374F34D0,0xD2431542,0xB6C3BD97,0xBCDFB8D7, | |||||
0xC138369C,0x4956C345,0x50BB4251,0x9EBE53C1,0xD215C1AA,0xC9B1D3AE,0x39B4321B,0x4E2332B4, | |||||
0xD022C536,0x3A41A525,0x50CB46C2,0x9A4E4D37,0x9B35B94A,0x33BC9718,0xBBC932D7,0xD44AD1CA, | |||||
0xC62CCA12,0x10AB4127,0xC6D5ACDE,0xD2C3D2AB,0xCAC1D83D,0x5CA748B7,0xAF352D1D,0xC0C7B343, | |||||
0x5EA21426,0x59365119,0x52653E30,0x8960A44F,0xD23A493D,0x34DA5831,0xB4C247A8,0x9D4BE152, | |||||
0x5ACEB160,0x54BA4FD7,0xD1599431,0x4056BCD5,0xD449C1C9,0xCBD761DE,0xD1C15049,0xD1D6D84E, | |||||
0x5DE5516B,0x275ADF3A,0xB2BC403C,0x564BC0D2,0xC34121D1,0x450EC092,0x58B1D993,0x544652AD, | |||||
0xD8C49FD3,0xE66101B5,0xD44245C9,0x31DC5ACC,0xD6C259C2,0xCFB6CB62,0x92C1D441,0x4CDB3737, | |||||
0xC1BDD7DA,0xC9A8AC4E,0x5304C4D6,0x45D1B2D2,0x434ADA51,0xBD4B094F,0x4C4982CF,0x205B55D5, | |||||
0x4915C1BD,0xAF47464F,0x45C75226,0x9A479433,0xB240D141,0xACD0C8B7,0xABD3B8E0,0xC8402C01, | |||||
0xC13A1554,0x4FCFAD4E,0x4ED448B7,0xCF512FA0,0x5046D447,0x48C84B4C,0xC4A86044,0xBC309937, | |||||
0xA8A0B755,0x53C2B8BE,0x3740B4B7,0x984EBA40,0x3AB0463E,0x98BB51D1,0xD4A390C1,0xA652B04B, | |||||
0x2BC14040,0x453541C1,0xA94A2282,0x47554E53,0x47374B0A,0x82BEB5CE,0xD236CB3C,0x95249643, | |||||
0x49C83ED5,0x9A3A4E38,0x4054B642,0x2FB82751,0x2ECC4A98,0xB734C9C2,0xA34DC23C,0xB4CCB7A8, | |||||
0x1BD036D7,0xD8B1D0C7,0xC72FC423,0x4CCB3813,0x32A13BB0,0xB84EB841,0x8D10C437,0x9ED527CB, | |||||
0xC10243C8,0x044BC648,0x46324552,0x47113ECB,0xBD430FBA,0xCD9BCC38,0x4C324CAD,0x37C349BC, | |||||
0xBA48B433,0xB2B4CC52,0x2ECFB7B3,0xCBC6B6D2,0xD021AFBC,0x9CBDCDAE,0x28B047BB,0xAF2C51AE, | |||||
0x3E47C750,0x4D474A51,0x47AD518B,0xC729AC9E,0xBA42BE34,0x40C22EB0,0xC0E03F25,0xD443B796, | |||||
0xAD09DBB0,0x42C24831,0xA6444ECB,0xC237A333,0xA6B62142,0x5D2040BA,0x35342F43,0xAE44C954, | |||||
0x53943539,0x26CA48C6,0xD14EB0AB,0xBA48B645,0x54C1A5AB,0x4B40552F,0x3C50199D,0xCA31D04B, | |||||
0x40BF40CF,0xC6B244BE,0xC339B944,0x3033B730,0x54C438CB,0xC4A23203,0xBE51C2B2,0xBECBC0B3, | |||||
0xC1D132CD,0xD515D2C5,0xC232D744,0x4FB7493C,0x5A2D58D3,0x9B489F40,0x484CCB55,0x593AB8E0, | |||||
0xCABF8AD9,0xE65EB727,0xD7D83F54,0x4FDC4CC0,0x515013C1,0xAA45C748,0x52A3DD50,0x5A4447D2, | |||||
0xCB63B5E3,0xD1543C4D,0x55B354D5,0xE2D855E2,0xE6E1394A,0x2695DC66,0x9DCCCF51,0x4FB71DC8, | |||||
0x525EDCE0,0x353EAEA6,0x4A4046DB,0x314BB5E2,0xDB52C956,0xB4BF6603,0x443B4A34,0xD937432A, | |||||
0xD6474250,0x48BD4CD1,0x3096B3A3,0xA09FA304,0x29BFD65C,0x51DB4BBA,0x455F50BA,0x9F53D9B8, | |||||
0x33394055,0x42DA43A9,0x998CC3BB,0xC432C83A,0x4C515243,0x4DBAA1B9,0xAB54362C,0xA04FC21E, | |||||
0x33D44045,0x47B431D6,0xC232C737,0xB0CCC256,0x4F3B3424,0xC3B31FDA,0xD1452636,0x4C4A2347, | |||||
0x38C028CE,0xB2B4BED1,0xBA48CE18,0x15C1BA3A,0xAABE4E21,0xC81091C1,0xAB1AD310,0x4CC54607, | |||||
0x3A2B45C0,0xD1B4D0A9,0xC53CA349,0x47D324C0,0xB1C54589,0xB682B258,0x4AB2BB4C,0x46C22305, | |||||
0xAE43A0A8,0x3A46C918,0xB0C52040,0x160658CB,0xC3A4C8C1,0xD3A1B540,0x4C3C47A5,0x2FBC2EBE, | |||||
0xD4418549,0x33428CB5,0x45BA0AC2,0x271B42B0,0xB043B63F,0x3001B13E,0xB29740A3,0x853C31C9, | |||||
0xC1B0B93A,0x23B42924,0x44BA31C7,0xAF25C99E,0x9641C13B,0x4634C0C6,0xB5B944A3,0xC1413807, | |||||
0x9113C822,0x2DB74E28,0x454943C1,0x9F4FA41E,0xC01C2549,0x431746CB,0x3216309C,0xB453394E, | |||||
0x523A2737,0x29C43C93,0xB64B3291,0xB54BB9B1,0xC2D03412,0xC0CA13CF,0x3240C29D,0x14B3BE53, | |||||
0x41A64191,0x3A3228C6,0xD42FBD25,0x25A7A5A2,0x2FCFA9C7,0xC0B63138,0x204EAE35,0xA7C2C315, | |||||
0xB2C435BB,0xCB8DACC8,0xB3B9C921,0xABCA2321,0x25C8A7C1,0xC2BAC03D,0x38439C43,0x4EAB25BE, | |||||
0xC0BFC1CC,0xBF45B92F,0x4A27C0AD,0x29CA1F2A,0x99423F9B,0x3F4BD03D,0x94B93344,0x278A4DD5, | |||||
0x2E44B5BA,0x14443B55,0x511E4230,0x43B839B2,0xC1511340,0x49572239,0x30C92735,0xB2353332, | |||||
0x3439CE21,0x45B2B12B,0x3DC647D3,0xB744CED8,0xD154A720,0xD4A95B30,0xA5A65B9D,0xD9BEB150, | |||||
0x53D3C856,0x60D3D9A0,0xC8D23CCF,0xD05FC534,0x3545D556,0x4FDC65D2,0xE1514EB1,0xB0C08249, | |||||
0x3AE15358,0x542C1AD3,0xDA4DD94B,0xBC38E447,0x551FB0CA,0x56E050CF,0xD7513A1F,0xB76141A0, | |||||
0xD0D75CB1,0xD6D35CCE,0xD13CE1C1,0xC8D6DB66,0x61DF4FC7,0x41C3C837,0xB1C2C44D,0x3637D547, | |||||
0x56C9CF33,0x34B5414A,0x4A45B1D1,0x574ACD41,0x5A473DCF,0xCB5EBED0,0xB92ECA1D,0xCA2650C8, | |||||
0xC34945C8,0x1220CF31,0x4C3E5445,0x82303BC0,0xC3B447CE,0xC8273052,0x4E85C0BD,0xBBD12748, | |||||
0x3FA43ECB,0x9650D04B,0x97C0BC3F,0x2F504AA1,0xCBB351C7,0xD7BD9651,0x25D333BF,0x4BD020A8, | |||||
0xD144B151,0x4749BAB0,0x11CA492A,0x121A3226,0x3546C894,0x41CCBE41,0x4AB12D90,0x4943C123, | |||||
0x1438D22B,0xB844522A,0x04CFC3CF,0xC9C2CD1A,0x8C342A05,0x42C5C3C2,0xC3973A05,0xC0454F29, | |||||
0x21B4A933,0xC6CA3D42,0x403629BA,0x871BCF9B,0xB5891139,0x4E3F34BE,0x972335B9,0xCC1A4B47, | |||||
0x4332A50F,0xC6D39A96,0xC0B29791,0xB241D111,0xBAC8B7B3,0xA2C841BB,0x3322B8C9,0xB9BD1047, | |||||
0x33A03A3F,0xBCA6B7CA,0xCA30BB30,0x24443A39,0x41CA42CD,0xAD343D44,0x4A37314B,0x3EBCC38D, | |||||
0xAF00B839,0x9A4A291B,0x9BB9CD41,0xBFC94D25,0x419539CB,0xB9B71341,0x3234A237,0x15CABEC8, | |||||
0xC1C1B3AB,0xB61F1CB9,0x38BF1EAF,0x32BE2F33,0x06311C39,0xCC3BC02C,0xDEAFE068,0xE96DE365, | |||||
0x72F25345,0x54DB73F1,0x76E972EE,0xFA51D5EE,0xD24EF16A,0xF06EE866,0x6EE94074,0xE35AB552, | |||||
0x76E64750,0xCBB44BDA,0xE0D39B45,0xF0CA39E9,0x4EC4192C,0xE4C36CF0,0x56445246,0xD45FD2C9, | |||||
0x4C53B74A,0xBEDDA8AE,0xB96EF64E,0x58CF57E2,0xB85CCBC1,0x60C95F57,0xD0D967D0,0x3056D840, | |||||
0xE6B810AE,0xB459A64F,0x58E10433,0x41E23FDF,0xCF2CD1D5,0xE16AC6BE,0x54B43456,0x65DE9D52, | |||||
0xC0DAC4B2,0xDC5A6BD9,0x615BECE1,0xCA56D1DA,0xC22AA23D,0xE553C3B9,0x81B3BBC3,0x86C6C5E7, | |||||
0x3454EA58,0xD4EB47E0,0xE3DA44DD,0x4DDCE2E5,0x2653504E,0x546744D0,0x9C606B55,0x43346855, | |||||
0x415ABD3D,0xD649D729,0x4B63C45C,0x61D552C4,0x5E35A55D,0x634450C0,0x4C54C743,0x425A5225, | |||||
0x90406253,0x4351CDE5,0xCA60E037,0x435D58E3,0x3412D035,0xD1265C4D,0x5127B8E3,0xC996E22A, | |||||
0x45DAD546,0x58345A38,0x3ED53E59,0x37B4213D,0xDACD2BAA,0xD3C7DF27,0x2AA64EB8,0x2157D2DC, | |||||
0xE4B84B40,0x2630D3B8,0x61A750D3,0x8E565253,0xD4494958,0x60D2CA36,0xD5C2C7C9,0x5ABDDAD0, | |||||
0x3223D6E2,0xD7A2A7E0,0xD0D9E5DE,0xC4CCE154,0x3EBE36AF,0x43235F4A,0x4221515C,0xA459414D, | |||||
0x323FA847,0xB3C75143,0x3BC839B7,0x1A47E1CF,0x42D8B94A,0x313193D7,0x402D1B14,0x24C34458, | |||||
0xC3475258,0x1CC0C4D2,0xCBCECD54,0x30A6B6CA,0x54C8C739,0xD8A74030,0x94B9C714,0x4FCC1353, | |||||
0x48C121A1,0x3F50A6B0,0x45D5C434,0xD1B50E56,0x51C287C9,0xD143D340,0xABBFA1BF,0x33AFC696, | |||||
0xCFD3C0B5,0xB741C0D2,0x1D8047C2,0x21905047,0xB22D5730,0x292ABA3F,0x243E485A,0x504F532F, | |||||
0x0E3D4545,0x0542A250,0x51BE4A9A,0x42364045,0x233B3942,0x565E5139,0x46329BAB,0xB64B4E51, | |||||
0x4B283C1B,0x973D9242,0x2EA34050,0x4500B9CB,0xADB7D050,0xC74047B1,0x44D02BCC,0xD6D5C615, | |||||
0xAD249DAE,0x42C0CDC2,0xCBD6D1C0,0xCB32CFBC,0x2CABC1A5,0xC9B2C0C7,0xB8A14AAB,0x3EC1D4CD, | |||||
0xDBD1CC32,0x3BC233C8,0xC2CFD6C7,0xDCC5B4BA,0x3FB6ADD0,0x3EC50EB3,0x3849164B,0x2D40C8A3, | |||||
0xC3B1C832,0x193642AC,0x2E49B2B5,0x4AB3344E,0x4BB65840,0x5D3C1A27,0x42334656,0x50592036, | |||||
0x404DC6B1,0xDF50D848,0xDF236253,0x63D546C2,0xB74657D2,0xC04B4DC4,0x64D22B58,0xD14C58D3, | |||||
0x52DEDBB9,0xE0BDC44F,0xD154DB53,0x46D9D04B,0x2CDC1C5C,0xD0ABD63E,0xB9D05351,0x66C630D7, | |||||
0xC1D7D5D7,0x8C563DCD,0xB209E3DA,0xC84FC53A,0x3B40BCE0,0xD3BE4456,0xD65E61B1,0x4CC13BBA, | |||||
0xD6C55340,0x8B279BC7,0xCFB928C1,0x97A53349,0xDBB018CB,0x81A54838,0x3FD1438E,0x522CA23F, | |||||
0x46489A50,0xA33BD254,0x3429BB08,0x45C1C547,0x434B5150,0x50D057B3,0xBA444843,0xC2D72A20, | |||||
0x33C9454F,0xD55156D1,0xB46003C2,0xD35DB018,0x5D532E4D,0x49D33DAF,0xD4A7B2C6,0xBDC5C9C8, | |||||
0x4B3147CB,0x523B20CE,0xC94ADA54,0x333D974D,0x21DE2344,0xB0B4450D,0x3444A3D0,0xBFD6D2CE, | |||||
0x3145593F,0xA38FCCC2,0xAAAACA48,0xB04520C7,0xC486C018,0xBB92A14C,0x344224C7,0x40C04CC7, | |||||
0xD1B94CD2,0xB853ACD1,0x2A94D6A8,0x16B5142A,0xCFC0CAC1,0xD0C5CCBF,0xAEC33143,0x4E385813, | |||||
0xB2AEB90C,0x0599C0C0,0x253C121B,0x87418292,0xBE4443AD,0x4B3FB3AC,0x23B5A02C,0x34BFB52D, | |||||
0x37D1CBBD,0x2726C133,0x4646400B,0x38B0C0BE,0xB0B2D141,0x9CB09832,0x43C19021,0x36474750, | |||||
0x3143BCB2,0x31CD99B1,0x2D974136,0x3A51BCAA,0xB5143548,0x3FA94634,0x32453F2B,0x3441C142, | |||||
0x43114234,0x3A9C25C8,0xA3213445,0xA428994C,0x45A3B1C7,0xC8C5A991,0x42513313,0x3E4AB2A8, | |||||
0x41C2283C,0x2B413C02,0x112BC5A7,0xD2C42244,0x313725D6,0xC0B9B0C2,0xC8AEAB52,0x4C2D24BD, | |||||
0x97CE2727,0x3A814D43,0x3E3EBD20,0xAAAEA240,0xAC1E34C7,0xC0A0C9C0,0xD7ACCB47,0x45413FC9, | |||||
0x543642B6,0xBC3DD242,0xA0B133C8,0x95DC30B1,0xAC55C2CD,0xD45AD3D7,0x59C145BA,0x37D13ECA, | |||||
0x105AD63B,0x36CBCF45,0xDDC14356,0x1CB35CA6,0x49D3D0B6,0xD6554D16,0x133741CF,0xC8D41EBB, | |||||
0xD271B6CB,0x608CE226,0x4DD761CA,0x6262C1CB,0xC8E24D54,0xD64BC435,0x46D02C51,0xACCD52BD, | |||||
0x4A63D255,0x504F2E28,0x52229459,0x43D6C4C9,0xC16590D7,0x20CBD4C7,0x22DA5929,0x5248E8CD, | |||||
0xBED1CDAC,0xBFC24224,0x37354141,0xCDC2B349,0xD556521C,0x57324F20,0x8A1F51C0,0xD1463A41, | |||||
0x40A3CEC5,0xCB3953C5,0xCF4921CC,0xD5D1D0B0,0x3EC6495A,0x48CD16CE,0xAAB0C490,0xB93B2E43, | |||||
0x535841C5,0xC9C5C9AE,0xCD5132B7,0x34C3B6C7,0x2AC14BB0,0x0F583E32,0x9148D222,0x0FC8ADAC, | |||||
0x5582BAC4,0xAB26BBD0,0x4D44AF44,0x38133CA0,0x2347A9C5,0xCC2BC24B,0xB4B54141,0x481C4BBD, | |||||
0xC9D23A43,0x251BD040,0x50CFD3D7,0x444B4338,0x8D3B264C,0xBAD0DC38,0xB2BC4235,0x26261AD2, | |||||
0xA6229CA9,0x82492443,0x4D3E41A8,0x99B51AC5,0xB5493142,0x33BAA623,0x8AB51136,0x2B2C0691, | |||||
0x9B33D1C5,0xA6A99233,0x3F444DBF,0x31BBB928,0xD5C59237,0xC0CBBBC4,0xB1D3CED5,0xBA48953F, | |||||
0x3F4A2024,0x3ECFC527,0x4526A31B,0x2D403AAF,0xACB99E4F,0xAAB24E32,0x26329EB8,0xC2AB143E, | |||||
0x07A9423E,0x3D8E90B2,0xAE1CB353,0x213F3F36,0x48A7A7CA,0xB9B829B5,0x2242B7B9,0x1697BA31, | |||||
0x22BE3F46,0xAE3631A7,0xAB36C1C2,0xB20D2842,0x44B039C4,0x8312C2AB,0xBCAC2842,0x372A18AA, | |||||
0x2EBF3425,0xBF423945,0x4642B794,0x9FC1A727,0xA7814519,0x4041BCBF,0x35A2234C,0x9AAB3D25, | |||||
0x25B1B6CC,0xCDB4C043,0x253C219E,0x34C5B4C1,0xC7AE4843,0x2B410923,0x328EB2B8,0xC5C504A1, | |||||
0x1E36B1C1,0xADB5C423,0xB2AE3113,0x38B5C4CC,0xC3C7D117,0xA72B373A,0x80B0B3C3,0xC6C119BF, | |||||
0xC0340F1C,0x3E12AFBA,0x23C04545,0xC2318FBB,0x3643BFB4,0x2BB31A35,0x51465234,0x48413B3F, | |||||
0xAC3B3157,0x4F3F4536,0xBAC1B386,0xC2323530,0x3E4035AB,0x32B53B35,0x001E473E,0x3740A02D, | |||||
0x45421041,0x2D365343,0x9446AAC1,0xA195A42F,0x2C324442,0x523537C3,0x9F8DB041,0xC518303F, | |||||
0x80CAC0C1,0xCAB53A2A,0xC05050B5,0x2020B71F,0xC1B7271A,0xB9B6B7D2,0xB1C3D1C0,0xCAB2C192, | |||||
0x25C518CE,0xB9950BB2,0xD2B2AE3C,0xA00EC6D3,0xB9D0C3B0,0xCFAFB4CE,0x411DB1B2,0x28AC233B, | |||||
0x3450593C,0x9C45C1C0,0xD2CCCF9B,0xC6D6C5D0,0x9B90C2D6,0xA141A23B,0x24524996,0x49AA3E17, | |||||
0xAC054340,0xBC429E39,0xA8C5C5BA,0x21C917C7,0x32514236,0x4337A84D,0xA0A14434,0x413309CB, | |||||
0xC0C6CF2C,0xC13E9F22,0x52AF38C1,0x42291B3D,0xA6495154,0x49429041,0x38BD3838,0x06443731, | |||||
0x4140C336,0xB0C9433D,0x183048C2,0xBE1B3AAE,0xD5A9B615,0x3C1B17B3,0x4129A419,0xB043C048, | |||||
0x4F5944A2,0x3CC8ACD2,0xD534A5D8,0x43D3D3B1,0xB1B5BE4B,0x3945BEB9,0xCEB84EC6,0xCB52C751, | |||||
0x20C961D7,0x43BAD1D5,0xDC56E825,0x57C34952,0x518B53E7,0xC221324A,0xA246B33E,0x38B2D3CA, | |||||
0x5137A94E,0x4A3FB6DD,0xD1DFC463,0x1D56C962,0x52CF5DD8,0xC454BFA3,0x5D401F46,0x67A05750, | |||||
0xCFA5441C,0xCF475648,0xD4ABD458,0x37A0CBD7,0xB4D53ACE,0x56C5D3B6,0xE2AC3260,0x63414151, | |||||
0xC02024D3,0xC23A533B,0x4D50AF47,0x4BC2BBD6,0xCBB5305C,0x23C047A1,0xCBC3CCA5,0xC93AC4CE, | |||||
0xBAACD2D0,0x46B8A54D,0xA02850B1,0xC9213ED6,0xC6B22F3C,0xC040D2A7,0x55C5CAD5,0xC1C2929C, | |||||
0xC9AFBD44,0x36BDCAC9,0x17C24535,0x10BAC5D1,0x402CC551,0xBF9E9513,0xA626ACA1,0x06D5C317, | |||||
0x0B233133,0x0030C4C5,0x53AAC330,0xCCB035AE,0x47503E16,0xD3C04722,0xC6B24B1E,0x2649D4A3, | |||||
0x29CCC8A2,0x44274B35,0x1ABFA0B5,0xCB38B23C,0xCFBA4698,0x3BD4D5D0,0xD5C440C0,0x2B3AB344, | |||||
0x50D3434A,0xB1494C37,0xA826AA3E,0x2FA8BE90,0xB0B6C649,0xB0A6C0B9,0x35C4D2C0,0xA640179F, | |||||
0x30B450D6,0x10B22F25,0xB730CB42,0x16B4C19F,0x17843E31,0x45C14136,0x3E40C9CB,0xC253CFBF, | |||||
0xC0A63EB9,0x33160BBA,0xD1BBB05A,0x5AB8553D,0x2D303322,0xD2B72149,0xAC94AB91,0x24C0AFDA, | |||||
0x98BE2B20,0xC2293952,0x3D972239,0xA850359C,0x23964028,0x31323F21,0xC194303B,0x4FB7B4A9, | |||||
0x2CAAB24A,0xC51A2845,0x44AD37C2,0xD0B7B3BF,0xCA4929BD,0x37ADAABB,0xB6C5B2D1,0x2A40AA38, | |||||
0x4233BB39,0xBCB7B446,0xB9CC9BBE,0xADC883C4,0xCE26383B,0x2ABC94A8,0x27C9D6CC,0xAA41AACC, | |||||
0x334FC146,0xD0CF3F12,0xCBC519CA,0xBBAEB0B3,0x35CEB02C,0x43153432,0xB654B111,0xA2009FA3, | |||||
0xC4C233BE,0xA1CE97C7,0xC898A834,0x4450453E,0x4936BC46,0xB8BBA6C5,0xB94189C2,0x13ACC324, | |||||
0x1FC44D32,0x4E2E4AA9,0x2F3BC244,0x2E3D4257,0x423B4505,0xAF20A8BE,0xB04C353F,0x43982DBE, | |||||
0x481FB138,0x1A34414F,0x2734B333,0x09BB20B7,0xBBAB48B5,0xB324BDB8,0x9EB81C44,0x323C413C, | |||||
0xBDB0ABB6,0xCBC1CAAB,0xBEBBB1CD,0xB0C709CF,0xCF2A94B8,0x2F3BC424,0x33BEB043,0x332348AB, | |||||
0x3635C1C7,0x8C43B534,0x27C04032,0x36C0B5C8,0xC9ACCE39,0x95B9BB9C,0x2CC0C3BE,0xA22B4003, | |||||
0xB1494033,0x381C14B7,0x2BC9484C,0xB322BEAF,0x018CC541,0x3914A737,0x401F40CC,0xBB153E3A, | |||||
0xCEC1B12B,0x3DA720C0,0x16BB2D85,0x1D473648,0x424E0C9B,0x4E3C112C,0x49565152,0x47464534, | |||||
0xBF3F0143,0x30C43B29,0x3DBDA8B4,0xC925BCC5,0x42439837,0x31A755C2,0xE0B9C580,0x4105CD41, | |||||
0xA1CEBFD0,0x2DBA4B3D,0xB14DC33E,0xC73450D4,0x1F2D4441,0xBD2948BD,0x2A9CB538,0xC4B5BDB2, | |||||
0x4FBDBD30,0xD1341148,0xB4C63C1C,0xA442AFB5,0x5AD04808,0xC0403447,0xAFBDAD19,0xC3C4D080, | |||||
0xCCC3AAD5,0xB824C6C0,0xBBCEC415,0x99BAB9CF,0xC231C794,0x4F5233A0,0x45D448CD,0xDC2C2041, | |||||
0xD1C75A84,0x294ED15A,0x4157B1D8,0xCFBCC04E,0x62CC54CC,0xCA65B248,0x292FD0C4,0x61BB43D5, | |||||
0xCC10C0A7,0x62BD305B,0xBF4056C9,0x4CB90E40,0x4E5FE439,0xE50166DC,0x50494156,0xBFB4BBB1, | |||||
0x48D7D038,0xB124B050,0x50A0DD5E,0xCAC1CEDB,0x4CD0BF4E,0x5BD34444,0xC1AF0D02,0x5B5B6149, | |||||
0x4DA5C8D5,0xC2A0E2CC,0xE33AD84A,0x28B554D4,0xDFC14F51,0x2DD0532A,0xA12496C0,0xB7409B40, | |||||
0xB2E1444F,0xCC2191C1,0x22C3D029,0x068E2B50,0xD3E0CBC7,0xCED6B01B,0x5946CECB,0x41506252, | |||||
0x4D5E4E50,0x40275D41,0x4313C64E,0x5517D445,0xBF4C330D,0xE056C6D9,0x26A854DE,0xB4B680D8, | |||||
0x9A47B9D8,0x42635160,0x41523935,0x5A3E3983,0x464D19DA,0xE59C554D,0xCBB7C3D3,0x0AD6C9CA, | |||||
0xD3D3DBDF,0xC49BB859,0x5CC79B52,0x563ABF25,0xB53F503A,0x39D1D924,0x6148344C,0x50256C4B, | |||||
0x65624FB9,0xD160B169,0x53600746,0x59B03765,0xBDD6D0DE,0x61354CA0,0x95C1D7D8,0x599DD121, | |||||
0xE11F3B25,0xD3B1E4A0,0xD1AC4F59,0x33D9C6E4,0x42D5D7D9,0x51C9E513,0xCECABE5D,0xD3C454DC, | |||||
0xDCCB30D5,0x3ACDCFCB,0xBC43E6C6,0x54AD3B40,0xCAB83224,0xC3D3E3B3,0xF0DF38EC,0xD754D353, | |||||
0x69935847,0x5552D437,0xA3CB535A,0x50126E5D,0x5A3E655D,0x6961C0D7,0xE7A9B1CA,0xE3E1DBCD, | |||||
0xD6AFE7DB,0xC7B6D868,0xBD3AA0D6,0x638A4491,0x42454CEC,0xE625DF29,0x5ADC5550,0x3A595ED0, | |||||
0x67594461,0x97594439,0xE1D2BA9C,0x1538D0E2,0xDA5242C6,0xBD724F4F,0x67E25F6C,0x58D54A17, | |||||
0x54674056,0xB64553D5,0x5BBB9E40,0x22D0BAE0,0x6030D745,0xC2465452,0x42633245,0xD555C856, | |||||
0xDA102854,0xA7093EDC,0xD1E0B8C7,0x36B21224,0xCED94ED1,0xC5DBD0E8,0xB73041DC,0xC53AE0B4, | |||||
0xCBBCD759,0x573640C7,0x4B52544C,0xDAB0CD35,0x5B5E913A,0x5BA235B6,0x28553B42,0xCD152B38, | |||||
0xBAD0D748,0x62E220D4,0x4139BC19,0x5B3F5B2B,0xC856875B,0xC2D3D524,0xDEE4E2D0,0xB545C03A, | |||||
0x585851C3,0x5A51A951,0x40C3CF48,0xB30544D4,0xB1A6A6D7,0xAD13BE3C,0x45D14246,0x313B2EA3, | |||||
0x12524051,0x5356D5CB,0x2E5A46C2,0xB8DB3B2D,0xA240549A,0xD9C6A1C1,0xC6694B4C,0xD4E159CC, | |||||
0x444B691C,0xE74F4FE6,0xF042EF62,0x83DB5669,0x37E562DB,0xCEE561CB,0xE950F250,0x65F6CE6A, | |||||
0x6C4071D5,0x48C2D1D6,0xC7E0D664,0x934FD975,0xF92360C0,0x384674B0,0x5A76F4E6,0x6954E6E5, | |||||
0x41F46203,0xD164CCD8,0x71E26372,0x604BA367,0xDBEC664D,0xEAE2F275,0xD5FDDCBD,0x5CE96573, | |||||
0xD95041E0,0xF638495C,0xAD4CB049,0x406F71F5,0x3AE71AC5,0xE35DEAE2,0xD020B7E0,0x5555EFEB, | |||||
0x85E4ECDA,0x61ED6562,0xE138F060,0x56474A59,0xA594CCD4,0x67D23F57,0x62CA55D3,0xE14A596F, | |||||
0xCB4DD5BF,0x3750A71B,0x5F47D8D1,0x41EE35D1,0x59E3DB5E,0xAC3EBC7D,0x3F6531A4,0x58E354F7, | |||||
0xA35CD3D8,0x5363E145,0xC95EC61E,0x3AC85061,0xCA5036EE,0x506BDCEC,0x694FC7DC,0xC5DCD6E4, | |||||
0xE2E15B46,0xD35DDDC8,0x5F69604A,0x32A1C654,0x583AD88B,0xA0D34058,0xD1DAC962,0xF2D158D3, | |||||
0xDFD3B3E6,0x3750D7E1,0x67EF4755,0x71615E54,0x6E47622E,0xCA5B506F,0xF1E0E15A,0xF3E9F0B3, | |||||
0xCBC7D6D9,0xE3CDD1C6,0x70456ABE,0x5A4641EF,0x88C34CDB,0xA766394F,0x3861E167,0x3D3D3326, | |||||
0x6055C547,0x5252A0D3,0x5B2061B4,0x4D42E4AD,0x62A3605C,0x4D607060,0xBCC64755,0x0262B399, | |||||
0xDC23D630,0xC9CAC852,0xE2EDDCE0,0xC4E9E7E8,0x4B525BD3,0x586430CB,0x61685F3E,0xBDD4E048, | |||||
0xDAE0E340,0x484A3A50,0x41594750,0x64DBB0D2,0x70654F52,0x484E5A61,0xC7454A98,0xCE41D581, | |||||
0x558B3BC0,0x4756D5B0,0xC6D1CC53,0x2105D5D5,0xD7E4E2D6,0xDBE5C6D6,0xD1D7C1E0,0xE04652CB, | |||||
0x02B2CDDC,0xAC9BE34A,0x54455233,0xAC3D2B45,0xC2D42845,0x33514E1A,0x41A94E4A,0x433FC2A0, | |||||
0x29CBB242,0xCEDBD9C9,0x43B4B9CC,0x951C9E3C,0x4C524197,0xBCCCB754,0xD514233D,0xBD39CBDE, | |||||
0xB1B2B1D9,0x51534439,0x54234341,0x5656605A,0x5156565C,0x5D51454D,0x424B545E,0x41470A35, | |||||
0xBA4C458D,0x142D3EBE,0x4A45C2BC,0x504CB6B1,0xC1433E4A,0xA9CDD4C1,0x9BBF31C7,0xCF9FBDCA, | |||||
0xA3CAA8C3,0xC0B7C92A,0xA830B4C5,0x4BCFC6BF,0x17213B48,0xCD1A3641,0xDCD7B7C5,0xD8B9CED6, | |||||
0x5B5429C5,0x4936504F,0xDACDBE47,0xDED7D8DB,0xDCDCDBDB,0xBCC6B4D1,0xBE09B0CF,0x32C2CCA5, | |||||
0x1F0299A8,0x3C304D48,0xC53E280C,0x98434C26,0x56434297,0x4E3F3C3D,0x50523E4D,0x5451565F, | |||||
0x40505954,0x33495345,0x0433424E,0xCFC8CCB4,0x2AD1CCCC,0xB8CAD3BD,0x1D4CA5C0,0xC1B8B8BD, | |||||
0x8C9A12CE,0xBB93A0B5,0x36294A31,0xBAAFB9A3,0xCAD0D4B8,0xB2A5C6CB,0x422F3444,0x2D3E4C44, | |||||
0x49204232,0x94C2AF48,0x3435404A,0x4801383C,0xC09E2682,0x301FB39A,0xC2C51747,0xCEC69E22, | |||||
0xC9D5C5C7,0xB2C4DBD2,0xC9A9BFC0,0x414622C0,0x35492AAE,0x443D3DCB,0x1F99484A,0x26BAC2AC, | |||||
0xCA38B139,0x0344450E,0x553C2E8F,0x49545559,0x4546483C,0xA0C50947,0xC4CDCEC8,0xD1D4D022, | |||||
0xA0CBC9BD,0xBC303ED1,0xB6C108A0,0x0C041230,0xD3C2BB25,0xD8D2D08B,0xCD934DBA,0xB5D7CECA, | |||||
0xCCD3D3D7,0x2A47522D,0x49525355,0x35505555,0x53455219,0x1BBAC1B5,0xA49AA8C0,0xBE2FC04E, | |||||
0x504B5050,0x50E0AD5A,0x2EAB2B4E,0x3A2E59A0,0x635DC3B7,0xC4D0B357,0x3F5DC140,0xD4DDC847, | |||||
0x6123B813,0x374951AA,0x5F5B4B34,0xC2144B5E,0x4A53A0CA,0xDD40AFB9,0x56404DDC,0xD3D0B833, | |||||
0xCC20AACF,0x41D7C6D4,0xD653504B,0xBE342343,0xD89B5D50,0x0FACC0D2,0xD2D2C793,0x52A2D8E0, | |||||
0xA7D6E3CC,0x425051A0,0xA2B8C3BC,0x0ECDC154,0xBFC740B9,0x3C54DADC,0xC4D1CB51,0x1351B1C1, | |||||
0xCFD6B8CC,0x24504611,0xA8C31B3B,0x35AA30CB,0xBBAED4D0,0x593A20C8,0xAF33B590,0x4C574720, | |||||
0x3640284F,0xA8545B5C,0x42411C29,0x20202921,0x422FB3CA,0x39515354,0x50513CC5,0xB4414943, | |||||
0x474444B7,0xC6C5D1CD,0x20A9D2CF,0xD4D1D5D9,0x3138B3C1,0xBACC1B42,0x47404C5B,0x34C3C22C, | |||||
0xB6494855,0x403CD2D7,0xC8D0CECB,0x494D50CD,0x44BC8453,0x54495345,0xB4353453,0x873B4843, | |||||
0x32BEBC2E,0x08505049,0x00B31DB1,0x479C272C,0xBAD4D1B8,0xC5323947,0xC1D9D8D4,0xC9B0CAB3, | |||||
0xD4D2D2DD,0xC1C4C6AF,0xC6BCD1B9,0x26CFBFA1,0x03B2C5D3,0xB6C4C8AF,0xBFC8C4C5,0x252A4D39, | |||||
0x432BAF9E,0x47314551,0x373AAA50,0x399341A4,0x30BCCA2C,0x28564E43,0x02274E3F,0xB2413A00, | |||||
0x2025352D,0x4D1EAC3F,0x1FA2394A,0x484649C1,0x4A3B2D46,0x9C515135,0x0C984F40,0x5348B7A4, | |||||
0xC6AD1051,0x493CA115,0xC4C29243,0x4341A3A3,0x9BC93742,0xA83135AA,0xA0D12532,0x38503B27, | |||||
0xC0B4A882,0x9F3CB03A,0x2AC5AAD9,0xC5ACBA33,0xB5BDA6B7,0x9239208F,0x373A2DA7,0xA1433E43, | |||||
0x074244AF,0xC5B4312E,0x33A20616,0x3E91A3BF,0x4035B089,0x4E4CB33B,0x1E40422E,0xB4434683, | |||||
0xB42B17C0,0x9EBBC6C3,0xB3C3B806,0xA618BBC6,0x948BBAAA,0xA337BBC6,0xA7B6ADC1,0xB2BCB984, | |||||
0x33041093,0x451AB212,0x31B7A050,0x39402EC3,0x2CC7C720,0xBC331D42,0xADB7C214,0x309537A2, | |||||
0x14B8D1C3,0x919A3AAB,0xB6C1CCBC,0xD2B33327,0x33ACC0CF,0xA6C7C19D,0x23A9C518,0x36374234, | |||||
0x4316A917,0xC13F4551,0x4238448F,0xB1BD4243,0x4529A039,0x429ABA41,0x22BD3C3B,0x8226862F, | |||||
0xC591A2C6,0x930F3001,0x90B0A0A7,0x17AC842B,0xC2B1B236,0xA9C5D1AC,0xA1223DB8,0xBC2F3CA3, | |||||
0xAA12A6BD,0x42A93D21,0xC3B6384D,0x32B8C0BA,0x33319042,0x35344130,0x454A4431,0x2342423D, | |||||
0x97022138,0x1AABB2AB,0x958A8628,0xBD2922A8,0x298FAEBC,0xCAC1A7BB,0xC79D99C3,0xC7C9C7B3, | |||||
0xC5CBC3C6,0x21B4C0C4,0xBEB4B9A2,0xBF9C2B30,0xAFB1B2CC,0xB5C11825,0x2E1FB122,0x45312638, | |||||
0x3BB01D3F,0x3340403B,0xB1372123,0x012D3919,0x3B022927,0x43253534,0x30433448,0x44464421, | |||||
0x4333233A,0x9446383D,0x08404433,0x40223722,0x27923F3D,0x3643A1A8,0x1BAE9038,0x1D3B4024, | |||||
0xAC1A23BA,0x9D97322A,0x3039AEA0,0x321F1124,0x87A3B630,0xAB1D2229,0x381795B2,0xB0ACA386, | |||||
0xACB02586,0x21BFBB8D,0x261D2716,0x2632318F,0x043AA102,0xC5B4B216,0x342835AC,0x9DB4AFAF, | |||||
0x3106B705,0x83AEB31F,0x2323A8B2,0xB38312A8,0xAE2AA6C2,0xB7BA8221,0xB4C1B0A5,0xB5230E2F, | |||||
0xBA9F9AB6,0xA8A43092,0x2D24A4C3,0x9EB53539,0x23353A07,0x36169B38,0xA5B6B993,0x39453A39, | |||||
0x1B1C1190,0x91219387,0x1C303D26,0x3F28142B,0xBBB63E43,0x403C31A7,0x91A0B586,0xAE374242, | |||||
0x311D9BB6,0xB1B01D30,0x90948598,0x280B9F1A,0x8ABBAF9A,0x30302590,0x3E453613,0x25301A31, | |||||
0xA31A4032,0xA293BBA7,0xA2B3B7A4,0xA119108D,0x2FA5A1A9,0xBC9F8C81,0xB12113B4,0xB2C1BEBC, | |||||
0xC0C8B7A1,0xBDB7C7C2,0xA5B2C0B6,0xB9B5B3B7,0x322A1AB7,0xB8AA2B3A,0x330881A7,0x22BCB825, | |||||
0x28811024,0xB32C9C1A,0x2A3517AC,0xABBAABAD,0x3243463F,0x30A61B33,0x2B353F45,0x301812A6, | |||||
0x1D250A23,0x032B2E25,0x3A3C3803,0x239D383C,0xAD04303D,0x2C96B69F,0x2FA8C0B1,0xB01184A3, | |||||
0x063394B2,0xBBBCA5A0,0xA4A897A5,0xA4AAB4A1,0x8A0CA498,0xA0A3A50F,0x3489A9BF,0xB79D1228, | |||||
0xADA63215,0x3D928D02,0x98B2233E,0x1D2AA786,0x2930AAAA,0xB5B18915,0xAF049EB5,0x97861592, | |||||
0xB0B32935,0x8AABA8A6,0x10ADB6B0,0xB1201420,0x372CA1B8,0xB1B62831,0xAA92210D,0x2E290692, | |||||
0xACB39D28,0x0C08ACB1,0x16311895,0x17202507,0x26354436,0x351C2720,0xADACA039,0x3A33A600, | |||||
0x2F2A2526,0x9D31351B,0xA2262991,0xA4B6040C,0xA0883931,0x3C321809,0x20259234,0x20302891, | |||||
0x393627B1,0xA62A3133,0x373A4238,0x3798A426,0x1E90213A,0x383C2E33,0x33358523,0x9A252C1A, | |||||
0x9F9F14B0,0x1809121B,0x9DA71D31,0x18A099A7,0x098EBEAD,0xAC99A394,0x292821AB,0x16A41714, | |||||
0xAE0E2837,0x3129958C,0xA9B5A91C,0x9E1C9FB9,0x323594A7,0xADA9222B,0xA3B02088,0x33839904, | |||||
0x1598A32C,0x2B26042B,0x9A03A2A9,0xAA1B8CAB,0xB007140E,0x05ACADB5,0xB3B209A4,0x0301A496, | |||||
0x8926B2A7,0x901721AC,0x121692A7,0xB6B5B9AD,0xB1BBA216,0x29A1ACAF,0x12B7BDA1,0xBDA10732, | |||||
0x0A918CB8,0xA69C2A02,0xB581302A,0x2412929A,0xB0B2A510,0x8B158FAD,0x2E3C10B0,0x24210C1D, | |||||
0x1A232A13,0x29001608,0x26293237,0x34373335,0x35231722,0xAB142426,0x3B3B2691,0x2F2A3332, | |||||
0x292D3E3B,0x2D1F1D35,0x27262124,0x1103A018,0xA8988EAC,0xAEA6B0A6,0xC0B6A3AD,0xA1B1A5A0, | |||||
0xB6C3C1B6,0xB009278B,0xA198B4B8,0xB1AC049A,0xA32926B0,0x96B1AE8B,0x1E812024,0x9D860F1D, | |||||
0x18A1BDBB,0xAC201625,0x008B98B5,0x97A4979C,0xB7BBA816,0x19A7B9AD,0x0BB3B8AB,0xC0B2AA8B, | |||||
0x0F2BAFC1,0xB8B8AB9C,0xBCBCA4B2,0xA9B5B6AB,0xB3C3C1B1,0x96861311,0x9FA1B0B8,0x96251608, | |||||
0x1A2A3017,0x3B292829,0x30A3223B,0x36302733,0x38363A3F,0x26353729,0xA52F3226,0x2694ABB0, | |||||
0x1B9E2F3E,0x373D2906,0x26B4B91E,0x1D413B2C,0x404118AA,0xA31C3736,0xB0033928,0x2823ACB1, | |||||
0x30A79232,0x2A38372C,0x272CA198,0x272B1C13,0x2030402F,0x21861404,0xB1B39A34,0x20212083, | |||||
0x301EB39B,0xB6A79B9A,0xAD09B1BA,0xABBBB2B1,0x251D3220,0x22122528,0x1B15AF13,0x18272501, | |||||
0x302B86A7,0xB20D1528,0xA4A62099,0x280C190F,0x0EA00729,0x8025152A,0x1D02B5AB,0xB4AC0CA2, | |||||
0x8E2B3494,0x9DA49C8B,0xA0B38A24,0x3C2B9484,0x1B8E961E,0xB6878127,0xB098A3BE,0xAFB9B3B2, | |||||
0xB10A2D1B,0x2B9A0C96,0x86A9AE2D,0x0402A5AD,0xA5198795,0xB5ADAEAE,0xBBB30CA1,0x86A0A6BA, | |||||
0xA1B1AB10,0xB7B9B2A2,0x9DA0B6BD,0xB69CA6A6,0xAA1A1DAC,0x331580B0,0x1DAF822E,0x3338333F, | |||||
0x30A4AA20,0xA2121D27,0x262F2A9C,0x2B241420,0xA1B2343D,0x2E929029,0x25AFA624,0x173F3836, | |||||
0x3D412AA2,0xA8902725,0x95183418,0xB1A99A16,0xA8B5B2AA,0x9C98AE99,0x92B0BDB7,0xAE9BA4A0, | |||||
0xBEB5A3BB,0xABB8B5BD,0xABB08827,0x17049DA8,0x20229F21,0xA99FA892,0x30322E9B,0xA012189B, | |||||
0xA49C2286,0x089C9413,0x00B4B60A,0xA59EA48F,0xA42391A7,0xB8A989AD,0xAC0416B2,0x0FA494AA, | |||||
0x95BABDA6,0x0E8DAC03,0x179BA9A5,0xAC232721,0xAB2E27A2,0x149B97B1,0x179C2232,0x20171D25, | |||||
0x85A3B290,0x801B0690,0x2E3721AA,0x04901C87,0xA40A3332,0x2714220C,0x35929D25,0x87122A3B, | |||||
0x2432AAB3,0x8D0F938D,0x97283525,0x83911211,0x0DB4971B,0x8714232C,0x2214A4A1,0xBB951803, | |||||
0xAD1F11BB,0x2A87A2B5,0x97A72A35,0x1B24252B,0x82A8B302,0xAC94A49D,0x1C341AB3,0xA5B0AFAB, | |||||
0xAEAB2125,0x21281B9B,0x1FA4A823,0x81121F2C,0x352F92B6,0x202E3031,0x0A3B3C30,0x1D8B2801, | |||||
0x279F0E2A,0x3C373536,0x39352030,0x921B1838,0x1435371C,0x1F231C9F,0xA5A32834,0x2AA193A2, | |||||
0x3213A488,0x26289B25,0x30423203,0x9AA7A296,0xA62A4032,0x31312C11,0x80B0A334,0x140C1697, | |||||
0x2D18A5A6,0x9F188900,0xB91C3713,0x109DAFB9,0xAAB5A331,0x1816240A,0x2604B6A7,0xB7B7B2A5, | |||||
0xB00F23A7,0x13A0A2AB,0xC1BE912B,0x06849AB4,0x3293B8AB,0x99028230,0x213117B3,0x058CB2A8, | |||||
0xADA9262C,0x20142817,0xADB9B212,0x9A97A29A,0x1D21B2B5,0xACA4A3A0,0xBBA393B3,0xB1AFB5BB, | |||||
0xABBAAA98,0x9FA88980,0x15A2BCB5,0xA395A208,0x25372BA5,0x9F881495,0xB0A51914,0x1A8D9389, | |||||
0x2F910427,0x9B041628,0x2022A0AF,0x8A200D0A,0x06273A26,0x1C101D14,0x92AA992C,0x9292998A, | |||||
0x2E2B9AA7,0xB7A8A995,0xB7998FAF,0x0AA9A8B6,0xB1B59313,0xA4A4A197,0x14A7BAB0,0xA5A4A193, | |||||
0x9B2F21A9,0xA5A2AEB2,0xB5B39A89,0x2B1D12A0,0x03AAAC1A,0xADA6AB90,0x0B1CAAB6,0x0D06A1B1, | |||||
0xB2132F23,0x918D8FA8,0x81B4AE8F,0x21051522,0x2B27A291,0xA4939818,0xA31A25A4,0x2C28289F, | |||||
0x959C2236,0x1D921D2B,0x340DA58F,0x171C112B,0x18372F17,0x97948494,0xA18F321F,0x2A282F26, | |||||
0x1F9FA028,0x849A9A1B,0x293092AB,0x10238A91,0xA7203428,0x0D931C9D,0x17A30521,0x17162034, | |||||
0x32299F93,0x8F9AA493,0x06343088,0x25312989,0x999F2A33,0x1E12271F,0x351C9E10,0x21291931, | |||||
0x12302581,0x1E1E89AE,0x9719312F,0x2728322A,0x20A69D1D,0x0592971E,0x32391D11,0x2329191B, | |||||
0xB0913121,0x0D131EA7,0x25A18C24,0x171A3238,0x2B23A1A1,0xA097AD97,0xA8252482,0x121711AD, | |||||
0xAAB1851C,0x058A181C,0x360DA690,0xA6A7A226,0xA71696AD,0x9587A9B6,0xB3A21E17,0xA09C2393, | |||||
0x94B4B6A8,0x96A3A51F,0x2F310F9B,0x9792A3A7,0xBAA01094,0x1F2416AD,0x13A50122,0x99A0202F, | |||||
0x2722ACA8,0x94A3B293,0xA226289B,0x861A01B3,0xAFB29E12,0x13122721,0x2F96A58F,0xAFB1B111, | |||||
0xA12395AB,0x24219BB1,0xA88D312A,0x97092810,0x24A8AE8E,0x13931A30,0x2F341B90,0x9690B1A7, | |||||
0xAB111A86,0x2C2C2DA0,0x15A41429,0x92862235,0x3216A9A0,0x0E9AA509,0xAD262912,0x9002A5B3, | |||||
0xABB48F12,0x80812B1B,0x1FA5B299,0xB6BBB983,0x9F0DA6B6,0x968CADB8,0xC0AD8780,0xAB9D94B2, | |||||
0x06B8B8B3,0xAFAD9C1C,0x9210B0B1,0xA5AFBDB8,0xB18321A2,0x0C2616AE,0xADB7AA01,0xA9B0930E, | |||||
0x2F83B0B0,0x8B97AC11,0xA02A2108,0x222386B2,0x94942923,0x1D2A3532,0x2D95A01D,0x0EA59A24, | |||||
0x2C372583,0x22289999,0xAE942527,0x1D1F2C9A,0x299A8F1D,0x898A233A,0x322C9197,0x2105A196, | |||||
0x8D333224,0x28312B0B,0x92B10025,0x8B972A30,0x362B9B8A,0x15859630,0x98272984,0x25280CB1, | |||||
0x9A842B30,0x1B293932,0x37899910,0x25101B37,0x303E312B,0x28239499,0xA6133226,0x1F31320B, | |||||
0x2C988B26,0x82A31B34,0x31278D96,0x2422A78C,0x9E303128,0x0C2825AA,0xA0AFA29B,0x0887212D, | |||||
0x310E9811,0x94AEB10B,0xA424129A,0x243182B0,0xA29F2421,0x9B043020,0x25A4AC96,0x169E9930, | |||||
0x28332C1D,0x1F209DAB,0xAD13211D,0x2B33350D,0x289E1728,0x8D952534,0x312C9283,0x2C1E9F15, | |||||
0xA0273223,0x02291EA8,0x929F0019,0x1E1A3432,0x32168A0D,0x88A2AF1E,0x02240C00,0x1E2502AD, | |||||
0xAFA88591,0xA7132C1E,0x2D9AA89D,0x90A60E2F,0x172A0A93,0x810AB1AC,0x9C062106,0x9226350B, | |||||
0x96A7A19A,0xAFB2A026,0x3426879E,0x1492A786,0xAD192213,0x8D2880AE,0x12A40C8D,0x93023631, | |||||
0x26228810,0x89A8B118,0x16272384,0x1F2797AF,0xB2A1861E,0x9F04278E,0x2B989BA1,0xA7B09C2B, | |||||
0x9016A1A2,0x0497B4B5,0xAE9D82A0,0xA71F20A6,0xA3B4B5AD,0xABB0851A,0x30229AA4,0x94A7B58F, | |||||
0xB29A9A92,0x102090B7,0xA5B1A19C,0xA4062829,0x30859D9F,0x19A09526,0x852C1A18,0x1E25A1AD, | |||||
0xAEAC9387,0x8624330A,0x2E8E9B88,0xA5AF8537,0x24210892,0x2514A5A7,0xAF182222,0xA01E21A2, | |||||
0x9CB5ACAB,0xACA91726,0x2B23979A,0x02A8B28D,0xA991058C,0x202C03B2,0xA6A48F19,0xA4982B24, | |||||
0x2197A0A6,0x8DA2A814,0x0827191A,0x2620A1AE,0xA99F1613,0x9C263219,0x2894A091,0xA0B28C2D, | |||||
0x24250991,0x2E23A59B,0xA4102229,0x0A2628A2,0x82A3A19B,0x95082E33,0x31210D0B,0x19A0A80F, | |||||
0xA2201714,0x1D2F09A8,0xA0A89291,0xA3972919,0x2906998A,0x04A4A12C,0x12272006,0x2320A5B1, | |||||
0xA382101C,0x152B331D,0x2A851201,0x0E951731,0x33342629,0x33280219,0x95202E2A,0x16332F83, | |||||
0x28141418,0x05833338,0x2F251E15,0x2095AB13,0x80262226,0x1F2B1EA4,0xA5A79291,0xAE932421, | |||||
0x21000893,0x94AB981C,0xA00F8283,0x2215B1B3,0xA8A78716,0xA023340D,0x0EA5A6A3,0xA0AD952C, | |||||
0x2B1D1010,0x178EA89B,0xB2041012,0x912111AF,0x86A38B9B,0xA4A42127,0x1D0C9605,0x2398AA8C, | |||||
0x881D1E1A,0x1C2F0AA7,0xA0A09705,0x920A2F24,0x31181681,0x12A09C2C,0x1B271C24,0x312A8EA1, | |||||
0x85182422,0x972B3324,0x2586898C,0x90AB082B,0x2527201A,0x2209AE99,0xAC9A8814,0x8B2420AC, | |||||
0x96A3A1A2,0xAEA51A28,0x2186929A,0x1CA5AE98,0xA3120B1D,0x192B8BAA,0x9DA2979E,0xAD952915, | |||||
0x15869CA2,0xA0B4AD17,0x93010C05,0x221DA9B2,0xB0A1A000,0xAC081DA0,0x80A8A6B1,0xABB29820, | |||||
0x9288988A,0x12A8B7B0,0xAEA39C94,0x972913AE,0x98A5A8A7,0xAFAE181F,0x1E04889E,0x89ABB28A, | |||||
0xAB959113,0x1219A1B6,0xA6A4A0A2,0xAE042B1D,0x19949BA5,0x9AB4A812,0x8F0D8607,0x241CADAB, | |||||
0xAAA6A086,0xA71423A1,0x1394A0AB,0xA5AC052C,0x211C1A0F,0x2990ADA0,0xA1048020,0x15312499, | |||||
0x15938398,0xA1952C2C,0x2E282018,0x2A94A124,0x8C122027,0x293212A4,0x948D9402,0xA5163226, | |||||
0x2A1082A3,0x82A79A29,0x16231E24,0x301FA5A5,0x9E96881A,0x842E310E,0x2515018C,0x89A02531, | |||||
0x24221F1E,0x3120A202,0x930F1229,0x1E2F23A2,0x058D9095,0x9F822A2D,0x220F1710,0x25A3A607, | |||||
0xA5978625,0x223005A6,0x8C999E97,0xA81A3424,0x240B97A1,0x88AB982A,0x11132021,0x271AA4A6, | |||||
0xA7A0A007,0x95262E06,0x109D98A5,0x9AA2172A,0x1C232120,0x2C10A291,0x95070E1D,0x1931249E, | |||||
0x108A9C94,0xA6992B2B,0x201E1C91,0x1EA1AA03,0x8D17232B,0x282E11A4,0x828F9100,0xA2203228, | |||||
0x2D241C8E,0x15A48627,0x05222729,0x2F26A3A0,0x97910C20,0x8F2A2F03,0x190891A1,0x9FA40928, | |||||
0x1C192118,0x249BAB9E,0xAB968B21,0x802710A6,0x009EA3A9,0xAEA12322,0x13158097,0x16ACAE8B, | |||||
0xA2931122,0x17229FB0,0xA2A7AB9F,0xAE8A2713,0x139196AC,0xA3B1A516,0xA2881119,0x2083AFB1, | |||||
0xACABA797,0xA91515A1,0x83A0A9B0,0xACB39615,0x92800C8D,0x0FA8B5A9,0xAAA39A10,0x0C2712A9, | |||||
0x919BA5A9,0xB2A5131E,0x130985A4,0x02B0AD95,0xA487081D,0x1E22A2AC,0x99A2A29B,0xA515280C, | |||||
0x170692A5,0xA3B1A220,0x9889150D,0x2302ABAD,0xA8A2A404,0x9F202199,0x1294A1AC,0xABA90F22, | |||||
0x141E1F10,0x2797AA9A,0xA0961427,0x112E1C9F,0x029AA4A1,0xA6972723,0x23222191,0x0CA4A511, | |||||
0x9B821224,0x282592A6,0x9499A091,0xAB0A241A,0x138194A7,0x94AE9E0A,0x93091E21,0x2115A5A4, | |||||
0xA2A4A388,0x9C212396,0x160F96A9,0xA6A41127,0x191B210A,0x2A91A798,0x8E07132B,0x2531228D, | |||||
0x21069094,0x9C17312E,0x282A2614,0x1C9E9522,0x8116242A,0x3130069E,0x0D0A871B,0x9C203025, | |||||
0x2622199D,0x81A48B25,0x10232B2D,0x301F9D9E,0x888C8920,0x08313014,0x2720819B,0xA0A3202B, | |||||
0x151F2415,0x2E84A48B,0x978A1830,0x22302394,0x1D129798,0xA10A2B2B,0x1B1D2280,0x12A8A68E, | |||||
0x96001827,0x2D2F0897,0x8F9EA18C,0xAB0C2519,0x272407A8,0x0BA10626,0x8B162A2A,0x2B1E9DA0, | |||||
0x85939920,0x802C311C,0x241591A5,0xA8A81327,0x19242A19,0x2A80A08D,0xA6A59223,0x892604A2, | |||||
0x829CAEAE,0xB5A5191B,0x950D02AC,0x8DB1B1A4,0xA896131C,0x271F9EAA,0xAFAFB09F,0xAC91139D, | |||||
0x141997AD,0xA4B29E09,0xA38F1118,0x2889B0AD,0x97A18B23,0x8D2D2788,0x818494A8,0xA6A49004, | |||||
0x0F202610,0x269EAB96,0xB3AEA024,0x162295AD,0x0790A5A6,0xB0A01C14,0x99868FA5,0x10ACACA2, | |||||
0xA59C1D27,0x1C20A6AB,0xACB1B1A3,0xAC938FA2,0x070D8BAD,0xA8B1A115,0xAFA00381,0x2393ACAF, | |||||
0xA5A9A888,0xAC8F88A0,0x92A9B4B6,0xB0B29D8E,0x96848496,0x0EA9B4AA,0xA3A59E15,0x213017A1, | |||||
0x8594A39F,0xB6A9810A,0x090388AD,0x09AAAA95,0x9B8F1322,0x0A03A6A7,0x99A3A9A2,0xA9162713, | |||||
0x0E148FA9,0xB0B8AA80,0xA0910797,0x2703AEAB,0xAAAAA414,0xA78005A4,0x220BA4B1,0xA3A0212B, | |||||
0x89131F10,0x20A6AD9E,0x9E911323,0x2731179B,0x200B9388,0xA38F2626,0x2E2D2880,0x27050A2B, | |||||
0x05182A34,0x2D290493,0x0D8B930B,0x91293023,0x2623119D,0x99AA941F,0x18232A26,0x342A800D, | |||||
0x959E8E2A,0x1B312782,0x3933249C,0xAE932830,0x8EA3A4AB,0x31262124,0xB09F2238,0x263025A0, | |||||
0x021D909E,0xAF871B14,0x121193AB,0x34161211,0x050E303A,0x35352411,0x98A29B29,0xA6832107, | |||||
0x191410A7,0xA2AC9A12,0x272B3022,0x3E37251C,0x09101335,0x2F393221,0x29281A15,0xA9A12129, | |||||
0x21232188,0x32198221,0x9C032B35,0x1A2301A4,0x8FA0ADAA,0x89162420,0x11272E1B,0x81A7A48F, | |||||
0x95001F24,0x312F039E,0x21090020,0xA11B2822,0x2D2B17A0,0x20801D2D,0x10243535,0x250D9689, | |||||
0xAFB0A414,0x292E19A4,0x34352E20,0xB5AD0B2C,0xA29996A7,0x2E98ADA9,0x17162533,0x871D0802, | |||||
0x1092A9AA,0xB4A60B15,0x9F8C92AE,0xADB6B4A7,0x12928089,0x38393022,0xA4A39923,0xB6A49DA2, | |||||
0x118AA5B6,0x9FA79206,0xA7842222,0x93ABB3AF,0x97A5A89E,0xAB020B92,0xA2A7B6B8,0xB2B2A198, | |||||
0x22232299,0x2C21191F,0xACADA124,0x8B0B9AA9,0x90A1AEAE,0xB0971710,0x880E86A9,0x1BA4A395, | |||||
0x0B1B2E31,0x2E2F150F,0x99A5A409,0xB0968195,0x19149EB3,0xA9A89419,0xABA30890,0x2391ACB0, | |||||
0x9CA39C1B,0x9E221F06,0x0D8DA8B2,0xADA89100,0x88202481,0x17A0A093,0xAFAE981D,0x212490A8, | |||||
0x2E229485,0x951C3031,0x20252485,0x89A7A003,0x80082129,0x29250F03,0x099AA189,0x8727261B, | |||||
0x2B2E2193,0xA1A50D23,0x94041F17,0x32229499,0x14820E2F,0x832A2B1A,0x1A11A5AC,0xA49D141E, | |||||
0x182C3015,0x20A1A08F,0xA4A68B28,0x2D301E92,0x261C8D07,0xA8102A27,0x15251FA0,0x2091910E, | |||||
0xA1873034,0x1D14A1A9,0x2B83ADA1,0x8823292F,0x2C312795,0xACA98721,0x9B07230C,0x33258D9B, | |||||
0x1199802A,0x97282620,0x2819A4AF,0x9C9B1928,0x1D253220,0x139DA014,0x8CA10123,0x262C1E17, | |||||
0x1C06A198,0xAB991321,0x2B2F24A2,0x2A112026,0x9D902432,0x231E949C,0x2581A206,0x1530332A, | |||||
0x22281098,0xA1A7841E,0x2121291E,0x352D2224,0x8298892C,0x132C2416,0x282195A5,0x061A2D2B, | |||||
0x911D2C25,0x229EA196,0x11931129,0x2A322620,0x1A03A182,0xAC891817,0x262826A3,0x05950B18, | |||||
0xADA20A24,0x220BA4AB,0x069AA209,0xA9142218,0x998FA3B1,0xABB3A9A2,0x9E882612,0x1699A596, | |||||
0xABB3AF87,0x9A859CA9,0x170CA6AC,0xB2A78806,0xAB938CA4,0x2397AEAD,0x01A70122,0x171DA392, | |||||
0x94A5B4AC,0xB1A59C9A,0x062A23A2,0xA2AAA09A,0xA6A0048D,0x230CA1A6,0x159AAA05,0xAB050B18, | |||||
0x9599A7B6,0xA5AA9C95,0xA1192B1F,0x20939999,0xA0B0A70B,0x1625198B,0x20219CA3,0xB4A99113, | |||||
0x971211A9,0x1F9DA29E,0xA5AA0029,0x8E1095A1,0x0FA0B5B0,0xA100070D,0x07231F9F,0xA8B2A8A1, | |||||
0xAAAA8A10,0x2722909D,0x83A0A113,0xAB0E1A0D,0x1316A0B3,0x939B820A,0x9C113227,0x1C97A6A4, | |||||
0x90AAA61A,0x17261717,0x222193A0,0xAEA89801,0x861D2195,0x30139190,0xA9A91832,0x191D8EA0, | |||||
0x2911ADA5,0x9E1A2825,0x012A2B8F,0x98A8A5A0,0x96102829,0x362F2080,0x248E9A23,0xA5010D24, | |||||
0x333212A8,0x878C292E,0x9B1D3127,0x2792A49B,0x2606042A,0x242A282A,0x25149D97,0xAE9E0120, | |||||
0x112A3187,0x26858A93,0xADB0862F,0x201A919A,0x280EA38A,0xA2011112,0x1027179F,0x0EA4A499, | |||||
0x10052D30,0x36322B24,0xA3AEB117,0xB7B29483,0x31484602,0x99A0A69C,0x14240C97,0x22A2910F, | |||||
0xAEAF2532,0xB2052523,0x3A2CADBD,0xB2B9A134,0x133F452E,0x802084A5,0x92B0B0A0,0x2511A195, | |||||
0x3387B5A9,0xAB182833,0x343E2DAA,0x13A6A982,0x99922F32,0x8E16211E,0x0BACB3A4,0x90232E23, | |||||
0x2C26A5B1,0xAAAD9921,0xA5002607,0x31129CA3,0x15958031,0xA20E141D,0x13AAB8B6,0xA082181A, | |||||
0x9B232C0B,0x1093919A,0xA5B39420,0x32302717,0x848B9922,0xACA19C86,0x95070CA8,0x23969DA1, | |||||
0xB5A0393E,0x242213A2,0x90A4AC97,0x0D099899,0x931F1509,0xB0B2AEAC,0xA2182690,0x2F14989F, | |||||
0xADB49131,0xA9968FA1,0x1C23A1B3,0xA0A2A69C,0x92222305,0x99B0AEA9,0x91920514,0x25261F1B, | |||||
0x0BA7B3A0,0xB4B0A689,0x811C90B1,0x00A09F98,0xABA21921,0x069BA3A7,0x15A1A786,0x8C1D2025, | |||||
0x0B0E9DAC,0xB1ABA49B,0x9215228F,0x27018B8F,0x98B1A320,0x13252320,0x3020A3A0,0xA482232D, | |||||
0x9C1920A0,0x109FA1A1,0x96A20E27,0x2726241D,0x17A4AD91,0x921D2123,0x2C33288F,0x04870315, | |||||
0xA79C2325,0x30240994,0x2A898E28,0x1C26292D,0x2127068A,0x10028A80,0x19333B2F,0x271C1C0F, | |||||
0x8EA1012B,0x272B2422,0x342B8086,0xA0851A27,0x802C2690,0x22809198,0x87912931,0x21262520, | |||||
0x2698B097,0x81152029,0x25332C87,0x8D928D80,0x9D062A24,0x352F2509,0x268A812D,0x8E21232C, | |||||
0x2E2C8EA4,0x10040B16,0x882B372B,0x26168092,0x04A20B2E,0x2B302D25,0x33299103,0xA6890E26, | |||||
0x102B249A,0x260E0297,0x9C952E34,0x24252217,0x2F82A791,0x1724232E,0x24332907,0x8C989686, | |||||
0xA28C2922,0x3029240A,0x2492912A,0x031C232D,0x3332139E,0x0D0F1420,0xA3223228,0x23098CA0, | |||||
0x90A98B26,0x14212425,0x281CA5A0,0xA6A29412,0x15312B96,0x1E078796,0xABA71C2D,0x11181A8C, | |||||
0x2D8BAC9D,0x9515212D,0x202D149D,0x90A1A0A0,0xA68C2722,0x21211692,0x91AFAC0D,0x97880714, | |||||
0x2623A0AA,0xA1A09B0B,0xAE8E2300,0x05969DAE,0xA0AD9E13,0x95020A12,0x1599B1AE,0xAAA6A997, | |||||
0x9B2419A0,0x94A1A3A9,0xB5B59807,0x939589A5,0x12A5B2A4,0xB0A29317,0x94179EB3,0x9BA4ACAC, | |||||
0xAC8C271C,0x160385A1,0xA1B4B295,0x93868708,0x2B25A0A6,0xA4A3970C,0xAB052287,0x210994AA, | |||||
0x98A60A2C,0x830F1D18,0x2484ADA7,0xA0999916,0x802D288F,0x089AA0A5,0xACA61422,0x1B191A83, | |||||
0x20A3AD91,0xABA28A21,0x182595AD,0x8698A29F,0xA8812B23,0x150A029E,0x8AAEA908,0x86162326, | |||||
0x272597A4,0xA5A1A38D,0xA11B2190,0x251B0A9F,0xA0AB1028,0x82141E1A,0x2E0EA8A1,0x88830725, | |||||
0x032A2981,0x07899EA3,0xA3A11C25,0x25262813,0x2595A310,0x98841028,0x272F119D,0x18089192, | |||||
0xA6092B25,0x22201698,0x17A49D1B,0x0E18242A,0x29259299,0x9395A081,0x8D272E19,0x23221898, | |||||
0x9FA60125,0x08121C1A,0x3114A39C,0x82021127,0x0B2D260B,0x21118A9D,0xA293292C,0x22242816, | |||||
0x2494A113,0x92910A29,0x282E1E98,0x060B9003,0xA7822A23,0x20201B96,0x1DA1921E,0x9701212B, | |||||
0x2119A3A2,0x94A1A597,0x9F202810,0x1A1608A3,0xA3AC911C,0x05132118,0x2A14A39D,0xA29E9921, | |||||
0x9A20189B,0x0E8AA3AF,0xA89C1F21,0x131C1F84,0x20A1A792,0x97931225,0x202F1599,0x8694A39D, | |||||
0xAB902217,0x1B150FA2,0x86A9A012,0x9E8D1926,0x271CA0A8,0x9098A48A,0xA4222815,0x09079CAC, | |||||
0xA6B09807,0x91102111,0x258BA8A1,0xA5A79E19,0x9023169F,0x1604A2A9,0xABA11B23,0x0A182091, | |||||
0x1EA0A695,0x98901129,0x1B24059B,0x92A0ABA3,0xA9931909,0x212318A2,0x0DA49917,0x978C1E25, | |||||
0x26229A9E,0x979CA302,0xA5162005,0x110A93AF,0xA7AC970D,0x95052116,0x2397AAA4,0xA5A9A511, | |||||
0x902085A2,0x0A8FA9AB,0xB0A90A11,0x8A1416A0,0x17A6AC9B,0xA09D0B23,0x171E9BA5,0x91A0ACA7, | |||||
0xAF8A1911,0x0D1300A9,0xA1B1AA94,0x9C96111E,0x291EA1A6,0x009DA011,0xA31C250A,0x1B129AAB, | |||||
0xA0A80421,0x0216241D,0x2987A397,0x94938E25,0x162D2504,0x160495A2,0xA7971D22,0x1A1F2480, | |||||
0x2599A00C,0x9E9A172A,0x1E258FA0,0x899EAA9F,0xAC901F13,0x16190BA3,0x96AEA10E,0x96892226, | |||||
0x2A1C9AA2,0xA1A6A60D,0xA1202183,0x171596AA,0xA6A8051C,0x88172412,0x298FA6A0,0x989D8A25, | |||||
0x0A281D94,0x0F01A5A7,0xAB9C181C,0x16212391,0x1DA1A287,0x9C99122A,0x282A0999,0x178EA394, | |||||
0xA7132722,0x1D2216A2,0x87A79612,0x9307292B,0x2E21959A,0x029B9D1E,0x8B292A19,0x242303A4, | |||||
0xA4A11123,0x041A2713,0x2C07A092,0x8B980229,0x1A2C1C0B,0x20149AA0,0xA3842323,0x13222786, | |||||
0x1E999D82,0x8291202E,0x2D2E1B08,0x1E089B07,0xA0182723,0x262C229A,0x16971022,0x001A2D30, | |||||
0x32250081,0x198A9024,0x072D2C24,0x212282A1,0xA1A10E1C,0x0E202A19,0x2702988C,0x9BA18E27, | |||||
0x09210F95,0x1805A2A5,0xA896191A,0x091E1B96,0x15A3A292,0x93951827,0x27260593,0x0399A78F, | |||||
0xA3152015,0x212518A1,0x95A49116,0x9B8E2224,0x2A159A9F,0x0A999720,0x96222418,0x1B1599AA, | |||||
0xA3A48516,0x8E1C2A1A,0x2391A196,0xA0A79623,0x12251591,0x1A03A6A5,0xAC9B161F,0x81201F9E, | |||||
0x10A2A39D,0xA79D1629,0x111093A2,0x90A4B0A4,0xA6851A02,0x0F2282AA,0xA1ACA491,0xA89B1211, | |||||
0x25139EA5,0x90A1A680,0xA016118A,0x1D1CA1B0,0xA4A49204,0x99142512,0x2294A3A3,0x97A59D22, | |||||
0x13261B06,0x1807A5A4,0xAEA21112,0x01201EA0,0x149E9D91,0xA5A31029,0x161295A2,0x06A0ACA0, | |||||
0xA6001610,0x021804A5,0xA1ABA195,0xA39A171A,0x24119AA0,0x90A4A60C,0x9F101085,0x202097AB, | |||||
0xA1A08212,0x98132617,0x22909E9F,0x91A19124,0x202A210E,0x2214A1A1,0xA38B191E,0x192B298A, | |||||
0x1E939005,0xA29B1D2B,0x24208E9B,0x1D8CA388,0x991B2724,0x1D2514A3,0x90A2950C,0x8A192C28, | |||||
0x31230381,0x0E978D25,0x142A2721,0x2F2C0B9F,0x9788212B,0x07262F1B,0x2D10938F,0x02911F31, | |||||
0x1E2B2418,0x148BA7A1,0xA4911114,0x19292596,0x119E9A81,0xA09B1928,0x29210591,0x1E909E0B, | |||||
0xA0152424,0x1B2614A2,0x0197860B,0x0222312A,0x2A200000,0x81A29F1F,0x15252419,0x2E2B0B9A, | |||||
0x9E901825,0x05242A12,0x2B14868D,0x008D1B30,0x16231C15,0x2087A7A2,0x990A1D1C,0x192D2A03, | |||||
0x10969483,0x97971F27,0x2C291C06,0x22069A14,0x99152123,0x252A18A0,0x18000D17,0x85203131, | |||||
0x291E0701,0x189C991D,0x0D272926,0x2120909F,0xA7A5930B,0x9A102186,0x2200999F,0xA1A68E25, | |||||
0x87110691,0x1D8AABA8,0xA590101B,0x9D11139C,0x97ABABAA,0xA7A78315,0x19188599,0x91A6AF9A, | |||||
0xAE9F9491,0x041799B0,0xA1A6A099,0xB0A31411,0x1097A6AF,0x97ACAA8C,0xA1081003,0x9498ACB0, | |||||
0xB2B2AAA2,0xA381169C,0x0D9CA3A6,0xB0B2A411,0x968A9AA5,0x1F8CABA9,0xAC9F8116,0xA28286A7, | |||||
0x8EA6ACAC,0xA5A30D1F,0x14150595,0x8FA8B09F,0xA7988E88,0x1F270FA6,0x9CA19D8B,0xAFA01611, | |||||
0x1D819FA7,0x06A09E13,0x9D111E1C,0x120BA4AC,0xA0A29E90,0x89222B14,0x19919997,0xA5AEA011, | |||||
0x0C181187,0x291AA09E,0xA6971223,0x8A1B14A0,0x1698A09C,0xA2952129,0x18131092,0x0AA2AFA4, | |||||
0x98111613,0x1B2D109D,0xA6A2A084,0xA9981D04,0x280681A1,0x0CA39320,0x98931120,0x2514AAA9, | |||||
0x008B8C17,0x05272A1D,0x1D019691,0x9AA68A21,0x26282B1F,0x28178B84,0xA9991522,0x11282094, | |||||
0x1E10060B,0x9D8A2D32,0x22202007,0x1F98A007,0x83202C2C,0x242A1A84,0x91A19704,0x01182A24, | |||||
0x332C2210,0x14950C2E,0x851C2324,0x2D25929F,0x8A041C27,0x95212D20,0x22859CA3,0x859C1027, | |||||
0x262D2A25,0x230CA08B,0xA497081F,0x202F2597,0x22118302,0xA6A0222D,0x221B009A,0x278EA003, | |||||
0x81232B30,0x1F261396,0x829F9D8A,0x82213028,0x2D271D09,0x8DA39424,0x031C2018,0x312D0698, | |||||
0x90021D29,0x94202714,0x250A969F,0x03901C2C,0x16242620,0x1A94A9A2,0x9B910619,0x202E2781, | |||||
0x108F8A03,0xAAA41321,0x201F1099,0x1D93A001,0xA7951221,0x891198AC,0x92A2A6A2,0xA3002420, | |||||
0x1103879A,0xA1B1AD95,0x95000E07,0x242294A3,0xAAA8A281,0xAB8F059D,0x1B84A0AC,0x99A38321, | |||||
0x9106160E,0x159BAEA9,0x9F989011,0x0426248A,0x939FA1A1,0xABA88E0D,0x1E1D0E96,0x1B98A103, | |||||
0xA79B801B,0x131C94A7,0x82979B95,0xA58A2420,0x868F99A5,0x9EAFAD99,0x9409120D,0x15149EA5, | |||||
0xAAAAA698,0x9F0D149B,0x1F0696A3,0xA6AB9021,0xA0979196,0x2093ADAB,0x988A0B1D,0x93201A93, | |||||
0x94A4A9A7,0xA19E1217,0x2425210A,0x01A1A482,0xAAA29808,0x20228FA9,0x00908200,0xA6882722, | |||||
0x181389A4,0x16A0A016,0x03212728,0x221799A0,0xA7A7A68A,0x871E2387,0x1981989C,0xABB5A611, | |||||
0x27281E06,0x33258112,0xAFA2122E,0xA286A1B1,0x30159EA7,0xA0053034,0x2B2B2088,0x91A6A911, | |||||
0xADA99D83,0x2B2E06AA,0x1C90950A,0x9A23322F,0x2921029C,0x15A09320,0x08252E2D,0x322D8397, | |||||
0x8E998724,0x0129301E,0x2207989F,0x9CA40C27,0x091D2419,0x311B9E9E,0x8C102532,0x21302808, | |||||
0x23128786,0xA194222A,0x252B260D,0x10A1A502,0x9B8F1321,0x2F322097,0x1C07041D,0x9F142C2A, | |||||
0x322B1D94,0x220C1B2E,0x9817292E,0x2615A4AB,0x1100021B,0x14303228,0x241A0D8C,0xA0A68023, | |||||
0x22272516,0x2D218211,0xA5A00726,0x1B281C9F,0x271F0986,0xA491242D,0x00110998,0x1EA0ABA0, | |||||
0x1220282C,0x202A2108,0xA3ABAA9D,0xA9951386,0x27230EA2,0x94A5981D,0xA6970C13,0x2414A4AD, | |||||
0x91948D1B,0x9C202915,0x889AA5AB,0xA5ADA38B,0x20292815,0x1392A290,0xAFADA482,0x0E220EA4, | |||||
0x220A9297,0xAC9E2229,0x8F828AA2,0x1B9EA89F,0x940C2228,0x0E1F839D,0xA4AFB0A6,0xA6911480, | |||||
0x201C08A1,0x98AAA012,0x94101B19,0x2B2293A0,0x9499911C,0xA60A1D04,0x1394A8AF,0x88981120, | |||||
0x821F2721,0x80A1ACA4,0xA5A7A28D,0x1A281D98,0x16819694,0xB0A6081E,0x918A94A5,0x16A3A89E, | |||||
0x99821C24,0x1823039C,0x90A1A79F,0x9C102217,0x1B201598,0x9AACA580,0xA1940C13,0x271C99A4, | |||||
0x9FA39F12,0xA40F148A,0x281C91A8,0x959A1527,0x9B11231B,0x13A1B1AC,0x969C9211,0x1D2E2480, | |||||
0x0491A29A,0xAFA88713,0x1E1F14A1,0x1899990C,0xA89D0B22,0x151795A7,0x12949D95,0x991C2A25, | |||||
0x070E059A,0x95ABA78C,0x0014201B,0x2E26088F,0x9E9C9520,0x9C111990,0x261A92A5,0x99981828, | |||||
0x9B122216,0x2391A8A6,0x89831526,0x15282613,0x1495A09A,0xA094181F,0x2429250C,0x1E929D10, | |||||
0x9B8A1926,0x2B2A179C,0x26160318,0x9D21312F,0x1B17049C,0x169E9A0E,0x04203030,0x26208A93, | |||||
0x99A39619,0x06282710,0x2D281889,0xA197172A,0x8409210E,0x2B0C9F99,0x80091D2C,0x1725250B, | |||||
0x1288A096,0x94081E19,0x262C2B1C,0x0E979014,0xA3971721,0x232290A1,0x909A9D00,0xAA901810, | |||||
0x1A1D99AD,0x149F9B10,0x97112425,0x2006A0A6,0xA0A59D08,0x02232004,0x20200F95,0xA9AE9217, | |||||
0x14170F8D,0x2905A395,0xA39C1228,0x1E28159B,0x83A7B0A4,0x8A1F2F2E,0x1C120F05,0xA5A5A217, | |||||
0x2E2410A8,0x2C869C2B,0x94A38D87,0xB2A62F34,0x08A4918F,0xB0A1A694,0x9AB2128D,0x920CB7AC, | |||||
0xB4B8ADB5,0xBBADA9A2,0x9D98A8B6,0xB0B29817,0x1B90312A,0x2F322311,0x21900328,0x31302120, | |||||
0x30189322,0x251B3838,0x2D373D39,0x0A8C2224,0x9A952128,0x93201487,0xA8AAB0AC,0xADB2ADAC, | |||||
0x229FB2A5,0xB7B8AA8A,0xAEB3A292,0x869CAEB1,0xA19D899A,0xA41B2208,0xA4ABB5B7,0xB1B5AFA0, | |||||
0x868A0592,0x0DA49F85,0xB1AD911E,0x142724A0,0x171E0784,0xA401211F,0x1C2621A2,0x3206990F, | |||||
0x0B882333,0x82201605,0xB3C0B8A5,0xB005058F,0x1B313918,0x1EA29E92,0x22333834,0x2683A008, | |||||
0x308AA90B,0x9F062A30,0x2480A2A2,0xB0A01D21,0x1617169A,0x3023988F,0x8B83202C,0x2B322812, | |||||
0x85159400,0xBAB4A397,0xB4B1AEB3,0xA0B1B4B6,0xAAA5A092,0x9297ACB0,0x94ABB2A8,0x022B3016, | |||||
0x3231260B,0x2C172331,0x2C313939,0x3A362B2B,0x2D212234,0x14252F2E,0x26220393,0x0E91232E, | |||||
0x202D342E,0x18939B05,0x80801B26,0x182B158F,0x8D9CAFA8,0xB7B4AA9C,0x95919BB0,0xA1AFAFA6, | |||||
0xB1B09811,0x9195A7AE,0x87A1A4A1,0xA911231A,0x1E1F8AAD,0x13999D06,0x292F332F,0x3D342524, | |||||
0x22141E35,0x222F322C,0x34312217,0x9E932631,0xA306261A,0x8BA6B0AE,0xA4A49414,0x93191198, | |||||
0x91A3B1AF,0xB4B0A092,0x9A8B91AA,0xA0AFAFA5,0xB2B09D85,0x9E97A8B1,0xA5AFB4B0,0xB2A5959B, | |||||
0x978DA2B3,0x8AA5A49C,0x89192927,0x20129094,0x909F9A0D,0x83222113,0x2321019F,0xA09F0D20, | |||||
0x041F230A,0x30199695,0x1E192532,0x1F2D2A24,0x2C22858D,0x1B263031,0x30333529,0x27110B24, | |||||
0x82102931,0x32302111,0x24150421,0x9E162B2A,0x2627159B,0x14900C1F,0x94122C2D,0x21169399, | |||||
0xA0A9A508,0xA2000392,0x0E8FA6AE,0xABAA9D05,0x9F051A92,0x13A1A9A7,0xA7A89C15,0x9610809D, | |||||
0x029CAFAD,0xAA9E0D12,0x9314139F,0x90A9ABA4,0x9CA0061D,0x2627148F,0x0899A180,0xAD951015, | |||||
0x9382A1B1,0xA4B0AAA1,0xA99F0504,0x1E82A0A8,0x90A3A407,0x01232315,0x171693A0,0xABA99A00, | |||||
0xA28E1195,0x82A2A9A7,0xB2B3A788,0x9085A0AA,0x2615A2A6,0x8F132327,0x13252613,0x80A2A192, | |||||
0xA2A10C1F,0x231E8398,0x21859B03,0x8E212B29,0x252C2290,0x99A18F18,0xAEA11313,0x1395A8AF, | |||||
0x8AA3A481,0x8D222316,0x241F92A3,0x9C990E1E,0x83212A17,0x1A92A09A,0xA7AD9C1C,0x081C049B, | |||||
0x220DA1A2,0xA1831D23,0x1B272491,0x19949480,0xA0951E29,0x1C1C0296,0x85A3AA96,0xA00A1812, | |||||
0x242915A0,0x90A09111,0xA28B201D,0x210C9DA3,0x96A5A112,0x9A131607,0x21199EAB,0x9D99091D, | |||||
0x8A212712,0x1C96A19E,0xA2A58E21,0x20261B84,0x1E04A096,0xA594131D,0x1C272199,0x17979604, | |||||
0xA194222B,0x211D819A,0x109EA68F,0xA110201E,0x1C2180A6,0x99A69D81,0x9E062420,0x2819929D, | |||||
0x8BA19421,0x8C1F2014,0x241F97A4,0x98931220,0x89202715,0x22889A9A,0x86970C26,0x252B261C, | |||||
0x261C8C05,0xA0841D23,0x18262292,0x23018C85,0x87042730,0x2C2B2214,0x260D8B1E,0x8A212B2C, | |||||
0x23291A96,0x0C938813,0x871D2E2A,0x2C221385,0x09988D24,0x8320221E,0x221D95A1,0xA39F8814, | |||||
0xA2811690,0x0D9DA6A6,0xA3A89518,0x8C0E0193,0x879FADA8,0xAAA2978C,0x8C190FA4,0x8DA2A4A1, | |||||
0xABA68217,0x171094A3,0x09A1A894,0xA3871317,0x1B2288A7,0x8C9F9984,0x9A102822,0x24168998, | |||||
0x87A39B19,0x8A1C2018,0x242193A2,0xA29A8516,0x9D101E86,0x17919EA2,0xA2A6901E,0x92038A93, | |||||
0x1097ACA9,0xA3988509,0x0D241B9C,0x0E989B95,0xA39F1623,0x18170694,0x05A2A892,0xA3861218, | |||||
0x192182A6,0x909D988C,0xA008251F,0x210F939F,0x8CA39B17,0x90171B16,0x180CA1A5,0xA4A29801, | |||||
0x921B218A,0x19899A9E,0xA3A68C20,0x07150B90,0x1A90A6A1,0xA4960819,0x0A22179C,0x15959B99, | |||||
0x9A8C2227,0x27251885,0x1D919C14,0x960D1F23,0x2327129C,0x8996900E,0xA0042420,0x2316849B, | |||||
0x10988C1E,0x0B222523,0x231D929B,0x928F0819,0x00242815,0x21079195,0x969A1226,0x2024200F, | |||||
0x240D9D90,0x9C841723,0x16261E94,0x16919691,0x98872328,0x21201486,0x17979F07,0x87192122, | |||||
0x23281395,0x9499910C,0x9D022013,0x24188298,0x849D8B21,0x87161C19,0x241B97A0,0x908B091B, | |||||
0x07252816,0x22108892,0x89951626,0x2026251C,0x240F9785,0x96021723,0x212B228D,0x2212040A, | |||||
0x9502262C,0x211F1601,0x1D929911,0x84192225,0x21251194,0x86929006,0x9117261E,0x231C108B, | |||||
0x8FA1921E,0x900A1413,0x231999A1,0x95928117,0x921C2209,0x1900969F,0x969E0721,0x121C1E13, | |||||
0x198BA196,0x9B910217,0x13241B92,0x058F9493,0xA39A161C,0x110B8698,0x0E9CA189,0x9A80141B, | |||||
0x101593A2,0x949B9B93,0x9C0B2115,0x11028F9D,0x9DA8A006,0x92080D02,0x1D109EA2,0x9E9B920D, | |||||
0x9614198D,0x128B9BA1,0xA0A1811B,0x8B05058A,0x019FA9A2,0xA09A9280,0x0A201497,0x909B9E99, | |||||
0xA8A3830C,0x10088A9E,0x089EA18A,0xA1900A16,0x111496A4,0x8F9B9C93,0x9F082118,0x098494A0, | |||||
0x9DA8A183,0x8B0D1208,0x1C109A9F,0xA19E940B,0x95121493,0x178295A0,0x97981021,0x800E1104, | |||||
0x1892A299,0x91830D19,0x0E21178C,0x8A979C97,0xA0980E11,0x1B19128D,0x1196970C,0x9681131C, | |||||
0x1B1C889D,0x88929382,0x9E071F15,0x1404919E,0x879E9211,0x0D1A1F1B,0x1D119493,0x9997900E, | |||||
0x021D1B87,0x180D828F,0x9998101F,0x10121180,0x2003968C,0x830E1621,0x10201683,0x0B899393, | |||||
0x90001B1B,0x1E1F1A0A,0x0D969510,0x948A0916,0x20210397,0x8085850E,0xA0821A14,0x13078C9F, | |||||
0x83988C13,0x83121C1B,0x12829B99,0x999C9782,0x801D1B84,0x17110091,0x9B9A071A,0x070F1183, | |||||
0x1F00978F,0x928A0A1E,0x01180D90,0x10879798,0x93011D1E,0x13171705,0x07999B82,0x87021118, | |||||
0x2323118C,0x02848510,0x98041812,0x1B150595,0x0591051A,0x8B0A181A,0x1706999A,0x828D8F09, | |||||
0x07202113,0x0E068590,0x999C8411,0x0E141607,0x20089085,0x938E071D,0x101C1190,0x180C8B8F, | |||||
0x94021F20,0x08111186,0x089A9D8D,0x82071319,0x1D200E88,0x90959683,0x95051407,0x1E1B1191, | |||||
0x8294031B,0x90011215,0x1D0F9597,0x05810014,0x841D2013,0x09809197,0x93978010,0x161C1E12, | |||||
0x1A048D05,0x95938416,0x141E1190,0x170E8487,0x9B89181E,0x05080392,0x10959686,0x870A191F, | |||||
0x0F148390,0x939A9E93,0x96051301,0x12130495,0x99A19508,0x98938786,0x1A05999E,0x8D918911, | |||||
0x970B1100,0x058D9BA1,0x9396000E,0x07151B10,0x09939B91,0x96968C0C,0x1620138E,0x130A8885, | |||||
0x9B8D1418,0x12130A93,0x17878B0A,0x860B1A21,0x11118790,0x0291968C,0x82161E15,0x16191382, | |||||
0x8A978A11,0x000A1311,0x21180086,0x8B8D8217,0x920C0E82,0x160C8F9A,0x8383131A,0x06151C15, | |||||
0x12909890,0x878A0314,0x17211805,0x06818E84,0x9C93070D,0x13140E91,0x1484840D,0x9387111C, | |||||
0x0C0A9097,0x068C958D,0x91101913,0x81038594,0x95A0998C,0x89010F07,0x160B8D90,0x9A9C9604, | |||||
0x96838493,0x0D00949D,0x99950311,0x9588028B,0x0099A19E,0x9192890A,0x0213088A,0x90979D99, | |||||
0x9C948586,0x10130A92,0x81939102,0x9A94830B,0x120B919A,0x0E838F80,0x910F1916,0x07068795, | |||||
0x81928B02,0x0D161D18,0x19120202,0x8B928D0F,0x0A171505,0x1E1A0D82,0x8D86131C,0x010C1207, | |||||
0x1A078A86,0x0909141E,0x0917140E,0x09849392,0x87021011,0x161C1B0B,0x0988860A,0x8D8A0712, | |||||
0x1A190A86,0x1308810D,0x94031315,0x0C0D8395,0x09898406,0x00111B1A,0x0F058A8A,0x88949380, | |||||
0x05151408,0x1110808B,0x9A988809,0x8A00038E,0x16018E8F,0x8B890918,0x830B0288,0x078B9796, | |||||
0x8D800F0F,0x04121280,0x8A98978C,0x918E0209,0x1716058B,0x01888B07,0x95830A09,0x11108395, | |||||
0x0289000C,0x8F021313,0x0A869494,0x818F8F01,0x0515150C,0x0708858C,0x94948A01,0x070F1181, | |||||
0x170C0000,0x8F8E0316,0x000A008A,0x13058E90,0x88071416,0x04111101,0x06909289,0x00031114, | |||||
0x16170F05,0x85909102,0x91810703,0x12110292,0x848A010D,0x91830D0D,0x11809194,0x0487850B, | |||||
0x8212130F,0x81859193,0x92938D85,0x040F1101,0x0D828983,0x95978C0B,0x00078290,0x0C009190, | |||||
0x968C050D,0x8B808393,0x80939692,0x8B830E11,0x070A8088,0x8E969990,0x8F800482,0x10110390, | |||||
0x90928707,0x948C0281,0x10009194,0x8289840C,0x8C050905,0x80879397,0x8D8E8400,0x02101205, | |||||
0x028A8D88,0x93958E02,0x060C028A,0x08818D89,0x97918107,0x85008694,0x068C908D,0x8B820F13, | |||||
0x0203858B,0x8592968E,0x85080C07,0x0F110688,0x8C918804,0x88000A04,0x150E8088,0x00850211, | |||||
0x89060906,0x0B038D92,0x8484040A,0x820C1208,0x028A908D,0x888D8506,0x0D120E02,0x07008882, | |||||
0x928B0006,0x050A028E,0x07838580,0x8E860A10,0x0402888E,0x06878E86,0x810A100E,0x090C0485, | |||||
0x888F8A80,0x80070E08,0x130F0500,0x8388820F,0x81080904,0x130E8189,0x00030D12,0x000D110A, | |||||
0x0B828987,0x02800810,0x0F13110A,0x06818880,0x89830407,0x0C100C83,0x04838104,0x8E88050B, | |||||
0x0503858C,0x04868A82,0x8A010808,0x8281888F,0x89908F89,0x85020A04,0x07038386,0x8B908D00, | |||||
0x83020183,0x0D08838A,0x8A86020A,0x87020582,0x0A818A8C,0x8080070F,0x040B0904,0x01868D88, | |||||
0x86820204,0x0A100B80,0x01858302,0x8B870207,0x0A078087,0x06808303,0x88010809,0x0303848C, | |||||
0x00858581,0x82060D0A,0x04018384,0x878E8B81,0x80050500,0x09068286,0x8C8A8204,0x85000285, | |||||
0x08808789,0x8584030B,0x82020182,0x02868D8B,0x84800305,0x040A0781,0x82888782,0x88860103, | |||||
0x07058085,0x80868601,0x8A830102,0x0302848C,0x81848201,0x85010806,0x01838788,0x84898781, | |||||
0x00060602,0x03018384,0x8A8A8580,0x81020284,0x05008283,0x86860005,0x82008083,0x03828887, | |||||
0x84810205,0x81030282,0x83888987,0x85840001,0x04050182,0x82878781,0x88848180,0x03038288, | |||||
0x82848200,0x87810302,0x01828689,0x81858400,0x80030402,0x01808585,0x85858380,0x01040481, | |||||
0x04008080,0x84840004,0x01010082,0x04008282,0x83000304,0x80020182,0x00838483,0x81000304, | |||||
0x03030200,0x80838480,0x82000101,0x04040082,0x81818002,0x82000201,0x03018183,0x01800003, | |||||
0x00030403,0x01008282,0x81818001,0x01030301,0x01808180,0x82828002,0x01020180,0x02008000, | |||||
0x81800102,0x00010081,0x01808080,0x80000202,0x01010080,0x00818180,0x00000101,0x01010080, | |||||
0x80818000,0x81800000,0x01008081,0x80800001,0x80000000,0x00008081,0x80800000,0x00000000, | |||||
0x00808080,0x80800000,0x00000000,0x00008000,0x80000000,0x00000000,0x00000000,0x00000000, | |||||
0x00000000, | |||||
}; |
// Audio data converted from WAV file by wav2sketch | |||||
extern const unsigned int AudioSampleCashregister[5809]; |
// Audio data converted from WAV file by wav2sketch | |||||
extern const unsigned int AudioSampleGong[27633]; |
// Audio data converted from WAV file by wav2sketch | |||||
#include "AudioSampleHihat.h" | |||||
// Converted from hihat.wav, using 44100 Hz, u-law encoding | |||||
const unsigned int AudioSampleHihat[5953] = { | |||||
0x01005CB1,0x77766877,0xEAEC2195,0xE0737099,0x82807B70,0x88909012,0x8B822303,0x8C04180B, | |||||
0x090B9207,0x878EA413,0x1EB09F15,0x0B9B2122,0xA09E0094,0x51B2B980,0xD1485CCA,0xDACCBF48, | |||||
0xE8DFBB47,0xD7B254E2,0xA3E0DED2,0x56D9CDBB,0xBDBAE652,0x33ECEDE7,0xE9F8E450,0xE7C7605C, | |||||
0xC7C3C8E3,0x6264BED6,0x2B3ED7C3,0x736C5226,0x51535760,0x29C2DED8,0xD2E3E10D,0xE3E5BAA3, | |||||
0x0FC3D2D1,0xE2DFECC3,0x6744E3EE,0xF1E9B453,0x5CE53B58,0x3341465B,0xC03B5A56,0xB60A5293, | |||||
0xA4D1DACC,0xCEF0C15F,0xF0E59E5C,0x41C3D5ED,0xE7B56464,0xD2D25CC6,0xB54A5760,0x424C09E1, | |||||
0xB7C0D8DA,0xF5F46870,0x53BFCFC6,0x54C9E2CF,0x58BFD95A,0x65656556,0x50ECEA5E,0xD4E8F3D7, | |||||
0xD1535FBB,0xE4C937D0,0x626A5F4D,0x57716736,0x4C6B62D6,0x656949E5,0x615AD16B,0x673FF0D6, | |||||
0x056054D7,0x91E0E3EA,0xE5B8D4DD,0xD5E6456F,0xD52DCBDA,0x6425EDEE,0x628AC855,0xE487DEDA, | |||||
0x54DDD5C3,0xD6DECA48,0x4E23614B,0x5651D7C1,0x9DEBEB41,0xCEE8E4B7,0xE05262C0,0xA4A9D760, | |||||
0x34AE5FD0,0xE8BD44DF,0xF559C0F0,0xE5F43FE4,0xDF616357,0x29D1564D,0xC26D66D5,0xD7D6DCDE, | |||||
0xD9905433,0xD75E4FD8,0xC5C6D8E4,0x5E68AF42,0x546C18F2,0xE0E1D4D9,0xDBE3C22D,0x719ED751, | |||||
0x5561CE45,0x6E4E3C58,0x71755D65,0x66789DDC,0x6E61D5E5,0x68DA616C,0x685CC074,0x70E1CE51, | |||||
0x73535E73,0xE6E8E370,0x6FD46463,0x1E62F2C5,0xF4557BC9,0x78E28170,0xD851B867,0x6E656BA1, | |||||
0xE27107D4,0x79A85A20,0x70D5F46E,0xBFE4E060,0x645AC550,0xF1E7DC37,0xDC5177AF,0xD0E75465, | |||||
0xE05BA422,0x6F6864E2,0xF6F0E1A2,0x416966D7,0xC273D8F5,0x426366E1,0x63CDCF4C,0x54E33B74, | |||||
0x65706A54,0x66E0D363,0xF3D55361,0xDDF25920,0xF5266B69,0x44E243C5,0xD96A6362,0x7555E6F6, | |||||
0x57EFF7C4,0x54727377,0x661E5A40,0x2EB7C45C,0xE55B5A5D,0xD0CCB2E7,0xD953CAB0,0xE8E0735A, | |||||
0xD0637156,0x4829603F,0xC25F5148,0xE67055D7,0x5F5852EC,0xC7AC6D57,0x5859615C,0x4C626340, | |||||
0x7D65E342,0x7268446A,0xE01C7377,0x424B620E,0x6D5A3856,0x60E1FBE9,0xEDB5CFB2,0xD83063E2, | |||||
0x713CE954,0xDD7A764E,0x71E95E5C,0xF067777F,0x5E7252EC,0x707964E8,0x0D354230,0x68666269, | |||||
0x77D0D463,0x604DDF55,0x5ED8E657,0xB5EB5C77,0xF0E8BF3B,0x67685509,0x5E7754E0,0x46F2F2DC, | |||||
0x5A6E5C60,0xE35E6C0E,0xC4E16251,0xF7D8625F,0x72DFC0D3,0x67E4F45A,0xC2E0E9D6,0xDFA0616E, | |||||
0xCCF5E8C8,0x39665864,0xD3E562B4,0x6A5C4B51,0x5D57F045,0x3B7046E0,0xA22F53D2,0x6D6AEBE5, | |||||
0x507754E2,0x6A2B6C56,0x7537C470,0xA4D6707C,0x48E0EB53,0x597B6C25,0xD2936034,0x63B7B7C6, | |||||
0x493EA465,0x4F4EE0E0,0xE35851D4,0x5772F1FB,0x61D9F3F1,0xBAF2E462,0xECE3A25D,0xBB40DBE7, | |||||
0xCFE53FD2,0xE4D5D589,0xD0E941B7,0xBEECDA61,0xDA606F63,0x43206949,0xF8DD666B,0xD0DB5ADF, | |||||
0x6141DE47,0xE8F3E43B,0xE66767E5,0xD36D58C5,0x63A1E3F4,0x57E4E329,0xECD45259,0x3ED7B8C2, | |||||
0xB0D9D267,0xF1607463,0xD96169EF,0xC9DDC7B3,0xCB716385,0x5E6EE0F5,0xCE54D5ED,0xD5A15BC1, | |||||
0xF3D15755,0xB5DCB0F0,0x67572960,0xC0D6F8E7,0xE0482CD2,0x683548C3,0x6CCBD85C,0xE9EE5B70, | |||||
0xE39E665F,0xF1EC5C4C,0xD7DB41C4,0xE9694BE1,0xD9E4CBE7,0x706FD1E7,0xEBF8647A,0x69275766, | |||||
0xB531375C,0x7107DEA1,0xB133DB5B,0xF1FAECE7,0x45583842,0xF9F8E1C0,0x52E3625F,0x6662F0D1, | |||||
0xF1E3D3E0,0x771CE3D3,0xF4DBB073,0xD64C72E6,0xBC5FE5E3,0xCC48E4F6,0xDAE062B4,0x65E7E756, | |||||
0x64E6CC67,0x31F2E475,0x31B1E437,0x92319BE6,0x6B3DDFA1,0x52CB5465,0x449D7279,0x325F6160, | |||||
0xCFD96351,0x4A54DCC5,0x6D69D3DB,0xE4EFEDD5,0x6B56E6D1,0x454BEFEB,0xC4D5F2EE,0xD75631BB, | |||||
0xF2B75ADC,0xE8587595,0xE35356D7,0xF60561E8,0x26E0EBEB,0xB34FC5AD,0xD6DEEAEB,0xCE695ABD, | |||||
0xE0E0C0E2,0xC058735D,0xB9416149,0x5A5448C1,0xF0E26B70,0x195847D0,0x625BDAE8,0xE36963D3, | |||||
0x506962D9,0x64666459,0xC2C5DB27,0xE5BE53DA,0xD21EC03A,0x716AECF4,0x66E8E74D,0x6660D263, | |||||
0xEBEEFAEA,0xD5CC40D8,0xF4C740D0,0xD6E7B9E8,0xB5C1DF2D,0xD7AEE4EC,0xF1F3DED8,0xCBD0D316, | |||||
0x7463DBE5,0x764CEC4D,0xB05E5F68,0x5A65795F,0x6AECEF63,0xCDD2556E,0xDC246F66,0x276FC1EE, | |||||
0x646248D8,0xE0D0B647,0xED6B4FEE,0xEFDA30F6,0x695C6120,0xEBEBE423,0x50EEC248,0xD4F8C577, | |||||
0xE7E6E851,0xF09361C3,0xB36B6CAB,0xD1B8E4EF,0xE70263D2,0xF2E86342,0x6166E2E4,0xF2ABCCE6, | |||||
0x376F62F2,0xBCDB359B,0xEAEFEEB0,0xF7E87460,0xC04D64A0,0x565CC025,0x70CBDFD3,0x71E6F889, | |||||
0x73B2FABB,0xB7DCD263,0xF7E1756D,0xE4617659,0x697663EE,0x9939505C,0xFBF0DBE1,0xCB5B70DC, | |||||
0x5BE8E156,0xF2C54F44,0xE15F56E4,0x51D3E8E9,0xDD506235,0xE9E26469,0x454DE8EA,0x60D2DDD1, | |||||
0xE8F2E851,0xEBE0DDE5,0xCEF5E4D3,0x71698252,0xD6566268,0x0331B3E1,0xD04D7165,0xDD5567BC, | |||||
0x4E77764C,0x6CBADFE9,0x71D6B477,0x506C3F5A,0xE17263BD,0xF846B6FB,0xF3687CD3,0xEB6F78E2, | |||||
0xECD31AE6,0xD3EDFAF9,0x53DED03F,0x554DE150,0xC1736FE2,0x6BF1E7C1,0x62F2CE77,0x58E4FD56, | |||||
0x5CC8EFD5,0x61B2F4E8,0x6AD9DC56,0xDE635362,0xC9F1EAE8,0xBA7034CE,0x6C42D9E7,0xE5ED6274, | |||||
0x7079E0F1,0xF2C4D9EE,0x646852EA,0xEEFBF4D1,0x6966715E,0x7A66E95C,0x41CFE34C,0xE26365C2, | |||||
0x47EABB25,0x6D68B458,0x7A73C1BB,0x50AC2C71,0x2053A5D9,0x50737A65,0xECE6E1DC,0x70C0BE2F, | |||||
0xC9F4E172,0x635A6661,0xE7FCF350,0x6F636768,0x4CD7E551,0xF33A6D30,0xE9C26794,0xE4C65A84, | |||||
0xEE2FC0E5,0x36BF5AEA,0x5ACBF33F,0x75D5EDE7,0xEEC86878,0xE5DB51D7,0xDFD7C8AC,0x5C54BAE1, | |||||
0x30C00C5C,0x5C63EAED,0xBAC7CAB3,0x6CE8F093,0x34625E6D,0xC6396F62,0x7C796350,0xE2606761, | |||||
0x525AB6E6,0x60B4C24D,0x5652DBBF,0x2D627162,0x6124C750,0x5DE1E248,0x646DE1E2,0xF8E09842, | |||||
0x7467B5E8,0xD6E0BC4F,0x5A6E7054,0x4F46F1E8,0x29F1EEE0,0x07E1F5D1,0xE424E0E6,0xE9BB6BCE, | |||||
0xECD262C1,0xD2E2502C,0x2050B750,0xE13D5D91,0xF6F8D832,0xD4E9615B,0x54D63F65,0xE23F604B, | |||||
0xD04ADBE1,0x35775DE3,0x6DC8EDF8,0x53716374,0x7074B3F0,0x67D8446B,0xA1E5D563,0xF2E94A6C, | |||||
0x6C6FB7E8,0x517253D7,0xDD6669DD,0xEDE8E1E7,0x65D85F4A,0xD0F4EF6B,0x2537A43A,0xC638D4DB, | |||||
0xC752573A,0x317070D5,0xE3D13451,0x68C1D3E1,0x4EC4C561,0x4EB26066,0x2DE5CE6D,0xE7E2334C, | |||||
0xE4CD6753,0x38707157,0xD46167D6,0x7126D53D,0x795ACF6C,0xE5F1EF40,0xDF565DC0,0xD7E2E7E3, | |||||
0x41DF565A,0x94E5D845,0xE8F0E944,0x9BE230C5,0xD13DD1BB,0x0E3B1FE0,0x67E0EECA,0x23E2B66B, | |||||
0xC2E75E76,0xCD32BAB0,0x656D37EA,0x603ED954,0x5870D5E5,0xD3C0E8ED,0x58D3E1C9,0x66D6D448, | |||||
0xE0BC5361,0xEFAF7166,0x495C5FCA,0xE24C655A,0xC6706ADD,0x65735DE2,0x5C613E17,0xC0CADBDB, | |||||
0xD4E7C558,0x41B3F0E2,0xF1E16357,0x315C45E5,0xE2E6DFD5,0x6B57E1E0,0xB7ECF2D8,0x50CA5054, | |||||
0xE0CD4D5D,0xB2BCB0C9,0xB2DAE1A6,0x4767716F,0xBC60C5EE,0x7A65E0DD,0x63515876,0x65672137, | |||||
0x6C5B4D51,0x9DA0D753,0x4364BBD3,0xC46D58E8,0xE3D9C9E7,0xE6D350A7,0x607169C1,0xEDEDEFCD, | |||||
0xE79A52DB,0xA84097E7,0xE5637256,0x616CA3E3,0xD04452C2,0x37DFB2C2,0x51542C53,0xBDEBCB45, | |||||
0x39C26C6E,0xC1366870,0x57DAD342,0xE8F1EDC0,0xE6EEF1E3,0x94595FBC,0x33DEF0E1,0x2BE7F9E1, | |||||
0x3B35E1E3,0x5B6220D2,0x32E3F2E6,0x5BBADB17,0x5548C641,0x54655E52,0x5C61493D,0xD8346D63, | |||||
0x6959715C,0xDA456877,0x556B59E1,0xCDCA4A97,0x5D379E42,0xD12ECA54,0xD0E5C2D1,0x2FE1D13D, | |||||
0xDFDB2A57,0xC8354391,0x55BAD7D5,0x82686861,0xD40ECAE2,0xC1ECD5C9,0x48626157,0xDBC55143, | |||||
0x54617062,0xC4C4C140,0xB9F0E346,0x3C93BB50,0xE7A21ECA,0x54630CE9,0x5B5F573E,0xD9D83B5E, | |||||
0xF3EDDBD0,0x615744D9,0x57D2F1E3,0xC14E158D,0x4B5853AC,0x69C35059,0x41D83C73,0x5B65CE23, | |||||
0x93666330,0x335760D8,0x5E5D334C,0xE2CECF2A,0xB396D5EC,0xC55950D2,0x6365602A,0xD0E4DF42, | |||||
0x2EC39A28,0xE2EBDB4E,0xE3C24CB2,0xF0E9C9DE,0x625A59CF,0x21C2C960,0x6A52E6E0,0xC9E0D460, | |||||
0x6254D2CC,0x5B3CD3D0,0x5E686666,0x653FC022,0x6C56656E,0xDAA06372,0xDB5553B6,0x6351E3F8, | |||||
0xB7E7D360,0xCDBA3759,0xD334EAF0,0xE5E8E3E7,0x5757BDA6,0x5265E0E5,0x55DAD6D3,0x54A8C556, | |||||
0xE4314F44,0xB9596745,0xBEE2F2ED,0x66E2F5E6,0x63CAD165,0xE4D0BD54,0x5FC9E8EE,0xC0D0D745, | |||||
0x303D4B4D,0x7054E2DB,0x27394A6E,0x5A4BC3D1,0x38BF676C,0xEF54776E,0x2E6731EE,0x69662DDC, | |||||
0x47C9CC39,0xDECDCF20,0x62AEE1EE,0x5741DE5B,0xB9E9D343,0x3AE6E352,0xE4D5D24E,0x50A3B1CE, | |||||
0xE3CCC4A0,0x563ED9E6,0xEAE4D134,0x5D5AD0EC,0xEFF2D941,0x47C3CBCD,0x66444D58,0x6A696B6D, | |||||
0x465A706F,0x6CBEC838,0x5FD16376,0x6E69CA67,0xC4DC5255,0x615B5C63,0xF3375460,0xBF6953F3, | |||||
0xB6D8EBF1,0xE5E7E144,0xA4CDEEF7,0xB6EDF3E0,0xF1E4E3D5,0xE4DFE3E8,0xDD537353,0x245D32E0, | |||||
0xC25F5DCB,0x24665AC7,0x6B6790E0,0x33CFDC54,0x366560C7,0xD9347167,0x304149D4,0x9ACA5860, | |||||
0xD04DA03A,0x5D7560DF,0xD2B19BD9,0x6F51EBE3,0xCAE3906A,0x5D45D035,0x6261D1C4,0x66B1D8B3, | |||||
0x58D0E933,0xE7D34463,0x3C47E9F4,0xC1E5CCDB,0xD2F2DC66,0x3013D020,0xE62211E0,0xD46156DD, | |||||
0xDC6D3DEB,0x33DDC5E9,0xC6F0F058,0x72674310,0x56D6D062,0xAAAD5260,0x6E50DFC6,0x505B6A6C, | |||||
0x60676260,0x5358D5E7,0x6FC2E8C8,0x3C57E654,0xF2E8F1F0,0xE34B68D2,0xD2F3E7D5,0xEAF4E057, | |||||
0xEAE3D1D6,0xEAF7E8D1,0x61D1E8E4,0x60385260,0xCDE04F67,0x7253C422,0xD3A96776,0xD3DB5B51, | |||||
0x7070584C,0x4847D0C5,0x5E6AC7B0,0x4A48E0E4,0xBBE3D13A,0xDA49585C,0x735A07C0,0xE6E84774, | |||||
0xD5DFB2CC,0xBDDFAABB,0xC7D75662,0x1C3D4357,0x622FE7E2,0xE1D66567,0x5C656F62,0xE6E1CB27, | |||||
0x6197C6D5,0x39543960,0xAA6052A2,0xDD5063AA,0x203A5AC5,0xE2DC3441,0x537163BE,0xE2C315DB, | |||||
0xD8F3D602,0xC9DE2163,0xD137554D,0xD0DAE5E4,0x6B6091BA,0x3166726E,0x64C7D2B0,0x72A3C964, | |||||
0x84DFCC72,0x6056B5D0,0xC64CC343,0xD9E6E5E3,0xD7DCC30B,0xE028B2D8,0xD9EAE5E4,0x573BE4E4, | |||||
0x27E6D856,0xD4E0E7C7,0xE2ECD2D0,0xA4C0DAB9,0x33505225,0x61CC1760,0x68616763,0x7132DC60, | |||||
0x60606774,0x625F6564,0x62617573,0x645A6B70,0x68BED167,0xC4CF586E,0xFAF53F67,0xC3C52FEC, | |||||
0xECE4E2D4,0xF4E4EBF6,0xE7E84BDF,0xF1FCF7D9,0xF0AD5FD4,0x5830E8F4,0xC0445E60,0x37484B39, | |||||
0x657461C7,0x5CDBE4CA,0x2CD0C361,0xB4375C56,0x766F3D87,0x5ACFC86B,0x6337D816,0x574AC056, | |||||
0x61CFEAD5,0x68B6D459,0xE15F706A,0x69641DE1,0x695C3044,0xE888606A,0xBCC2C3E6,0x5D466247, | |||||
0xE8EEC461,0xE69F5653,0xE2B7BFD8,0xD6594FE6,0xE9E7D9DA,0xD7616BC0,0xD8E7ECEF,0xCD57504E, | |||||
0xE5EEE5E1,0x3BC3654F,0xEBF1E055,0x636035D8,0xDCD1DEBD,0x1A5163A5,0x60636054,0x443A6D64, | |||||
0xE052676F,0x77664AE0,0xBDD7CD73,0x6B655617,0xE0EC406B,0xC1616E63,0xD4B6BDDC,0x45CAEEE5, | |||||
0xD4C1E3EB,0xD7D5DCE5,0x63B9E6C8,0x5851DCB2,0xECE02942,0x66C5D5DE,0xDFEDDD69,0xBED9A940, | |||||
0x55547370,0x6A64515F,0x630DC922,0x3DE9E063,0xBFCFB354,0xDF3A45BA,0x2B6B68AC,0xD9246707, | |||||
0x5A62C8E1,0x51B5E1D7,0xE2ECC65A,0xF0976A5B,0x60CD37C6,0xCE314666,0x515249D2,0xE8C4B13B, | |||||
0x6E666DA2,0xE0D05C71,0x586C64D1,0xD3364740,0x6A54F1F0,0xD5C9D328,0xB9E4C3CC,0xE2316460, | |||||
0x53B4F3F1,0xE4C5464C,0x1FB0EFF2,0xDB52D8E9,0x54572EE7,0xED5A6635,0xC5646BE2,0x74724BC4, | |||||
0x41C23F5E,0x45657172,0x12616042,0x597C764A,0xA96D64D7,0x4EC531C1,0x96F4EA51,0x545BCA12, | |||||
0xAAC4E1CF,0xE1E4CDCE,0xF1C8C2D4,0x63A3E9F4,0xDAEEDE56,0x87CCDDD1,0xC7BAD9DA,0xC6532AC1, | |||||
0xD0C2CBDF,0x52CAE6E0,0x4A604447,0x6E4BB8B6,0x43575B6E,0xCC5152D1,0x2B58593B,0x45331DD2, | |||||
0x4DCE435B,0x59A4B65C,0x766E565A,0xD4D7C06F,0x697750E4,0x9DD6E0D9,0xBC656345,0xD2CDD8DF, | |||||
0xC6CA5D49,0xD2F3E8BE,0x37C06E71,0x9B536166,0x5259EAEC,0xEBEDD9D7,0xE1DFDBDA,0xF2EFF0F0, | |||||
0xD5DFCDE1,0xE7EBA656,0xC04552BB,0x94E1D8B7,0x5D415262,0x555C4D4E,0x4C49BE31,0xB35342B1, | |||||
0x5B4341DA,0x7066626F,0x6244D955,0x69727870,0x564F4F5E,0xD756695F,0x4B50C2DB,0x4FC2D4D5, | |||||
0xB1DDD751,0x4961CBCD,0xE9D1D2CD,0x5B7169E3,0xD12F91D0,0xD3E1EBE0,0xE3DCD8DC,0xF0E545D7, | |||||
0xDFF1E6D6,0x6243575F,0xCEAC4463,0x715B490A,0xD7F1DC70,0xBFC2D8D7,0xF2DF4CB2,0x616757DB, | |||||
0xD1DAE8D1,0x6E51C7E1,0xC0D65673,0x63D4D64B,0xC50F6D74,0x54C36063,0xE5E46570,0x566359A6, | |||||
0xD6635411,0x636843E4,0xD7CC4B5F,0x47D6C5B3,0x2B695442,0x51D4F1F0,0xDAF0E131,0xD3E7D54F, | |||||
0xE342634F,0xE1DB38DB,0x50E3E9C8,0xE8EDC560,0xB4C1DBDB,0xB8D3DEDB,0x53E4F0DC,0x5044696C, | |||||
0x491E435A,0x5668675A,0x7261433C,0x4D13396E,0xE0456460,0xD24861D2,0x77746642,0x3CAEE250, | |||||
0x6654D4D7,0xEAE43066,0xDAC5D2E0,0x89BB5C46,0xF4F4CF4D,0x593425D8,0x61D7E155,0x5DD1DD3B, | |||||
0xD2E4E056,0x63614AB0,0xE9EEDC4A,0xE15B6A34,0xD2E9DAD9,0x47B8D04E,0xD1C35348,0xD463659C, | |||||
0x3F6343DA,0x3CE2C5CE,0x14C7476E,0x37554223,0x3D4808D9,0x5764635E,0xA96250C0,0x697969DA, | |||||
0x59C2CDC7,0xD5B84165,0x615A5225,0xDBEDE63B,0xA8136661,0xD8E5DAB7,0xDDE63957,0xCC484B48, | |||||
0xC13DD6E7,0x36E6E7E3,0xD748904D,0xF3E5BCE2,0x625CCBE6,0xC3DCE69A,0x596258D1,0xDBD76266, | |||||
0xD6943215,0xDA2621D3,0x41565EC1,0xDCDDDE95,0x6D46D1E2,0x58D9D768,0xDF315A5B,0x3C10A9D1, | |||||
0x3A6131D7,0x676B6543,0x5ABFC856,0xE3C16D6E,0xCE446960,0x2D65642B,0x5A6345D8,0x1EC4B848, | |||||
0xEE4A32CF,0x486668D9,0x30DAF8F5,0xDB40BFCC,0xCED3E7EC,0xE9E4D3B8,0xDEECE8E7,0xF0F2B23E, | |||||
0x155B50CE,0x45D5DFD6,0x9F44B14C,0x526558B7,0xE0A25344,0x6B7763DE,0x4E67602A,0x624B3CB0, | |||||
0x7140416C,0x61E6C171,0x5F636973,0x71655756,0xBE5C6870,0x675ADAD9,0xF5E13658,0xEBF0E4F0, | |||||
0xF6EAD4DF,0xD2644EF0,0x47C4D0DA,0xE1F6F0D1,0x4FEBD557,0x5FD7D863,0xE4C95968,0xB45163C8, | |||||
0x61646353,0x38B4A442,0x4D536263,0x656A513D,0x5D455360,0x72726461,0xCCD3BA44,0xE8E7E8D1, | |||||
0xDDC5C0DE,0xF6F2DEE1,0x346367DD,0x4D57E6E3,0xC4473DCB,0xE6D9C5D1,0xD6A7C4E1,0xE442A9D5, | |||||
0xE191CBEC,0xC3244DE1,0x70C3ECDF,0x5D41C165,0x49685C57,0x6F64C0D1,0x90D8DBAA,0x60DCE400, | |||||
0xE6C95C6B,0xCB272EDB,0xEEA87060,0x59696DA6,0xBC4E3C14,0x6366B4DC,0x57C3B348,0xC8C1606F, | |||||
0x6660532E,0xA9524551,0xE038623F,0x76660AD1,0xF1E25169,0xC66F72A0,0xDCD2A5D4,0x3E9BD5CD, | |||||
0x51EEF8EE,0x9CDEDC57,0x3C47373E,0x5FC6E2B0,0x52AEC34C,0x435D5443,0xD2C84048,0xD3D8E9E7, | |||||
0xDE677049,0xD462C6F1,0x5A61CBEA,0x54452F45,0x3ACEE4D7,0x71D5DA38,0x0DC9AD72,0x280B8232, | |||||
0x6E656259,0xD4E9C869,0x9A1D5743,0xD0605C21,0x204047D8,0x4DC3C24A,0xC8EFDE5D,0x565544B8, | |||||
0x59C9E049,0xE0C1B8B6,0x125019E1,0xE2535431,0x5064C2EC,0x32535B1C,0xD9D4D4B9,0x315665AE, | |||||
0x245C6257,0xD141DBE0,0xC5B3E6F1,0xBFA3CED2,0x4545E0E0,0x496352B4,0x65D9D4CE,0x595C5D6F, | |||||
0x3FAEC753,0x566B7063,0x4AB4B333,0x3D536661,0x69725DB3,0xD0D0D5C2,0x5EC6E3C1,0x4D4B6165, | |||||
0x17CCDBB8,0xC0E2EBDF,0xCD566961,0xEDE2D0D9,0xE2CDBCE4,0xE6A73CB3,0x6235E8F0,0xDFBAD1C6, | |||||
0x60C5E0E5,0xE1E6D95F,0x5153ACE6,0x5C426064,0xDDC3405C,0x737463D2,0x55605E65,0x5B656B6B, | |||||
0x2AD4CFC2,0x5F61665B,0xDB30CB56,0xBA6D69E0,0x5C5109D4,0xB3E2E5C2,0x6236DED1,0xB2E0D049, | |||||
0xD0E25565,0xCE9BCC0F,0xD2664FDD,0x48CFB2D2,0x45D6B35F,0xD1595E3B,0x35BCCAD5,0xB8E5EED7, | |||||
0x5D40DB3E,0xDEC5B1CA,0xB4D1C2D2,0xBD1EB8D1,0xDC505149,0xE4E2D1E2,0x62737150,0x51B6D9A2, | |||||
0x68632D2E,0xB6DFD452,0x31C95D69,0xB42B3B54,0x3F6E62C3,0xE99034C0,0x6158BFEF,0x5B55B79D, | |||||
0xE3D7E6D1,0x41E6EDF0,0xE0D6516E,0xD99E48B1,0xC1CA53C4,0xE5D34454,0x47C3C4D5,0x613FDAC3, | |||||
0x5C3BE2D1,0xC8DCEDE4,0xC42B5556,0xB04445B4,0xE9D84AB4,0x4A6353B2,0x6C8BDCD1,0xF33F7674, | |||||
0x27A2CEEF,0x51595C4E,0x4B5A625A,0xB7549608,0x5B706EA3,0x58DACD4B,0xE6CA5F65,0x4232AADE, | |||||
0xF1D346A3,0x5B68C6F0,0x5F3FD8DB,0x35E0E63A,0xBCF0EAD1,0xC4D1CA63,0xE5D4543A,0xD7D7C4DE, | |||||
0xF5E25936,0x58BFC0E2,0xF5F28568,0x5932C4E9,0xCC4B4E62,0x2A43C3D6,0x5D645B5D,0x5F59563C, | |||||
0x5F504C5D,0x75685C5B,0x6068646A,0x3A4A365D,0x5D687362,0x4C4A2753,0xDFDBC150,0x4FCBCEE0, | |||||
0xE3E8D650,0x8ADDEDE2,0xE2E9E0CD,0xE7EBE1C1,0xA2E2F0F0,0xE1D6C155,0xDDB2D6E7,0xE5D2DCE9, | |||||
0x456359DA,0x606B43D8,0x4CD59C51,0x63B4B069,0xC9546456,0x33486F64,0x6B3B6066,0x656C777F, | |||||
0x7068514B,0xD8CBA651,0x3FC05941,0x13EDFAEA,0xE5E6E8D2,0x686407DE,0xD0E6F6E1,0x5426A8B3, | |||||
0xF1DF6060,0xE88D4BDF,0x5FA2C5E7,0xE19F6C71,0xDA13579C,0x686442C5,0xE1DE114D,0x9E5D5D44, | |||||
0x40B1DEE0,0x5BC5D043,0xC3D6E2C4,0xC2E22160,0x43B0E035,0xC4ACD0DC,0x7063E2EA,0xD85D4B5F, | |||||
0xA2CD51DC,0xDB8E5257,0xD9706AD4,0xB9DAE8F0,0x2CFCF34F,0x703BC761,0x50E1F333,0x5AB4E2B2, | |||||
0xB553646D,0x044C6859,0x0B595B41,0xE3496551,0xEFA663DA,0xC77262D9,0x706BC4E6,0xE2E4E1D1, | |||||
0xD4D6BAB7,0xDC5D6522,0xE5E9E9ED,0xE7E45D60,0x4855C8DF,0xE81F7367,0xD7DBD4E2,0xABD550C6, | |||||
0x5E675055,0xB53EC2D2,0xD46A755F,0xD137C9F0,0xE2EC355A,0xF1D17169,0x48532BE4,0x6862C3C8, | |||||
0x7766D736,0xE13C6670,0x7361E8EF,0x1F514765,0xAB4F45D4,0xC534B0BB,0x53A6CEC9,0xADBEB443, | |||||
0xCFD7E3DB,0x4B4730C8,0x60BFF0E0,0x3BDFDB52,0x684BCE97,0xEAD6D63D,0x63552BDE,0x7253E9D2, | |||||
0x53DEE854,0x5DE9F3BB,0x53574160,0x1B2BC1AA,0x53656860,0x5E664589,0xC864B9D7,0x2A5157C7, | |||||
0x8FB14B4D,0xE4BB6C69,0x5B6253D6,0x62B3D740,0x5CCCD45A,0xD2EBE045,0x5066561A,0x513F4751, | |||||
0x5143C0B1,0x625C3C50,0x6062432F,0xBBE1D8B8,0x905C6255,0xE1D0BDB3,0x413941DB,0xD697D8C8, | |||||
0xCBC5E0EC,0xC4DEE6E0,0x3118CA1C,0x9A414337,0x45CFD2A8,0x4C5D6558,0x5C685D51,0xC8C1BE2B, | |||||
0x516041D6,0xE6B5674A,0x10A75549,0x695AC8C1,0xD1E7D65C,0x5C365F54,0x55566162,0x5A614555, | |||||
0x6384EBE1,0xE0E43155,0xE7D65558,0xEAE2E7E4,0xE7E7D3DF,0xE048B5E6,0xE9E4E3EE,0x1E51CBEB, | |||||
0xDC371048,0x5056D2E2,0xD0C9E9E0,0x5866CBEB,0x5BC2E9E0,0x6656A54F,0xA4B64866,0x5428A184, | |||||
0xCB514945,0x5354B1E2,0xDA365C56,0x626841D5,0x50515146,0x5AC1DFBC,0x65646663,0x545A4153, | |||||
0xC7375A49,0x5BB0E1D8,0xD7E2B466,0xECE2D1D2,0xD6B15ECD,0x52305049,0x60CECA62,0x6155CDC0, | |||||
0xE3320A52,0xBF423EEB,0xDD235854,0xE3D15E47,0xDDC96253,0xC48C39BC,0x5434CDE0,0xD6D6B43F, | |||||
0x57460BD4,0xD0C1D835,0xECE02CD0,0xAD562AE0,0x6048DDE0,0x184A6C6D,0x664E43BF,0x4C613462, | |||||
0xE1BC12CF,0xB25D4BD4,0xC747A6DC,0x4ED1E2E2,0xD8DB9053,0xD4B84B4D,0x46CBECE4,0x3ACC273F, | |||||
0x5AAADB57,0x696E5917,0xD4EDDA47,0xB9A4514F,0xE6D60428,0xB6424AC7,0xCEC55D5E,0x5245675C, | |||||
0xCDE1CE97,0x4E34B851,0x523A973E,0x4BAA091D,0x46541C5C,0xCFE8E1BC,0x5C19C52F,0xD5494A85, | |||||
0x32C35030,0x54BBD336,0xE52B475B,0x5AA047D7,0xBEBED652,0x505E683C,0x455641AF,0x564DC2A3, | |||||
0x46BBB952,0x451595B1,0x5CC7E121,0xDDE9E54D,0x3E2DDAE2,0xE5E3E0DB,0xB757C0E0,0xE5D6D0E2, | |||||
0x535ABDE7,0xC92BC8B3,0x6A54D3E5,0xB6D9DF58,0x5949DFDA,0xE0446E69,0xB9AE5117,0x18CEC7B9, | |||||
0x525B5C3C,0x509CBD46,0x6071685D,0x5A60CEDB,0x4B54DAD6,0x216B6B55,0xCECE39D0,0xD498CAC3, | |||||
0xC652A7E1,0xC8CBC8DA,0xA896E0E4,0xC02CC2CC,0xABDDBF46,0xD0515254,0xDEE6E7EA,0xEBC56636, | |||||
0xD2A45AC1,0x6145333F,0x5A64C813,0xD1E0CC2D,0x535B5B49,0xD1E0BF59,0xE0A1BAE4,0x566636DA, | |||||
0xC9AF45B0,0x5D43C7B1,0x50615461,0x6667A4E4,0x48525661,0xD1E8E02B,0xD33A5032,0xCBE3B1BB, | |||||
0x456445D1,0xBACDE6D4,0x2C686E54,0x53D7C4B4,0x4855C14F,0xB9CAD4D3,0x584EE0DA,0x59D5E4D1, | |||||
0x40DDE20F,0xDD94414F,0x9DC4D0E2,0xC6DC285B,0xB641AD4E,0xD3D6D7E1,0xCF40665A,0x4CDEF2E8, | |||||
0xBC666417,0x3BC6BCD3,0x665AB33C,0xAC4C5967,0x6334E8E1,0x27C15461,0xE2DB1D87,0x41B71E35, | |||||
0x5B628DBA,0x6143B9C1,0xC148805B,0x516751D9,0xC509524F,0x696D59D1,0x9B463155,0xC53EBCD6, | |||||
0xD2DB28B1,0xE4EADA39,0x57C3C9C6,0x98DAEFD2,0xD3CCCCB8,0xE1CBB3CD,0xC3CCDEEA,0xB340CFE1, | |||||
0xD1C74558,0x676655B6,0xC2C6C853,0x605D5CC9,0xD3CDC85E,0x5B5F5693,0x584B5A51,0x51BE4560, | |||||
0xB8C75165,0x5A17C518,0xE9E1CB57,0xC85222E5,0xB53360AC,0xA9CBD61B,0x459816C0,0x42B3C435, | |||||
0xC3EFE715,0xE92DB8C1,0x443CC5E5,0x50E2E2CE,0x4B60425F,0x3EC1D0D7,0x68645850,0x53854E65, | |||||
0x6659525D,0x544B1662,0xBFC9D6DD,0xBCDC0A55,0xD188DAD2,0xD2D6D3DD,0x643CDFC6,0xD425BC38, | |||||
0xAFE9E1D9,0xCEB04257,0xE1B423CE,0x60604AD7,0x50D4ECDB,0x18C35060,0x6F5C4E59,0x50CEE156, | |||||
0x604DDEC3,0x34C7B557,0xA390D2CD,0x50605E20,0x80D3E5DC,0x4B5F5733,0xC2661CC6,0x075CC5EC, | |||||
0xAEE73951,0xE0E24967,0xD2DEC7B8,0x3192B815,0xDBE2D2C5,0x5A5C47BF,0x6036DCBC,0x4392D049, | |||||
0x51655B47,0x214E5335,0xA6476030,0x235B5540,0x4F3FCBC5,0xCB0B5353,0x5D41D4CF,0xBDDBD5BA, | |||||
0x22D5DD32,0x4FCED7C3,0xD5DE2B54,0xD7E3C950,0x2DCEC3BC,0xB0B84957,0xDD39A1C9,0x0B3DCCE4, | |||||
0xCDE0C6C1,0xD3386665,0x434B30C9,0xDCDBD7CF,0x5A5E56C9,0xE5305452,0xB94B5DAC,0x4A534EB2, | |||||
0x56C42955,0xBB546668,0xA3CE47D4,0x5008A060,0x2F6754B1,0xE7E6B746,0x4255AEE8,0xD7122841, | |||||
0x4164BBEB,0x1DB6C325,0x0F4045C5,0x5A504E4B,0x529FC043,0xDCDECD2D,0xDFC0BEBA,0x205538DB, | |||||
0x2DBAD5D6,0xC0B1C12F,0xD4B2B0D5,0x4E309ED9,0xC0E0E3A2,0x48D9E4D1,0x081F4B60,0x5647D3D0, | |||||
0x4893D3BC,0xBAC21134,0x60645A4D,0x3A492F3A,0xD26556BB,0x5F48CBE6,0xD3C09453,0xCAC05E3C, | |||||
0x2B5E5024,0xCE6266CE,0x4059593A,0xC735D4D5,0xA74F5FB0,0x64A4E6DB,0xD8535154,0xBA26D6E6, | |||||
0xD15C61A0,0xB6E1CEC8,0x5964493D,0xD8A9D2D7,0x38C6BDD4,0xDAE15060,0x4745C4B4,0x1AD9D1C3, | |||||
0x58444D64,0xCB4F8FCB,0x95B3AECF,0xD5BEC2CB,0x415A50B9,0x5CCBD8CA,0xC3DADF4F,0x279FD0CE, | |||||
0xCFB5CDA7,0xD0B82BD0,0x97D5C4C1,0xD0E0E0BF,0x24122336,0xE3D82C2C,0xCCBA5BBD,0x504B6357, | |||||
0xBED53062,0x5F5C5550,0xD3B65E61,0x6C5BC1C8,0x51C0BC5E,0xB44F5A57,0x52435337,0x5B445362, | |||||
0x025D4450,0x574A43AE,0xD3B8C840,0x45E5D4D9,0x02D5356B,0x3ED3DAC6,0xDDD1CB3A,0xBEBA44C3, | |||||
0xE8EBE1C0,0xC2621BDC,0xD9CBEDF5,0xE5C5B9DE,0xDAA552D8,0xEBE2C2C5,0xE8DF49C0,0x37605CBC, | |||||
0xBE505621,0x5A113A86,0x4E635650,0x4A5F56B6,0xC8E1BA51,0x6A53234E,0x2E36245F,0x41D03D38, | |||||
0xC74F6063,0xC44F5CB2,0xD05E44D7,0xE4425FBF,0x4D4E5FC1,0xCAD34962,0xBD5D5D80,0xC9CFDED7, | |||||
0xCEB71DD2,0xDAC7C1AF,0x6245E3EB,0xD6D6E5C1,0xACC7D4DD,0x57C55051,0x30D9D757,0x4B40303F, | |||||
0xB3CA3256,0xD9D9D930,0x6149D3E2,0x38353C54,0x6555C701,0xD2C94D5B,0x20BC5552,0xB0544241, | |||||
0x3534D1D9,0x595142B9,0xB4BC344D,0x624DD2C3,0x36CED538,0x46E7E059,0x50D5EDDA,0xEDD85559, | |||||
0xE2E8D6DD,0xE3DFD6C7,0x5427B6D0,0xC3CBD59E,0x626A5C82,0x585D459A,0x55576560,0x643E3860, | |||||
0xC5B04662,0x65625C33,0x5AA1CA54,0xD7AF3F44,0x8D6042D4,0xB9D5A4D0,0xDBD65A67,0xDAE6E3C6, | |||||
0x444D4ACF,0x05D9D04E,0xD8E4C946,0xC4BFC8C4,0x61B6E0CF,0xC2D1DE31,0xE4C85436,0x4740D3E4, | |||||
0x36C3C4BE,0xECDC495A,0xC55655E1,0xC7D63C33,0xDC326159,0x5553600C,0xC4C19548,0x42C3E1C8, | |||||
0xC24C6962,0xBEC33F35,0x51C6CEBD,0xA055595F,0x1DA0D2DC,0xD2553C2C,0x587268E2,0x9DD8CE3E, | |||||
0x56626250,0x935B48C0,0xDBCAB0CA,0x5D5B4EB7,0xC2C02A58,0x472ED5CE,0x9BD8D7C4,0xD5044112, | |||||
0x5C50430A,0xD1A9D319,0xB6DED6DA,0xCEC63A54,0x42593AC5,0x4EC2C3BD,0xD851604E,0x6554CCDD, | |||||
0x3C58C042,0xD94C44CF,0xD8D331C7,0x50563FD0,0xD2E2D346,0xB0C291BE,0x4C95C7A3,0x465D5157, | |||||
0xCECED7D3,0x5262A6D7,0xE4E1D9D6,0xC99B41DC,0xCAC94022,0x59CCCB33,0xE4D35568,0x556163B4, | |||||
0xB0303834,0xB7C7474A,0x5E44B199,0x3848425C,0xCCAD30AA,0x4403E0DA,0x83203F43,0x2ED7DCD1, | |||||
0xB9A04650,0xB5C54045,0xAFDDD3A1,0x4735BB42,0x30BF4D4B,0x58C2D22C,0x94456066,0x6862C6CD, | |||||
0x3EC4E1B1,0x38404138,0xB3DFDC12,0x52625A43,0xB1973E34,0x405A4B14,0x2441D2D1,0xC8D1C6D0, | |||||
0xC6BB5856,0x3521B4CD,0x5125E2D8,0x38433F52,0xE4E1E0D9,0x3A4852CC,0xC0DB2052,0x51346865, | |||||
0x5D444464,0x0F37BF4C,0x2B5B5F40,0x56A7D3C2,0x593C4143,0x23C8D057,0xC2BFD6D0,0x141E52B0, | |||||
0xC1E4DF4D,0xCDBC4138,0xA0C1C2C5,0xE4EDDAC7,0x48B1D096,0xD2C1C1A8,0x25B1E0E4,0xAC99AA43, | |||||
0x5142CFD8,0x332DB840,0x4F54C2C8,0x4F6017C7,0xC996B6D2,0xD1B56251,0xB4472FB4,0xD65460AE, | |||||
0x54D4A1C2,0xD4445160,0x3BDED4D3,0xAFBF205B,0x46540FD3,0xD2214736,0x36CD3C44,0x62614A51, | |||||
0xBD25D092,0x49606235,0x544F233E,0xD5616B55,0x57383ED5,0xD1C1A058,0xC6B0DCE0,0xC43DB4D7, | |||||
0x5354D4E0,0xECD250AC,0xD3D5D7E7,0xC0243F39,0xD7D2E3E2,0xDEA252CE,0x04415447,0x243BD0D7, | |||||
0x43404D50,0x6654E5E4,0x21544057,0x473545CA,0x5F5B254F,0x2EA64954,0xD4C0B539,0x501C5EBD, | |||||
0xDEDC4366,0xBD24E2E7,0x4A525133,0x42B7D6CF,0xE2C94043,0x94C9C0CE,0xE3D3A8B2,0x4B24B8D3, | |||||
0xDEE3B64D,0xCBA0514B,0x5E563A18,0xD0A5514F,0x525646A8,0xC9CCC890,0x4E6662A8,0xCDD84D57, | |||||
0x4ABA5259,0x504FD4B6,0xB84D50A9,0xCEA5DECB,0xB22210E3,0xD2C8B534,0xBA333DD2,0xB435CFD2, | |||||
0xBBDDBD20,0xD9E7E031,0xBF43583A,0x48C2AF88,0xC1436060,0x4ED9D4BB,0x26586568,0x59C4D8BF, | |||||
0x5840D1AF,0x0055474F,0xC4D3D0D1,0x30D8A646,0xC9D4B15C,0xCEA9D5E0,0x56325D50,0xD2E3D458, | |||||
0xEBCB5E40,0x5C2DB1D9,0xD4E0D552,0xC545B1AA,0xBBC3CBE0,0xCCC45B5D,0x57C2C698,0xBBBB2F57, | |||||
0xD75C6649,0xC3A739D0,0x42696347,0x4B573DD6,0xB0D1454B,0x510D555F,0xB2425862,0x4A553FD2, | |||||
0x2A555A47,0xC4D6D6BE,0xAEC9D1C6,0xCDE0E6D4,0x36BFB334,0xDFDCD4A6,0xD84E4CDA,0xB3C0C9DA, | |||||
0xDED1574F,0xC5C0C7C1,0x60645C1D,0xC1C3D5B5,0x6054CBC6,0xA5431936,0xABAC3EC3,0xCB6260B5, | |||||
0x59535836,0xD199C6B6,0x3D4B38D0,0x5A5CB799,0xBFE4E6B8,0x42475936,0x4043B23D,0xDFC82E26, | |||||
0x40CBD1DA,0xE2C23F5A,0xD53D39E0,0xB14D93DB,0xC9DCD6D0,0xB44AB6BD,0x5AC6E1E3,0x56625F60, | |||||
0xC4DECFAB,0x515D5850,0x50C4C4B5,0xD45A6B6D,0x5F5D36E0,0x51D34B64,0x3AC2325F,0x23A5D5C2, | |||||
0x3E363D44,0x593ECEC3,0xD9E3BC5E,0x4344635B,0x55ACD138,0x5A1AD1A9,0x41C0365E,0x31BAD031, | |||||
0xCFC2ADB9,0x9C5241C5,0xDE514CC6,0x515DC6E9,0xE1D3DEDC,0x9F14C6E2,0xE3D3BABB,0x4650C2DE, | |||||
0xB3E0DFD0,0xB4325857,0x54BE535B,0xB62A2E5F,0x5054D0D4,0x4F449FCB,0x2ECD3B5D,0xC6DAE0D4, | |||||
0x3D321544,0x49D5E6CE,0xC0D0BD02,0xBEB1CECB,0x41294C13,0x56D0D945,0x3749565E,0xCCD9D3BC, | |||||
0x626234C9,0xE0C4A041,0xC3515A95,0x2DD12203,0xCF316663,0xDF405C1F,0xB445BFC8,0x605DB7E2, | |||||
0x53533141,0x2036B739,0x55666E53,0xE0C85247,0x40506148,0xE1DECD26,0xCCD64624,0xCDE1E0C5, | |||||
0x4423BA96,0xB4C0CECE,0xC2C8E8DF,0x3FCEC3AD,0xD5B2CFB0,0xC15241D5,0x5E66C2E1,0x4C564AC2, | |||||
0x525C5352,0x695C193D,0xC6D14F66,0x454C37C0,0x586030C7,0xD3C74353,0x51374643,0x46CBDBAB, | |||||
0x54A9D7B0,0x4BD0E2CB,0xD0AB414F,0xBEE1D3BC,0xDDD4C22D,0xD1BCCBD2,0x37DAD8CB,0xC9E1DA3D, | |||||
0x4F3BCAC6,0x32BA4454,0xDA344B40,0x472310CF,0x43585141,0x54D3CAB1,0x4E596069,0x5661419E, | |||||
0xC8425C38,0x5A49CAC5,0x20D6DCAA,0x569CB893,0x6251C448,0xD6AD525F,0xCFB6383E,0x4ABA34B5, | |||||
0x3CBD3056,0x28C0414E,0x57585E61,0x45B9D8CA,0xC7446060,0x91463DC9,0xD2B0B6C8,0xA335B4D1, | |||||
0x20DCE4D5,0xCADDCC2E,0xD5D12BC4,0xBBDFCA21,0x0B545459,0xD7E5D6BF,0xD0C34141,0xB1D2D6C6, | |||||
0xCB974C34,0x47DAE4DC,0xC0DCD450,0x31A6474F,0x63A4CB30,0xC92A4E63,0x5B5C09D5,0xCA4E6258, | |||||
0x3155675B,0x14465498,0xC4445C50,0x626861B0,0xDABD4359,0xCE3831CB,0xE4E9E0DF,0xD9C8CCCB, | |||||
0xA8D1E1E3,0xC2C83DA5,0x8D5782C6,0xCA543BC0,0xCBC340C8,0x5518C7CC,0xD0C24457,0xB849584C, | |||||
0x286261BC,0x54A3C1C6,0x3ECDDA3D,0xA0626154,0x40DBD7DF,0xBA525E5B,0xCBAE3CBE,0xABB1CD25, | |||||
0x4B3315CD,0x48CEDC18,0x403FD5CC,0x5E61C1D3,0xD6E1E2B5,0xDC4941C6,0xE5DC18D9,0x9F5F5BCA, | |||||
0xC628461F,0x59B7C0C7,0x4187C250,0x4D33A7A7,0x40596055,0x59605247,0x4FC8922F,0x3A37DB26, | |||||
0xDB6055C2,0xD4B64FD6,0x47D0BACA,0x9E51535E,0xD3CEE5DF,0xE0C2A3D7,0xE0BA31D6,0x41D3C1C6, | |||||
0xAF446263,0x51D1E8E7,0x5A5C5462,0xC535343A,0x51BCB2D0,0xE1E2C15A,0x5136C0D0,0xBBC13A55, | |||||
0x8F2B4633,0xA1B4A5A7,0x5A564A44,0x44274552,0x3ED4E128,0x46933547,0x5BD7295D,0xBEDCBB63, | |||||
0xC91A2B08,0xCF2122C3,0x28A5C4D0,0xD5E9D93C,0xD0D3CCA4,0xD0CBD1D3,0xD24243CC,0xD1D118C5, | |||||
0x3A375320,0x565D6260,0x3BC0626A,0x57696B61,0x6637D5BC,0x521A1756,0x60C6E139,0xD9E8D25B, | |||||
0xB411A32A,0x5C5D4FB1,0x304E4557,0x5350CAD2,0xCF30C2CB,0x435CC1DF,0x4A942AC9,0xDAD75664, | |||||
0xAFA29ECA,0xE3DACC24,0xD4DFC5D0,0xE3BA0FD5,0xD0E0E6E9,0x41D8D2B0,0xD3C4B250,0x4730D1D9, | |||||
0xC153CBB8,0x995154D3,0x4C535740,0xD130503F,0x4746634D,0xC10A5F68,0x573A26C1,0x47513E55, | |||||
0xBEC7CBCC,0x56381218,0x903B445B,0x546049CE,0x4C4F5145,0x61645352,0xC607B940,0xC79C47C7, | |||||
0xA5464D31,0xBBD111A8,0xD6CCC139,0xE7B9C1DF,0xDCB42EE1,0x33B8A5D5,0xA5DDC342,0xB7D2A157, | |||||
0x43DADA19,0x68B1D052,0xD2D5DA53,0xCE4D40D3,0xB0B05649,0x4446414C,0xDDAAACD4,0x99474BD6, | |||||
0x98D72956,0x5A35C884,0xC84F5358,0x6156BAD8,0x38B53050,0x6827A859,0x1A364863,0x8E304036, | |||||
0x494A4B45,0xBDDADCC0,0x26D4D42B,0x44ACC329,0xD8E0CF38,0xB6CCD4D3,0xCEC1D8DB,0xA7D6A115, | |||||
0x594AC6A4,0x41BAC83D,0x5A2C3657,0x37A7D310,0x60612BC5,0x51422F54,0x56635148,0x9946B4C7, | |||||
0xD1595BB4,0xC41B26D1,0x59599AD3,0xD9372820,0x47C2CAE0,0xDAD8C34A,0x414C37C6,0xE0E13448, | |||||
0x46314E46,0x5BC9C24C,0x04E5EE3C,0xD1D6B53E,0xD6D3D0CE,0x384B4D10,0x47B6C7C5,0xD6D74661, | |||||
0x525EB0DF,0xC6BE4643,0x422FC7C0,0xE0555C25,0x4A5049DA,0x384F5D4D,0xDCDEB155,0x46944D3B, | |||||
0x43533444,0x41D15955,0xC1C44164,0x8202423D,0x5059CBCD,0xBC5D56D2,0x4357D3E0,0x0D30A8C9, | |||||
0x39D4BBA6,0xBE364E5C,0xCDE4C61A,0x59473442,0xD9D6D152,0xB5C143C7,0xD7D0D7B9,0x599DD2D7, | |||||
0xB7D4D740,0x64B1D183,0x1433B658,0x40CDD4D7,0x33604343,0x50D5E3DB,0x5131D31C,0xC6475331, | |||||
0x354D5242,0x413FACBB,0x9FC5C930,0x4F5D46BF,0xC0175152,0x52D5E0D2,0xA9A7D04A,0xD1DEE1D7, | |||||
0xA24E5B28,0x385934D5,0xD44343B0,0x3DCF2EAC,0x0349525A,0xD8E1E3DC,0x4667683A,0x05089890, | |||||
0x6A65A7B4,0xB9C4D79E,0x25834527,0xD2D29E50,0xB5873ABD,0x9C4D95C5,0x53CCD5CF,0xCFE0DA33, | |||||
0x4B5495C0,0xC6C4CFC0,0x45525A46,0x55DDCA3C,0x8BCA536D,0xDEC3414C,0x484744CF,0xDDA4443D, | |||||
0xAB2828D1,0xC02E6158,0xADDD1C30,0x27BE3762,0x4651559C,0xDCE19556,0x3EB92B33,0x9A52C9D1, | |||||
0xDB4544CA,0xA132C5DB,0x2E354E13,0xC7D34556,0xD6D62A27,0xD14F5D45,0x47D2F0E7,0xC1C4C8C9, | |||||
0xD494BCCF,0x5842D1D8,0x4C44242B,0x5B5AD2CE,0xB23E4530,0x6156B5BD,0xDDE1B153,0x46585043, | |||||
0xCBD3B491,0x4E5208C0,0x544AB5C7,0x4B47364D,0x6B5DBEB5,0x41CFC263,0xAFA24849,0x533AA282, | |||||
0xE0C25452,0x656436CF,0x504B8C3D,0x5B4DB341,0x20C9D23B,0xCFC53036,0xD8B3B8D0,0xB3D6D1BA, | |||||
0xC4D2C1BF,0xE4DFD1BE,0xE0CB3DD3,0x5D31DDE0,0xDBBD5459,0x2B8D51A5,0x48C0C444,0x3D283C50, | |||||
0x41C8D8C7,0x4C4C5560,0x474EC1CE,0x3D4C4F51,0x1A534535,0xB2A231C3,0x52525134,0x3034959D, | |||||
0xDBB94C51,0xAECEC2D0,0xD0C6B4B6,0xAAC4C0A0,0x3D1EBAC0,0x47605C36,0x184BD1D2,0xB3E3D5B1, | |||||
0xDFDF2358,0x42E2DBBD,0xCEA69454,0x615F57BE,0xB43A8037,0x4953B9D4,0xC2D21850,0x2433605D, | |||||
0x3BA0C3B1,0x249D3D47,0x56574D2C,0xA3D5C04F,0x032D4253,0x3FB22F2A,0xC2C2D340,0x5E4C44C4, | |||||
0x4E463757,0xB3D7C44C,0x57594E09,0xE0D24353,0x5040CDD5,0x353ABCB6,0x273D999F,0xA1A1E1E0, | |||||
0xD83447BC,0xCE442FD9,0xDF2C570E,0xD52050D7,0xC3C1D9DD,0x3197C1B0,0x50BCD5CD,0xD53C5E5F, | |||||
0x914944D3,0xB7586451,0x4D53BCDE,0xC2D2A333,0xC8B7455D,0x8DA2B0C8,0xD4D38D48,0xA4C89CD3, | |||||
0x60BED50A,0xD2C84A63,0xBBB04245,0xB94D4817,0xB2BFD4DB,0xE3DCC1BF,0x50AFBAD6,0xAAC1C646, | |||||
0x3F584EB8,0x5C5E91A5,0xDEE1DCBA,0x56404BA6,0xDBDCBE53,0xD8885D9A,0x5527C084,0xC1415354, | |||||
0x521ACBD1,0x29C4A94F,0x528F0A4A,0x4142B6B5,0xD7BAB74C,0x4937CBE0,0xDDA3431A,0x51A4DAE5, | |||||
0x2FD9B35B,0x5242B141,0x62542750,0xE711565C,0x1A4F52E0,0x55C79235,0x32C2C74A,0x5140D394, | |||||
0x453C4B52,0x5954E3E2,0x182D3644,0x535525CF,0x464A4551,0xDA253E39,0xB627CCE9,0xE6C54033, | |||||
0xD9D130CE,0xE2CA5E35,0x305553D0,0xD8E0C921,0x41AEA337,0xC5D2DBCA,0xD4CA309F,0xE23F54C2, | |||||
0x494599DB,0xB74EC5C9,0x6053B0D5,0x3C535962,0xBD5444C9,0xCA5355C0,0xAB1A37CD,0x9CBAD6CB, | |||||
0x8DCD3540,0x583C9141,0xD4C8495E,0x4DA54B42,0x51C4B24C,0xC1D8B359,0x15CF9526,0xCFC04862, | |||||
0xA4DCDFDA,0xC0DBC350,0x458E383B,0x4C46BD35,0x534EC3CC,0x424E5454,0xCBCCC024,0xB3D4C5AF, | |||||
0x43DACD38,0x813FC550,0x17C2D9E2,0x47B4D3AD,0xDED14541,0xB85940C5,0x4DB8ACCF,0xABD4D521, | |||||
0xDE52B3C2,0xBC4220E6,0x592AC0AB,0x53C05160,0x60385765,0x5038B15C,0xB2144957,0x4733BDC8, | |||||
0x4C574842,0x574DD0B8,0x533699C1,0x5D9BC056,0xB792435A,0xC446B8D5,0x05525542,0xD1CFD6D2, | |||||
0x805243D1,0xDDDDDFE1,0xB1A7AFC5,0xB1273042,0x9CBECFD5,0xC40A4731,0xBA88BFCA,0x29BED1BB, | |||||
0x314728A3,0xC7C022C1,0x2B5E5937,0xD34D34D1,0x4A5151C2,0xB7B29412,0xB3BA4622,0xDC315D60, | |||||
0xD8AF53C7,0x525740CF,0x464AC0C6,0x4F0FC7C3,0x4D552C4C,0xC7D6D6C3,0x544A4C46,0x1824CCC1, | |||||
0x47414431,0x33542935,0x6161B1D6,0x32D4D90E,0xD8DAD426,0xCBCA46A0,0x344B3E31,0xC3C8B9AC, | |||||
0x2C9DB8C3,0x29C5BB23,0xDFD21B3E,0x99D73121,0x4B413A52,0x51B7C638,0x481BB242,0x214D5E61, | |||||
0xBDC6BBD2,0x4F5B6157,0x3F904955,0x3CD7DD92,0xC6BD4352,0xC112219A,0x9D575C32,0x4544B4D5, | |||||
0x4E483128,0xC9CBAF57,0xD9D5E1E4,0x284E3BC9,0xD3ACD6DB,0xC14351C3,0x0CC0C6CB,0xD7E2D9B6, | |||||
0xD3355F4B,0x4425A1CC,0xC63A3144,0x872DA4D7,0x41A9A142,0x5C533B49,0x33D3D135,0x5A60645D, | |||||
0x2FA45458,0x24555B5B,0x494945A5,0x41BFD142,0xA3C7C5C8,0x4A3A273B,0xBDB8BD4B,0x5B2E31B9, | |||||
0xDE935559,0x2A4432CF,0xD5C33344,0x5B3ECEDE,0xB0E5E9B3,0xD8DD365C,0xB7E3DCD0,0xB285BC44, | |||||
0xE34753B8,0x48D1D5E5,0xCDC1AF53,0x2ABADEDD,0xCCC53294,0x595A4C2C,0x46D8CF38,0x60585961, | |||||
0x5329CE49,0x9AA25158,0x324A534C,0xBBCDCCA6,0x435B4ACA,0x518CE2D6,0xD0A5504C,0x4E5F07CF, | |||||
0x298732C6,0xD3DA1D53,0x44491DB2,0xB4465D52,0x2936B9BF,0x474E30C0,0x8E23AE93,0xC4C3D9DA, | |||||
0xC4413A2A,0xABAAB4CC,0x25234F36,0x5E4ED4CE,0x2AC84055,0x1D555E62,0x4B53BBDB,0xC0544633, | |||||
0xC638D0E3,0xD8D5C2B1,0x9801D3E0,0xD3D7BBB9,0x4BB2D8C6,0xC14C1BB8,0xE3D41EC8,0xC50146CC, | |||||
0x321A2C27,0x41B23B4A,0x35DED551,0xB14D5553,0x474643BA,0xD7CDC131,0x2F4A39D3,0xD0D0B543, | |||||
0xC64F5891,0x38B44229,0xCEC13648,0x595C572C,0x442C5257,0x5356334D,0x589CE0CE,0xAB455D5C, | |||||
0xCAB032B5,0xCBD9E4D2,0x3447D3DE,0x444435B2,0x3C9BCCAE,0x6333E5D6,0xC1D5AF55,0xD4C8CCC3, | |||||
0x4C4ACBD5,0xD15232B7,0x3921C8E0,0xCD465E4C,0x4D2BC2CA,0x36D4D939,0xB8415145,0x3BA55244, | |||||
0xC0A13D54,0x3CBAA420,0x0346584F,0x35B5C4B4,0x4B3BAA31,0xA741433F,0x5435CDB8,0xB4299C11, | |||||
0xA7C7DFDA,0xC4D4CCB6,0x4E9AC7CB,0xADDCD143,0xD8CA9654,0xBD47B8D8,0x235764C6,0x2ECECD43, | |||||
0x565D29B6,0x9848533C,0x0EBEB8A4,0xB9536050,0x1F5332C9,0xCA9F4F22,0x3D442EBE,0xBDDED7B8, | |||||
0x26DAD5B1,0x59503D53,0x24C6A249,0xC14E5C53,0x3584BAC6,0x42204349,0x3AC6C9B0,0x98D3CA55, | |||||
0xC13EB1CC,0xC53837CC,0xD3CEADC7,0x34D2C7A7,0xC116A136,0xB93CBBD9,0xD2C9A804,0xB594ADB9, | |||||
0x5D4BC7DA,0xCB323E49,0x4CBFCAC9,0x5C41CE40,0xB2494242,0xB6AED0D1,0x36C2C0B2,0x4D4F4D46, | |||||
0xCB06454D,0x615E40C5,0x1D39273A,0x4F2D3248,0x31455654,0xBA405450,0xB63A533B,0x36565839, | |||||
0x92D4D9B8,0x44A8E1D9,0x4CD1D528,0xA8BB0948,0xE3E3B150,0xCAD5D0D7,0x374C4A44,0xCAD7E4D5, | |||||
0xC5C4CFD1,0xADB43A04,0x28CFD7B0,0xD6CA323F,0xC1CD4831,0x48A29735,0x364D354C,0x053EA6C2, | |||||
0x124FC3C4,0x4F3FA8D2,0x6057504D,0xCCD3D543,0x56350F96,0x48313B58,0x2939444B,0xCC2A4E37, | |||||
0x49595732,0x2D55533D,0x49B2CFB3,0x5B49B222,0x44A3CA3F,0xD7335449,0x91145593,0xDDD28E36, | |||||
0xBDAFC4D3,0x1E384532,0xC1D7C220,0x442EBAA0,0xC8D3BD3D,0x95BE9C34,0x9ED9D8D0,0xC5D22552, | |||||
0x47BA2B4E,0xC9B0344E,0x0B28C1D2,0xD5D03142,0x20333DC2,0x5C53BECC,0xA3C2DB18,0xDFC143B4, | |||||
0xA21852A4,0xBC435133,0xB9D5198E,0x583DBA49,0x42B1934D,0x32C5D030,0x50C0C9B5,0xC1C4AD4C, | |||||
0x87516152,0x29443AB7,0x4F44BBC1,0x3336D3B6,0x805555B6,0x2F2D4734,0x5C5ABDCB,0x3E944753, | |||||
0xD1C1B81E,0xB2C9DBDF,0x564CCAC5,0xC0B5D2B3,0x4B3C28C6,0xCE41243E,0xB723CEE5,0x574CD2D1, | |||||
0x12BBC9B9,0x615C493F,0x3E3A324C,0x993C4A45,0xCDAB5750,0xB3C0594F,0x4A47B010,0xC2C5BF36, | |||||
0xD0B0C3D2,0x3D17ADC1,0x24B4DDD9,0xC1CCD7CF,0xC6C74033,0xC64E4B4F,0xC9B7DDE7,0xC0A329C9, | |||||
0xD4D72F19,0x1204052A,0x9B1D5650,0x2C474630,0xD1C14B44,0x46555755,0x3ACACECE,0x4C3A344E, | |||||
0x40323148,0xB9CA4353,0xD0CD4451,0x5F50A9C7,0xA031B44F,0x1FD5D2BB,0xA0C34559,0x2DB7133A, | |||||
0xD6D11A39,0x35515543,0x3531B9A3,0x5234ADBC,0x3023AC49,0xAAD0D5C3,0xD4CAB43B,0x37B8D9DD, | |||||
0xB805444C,0xA1CDDDD0,0x274813C1,0x4921D3DB,0xDCE1DB22,0xAB5148B3,0x434247B9,0xB1CCA447, | |||||
0xD13B5451,0x9E9CCAD5,0x40461AC2,0x52B0D1B1,0x55594B4C,0xBB442124,0x555F3BD0,0x5233C004, | |||||
0xC8994D52,0x524829A0,0x5065563D,0xE7AE559A,0xB8525DCA,0xD2A65623,0xC0373BB0,0x4132D3DE, | |||||
0xADCCA451,0xC9CAD3C1,0x4253B7D7,0xD5CA8FB6,0x57C5C0A8,0x32504452,0x9BA0BECD,0xDFD33450, | |||||
0x4D3BC5D8,0xD4D2C4AA,0xD6C05445,0xB4CFA6C4,0xC0AAC8BC,0x09123608,0xB2C8C4B0,0x2B955343, | |||||
0x6159B084,0xCAC5455B,0x45B2BEC3,0x35463D42,0x4923D1B9,0x5C44BEA5,0xD1C19A46,0x5F3F29C6, | |||||
0x33363F59,0xBAB8054E,0x32B8CBD2,0x4F4C4B46,0xCCDBA354,0x8F3D4133,0x4030B3C3,0x1FD6BE31, | |||||
0xAEA3C43E,0xB3223812,0x1135CAD1,0x21C7A619,0xD4D08540,0x31CEDDD6,0x593CCFC8,0x0B57575B, | |||||
0xC12038C2,0x55B3D0BF,0x1327D3C3,0xB0C6D3BF,0xB335C2CF,0x4D94CECB,0xBD264D53,0x400A86C4, | |||||
0x9B444D53,0x3B4C41C2,0x33314040,0xCA26575B,0x48A838C0,0xCF1D5B5C,0xC352522B,0x314745C0, | |||||
0xD0334AA1,0xCBBA21BF,0xB6C12CA7,0x9CD5CF23,0x423E4048,0xABA24047,0x4145CCCB,0x973E212A, | |||||
0xC0C1D6D8,0xD5C8C2D2,0x5A46A9BF,0xC1D5D040,0xD2CCCBB4,0x1638B8D2,0xC6C5C7BC,0xD2BC3A1F, | |||||
0x33489FD3,0x924B5030,0x42C8B3B1,0xA7424455,0x304A4D32,0xC52C5549,0x564229BF,0x45414B55, | |||||
0x17392545,0x39513F13,0xD4C0543B,0x3C4085CD,0x514F4045,0x503B833D,0x19B6314E,0x50C4BE43, | |||||
0xCDD1C351,0xCCC0C6D0,0x4738CFD8,0x242B122E,0x3BA04252,0x5547CEC6,0xC8B9313A,0x215341B2, | |||||
0xC4A0C3C5,0xD68B2BD4,0xCFC336C9,0x2640402C,0x4CA7D2C6,0xD2D2CA30,0x4741B8D1,0xC2BB3C43, | |||||
0xCBB64F38,0xC4D02144,0xC2525E53,0x48A4CDD8,0x4BB8C934,0xD4A91D2A,0x505856B6,0x1DC8C046, | |||||
0xCD1C3E40,0x15C742AF,0x3B3F8A47,0xBCBBCBC5,0xD34459B5,0x44595F47,0x8A4E5648,0x49BCD8D0, | |||||
0x14C0CE13,0x31A7D2D0,0x3D2E9929,0xBDC1BD24,0xC5C49BB5,0x26445036,0xCBD7D6B6,0xB3475029, | |||||
0x96B8A9C3,0x3B9E2536,0x47515255,0x45CED8CF,0x52BBC851,0xCDCBB94F,0xDED5B2C9,0x499B3DA1, | |||||
0xB8B8C13A,0x3F3C308B,0xB5C3B52B,0xCDC4B6A9,0xD1C4B1C8,0x372AC9D1,0xBAC52833,0x9ED7BD44, | |||||
0x534D3F47,0x51544143,0xA8111A2B,0x4132A4B4,0x54471149,0x41DCD338,0x45AB2E54,0x46313050, | |||||
0x4C353346,0x41445052,0xB24A3934,0xBA3D21C8,0xB9C63BA3,0xA4CAC81F,0xD6C5A511,0x3E3FC9D9, | |||||
0xBE475131,0xAC2AA7C7,0x3FCDD7C0,0x4E4EC0A9,0xB4C9D7D3,0xC9A9C9B7,0x4C2BD1DC,0xB9C0BE34, | |||||
0x244A4A94,0x30422E2C,0x215149AB,0x8A4C2AC6,0x42B62B2F,0xB9B08C3C,0x4BB6DCD5,0x211D2851, | |||||
0xB7D6D1AC,0x25333F25,0x43223B3E,0xBC9AD096,0x3E3AB5D4,0xA4D4D394,0x4E49AA02,0x35352C40, | |||||
0xBCC4BAB6,0x4F605E4D,0xABC19D25,0x434B4639,0xBBBE353D,0x25B1B682,0xA3BFD1B0,0xAEB5493A, | |||||
0xB014CAC1,0x425A5820,0xB93F48B4,0xC29C3636,0xB30F4B40,0xC1C4D1CB,0xCC87A2C9,0xBF22B2D6, | |||||
0xB6CEC328,0x402D3502,0xB4C00D46,0xCD19A0BA,0x232CBED4,0x3D36B997,0x394B98C6,0x3FAEB0A2, | |||||
0x5334B837,0xBDC52D52,0xBB4C419F,0xBD4F55B1,0x233CCBD3,0xBDBACDC7,0xCFC782C9,0xC5BC3327, | |||||
0x5545B7C4,0xD2B63951,0x2E4E4DB3,0x4DB9BAB7,0x262B475A,0x994C4689,0x39363733,0x1C2F2CBE, | |||||
0x414A423D,0xB4B9CEAA,0x9D44471A,0x259BA4C3,0xB3AA9E1E,0xC8A24637,0xC43E4FB7,0xB4A6C2B4, | |||||
0x984550AF,0xD4D02943,0x81C994B7,0xC7B30D3D,0xB7C5BFC5,0xDDC8B6B5,0x4E4D4AB3,0x5653C3CB, | |||||
0x47C5CF37,0x39C1D5AF,0x59531521,0xC5B9AA4B,0x404456A3,0x8F4A5A59,0x36B78D40,0x4B502B26, | |||||
0xB7D9C502,0x55C9CA49,0x4B4C4452,0xB5C5C544,0xB5B7B4C0,0xC3B7ADC0,0xC5D31D3C,0xC3BDBC24, | |||||
0x4AA2C8C9,0x4C301438,0xB5B8C244,0xD3CDB4C7,0x4E3EBCC5,0xAACBC035,0xCFC94751,0x3CC2D3C7, | |||||
0x28B09635,0x4B32BBA6,0x1048A735,0x0A3DB4D3,0x3833C3C0,0x41554C14,0xC2B21281,0x5045C1CC, | |||||
0xB1385952,0x3741423A,0xB5A4B5A2,0x4495292E,0xC0C63355,0xB7B8BAC8,0xC3C52D38,0xC05127C3, | |||||
0x3624D0DE,0xC1B22E36,0xBFC1C7C3,0xB7463BBF,0x414B5318,0x27A6BF9D,0xB71B4446,0xAAB315B1, | |||||
0x9850453B,0x2234B2C8,0xA749549C,0xB939503A,0x30B1182F,0x1F80A81F,0xC7245146,0x4750B4CF, | |||||
0x435239AB,0x4F47C4C2,0xB6C3C9AE,0x455093B9,0xD4C91199,0xC7332CC7,0xA4ADC5D3,0xB83A3EA1, | |||||
0xB9A1BDC6,0xBCC13785,0x43D0C43B,0x35C2D044,0x19A53934,0x2987A915,0x04D0CFA3,0x334C2744, | |||||
0x1739C1D2,0xA0B9BEB7,0x473D3BB7,0xBCB24753,0x4ABBBC13,0x2322A351,0xC0A13799,0xB6B32D25, | |||||
0xA3373E9A,0x51574F31,0xB283483A,0x554AB687,0x90C0C43D,0xD0B6B0B8,0x4D4BC1D3,0xD8CD3E3A, | |||||
0xBE860DCC,0x3A399386,0xBA293D27,0xA3C6C4BA,0x07304544,0xBFC3D0CA,0xC8CDB5B4,0xC7D3AF04, | |||||
0x4546323B,0xAD47318A,0x2145ABD3,0xB84E41C0,0x4125B0C8,0x4CA8B148,0xBEC32B51,0x46534D29, | |||||
0xB02FAEBA,0xC62541BA,0xBFCDC2C2,0x4D544736,0x4B8B0A2D,0xD2D3B552,0x3F17D5D8,0x0900333A, | |||||
0xC0B7C0BF,0xB3C69596,0x51534242,0x4C40D5C8,0xB7C7CEC5,0xC3BBD1D0,0x882C29BE,0xC1C6AA28, | |||||
0xD08516B0,0x30B5C5CD,0x4B2E992D,0x2A99444A,0x25B1A643,0x59319729,0xB6B1475E,0x473090A5, | |||||
0x32C2C331,0x41273B50,0x2E37363B,0xB337A1C4,0x82232726,0x2309A0BD,0x08B30A40,0xB3B3A833, | |||||
0xCAC599BC,0x4887B101,0xBC9A3D44,0x303E25B6,0xBEC1AF0A,0xC4933C9D,0xCECC1F19,0x40BDC5B6, | |||||
0xD6C1A537,0x344094CD,0xBB4A18C0,0xBBB4C3D5,0xB54227C2,0x5331D5DB,0x8FB21750,0x3F43A8AE, | |||||
0xCCCB2233,0xBA0D4E43,0xB40E463E,0xCED42720,0x535E6255,0x14364746,0x45444330,0x4A472C46, | |||||
0x43BBCDBB,0x3122434D,0x0C405350,0xA237B0B0,0xB5C51226,0xBE9A3A2F,0xCFD29529,0xBBD1C9C2, | |||||
0xBCB43A3F,0xC5BDC0C1,0xD1D1C9C3,0x953A40AA,0x2489CDC4,0x503EC7CB,0x85C8C230,0x442DA624, | |||||
0x3DB7C98E,0x8C414344,0x48469E1E,0xC03D4C34,0x4C4023C3,0xCDB64249,0x23B01A07,0x50534433, | |||||
0x34C5C317,0x00251742,0xB5ACC5C6,0xBB173938,0x2CB7C5C2,0x18B0AFA5,0x3A300533,0x1A9FC3B1, | |||||
0x333D45AF,0x949D5153,0xBBCEA744,0x424E5043,0x39C6D416,0xC5A195AD,0x0E9A949B,0x2F4742B6, | |||||
0xD5C29320,0x334E48BF,0xB7D2C4B3,0x41B7CBA6,0x4135C5B0,0xC33E289F,0xB741A0D0,0x36432EC2, | |||||
0xBBC8BBA9,0x45479105,0x35982223,0xA0344A42,0x44243144,0x2C05B989,0xC1B83D39,0x6120C895, | |||||
0x44BEC558,0xA9434645,0x9237AFD2,0xC6CDB624,0xC1C21436,0xB0D0CBBD,0xC0B8A82B,0xB1C4272F, | |||||
0xB0BEB31B,0xA3B82616,0x3F534B9F,0x91434035,0x464B4B1E,0x99BA4B56,0x172F9641,0x0E37BDC4, | |||||
0x329929B3,0x90C3C117,0x474A3916,0x14A8384B,0xC2834C45,0xBCC309A1,0xB4092736,0xABC0D5D1, | |||||
0x8AB6CAC6,0xCC323618,0xC0C4C2D1,0xB25550B2,0xC4C4C7D7,0xC0C12C3D,0xCBB7C9CC,0x383332B8, | |||||
0xB6CDD4BE,0x40AF843D,0x42444C46,0x373B3138,0x2247493B,0xC030554A,0x443D402C,0x46C8B631, | |||||
0x4500345B,0xB4CEB13B,0xB7924648,0x46414742,0x38393C43,0x9809A026,0x305245C1,0xB9CAD0BE, | |||||
0x1FA4C1AC,0xC3C2C6AC,0xD2C14229,0x9C2D30C4,0xBD4041BC,0xC5C72FBA,0xCCB29632,0x342AABC8, | |||||
0xAAC22345,0xA8ACC607,0x4B4934B6,0xC0C5B4AB,0x3A0A4949,0x13B4AB49,0xC5454F12,0x1FC1BAC5, | |||||
0xCC954B50,0x4587C6D3,0x1DC9B14B,0x37A99B38,0x9616A340,0xCEC5242D,0x36455A28,0xACAFB133, | |||||
0x4544A7B6,0x4620C18D,0x47403241,0x20B01245,0x4141B9BB,0x20C1C4B0,0xBCC5C3A9,0xCA8A453A, | |||||
0x3E0397C0,0xB6BFCA12,0x5027BDBA,0xC4C9124F,0x442ACAD2,0xD2CD4551,0xA1AEBBB2,0xB4C2B1A3, | |||||
0xA3A7AAB7,0x3C4632A3,0xB4B29899,0x5741B436,0xC7D4D236,0x114533B8,0xAEB296BB,0xB0435036, | |||||
0x3E3B39B2,0x42160C41,0x372F5156,0x33C0144D,0xB4964250,0x4A3EBEC3,0x3E8BC487,0xAA15B0BE, | |||||
0xC3A43B22,0xCB113FA9,0xC48E26C5,0x8A2921A5,0x36A7D5D6,0xB196B036,0xCCA93B09,0xC1C409C2, | |||||
0xD3024D34,0x1C4E11CE,0xC6BFB0C4,0xA021439D,0x3B30C2BB,0xA0304133,0x52438B93,0x99A0BF35, | |||||
0x3DB9BEAE,0x50463545,0x30BB1C47,0xC6C83A48,0x4850544F,0x03B73048,0xC2B54F4E,0x37298FAA, | |||||
0xBBC1AC25,0xA0C1BDB4,0x393FAFA5,0xC0C2CBC3,0x8BB5CDC3,0xC8C5C9CA,0xC6C9B8AF,0xB1A31306, | |||||
0xBBC6AFB0,0xA3C4C9B0,0xB8251CAA,0x4B4D35B2,0x5338B080,0xCB9B4551,0x5350B5D0,0xA2812D47, | |||||
0x45BCC3B0,0x46444651,0x47464446,0x31AE0835,0x34400823,0xAE454940,0x4316C5C8,0xB7392D2F, | |||||
0x0BBB0EB6,0xC1AA2D36,0xB33198C6,0xC1CBB701,0x9C002987,0x1EAEC6C2,0xCBD5C41D,0xB8B0A193, | |||||
0xCFC21B94,0x41408CCA,0xC2B6BA23,0x403B38A0,0x90B43240,0xC6C2B5A8,0x52514C24,0xADC33556, | |||||
0x11441EC1,0xCEA397A9,0xCFB243C3,0x45332FA2,0xB4C5B340,0x472B4537,0x22BC3857,0x4139BB25, | |||||
0x242FC7C3,0x463328B4,0xA04A4C49,0xC0324890,0xC1C194A7,0x15C9CAC1,0x253E4448,0xC3C7CBC6, | |||||
0xD0D2BFB0,0x2123351F,0xB3D6D4B5,0xCBB9C3AB,0x4C3AB1C9,0xA1B1424D,0x4B413334,0xA31F3E46, | |||||
0x34B3C1A6,0x4127921E,0x0E353444,0xA4C9B8B6,0x524A313E,0x341F4451,0xA4323945,0x1A430EC1, | |||||
0xBD234413,0xAFA222AD,0x1AC2BE99,0x3CC3D7BA,0x96B72C42,0x4A4B3322,0xC20ACAC4,0x208323C5, | |||||
0xA8D4C732,0x3D484248,0xC4D1933D,0xB62C4B3F,0x292E86B7,0xB83888A3,0xAF1486C0,0xB125329C, | |||||
0x263489BB,0xCFC73B34,0xCBC3A7BD,0xD1CEC4C9,0xC6B89D86,0x4F07CCD2,0xC0C8B14B,0x343AB8CD, | |||||
0x4D514641,0x25B6B132,0xC8274F48,0x40354D33,0x3748524D,0x3635333A,0x444728A0,0x8A392493, | |||||
0x15204C44,0xA7A43342,0xCDCFB3A3,0x4C37B9B4,0xB982C5B5,0xB403AAC6,0xA02C1EAF,0x95A89CA5, | |||||
0xBDBCB302,0xC8D4C8BD,0x4022AABE,0x99CACA2B,0x1B40302D,0x23B19A94,0x462BCCBC,0x279AC4B4, | |||||
0x41B30A33,0x3FB4B848,0x31434B48,0x46515147,0xB0CBCBA4,0x40413929,0xC2D0CDB8,0x9C45350C, | |||||
0xA34202CC,0x494734AE,0x2F354245,0x11A8292C,0x52450739,0x8E89A641,0x4839C1C9,0x36AFA444, | |||||
0x22B6C509,0x444C28A0,0xA1009E91,0x342DAFB8,0xC4BDC1BF,0xAEA02AA3,0xC1C4AA2D,0x801EC9CF, | |||||
0xD4C235AD,0x4B443F9C,0xA2B5B33E,0x38351BA9,0xD0BC2038,0x98C2D0D2,0xD6C71712,0x154A42C1, | |||||
0x363EC0CE,0x2D4841AC,0xCAC49928,0x36913013,0x23515139,0x22394236,0x35483EA5,0x32453123, | |||||
0x45502FB1,0xC3B89091,0x2644533F,0xA100BAB8,0x381214A7,0x2639223B,0x365046AB,0xC2D0C022, | |||||
0x4B404131,0xABB2C21D,0x3A30B3B9,0x13BBC496,0xBAB7B21F,0xAD3098C2,0xC3CAB7B1,0x19ADAE94, | |||||
0x3DBDD2C3,0x3128CAB2,0x8635C2CD,0x86C39AB3,0x4444494F,0xBEC10D44,0xB6B79C8A,0xB1C8353B, | |||||
0x0D1B1430,0xC8CACEBA,0xB6B2BEC8,0x9E2F2CAA,0xB4C5C0B0,0x2B8687A5,0x2FAE1C43,0xB1444524, | |||||
0x2850499E,0x30A3BCB5,0x832A3580,0x21424333,0x3F4296A0,0x45349FAB,0x3E23A645,0x0D2A4040, | |||||
0xCBD2C6B6,0x36384733,0x442AA01B,0x0C352543,0xA8433ABC,0x40C5C5AA,0x29324048,0x15474319, | |||||
0x301488A3,0xB386A82A,0xDAB74791,0xA12296D1,0xC7B9C5B7,0x512AC4D1,0x212A4353,0x9CA0C8CA, | |||||
0x079193A2,0xBBB3AD84,0x23ACB8B4,0x93B8D0BF,0xD0CE919E,0x9CB1969A,0xB4B6B789,0x0CC0B4B3, | |||||
0x8EA0B680,0xBC964841,0xB8BEB8B2,0xC3C2ADB1,0x30AFBCC0,0x37334342,0x5041223B,0xA9C7B049, | |||||
0x36514A3D,0x42B8C3B0,0x46BDC72B,0x42283F50,0x3B02BB32,0x48423727,0x3E91034A,0x37133341, | |||||
0x5251504D,0xA3151E3F,0x21C3B40A,0x93B1B133,0xC9B6B4C0,0x2120A4C4,0xD1CBC9B1,0x9C3322CA, | |||||
0xC8C4B695,0x232610B7,0x801CABB8,0xBC9CA3B4,0x90A1BCBB,0x008FB8B5,0x9710B2B3,0xBA2E472C, | |||||
0xB8C13130,0x413C2D1E,0xC6BA3A32,0x222A4229,0xC2A92D3B,0x3C363896,0x23222043,0x42302BA1, | |||||
0xA796373A,0xAF3F544B,0x2E3F3C89,0x483CB399,0xA51FBAB3,0x19A3B8B6,0xC6AEC7C1,0x4A3BA6C5, | |||||
0xB8D0C634,0x08AE8B2B,0xB72E8D8B,0xCCC7BCCA,0xB33D448C,0xCCBDC4C4,0x993402C8,0xC1CDC3BB, | |||||
0x273584BD,0xB2973523,0xA5A12B31,0x12A0A0A3,0xB1959198,0xBC324031,0x442BA8BC,0xAB0F494C, | |||||
0x52483602,0x25A22A4A,0x33404949,0x4A3B4241,0x43844151,0x262A3949,0x3526B799,0xAABF3437, | |||||
0x93BCB334,0xCFC4B49B,0x4A34B8C6,0xAC0CB812,0x3D38B7BD,0xC3B0A9B6,0x90AAB6C5,0x2E1AAC20, | |||||
0x9F389FB0,0x98B8BEC5,0xC2BAAF25,0x403BA5B0,0xB0B4B298,0xC7AC32A6,0xC1173AB1,0xBCA40CB7, | |||||
0x443DB4C3,0xB50EC1A4,0x9E4141C3,0xA5464626,0x304125B0,0x03A428B6,0x17B72645,0x3532A81F, | |||||
0xA4C1A428,0xC0B6B124,0xB6BD30A2,0x3699A18C,0x2E253941,0xBCB23142,0x31023830,0x38A2A230, | |||||
0xAD28123E,0xA33336B1,0xB4BDB2B5,0x8B0F3A28,0x30270227,0x2EA6C0BB,0x373B832C,0xC03A3C91, | |||||
0x424D522C,0xA1C1AD2C,0x081F8F2B,0xBFA14338,0x452B20A4,0x21BAC13F,0x8432BAC0,0xA1A03113, | |||||
0xA7BBC1A7,0xBEBAC6C5,0xC6B33725,0x422D31B2,0xC4D00E50,0x2E082713,0x3021112D,0x40462CA2, | |||||
0x989A233C,0xB2C0B7B3,0xB9C1B92C,0x34389DBB,0xC0BFB2A8,0x532DC7C1,0x403AB931,0x33404A42, | |||||
0xA6303B41,0x2E3B13A8,0x992D91B6,0x14334734,0xD4BF4036,0x2E1599C2,0x16391218,0xA3AAC6CE, | |||||
0x3148B3BF,0xB5C0C4C7,0xB13F421F,0x98A1B9C1,0x97162CA1,0x513D8211,0x443A9F47,0x2F322724, | |||||
0xAFB5C6B9,0x24384033,0xA98B170C,0x372FAFC0,0xC29FA988,0xA4C3BAC0,0x373D4740,0x27B9B630, | |||||
0x2345504A,0x3D94A785,0x33978A38,0x2DB4C0A9,0x32B1B22B,0xB1221D38,0x12382DB3,0xBE2036A6, | |||||
0xBDB52EA9,0x192B2927,0xBE8B3E3A,0x291E18B4,0x3E92BA10,0x08ABCAB8,0x31AEBEB6,0xC1990323, | |||||
0xC4C1B3BA,0xC98D40B0,0x24C1C5C0,0xAEB9B439,0xB6CCBDB8,0x25A42337,0x4638C1B4,0x1826972E, | |||||
0x212025AC,0xBABD3A45,0x413A423C,0x323A2C37,0xC8B5BFBA,0x969425B6,0x86252E30,0xA73598BE, | |||||
0x334231A6,0xB02A2EA0,0x3C3A3101,0x10301520,0xA621A8BA,0x49493E92,0xC0B3BA12,0xBCB2BAC7, | |||||
0x2D0EB2AB,0xAC223A99,0x3AB2062B,0x3C3A384E,0x2F97B2A9,0xAB074037,0x2E362D26,0xBAB9A321, | |||||
0x424532B3,0xBEB91C3E,0x1A979797,0x932E3334,0xC1C3CCCE,0xBB05452E,0xB4B5B6B4,0xCCC7B9B9, | |||||
0xBF1D8CC1,0xADC1C4CB,0x29932940,0x28A12A36,0x10B12436,0x84B7AB2C,0x293C3130,0xBAB594AE, | |||||
0x4113931D,0x2E0E354A,0xB082443E,0x2A3B3D31,0x3A350894,0x4744342D,0xBB133543,0x20BAB4C3, | |||||
0x0D313240,0xB3BCC4B7,0xAE9C3F2D,0xAA8815A1,0x4833B0B0,0x3831093A,0xAABCBC16,0x2AACC3C1, | |||||
0x0FBCCEB7,0xAC93C2C0,0xB9BCB7BB,0x252997A9,0xB3A497A6,0x404110AB,0x88B8B802,0x394B493F, | |||||
0xA5BAB1A1,0xC3BE8522,0xBAC80A24,0x8B21A6A8,0x393384B0,0x1CAFAF35,0xB03D412B,0x3B209FBE, | |||||
0x9AB4AC37,0x4A22AB9B,0x32221C47,0x274602A8,0x814A5014,0x3620392D,0x1044433F,0x39B2BAB7, | |||||
0xC4284749,0xB9B9BBC1,0xBDB8100E,0x10C3C9C2,0xB8B7A12C,0x902B2FB8,0x1B29312D,0xAD33423B, | |||||
0x369DC0C5,0xA5211030,0xC9C3C1C4,0xB61329B4,0xBE9131A5,0x8EC7BCB0,0x4786C127,0xB0B81541, | |||||
0x3A292E30,0x20392B2E,0x374032AE,0x3227A029,0x1EC0BB8E,0xB23E4745,0x9FA028B1,0x379A9332, | |||||
0x8C28A28B,0x9999A9B4,0xB3B8B5AA,0xAEB4A8B0,0x39933234,0x41312641,0x272F8D29,0x24294641, | |||||
0x40B1B72F,0x28012544,0xA7B5C3B7,0xBB312D18,0x20BBC8CD,0xCEBA4043,0x331B05C1,0x3F313642, | |||||
0xC0AC3637,0x1CAEB6B2,0xB6B28E2C,0x1D0E3012,0xB1C5A52E,0x92354543,0xB4BBC1B8,0x1E203812, | |||||
0xBDCAB029,0xB9064845,0xB62F32AE,0xB40C04BB,0x251914AB,0x9D1C141E,0x0086A3AB,0x3E2A3935, | |||||
0xBEA89F2C,0x403DAABA,0x298CB68F,0x07C1C8B9,0x303E3121,0xA0B4A615,0x513BAD0B,0xA0A88B44, | |||||
0x45434231,0xA7C3C525,0x34514C10,0x171D0EA0,0x2198B7A0,0x28A62A31,0x9BACAD2C,0x942C4C43, | |||||
0x26289B0E,0x402AB3B3,0x4241102A,0x9AB2B812,0xA5A8BDBB,0xC2B12A18,0xA6B286AC,0xC4B23437, | |||||
0xA6AFB1BE,0x9EB49F97,0xBEC29930,0xB49B2492,0x4330B2B8,0xBB383B2C,0x282A369F,0x3BA8CCBD, | |||||
0x3431B494,0x2A1CAEA5,0x00992B31,0xBE90082E,0x3034A4C4,0x83A3AAA3,0x3031A0A6,0x97C3B91C, | |||||
0x3B314243,0x41359A20,0xBC054145,0x3229ADC0,0xA0B59620,0x34221F34,0x29ABBB97,0x39391B1B, | |||||
0xB2AAAE8D,0xC38A3193,0x9E2729B5,0xABA5B9B9,0x90414D21,0x1DB2A118,0xD0C5A72B,0xA5A311C0, | |||||
0xC6B13134,0x452EC3CE,0xC3C4B932,0xB18B2B84,0xA0A605B0,0x97989F00,0x3144ACBE,0x223B30B1, | |||||
0x2F3B443A,0x22B6A222,0x901E4041,0x2CB4C2A4,0xAC263D40,0x1F3632AC,0x23AE902B,0x1C96313A, | |||||
0x3715BAA4,0x87A6BB9E,0x3D29A8A6,0xB79E2135,0x913736A2,0x9CC2BC9C,0x832C06A7,0x2C13A5AD, | |||||
0xB92A4243,0xB1A3B1C3,0xC6C4B2BC,0xB8AC4035,0xB0C1C5BE,0x2507232E,0x3C19B5A2,0x388E2236, | |||||
0xB3B23045,0x07A8BCBA,0xA3404428,0x251DA6B2,0x372BAC11,0x2A40ABB1,0x133F429C,0x2A404635, | |||||
0x3D352021,0x47453F3C,0x4282243C,0x99202645,0xBBB0C1C6,0x312116B2,0xAB22A211,0x25BDBEB8, | |||||
0xA6A7B82E,0xBA8CB0C0,0xB8B3B0C0,0xC0C2C5C1,0xA9A8A6BA,0x30409EB5,0x188DA4A3,0x3B403B2C, | |||||
0x3F219130,0x412A193A,0xB2A33140,0x95B18208,0xABA5091E,0xBBB6A5A4,0x3B97BEC1,0x92BC2544, | |||||
0xA3993C43,0x2B002030,0x2A129324,0xB2B8BCA7,0xB697A1B2,0x2EA99D0F,0x172C2B23,0x13A78410, | |||||
0x0B151231,0x2483211F,0x35191434,0x39404034,0x2A110C31,0x988C2D2B,0xB01A3232,0x8A2CA1BA, | |||||
0x1E8BC1C4,0x2632AAB1,0xC4ABB5B7,0xBEB710B5,0x1CB2BEB0,0xB2A4A6A5,0xAF999BAC,0xA9B02688, | |||||
0x293C35A3,0xB7B41D3C,0x283690B0,0x413F15B0,0x35443B33,0x263F368E,0x832F4340,0xABAEB4AB, | |||||
0x293323AA,0xB8A63E36,0x2B901612,0x09234447,0x91199E93,0x870D98B1,0xAA08A3B7,0xB3A6312C, | |||||
0xBEB89F95,0x92A9A7B4,0xB6ABAB94,0xB4A39BB9,0x93232A14,0x102AA3B3,0x1D873320,0xCAC6A42C, | |||||
0xB7BBBBBE,0xB3A1B1BF,0xA9BCBAB8,0x35188207,0x12313040,0x901792B9,0xAA334436,0x3AADAF93, | |||||
0x35941741,0x40353033,0x2A8F3341,0x8F003536,0x3C40393B,0x45362532,0x41373243,0xA191243A, | |||||
0xA32F0DA7,0xB0A6ADB9,0x36BEC3AD,0x33B1C28C,0x23A72E40,0x91322126,0x852F298A,0x022EAEBC, | |||||
0x9EBEC0B4,0x1807A68D,0xB6963A30,0x1FA70112,0xB0263836,0x473014AC,0xBBC4B644,0x2A8AA4B0, | |||||
0xB3AEA913,0xC12532A5,0x1D89B4C1,0x24B2C6BA,0xB4B99717,0x16863633,0x1F949A14,0xA0BEC6B5, | |||||
0xB4B29329,0x3097B9B8,0x35231032,0x33C2C4AA,0x1034454A,0x9431302F,0x922A14B6,0x25AC8F91, | |||||
0x3E433E36,0x023A2929,0xAE33400E,0x8694B1B6,0xBCA02387,0x301E31A5,0x112C1A2F,0x3843411B, | |||||
0x2F3D3B34,0xB4C4B310,0x8FA89F85,0x3C2CA507,0x28234140,0xBA1F2835,0xAC28BCCD,0x1137ABC3, | |||||
0xC0A18AB4,0xBFA922BB,0xB68C4032,0xAC91B4BB,0xAEA7C0C3,0xCBBB17B0,0x0610B6C4,0x9F353383, | |||||
0xB78323A0,0x942BA4C5,0x1DBCBCA6,0xB9B2A130,0x261D11B5,0x32B1B71B,0x343A2F3B,0x03163325, | |||||
0x19BCB902,0x203B3E35,0x443E2382,0x8E353F42,0xA4141AA6,0x212E3612,0xAEB0812F,0x243C3385, | |||||
0x9818281A,0x36332494,0xA21E3231,0x3215C1BB,0xABC1A61D,0x3B433A33,0x10A8B0A2,0xA530382D, | |||||
0xA79791AA,0x382A3729,0xA7C1AE35,0xB38F9613,0x9D2B2AA5,0x289EB5B6,0x10B0BCA0,0x30B2C9B8, | |||||
0x9AB3C1AC,0xC1A22E27,0xB5ACACBE,0xA0B6AEA4,0x05B9C6B9,0xBDA38E8D,0xB01036A8,0x80851B1D, | |||||
0x2B403908,0x91A43233,0x84820820,0x41382A17,0x30242436,0x223B3433,0xB620ABC0,0x2614A6B5, | |||||
0xB3B79920,0xBAA23723,0x3732ADB3,0xADBDB69A,0xB218352E,0x1093A3AF,0xAA8E0AAD,0x14A33338, | |||||
0xB0C1AA32,0x2D321C91,0x3EA9B280,0x1F313644,0x3327A8AD,0xB4B49531,0x2A43419F,0x4031201D, | |||||
0xA128373D,0x330C99A3,0x9F39423B,0x05A199A0,0xA221230F,0xBBAF99A3,0x3225B0BB,0xBBC4B020, | |||||
0xAAC1BAA4,0xC1B6A097,0x3E2BB8C3,0xA1B5B129,0x27983536,0x2F22B70B,0xAB4237A7,0x298793B3, | |||||
0x33129328,0x14354239,0x03213D35,0x2532A29F,0x342601A5,0x23B6C083,0x3238302D,0xC0C8B014, | |||||
0x9B991634,0x3133B0BE,0x253618A7,0x34318CA2,0xA5B5BA8E,0xB9869FA8,0xA81321BD,0xB7BAA604, | |||||
0x3685BEBA,0xB4AA9A26,0xAAC0B9B5,0x2099A017,0xA50E3A37,0x1A158B91,0x3C2A1F16,0x453BB68E, | |||||
0x0F212334,0x8C3A3E24,0x83B1AAA3,0x86952530,0x28322422,0x3B0CBAB3,0x95802F37,0x29B4BA99, | |||||
0xB1283637,0x26B3BAB5,0xA1A63A42,0x4240392C,0x9FAB9F39,0x27352693,0x30370F97,0x9015AEAC, | |||||
0xBCA3321A,0x8FAD0F90,0x10223134,0xA19AB0B1,0xBDB42123,0x1F2230A2,0x289C8F2E,0x1E09862B, | |||||
0xBBB0800A,0x8009A0B1,0x3733A0AB,0xBBB8112A,0x84921607,0xB2848896,0xA1A7B6BF,0x96B4C0B5, | |||||
0x259DA089,0x9192343A,0x27A91426,0x95173740,0x322C0490,0x172B352D,0x143A4138,0x0A9C3424, | |||||
0x1EB2B78C,0x0E200808,0x9434169E,0x2C3B31A4,0x1081B4B2,0x843A4029,0xB8AD99A4,0xA09119A8, | |||||
0x9218199E,0xB5B3A205,0xAB284017,0xA2AD1B81,0x23AFAC15,0x0FA1BD92,0xB4B4BFC0,0x222AA4B4, | |||||
0xB7C0B292,0x393C3520,0x2680B6A5,0x1E312A1A,0x25301896,0x23323725,0xB4BDA22C,0x81808496, | |||||
0x09302C85,0x30B2C1A9,0x8D2E3E3F,0x3522AAB2,0x338A902E,0x2931A11C,0x80239AAD,0x21251487, | |||||
0x38403623,0x249D212D,0x1E352B23,0xA3B2A315,0xBA922B26,0xB1821EB4,0x0AB2BDBC,0x9AAFAB22, | |||||
0x8C151515,0xA5ABB2AC,0x3214A6B3,0x9882A42A,0x374106BA,0xC6BC850F,0x200899AC,0xB5C0AB01, | |||||
0x82ACA89E,0xB4951A26,0x1B92A9B7,0x841B2212,0x26322808,0x23121824,0x3003AF96,0x16323326, | |||||
0x36302A1D,0x319E1B3A,0x2B242139,0xA6A4B5A1,0x83B2B6B0,0x1F97A6A1,0x0D00A38F,0x12092828, | |||||
0x309EB49F,0xB61F3C39,0x3A2B299B,0x3A20B018,0x9F373835,0xB52113B0,0xB69311B7,0x9B23A2BB, | |||||
0xAC1521AA,0x98A0A7A5,0x97BCC8C0,0xB6BA9D22,0xA8A9B9B5,0xA5B5A7AF,0x15208C12,0x40302104, | |||||
0x8A343C3F,0x9F9E1D82,0xB0B71924,0x3219A313,0xBEB58829,0x1E3A00BA,0xB4019FB3,0x211689B7, | |||||
0xA8832D33,0x312C1FA1,0x1A414234,0xA7B8B4AB,0x2A283733,0x8C98A908,0x302F2D1B,0x1A0F3031, | |||||
0xA8A18B1E,0xB9BDAE81,0xAFADAEB6,0x2694ADB1,0x31A9BA8D,0x959E0634,0x952499AD,0x322C91A8, | |||||
0xC2A62317,0x30281BB2,0x13861B2E,0x2AA3B49E,0x8199862B,0xA499A998,0x1812A4B3,0x16393016, | |||||
0x1A0F1D8C,0xAAB41425,0xC2B82E34,0x2410AABF,0x14B11135,0x19A80432,0xB7A40828,0x990E95B2, | |||||
0xBFC1B9A9,0xB0978BB3,0x3404A1A3,0x21A7AA28,0xB1041E26,0x22A8B9BA,0x3738251F,0x41372331, | |||||
0x0F383931,0x34283025,0x17172C3A,0x97374337,0x2C21AAB3,0x2093232A,0x2486901C,0x28342A2C, | |||||
0x98A6A998,0x1B219595,0xB48A2815,0x96BCB6B0,0xB1B1A71B,0xBEC00D18,0xB6B6A6AF,0xA3A58E83, | |||||
0xACBABDB3,0x2BA1A495,0x90AC0937,0x21899518,0x2224AAA6,0x34249506,0x29413D2B,0x37208097, | |||||
0x22344142,0x1F31078B,0x2B383807,0x2300182E,0x1B2D1C1F,0x86218DA9,0x2D241A85,0xA6182E32, | |||||
0x8F8693AA,0x28188397,0x8CA5AF13,0xB027392B,0x1691B1BA,0xA1931222,0x97A8B7B8,0x029CAC9B, | |||||
0xB5C3C9BC,0xA606A5B7,0x1D2714A1,0x93ADC0B2,0x0EADC0BB,0x27ABA721,0x0BADA42B,0xC0B23038, | |||||
0x3681AFBD,0x2E41383B,0x2E1C9DAE,0xB11D3337,0x140F23A7,0x1F162421,0x002A3028,0x31241004, | |||||
0x95968B2A,0x2FA09900,0x37282E3B,0x11A5AD17,0x27850F2A,0xBDB72738,0x2511A5B4,0x2B81AD87, | |||||
0xA801061D,0x972F398A,0x06262701,0xAC082185,0x9E1717AD,0x9FB2AA91,0x95393202,0x379EB5B2, | |||||
0x1FA10737,0x9F862029,0x2B22220D,0xC1C0AB20,0x24332EAE,0x12302822,0x21919BAE,0xB29E2136, | |||||
0xA4B2BABD,0x28252318,0x28403B33,0x10A4B1B0,0x15251A00,0xB3B2A601,0x0F09298B,0x9CA2A600, | |||||
0x180D139B,0x1E010B26,0x28392C19,0x1CB2BAA7,0x242F2B22,0xB21B3A32,0x930A1DA0,0xA2103026, | |||||
0x1F96130E,0x1F1C3234,0xB59E1620,0x383027A0,0xA7A01735,0x92A02809,0xB5B6B419,0x9F01B2C1, | |||||
0xBDB8A9A6,0x292F20A8,0x2616041B,0x99B5A11B,0xA9A1A417,0x95A7B0B5,0xA5B2AC10,0x918B929E, | |||||
0xBBBAA20D,0x2C22A7BA,0xB7A31622,0x2E392FA4,0x14A12430,0x19170816,0x1B353832,0xB0B8B2AE, | |||||
0x29119891,0x8637382F,0x0D2305A6,0x2F10BEC0,0x29962535,0x25A2AB2B,0x8B0A9E86,0x3099B0A3, | |||||
0x86292F30,0x18312A93,0x12333021,0x132410AD,0x3A444738,0x23252633,0xAA203124,0x9EB1B3B5, | |||||
0xA3B5A02D,0x218C8C8C,0xBAB7A50E,0x900C02AC,0xA3868296,0x93801096,0x2C2B0291,0x2032A2AC, | |||||
0x9EB3A7A2,0xB1BABD99,0xC3B6A8AE,0x9A928AB9,0x82890605,0xAAACAB91,0x9190A4B1,0xB9963A30, | |||||
0x30A2B0B3,0x9F1B1230,0x149FB0B7,0x22919413,0x90A72132,0xA8101F2C,0x273327AC,0xA3A62828, | |||||
0x1E291F24,0x14372B97,0xBAB9B0AB,0x23242D8B,0x9C901922,0x248B0500,0x001E1E2B,0x8B1190A5, | |||||
0x0DB2A688,0xAAA4882B,0xB0A5A1A9,0x2E3127A6,0xA5BAB21C,0x15A8A705,0x3A2D0C17,0x222E1A2C, | |||||
0x16221400,0xA39E0F80,0x20202412,0x9E273027,0x1E9BBCBB,0x1CA1A112,0xA1A3A915,0x2F12AFB3, | |||||
0x1A91AB18,0x9D243019,0x2F9BAFA3,0xAFACB018,0x2C80B4B9,0x0A9A162A,0x8B303A33,0x9CA6B1B2, | |||||
0x970C2B22,0x343D3000,0x9BA00F25,0x04212E1F,0x2F271A17,0x15202F34,0x92AAA398,0xAB8A201F, | |||||
0x29139DA9,0xB4B3B202,0x2D2D3282,0xA5B6AB13,0xB01A3026,0xADAEACB3,0xAE8B80A0,0x0F96ABB8, | |||||
0x34303230,0x9616112B,0x238DA0A7,0x29132131,0x3D32222B,0xB39BA51D,0x323084B7,0xAAABA512, | |||||
0xA196B2B5,0xA205AAB0,0x921A0CAB,0x2B31301C,0x85A0A999,0x8730382C,0x120DAEB2,0x13821415, | |||||
0x1E362C92,0x97123328,0x3E352B1F,0x3220233D,0x1E95A219,0x109B9A16,0xAA12403B,0x1E819295, | |||||
0xAB9E1017,0x948B2291,0xA11F2213,0x009384A0,0x13242A22,0xB1AEA496,0xAAAA8795,0x81C0C1B1, | |||||
0xB1A9962C,0xA28BA2B0,0xA2A294A5,0x18363515,0x211F1099,0x36332721,0x162C2B2D,0x2F1F2520, | |||||
0x252C3036,0x37889B17,0x9E0E253C,0x272290A9,0x1D811925,0xA4A0131D,0x20212D24,0x9FB0B292, | |||||
0xC2BFB8A4,0x99211EB7,0xA0A8A6A4,0x270BA8A8,0xA8902730,0x24228DAC,0x2430322A,0x0FAFAB10, | |||||
0xA4121F21,0x8BA7AAAA,0xB1B6B095,0x2388ABA8,0x33212325,0x169D2332,0x11A41938,0x31331781, | |||||
0x1A2D2828,0x031D2F14,0x2C34271A,0x3539341D,0x2F272E37,0x821F2B31,0x9891969D,0x9204A1A9, | |||||
0x82B7B4A2,0xA6B19A2E,0xB1BAB9B2,0x951E238D,0xB0B5AA9C,0xA1111B98,0x2A300CA4,0x223D361B, | |||||
0xB5B5A39C,0x2108188D,0x22240A0C,0x9E012524,0xAAA22D2B,0x378CA99E,0x142C2F37,0x37A4B3A9, | |||||
0x2A2D3440,0xA5A71F2D,0xA9AF9806,0x2532129C,0xB19EA2A3,0xA51817AA,0x171A14A8,0xBEB79A25, | |||||
0x2BA4B1B7,0x1D018F28,0x98199995,0x0494A0A7,0x1829898E,0x878895A0,0x2F382B90,0x2234362D, | |||||
0x2C33301F,0xA0128A07,0x323087A9,0x04AA9924,0xACADB39A,0x25271BA5,0x8A0B2426,0xADA3958C, | |||||
0x1309899E,0x9F001D10,0xA3A81E12,0x21192E2E,0x98A2A405,0xABADB4AB,0x979594A6,0x87212399, | |||||
0x2A0DA295,0x21200F21,0xAAB3B89C,0xAC0795A3,0x0291A2B9,0x9E842B2D,0xA69BA4AA,0xABB09AA6, | |||||
0xA0A49C07,0xAEB39E96,0x272A3227,0x302A030F,0x06021324,0x12152323,0x81B0AB0D,0x21039514, | |||||
0x2691A790,0x1B344038,0x32342E21,0xAB042D2D,0xAE9E1C83,0xA7B2BBB9,0xA7ABA19D,0x17A1A797, | |||||
0xB49F920D,0x04B1BEBD,0x8F0F171D,0x9D9C8C8F,0x27251389,0xBDB5A013,0xA399A8B7,0xB2ABB0B2, | |||||
0x3028A5B4,0x20879A20,0x36353126,0x39338716,0xB09E232F,0x292495AA,0x2115202F,0xA0A9AD06, | |||||
0x9A0399AA,0xB2ACA29F,0xA39294B0,0x019BAAB1,0x85A8AC8A,0x252C271C,0x2527170F,0x9C1E1210, | |||||
0xA2B0B0B0,0x238BA281,0x2F271012,0x3A341D21,0x3B342630,0xA51C2D32,0x10A5050B,0x9E9BA892, | |||||
0x97821880,0xB0ABADA9,0xABA4A7B4,0x9D24299A,0x0CA8B1A3,0x20250F06,0x9520128B,0xB0B7AEA3, | |||||
0x1C919C90,0x1197AB95,0xAAB4B09D,0x2B9498A3,0x99A9A927,0x403B2392,0xB0102C34,0x29301AA8, | |||||
0x979B1923,0x1E1C1F1C,0x30363428,0x81872B32,0x3A2BA89D,0x2C25142E,0x96112328,0x1823258B, | |||||
0xA5232195,0xA1A81310,0x8B9CB4B0,0x90261492,0x9F2C20A7,0xAE961AA1,0x2330330E,0x152E221D, | |||||
0x26312A06,0x94AFB1A2,0x900B1A23,0x8AA5B8B7,0x1923241B,0xA8A69114,0xB2B3A7A1,0x8536348F, | |||||
0xA2A69CA6,0x88A12123,0x130A1724,0xAF08848C,0xA4A5AAB5,0x18B0B3A3,0xA5213B38,0x1F2321A1, | |||||
0x0A102E32,0x89ADA784,0x1D828519,0x11939B87,0x10AD812A,0x27979A22,0x333A2C2A,0x21211221, | |||||
0xA8A38888,0x04341CA2,0x918F05A4,0xB7A61D11,0x849C97AA,0x3204A884,0x0A8B8423,0xA9B3A016, | |||||
0x19212009,0x8089958D,0x1F899F03,0xB7B7AB8C,0x2B2A09A9,0x92201B1B,0x1C221598,0x111E8B91, | |||||
0x22ACAA82,0x35292631,0x22A9A32B,0x3934242D,0xAB8B1229,0xA8A9A8B2,0x8F233621,0x87ADAA81, | |||||
0x041E130E,0x12251E92,0xA6A41B23,0xA499A2A8,0x83B5B2A6,0xA7832732,0x89B2A9AA,0x92192E31, | |||||
0x232E82A0,0x9795A69E,0x2E2619A0,0xB1932D36,0x97982796,0x93253023,0xB4B0A39D,0xA1B2B6B3, | |||||
0x058AA1A1,0xAD253A2D,0xA8881F96,0x9F90AAB3,0x1A15A3AC,0x989A9690,0x81010889,0x251D201D, | |||||
0x98ABAD8B,0x1C13808D,0x02A69220,0x938F2426,0x12081121,0x9A273327,0x1805A5AE,0x1B12A399, | |||||
0x91263021,0x1385A29E,0x2A2C1690,0x152C8594,0x9D9899A1,0x01AAB0A6,0x15871D26,0x93A79122, | |||||
0x0F242D23,0xA306171B,0x9B9DB2B3,0x133012AA,0x1B202199,0x222A3330,0x91971B2D,0x9BA5B1A7, | |||||
0xA1ADA090,0x1695938C,0x28232A29,0xA9A68B2E,0x3319A3AD,0x1E312C2E,0x2B159D9D,0x81150122, | |||||
0x17242807,0xB1872829,0x86A1ABB4,0x86029594,0x00303421,0xA28C96A2,0xB0ACA4A3,0xA393A8B2, | |||||
0xA597A8B0,0x990102A7,0xAAAEA99B,0x17949CA0,0x08303224,0xADB1ABA4,0x19899B9D,0x33301514, | |||||
0x1701971A,0xB2AE212A,0x9BAAA4A3,0x30298898,0x09ABA121,0x1A173336,0x242B312B,0x0113292A, | |||||
0x24242D24,0xB0B9B107,0x17132515,0xB5B88129,0xA8AFA49B,0xB1B9B7AC,0x8B89A0A6,0x05251F87, | |||||
0x88A2A4A4,0x9E981724,0xA2B3B2A5,0x02182311,0x9B978D85,0x919D859A,0x14262E2A,0x25822122, | |||||
0x2A2A2930,0xA1AFAD06,0xA0981B16,0x8893908F,0x2606920D,0x15241C1B,0x0A281C8F,0x222E2194, | |||||
0x2A282C22,0xA5920920,0x848796A4,0x10201091,0xABB3AE92,0x2590ADAC,0x22283030,0x1D121D22, | |||||
0x03059909,0x840C9FA6,0x190D028F,0x1F213131,0x1CA8AE8B,0x96A19822,0xA0A9A193,0x1681ABA6, | |||||
0x1C9C9A05,0x96940923,0x151C2381,0xA69E1225,0x029089A0,0x130A8A00,0x98162220,0x3325A6B0, | |||||
0x21323B3A,0x2D1E8D83,0x20829024,0x80A8B29D,0x051F2520,0xB1990E04,0x869CA7B2,0xB3A0110A, | |||||
0xA8A098B0,0x2F231395,0x93A0172F,0x0899990A,0x11201A11,0x1BA7B4A5,0x1F119983,0x0611161D, | |||||
0x051A1284,0x8196ABA3,0x29221E04,0x2E353632,0x27018F17,0x2819202D,0x0993941C,0x27312820, | |||||
0x9D908206,0x10232399,0x0C153132,0x251B9391,0xA0951D24,0x9B1C2919,0x2618A6AC,0xA615231E, | |||||
0x9698A1AD,0x2627240B,0x27258412,0x120B8011,0x2A190615,0x362F1E24,0xA1883137,0xA9A48D0E, | |||||
0xB2ADAFAF,0x030F00AC,0xAFA79D81,0x9F9298AB,0xBCB0ABAE,0x921393B9,0xB1B0A591,0x0EA1ADB1, | |||||
0xA6AD9519,0x1A900914,0xA19B1223,0x2B3313A1,0x1E1E1A16,0x8109181B,0x28168593,0x80188621, | |||||
0x22238799,0x222F2C18,0x1711058D,0x2A20021B,0x2321292D,0x25241F27,0x1E1C1414,0x90A0930B, | |||||
0x132F2F20,0x8A228BA3,0x0801A0A3,0xB0ADA7A5,0x02A1A6A4,0x01AEB3A1,0xA2910114,0xA29FA0A6, | |||||
0x90A5ACA4,0x91939B9B,0x9FB1A790,0x161D191C,0x14800E03,0x20169015,0x230F0116,0x2D252C2B, | |||||
0x82191F29,0x94A12B27,0x2780172C,0x96811627,0x2A242610,0x9A990226,0x9AA6A49A,0xA0AEB0A3, | |||||
0x9A9F940E,0xB9B8B1A8,0xA9A6B0B7,0xACB0A0A2,0x9A21208B,0x129CAEB0,0xA3AA9614,0x810A2112, | |||||
0x8EA21525,0x24171E24,0x292C2320,0x0F232624,0x30302000,0x192A312B,0x26223028,0x24262A31, | |||||
0x9508A496,0xAAA28CA3,0x0F2B2D04,0xA0A7A29A,0xA89A1212,0xA39CA7AD,0xAE9491A3,0x94AEB5B8, | |||||
0xA392080D,0x87ACB4B0,0xA6A5AB95,0x0C1D96A8,0x1503A0A5,0x1C242722,0x0B202E24,0x26312E22, | |||||
0xA4171A0E,0x0E171BA1,0xA8A49383,0xAAA90893,0x93AEA796,0x9F981925,0x138D9091,0x9FA79E0A, | |||||
0x1822088E,0xA19CA29C,0x1191919C,0xA99B2428,0x161B91A3,0x2A23018E,0x28302320,0x272A2717, | |||||
0x9D223430,0x95171791,0x940194A4,0x231E1294,0xA6143030,0x2B2B14A5,0x8C918122,0x1327240B, | |||||
0x81928C82,0xAA9F9003,0xAAA2AFB3,0x988E07A3,0xA3B5B3A5,0xA3142818,0xAAB0A19E,0x820B1F00, | |||||
0x258BA592,0x8FACAE09,0x20039006,0x94909D82,0x8A87A2A3,0x9C99A2A9,0x1E232D26,0xA2AC9917, | |||||
0x1624198E,0x94A0860E,0x909EA098,0x161D2120,0xA1AAA286,0x21272289,0x1D969911,0x2E2F2F2E, | |||||
0x1C272022,0x00120989,0x9D93201D,0x93841501,0x22819185,0x20228114,0x29200412,0x99968717, | |||||
0x28311C94,0xA8AA9813,0x1293A1A3,0x931C1105,0x95A1ADB0,0xA1AB9884,0xA1941013,0xA1A3A7A7, | |||||
0x1194969A,0x1819011A,0x0014838A,0xAAA1A8A5,0xAFABA1A9,0x011612A4,0x211E0189,0x95881513, | |||||
0x25292617,0x12110C1D,0x301A9495,0x981B3037,0x372F87A8,0x1F313334,0x2097A8A0,0x1E2C312B, | |||||
0x37321803,0x900C162C,0x91202918,0x07128A99,0x0B261F85,0x9590949A,0x98831907,0x8F949198, | |||||
0xA59B0706,0x252089A1,0xA9A51926,0x19039FA1,0x06809488,0x008BA09E,0x0E0A0B13,0x990E2015, | |||||
0x949D9A9C,0x33321C8A,0x1A058B1C,0x8A182423,0x101A2214,0xA3ACAE9C,0x219BA4A2,0x9CA11A2F, | |||||
0x02001710,0x82071E16,0x9AA2960A,0x1982A39F,0x1F221416,0x24168080,0x80011A25,0x9923332A, | |||||
0x291B91A0,0x1011101F,0x9622210C,0x90929CA1,0x9D011982,0x8291979E,0x1619878C,0x818DA39A, | |||||
0x1E158794,0x19171F20,0x95872223,0xA2A00013,0x22849A9F,0x2420111E,0x1B161011,0x228E1227, | |||||
0x0D2A3232,0x0990A4A4,0x28272015,0x2B159411,0x94821A29,0x1D121089,0x24190412,0x061E2424, | |||||
0x1794A59D,0xB1A99A14,0xA0A8B2B4,0xB6B3A599,0x89A4ABB0,0x9C960A18,0xA6A69697,0x97942116, | |||||
0xA2ADA691,0xA9941B0E,0x98A7A5A6,0xB5A90314,0x0FA1B0B5,0xA4901320,0x04281EA1,0x01909D9F, | |||||
0x1C2B2B16,0x120B190D,0x160B2128,0x2B261512,0x10182126,0x302B2822,0x2008192F,0x2532352E, | |||||
0x89070C15,0x1B240A95,0x93919A99,0x1B1A95A0,0x921B1002,0xA1A8B1B1,0x9FA79F8A,0x070C9698, | |||||
0x9C8D94A1,0xA49F868A,0xA0A2A7A5,0xAC8E89A0,0x0A85A2B0,0x86141006,0x2A26839A,0x9195A386, | |||||
0x20200395,0x1A1A0D0D,0x12251E12,0xA1A11713,0x8B918004,0x91170F93,0x251097A0,0xACA6991C, | |||||
0x1080A0A7,0x9194890A,0x04171187,0x938F9BA2,0xA4AEA695,0x0AA1A8A2,0x97A49215,0xA398030B, | |||||
0x1C201598,0xACB2A903,0x8D8C92A1,0x97048798,0x07929599,0x160F1C20,0xA38B1A18,0x9097959C, | |||||
0x1D0E1614,0x1B10031E,0x2606A598,0x8C232224,0x172193A7,0x28271802,0x0D8C9602,0x8E172723, | |||||
0x23210095,0x2B212320,0xA2082E33,0x1F221E92,0x93242F26,0x8D0A2181,0xA09E121C,0xA8ACACA2, | |||||
0xA2ABAFAB,0xB2B7B4A9,0x938D99A3,0x80A0ACA8,0x949DA398,0x9A97A09E,0xA0890E8C,0x1684A6AA, | |||||
0x9A981A1B,0x2C272820,0xA3022027,0x26230FA2,0x20242B31,0x2E290B94,0x139DA018,0x01A2A215, | |||||
0x25272213,0x201B0618,0x9E121F1B,0x13121E00,0x91111A17,0xA0A8A19D,0xA5A79406,0x8907809A, | |||||
0x160A9399,0xA2A28D1B,0x93A0A6A5,0x9B0D2015,0xA5AAA7A4,0x100A1680,0x9F182722,0x241E05A1, | |||||
0x18202F2E,0x82A0A00A,0x26282720,0x10939212,0x9C8A1318,0x911D1C8C,0xA29291A0,0x8307809B, | |||||
0x05141603,0x868A1511,0x8315100B,0xA1ADACA0,0x1B2B1D93,0x1020088A,0xA6948393,0x171389A3, | |||||
0x21178902,0xA49F950F,0x040A9EA7,0x9E091905,0x1D95B1AE,0x25261911,0x93A0801F,0x1E111210, | |||||
0x21262A2B,0x93979581,0x9A0F2109,0x231C0691,0x9183061B,0xA8A88184,0xA1A6A19D,0x08171680, | |||||
0x18819998,0xA1801F20,0x1B098CA2,0x0D822029,0x22212019,0x12152125,0x201F1312,0x282D2316, | |||||
0x84051B23,0x8F900309,0x849C9F90,0x28281E11,0x87919711,0x23231683,0x93111414,0x9F820596, | |||||
0x90910F90,0x9FA69F8D,0x0D10848E,0x91A29985,0x989D8D0B,0x96929292,0x1D138998,0x0211171E, | |||||
0x99A4A498,0x91118394,0x1115039A,0x1180918C,0x01161816,0x25271490,0x25201C20,0x28161020, | |||||
0x111A272E,0xA1928406,0x11969BA0,0x1819171B,0x94909183,0x01948F8A,0x900A1B1A,0x9585048B, | |||||
0x89038395,0x9D980609,0x93868F98,0x9B909094,0x8F9BA2A4,0x9E968104,0x048E969C,0x84900810, | |||||
0x87919D89,0x9EA0A7A5,0xA6A49998,0x9D989FA0,0x9291A5AA,0x24119EA3,0x1A181823,0x25119680, | |||||
0x1B20292A,0x800E2224,0x220F0103,0x941B282A,0x00161592,0x909A8E8A,0x10831617,0x171A1A1B, | |||||
0x8E92960B,0x1E14919A,0x0F89A28A,0x12089A93,0x17199293,0x9E958586,0x0C148599,0x17221D00, | |||||
0x88928C07,0x11979684,0x182B3129,0xA09C948C,0x92091488,0x2094A7A2,0x979C8822,0x130F8092, | |||||
0x8C9A910C,0x0F8F8507,0x81881620,0x0F07800B,0x9E9B948B,0xA7A59996,0x9F979DA1,0xACAAA2A0, | |||||
0xAEA299A4,0x168FA3AC,0x87959512,0x948C9596,0x81078B97,0x92871204,0x17141281,0x1204101B, | |||||
0x1A201313,0x81031208,0x25272721,0x14192022,0x831D1A12,0x1B0D0194,0x02172526,0x13909D93, | |||||
0x1313810D,0x9A8B0F0E,0x1404078E,0x1621201E,0x81808803,0x0A869795,0x00048800,0x959B9E96, | |||||
0xA2A6A8A0,0x929BA3A6,0x8E888203,0x96A3A39A,0x8A959F93,0x0283888D,0x87949381,0x09091310, | |||||
0x88131C17,0x17059398,0x1E202524,0x8006121B,0x02840B02,0x24201E1C,0xA5971121,0x1C1887A2, | |||||
0x86938B0E,0x83111009,0x9D900289,0x92811190,0x81818B91,0x04080880,0x94840507,0x168C9999, | |||||
0x97051115,0x1619188E,0x1D202120,0x87030C14,0x24119091,0x141F1D23,0x0B111108,0x0F131812, | |||||
0x07131415,0x09839C9A,0x00838206,0x95A0A393,0x9C8E8691,0x989AA1A2,0xA2948C94,0xA4A199A1, | |||||
0x068C98A0,0x9C05140A,0x99A0A6A6,0x19150093,0x0E018810,0x94929288,0x12840F04,0x06101920, | |||||
0x868B0108,0x0A1E2111,0x06818489,0x828E9103,0x0A111006,0x9C881112,0x8795A6A7,0x90810284, | |||||
0x01151386,0x170B8689,0x18141216,0x150E0911,0x018A0714,0x210C948C,0x0D8D9116,0x10201A12, | |||||
0x93958C89,0x14108788,0x03080310,0x0B12058D,0x0A050602,0x8A870711,0x83058B8F,0x04859496, | |||||
0xA19F9388,0x978B8594,0x0303919A,0xA5A0988F,0x91959FA4,0x8B88868A,0xA0A3A094,0x0E859299, | |||||
0x818B0013,0x8393988F,0x00101109,0x1C0A0083,0x14171A21,0x0D161714,0x161A1105,0x9594030E, | |||||
0x18070781,0x100D0D1A,0x890F0E06,0x0510088E,0x0C100382,0x93909088,0x11100690,0x16161312, | |||||
0x8205030B,0x92880581,0x04810483,0x8F010909,0x0C858B90,0x81800713,0x07859089,0x8B8D8E85, | |||||
0x0C818D8B,0x8A808204,0x01130E8A,0x0783898F,0x8A80070F,0x979B9994,0x0F048693,0x03111817, | |||||
0x828C918E,0x131B1D12,0x958B0B10,0x15170F88,0x07121610,0x8302060A,0x038C928B,0x848D8D00, | |||||
0x80868C85,0x1A069894,0x8F091217,0x86808692,0x93949995,0x0402008A,0x8C850302,0x84858185, | |||||
0x0E15190D,0x8F8B8507,0x09131284,0x8605110E,0x07000180,0x808A8109,0x0112110D,0x810D048C, | |||||
0x82888B8E,0x190D8202,0x07070817,0x0E060080,0x8C949402,0x98930000,0x8C02038F,0x929C9C95, | |||||
0x85840080,0x8C959283,0x81840604,0x87020E0D,0x01848389,0x18191610,0x040D1014,0x8281908F, | |||||
0x140F008B,0x0A121313,0x82050001,0x8301848D,0x0B080581,0x818A830C,0x070A0705,0x04090704, | |||||
0x02828002,0x12141410,0x888C8409,0x01038284,0x120F8085,0x8A84070F,0x8A95938B,0x81101107, | |||||
0x8C8D9091,0x968F8C8D,0x908B9197,0x05068592,0x8F919084,0x01038790,0x85848581,0x05028888, | |||||
0x07848680,0x83868A04,0x8A840082,0x81040385,0x84008281,0x05050683,0x0F04060B,0x11130D0E, | |||||
0x810C1614,0x120F0B02,0x0C141513,0x8F898681,0x0E0D048A,0x04050509,0x89848004,0x87888589, | |||||
0x09068082,0x93918A02,0x1104858E,0x94900412,0x88878E93,0x02000087,0x86888008,0x0A0D0385, | |||||
0x080C1009,0x81838106,0x85828181,0x86878989,0x0E0E0187,0x85830106,0x05878D88,0x84020909, | |||||
0x07028288,0x85878306,0x0E068182,0x8E898208,0x09018B90,0x8D810608,0x8787888F,0x82020580, | |||||
0x080A0180,0x03828680,0x05020103,0x88850406,0x82828383,0x80868A84,0x04060A05,0x89020603, | |||||
0x8085888A,0x81000306,0x84818082,0x00810082,0x83810406,0x85858000,0x04868B89,0x00060B09, | |||||
0x87850303,0x05050084,0x01010000,0x82858783,0x05058183,0x86848200,0x84008084,0x8B8A8B8A, | |||||
0x8481838B,0x85858889,0x83868686,0x05040501,0x82010304,0x01828787,0x80030304,0x82888A87, | |||||
0x02030300,0x82868481,0x00030703,0x81828382,0x03030400,0x83840004,0x04010081,0x82800303, | |||||
0x83858584,0x82000180,0x07080283,0x80030505,0x82818282,0x05018081,0x85848004,0x00828587, | |||||
0x02030180,0x83848381,0x84828182,0x81828282,0x01010180,0x02030000,0x82858381,0x82818282, | |||||
0x84848383,0x03008082,0x82818100,0x02018284,0x80818001,0x81808181,0x83838483,0x02020181, | |||||
0x80818000,0x01000000,0x00808101,0x01000002,0x01030201,0x81818100,0x00010100,0x81828180, | |||||
0x81818181,0x80808081,0x81818280,0x00000081,0x81808000,0x81818181,0x80808081,0x80808000, | |||||
0x80808080,0x00808080,0x80808080,0x80808080,0x80808080,0x00000080,0x00000000,0x00000000, | |||||
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, | |||||
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, | |||||
0x00000000, | |||||
}; |
// Audio data converted from WAV file by wav2sketch | |||||
extern const unsigned int AudioSampleHihat[5953]; |
// Audio data converted from WAV file by wav2sketch | |||||
#include "AudioSampleKick.h" | |||||
// Converted from kick.wav, using 22050 Hz, 16 bit PCM encoding | |||||
const unsigned int AudioSampleKick[2561] = { | |||||
0x820013EC,0xFFDC0027,0xFF710095,0x038DFF4C,0xFBA10105,0x0037FB6E,0x09D2011A,0x007504CA, | |||||
0x024BF6BF,0xF77B0AFF,0xFB72F723,0xEF3DEBAD,0x0F7009D6,0x09DD1736,0xF26EFA3E,0x0D7002FB, | |||||
0xFF4401F1,0x06B20406,0xF83306AF,0xFC9DF1A9,0xFCC601C7,0x0423F387,0x11F011ED,0xF727066F, | |||||
0xF0C6FF94,0xFB8CF2E3,0x105D07AC,0xF56D02F9,0xFE1CF445,0xFA14F903,0x0027FE3F,0xEEA1EA4B, | |||||
0xFE40F2FC,0xFD02FCC2,0x0A230EE6,0xEE5AF060,0x08C8F64F,0xF0A9FEFD,0x0768EECB,0xFAF211B5, | |||||
0xFA39F885,0x224325CA,0x04D31BC8,0x045AFAAF,0x2E6F17C3,0x175424A4,0x174A0F13,0x196C1BA1, | |||||
0x1DE521BD,0x1CCF1D7A,0x129614BC,0x0D7907C6,0x0E120948,0x098F1251,0x012B06A2,0xE8B601B6, | |||||
0xE4EAEDB9,0xDC64DCBE,0xDDC7DAB3,0xD546CB2A,0xCF55C8BD,0xCC38C9D5,0xC40EC6AF,0xBCBCC587, | |||||
0xC7A1CE49,0xC6A2C706,0xD13BCF7F,0xCF29C9A2,0xD4A6D65C,0xDE53D0A1,0xEB95E584,0xEBD4E3D2, | |||||
0xF3B3F3BE,0x05EBFBA2,0x10DD1169,0x12B20FEF,0x1BD6181B,0x3036277F,0x41163F5B,0x3D2C4746, | |||||
0x468741F2,0x51434E0D,0x564E5524,0x5C6C571A,0x5D8B550C,0x5FC16321,0x5CCD5B83,0x57A2532D, | |||||
0x57595078,0x527C538B,0x42C54932,0x358E3DED,0x31873618,0x28CB2B68,0x15372060,0x072B1054, | |||||
0xFB05057D,0xEE36F62C,0xE66DEB26,0xD789DDD6,0xC6EDD3FD,0xB896C27F,0xB272B6A1,0xAC2DAF17, | |||||
0xA531A148,0xA2A3A22F,0x982898F2,0x92DC93D9,0x93DF94D1,0x986397BD,0x96BE99D4,0x9B859A62, | |||||
0x99C098E2,0xA1F7991A,0xA81FA326,0xADC8AECF,0xB783B7E0,0xBDC4BDA7,0xC8A0C5F6,0xD3B8D233, | |||||
0xE22DD9E8,0xEEF0E351,0xF780ED42,0x0114F8E1,0x0EC20826,0x1B611444,0x22AC1B34,0x2C0724DF, | |||||
0x3278335C,0x3F663B15,0x45A04521,0x50194F20,0x56F952C7,0x5DFA5686,0x61065AFA,0x638E6495, | |||||
0x66EE6735,0x661E6B05,0x68426CE6,0x673B6835,0x65F76407,0x657F63D9,0x616E64A3,0x5C035D70, | |||||
0x53DB5388,0x4E45515D,0x47244C8E,0x46AB4439,0x37183D2B,0x298F33A1,0x23E024E3,0x1EE62440, | |||||
0x119D14AB,0x0AE2109F,0x014B0560,0xF675FC9A,0xED17F3C9,0xE686EC17,0xDFDAE318,0xD612DBC0, | |||||
0xCB6ACF47,0xC588C91F,0xBC20C090,0xB6A4BBA6,0xB30AB329,0xACC4AB60,0xA40EA744,0xA140A0BF, | |||||
0x9D589F92,0x98B89A3A,0x99689A8F,0x971399E7,0x97DB982B,0x99199808,0x9A8398EF,0x9BB99DC4, | |||||
0xA1409F4D,0xA497A2D2,0xAA05A779,0xB0BCACEF,0xB589B070,0xBCA0B93C,0xC042BEEF,0xCB3FC7EB, | |||||
0xD252CCE5,0xDA9AD73F,0xE4F2DE9E,0xEE51E76E,0xF74EF15F,0xFF4CF9B0,0x07E7006A,0x0F150C10, | |||||
0x18651497,0x1D8C1C39,0x25032397,0x2B2A2DC4,0x36B632A3,0x3E163B15,0x452E4104,0x4B0946A1, | |||||
0x5158507A,0x58C55817,0x5EBF5BAC,0x65F65E02,0x6A47619D,0x6B706A44,0x6EDC6CE7,0x72747011, | |||||
0x732571AD,0x73E37447,0x73E57587,0x73A877A5,0x72A975D5,0x6FEE735B,0x6D0F6E44,0x68D86B14, | |||||
0x65D3671B,0x60176182,0x575B5822,0x4F63546F,0x47484CAA,0x3FA44284,0x35EA3ABA,0x2C5D30D7, | |||||
0x21BC25EE,0x175A1B22,0x09EA0FDC,0xFE680521,0xF305F9BF,0xE7E9EE2F,0xDE72E3B9,0xD4E1D992, | |||||
0xCA95CFBD,0xC1D8C625,0xB91FBDE2,0xB248B79E,0xAC51B112,0xA67CAAA1,0xA14FA261,0x9C789DD2, | |||||
0x982C98AA,0x92709487,0x8E508F2F,0x8A9D8C24,0x88228995,0x86B6878F,0x841F83B9,0x81CF83CF, | |||||
0x80CD8278,0x829980C8,0x83528258,0x83CF8344,0x85E7852A,0x885487F7,0x8B418C24,0x90EE8F6D, | |||||
0x97B69365,0x9D379825,0xA2DB9F05,0xAB50A682,0xB45BAEA0,0xBB7BB8B9,0xC777BFF2,0xD1DACB86, | |||||
0xD8BBD5BB,0xE607E214,0xF1D3EC17,0xFD34F5C7,0x06EB0237,0x115E0E10,0x1DA818C1,0x264C2573, | |||||
0x30C02ED0,0x3BCC377B,0x44B83E3A,0x4B3D46D0,0x56884D80,0x5DD659CC,0x64065B7C,0x68B563BA, | |||||
0x6B846C65,0x6EE36DA6,0x72F8728A,0x7343751D,0x77877334,0x7A0577A3,0x773C77D8,0x7805792D, | |||||
0x77967AA9,0x77E279EE,0x78B37A43,0x771078CC,0x7780777C,0x76CB7564,0x75A37620,0x71787198, | |||||
0x700F702B,0x6C256D69,0x697E69E8,0x643D66B8,0x5C9861E3,0x590B5BF4,0x526D55D5,0x4B7C4F3F, | |||||
0x45924786,0x3C9C3FEE,0x35143866,0x2ABE2F21,0x208B260B,0x17711E8C,0x0EBC143E,0x05060AC4, | |||||
0xFC1EFFD1,0xF39CF5A3,0xE841EDA8,0xDEA0E55A,0xD7FEDB6D,0xCCDDD37C,0xC6C1C941,0xBDCFC2A9, | |||||
0xB6CABA65,0xB0D7B32F,0xA9F1AC75,0xA4EDA5F6,0x9D36A072,0x99329CA7,0x96CC9771,0x902C92F4, | |||||
0x8EAC90AF,0x8D348D2C,0x8C218B9A,0x8A3C8872,0x894D89EA,0x892E89A4,0x873A8B68,0x88338A63, | |||||
0x8B358BEB,0x8C858B71,0x8F798BAC,0x8FFB8C64,0x90B19035,0x91F79114,0x94B993D3,0x953697A9, | |||||
0x9AAB982A,0x9E4F9A2A,0x9FA09D4F,0xA2E5A077,0xA789A4D2,0xA9ECA818,0xAEF8AC6D,0xB393B27D, | |||||
0xB8EBB67F,0xBE4EBDB8,0xC464C202,0xCB72C952,0xD453D00C,0xD9ECD7A4,0xE378DDD5,0xEBEDE73C, | |||||
0xF3ECEE8B,0xFC42F76F,0x04CF0092,0x0E190A5F,0x180C133E,0x20901ACA,0x29B0247C,0x317D2CC2, | |||||
0x3A243551,0x41F03DBD,0x482F46B0,0x4DA0496D,0x54F05455,0x5A5F5927,0x5D515B30,0x61B65CBE, | |||||
0x63B36333,0x6576658C,0x6B936A2B,0x6E7B6D97,0x712F6F7A,0x721470D6,0x726471CC,0x72DE72EC, | |||||
0x7362748F,0x71DA7315,0x6F0471D8,0x70956EA4,0x6DD46CAD,0x6CEC6B86,0x69816C0A,0x696A6A2F, | |||||
0x6787699A,0x64516784,0x636B649B,0x636261B2,0x60A26027,0x5CEC5CD9,0x5A7B5B84,0x56FD5944, | |||||
0x52E6556D,0x4FAB512B,0x490D4C8D,0x43F848F7,0x3DDB425E,0x38683B3B,0x32B835ED,0x2ADB2EFF, | |||||
0x243C27CC,0x1D1A20AE,0x15911889,0x0D6E1122,0x052809C0,0xFD63020B,0xF5F6F963,0xEDF4F0D5, | |||||
0xE5A7E880,0xDD2CE0C8,0xD58ED8B6,0xCD07D13F,0xC639C91D,0xBE72C2B7,0xB7B3BC5B,0xB260B681, | |||||
0xAD70AFE7,0xA84EA96F,0xA480A60B,0x9FBFA0C4,0x9CF89F3A,0x99889AD3,0x95FC9870,0x938895D1, | |||||
0x91D19477,0x91509189,0x8FF78EA6,0x8F938EE4,0x8D6E8E7D,0x8CB38DED,0x8E5E8F12,0x8E468E18, | |||||
0x8FF78EE3,0x926B9052,0x92D991B3,0x9529936A,0x96579746,0x9AEC9880,0x9CE59BB0,0x9E3D9CFC, | |||||
0xA2D69F26,0xA514A1D1,0xA693A634,0xA8E2A70B,0xAC7DACE8,0xAE9DAEE7,0xB407B1D9,0xB761B66D, | |||||
0xBC67B783,0xBFE7BCF1,0xC3BEC2D3,0xC76CC7E5,0xCE76CA99,0xD45CD2E1,0xD946D61A,0xDF11DBEF, | |||||
0xE50EE245,0xEBCFE8CB,0xF1FAED42,0xF7DAF5CD,0xFE99FB80,0x05D60255,0x0D65088C,0x14EE0F5F, | |||||
0x1ADA169A,0x22311E80,0x293E25C5,0x2EC72C97,0x35D2333B,0x3D1A3B10,0x42E03FE4,0x48C846B2, | |||||
0x4DDE4AF7,0x5320503E,0x56D75568,0x5A625920,0x5F085C53,0x621B603B,0x64666193,0x677564A7, | |||||
0x69A06759,0x69F76AB4,0x6BA96C3E,0x6D086DBF,0x6E406EBA,0x6F6D6F37,0x70606FC9,0x6FB46F7F, | |||||
0x6E996EDB,0x6E0F6DFC,0x6BB06DAE,0x6B0C6DC2,0x69656A0B,0x686968A7,0x65A766BE,0x635663E4, | |||||
0x61EA61C5,0x5F055EF3,0x5BDC5C99,0x58BB5A04,0x554757DB,0x51885384,0x4EAB507C,0x4B334CC6, | |||||
0x46B247F6,0x419043E9,0x3E313EC9,0x37133BB1,0x318D3639,0x2CA0307D,0x28082B1C,0x21B5250C, | |||||
0x1CCF1F9F,0x17FE1A56,0x11201354,0x0C220E4F,0x0613096E,0xFFD7022B,0xF9B1FC30,0xF403F7C8, | |||||
0xEDAEF0C9,0xE7EDE9A3,0xE1AAE4B0,0xDB4FDE23,0xD564D816,0xCF5ED23A,0xC992CCFD,0xC3CFC749, | |||||
0xBF17C1C8,0xB9A1BC46,0xB47BB71F,0xB041B282,0xAC11AE9A,0xA8C4A9D6,0xA3FDA674,0xA108A420, | |||||
0x9F8EA0B1,0x9D479E07,0x9AF59A98,0x992D991D,0x967E9918,0x962C969A,0x9512940C,0x948294A8, | |||||
0x92E19368,0x937692FC,0x93AB934D,0x93CB929C,0x94F493C4,0x947794F1,0x957A96F4,0x970C97EB, | |||||
0x9A4B98B5,0x9B8B9AE8,0x9D689C25,0x9E499E94,0xA2A2A0E5,0xA442A27B,0xA744A4E6,0xAADDA818, | |||||
0xAC3AAB16,0xB0BAAEC9,0xB3D7B118,0xB6F2B614,0xBB67BAAC,0xC027BD62,0xC51AC1F8,0xC954C65C, | |||||
0xCDE8CC33,0xD2BDD165,0xD853D64B,0xDCF3DA00,0xE28AE033,0xE733E49C,0xECC6E9D8,0xF1FBEEBF, | |||||
0xF672F45C,0xFBE9F965,0x00E0FE7D,0x0663036E,0x0BA208AA,0x11070E33,0x162F136F,0x1B8518AC, | |||||
0x20901E1F,0x25D2234B,0x2ACD2869,0x30072D8A,0x34D7325F,0x397A376B,0x3E8F3CA9,0x43514067, | |||||
0x473B45B5,0x4B574992,0x4FDE4D47,0x534751A6,0x560B555B,0x59C658EE,0x5D435B89,0x60365E61, | |||||
0x62416049,0x646D62B0,0x66AA6529,0x67AE663E,0x68F8682D,0x69CC696E,0x6A356ACA,0x6B656B79, | |||||
0x6BDD6B86,0x6B2B6B95,0x6B486B98,0x6B3B6B0B,0x6A246A10,0x68C56904,0x678868B3,0x64F1673A, | |||||
0x63E36609,0x627063CA,0x607F610A,0x5EC65E98,0x5B6B5C8D,0x589B59AD,0x553F5781,0x532B53BB, | |||||
0x4ED3511C,0x4BE44D2C,0x47AA4A67,0x43B04615,0x407841D8,0x3C973DEC,0x37703945,0x33023602, | |||||
0x2F2C31CB,0x2AD92C14,0x263427BF,0x216923B2,0x1CCA1FC2,0x180A1AE8,0x139C1636,0x0F46113E, | |||||
0x0A3D0D37,0x06540887,0x015203A2,0xFCF3FF28,0xF875FB28,0xF3A9F612,0xEF9AF14F,0xEB58ECDD, | |||||
0xE697E882,0xE223E42E,0xDD69DF7C,0xD9D8DBD4,0xD4C3D754,0xD149D318,0xCD2FCECF,0xC966CB0A, | |||||
0xC538C6FC,0xC127C389,0xBDC2BFBC,0xBA1EBC6C,0xB669B8DA,0xB3D1B59B,0xB057B257,0xADD6AF78, | |||||
0xAB6CAC5B,0xA89DA9D7,0xA632A6F9,0xA452A4F1,0xA22DA32E,0xA081A0ED,0x9EA79F30,0x9E229E4D, | |||||
0x9C609CA8,0x9B529C36,0x9AA69B28,0x9A8E9ACA,0x9A089A71,0x9A0E9A8E,0x9AAF9A39,0x9AFF9ABA, | |||||
0x9B5B9B49,0x9D149C58,0x9D849D06,0x9F1C9E6B,0xA12D9FFF,0xA286A181,0xA4DFA37A,0xA6D6A578, | |||||
0xA97CA807,0xAB70AA2A,0xAE45ACB1,0xB105B03A,0xB42FB2A2,0xB77AB599,0xBA5FB8E6,0xBE1FBC72, | |||||
0xC12CBFBE,0xC50FC35B,0xC88DC728,0xCC82CAC5,0xD062CE35,0xD460D2EA,0xD834D691,0xDCE3DAB5, | |||||
0xE10EDDFE,0xE4D1E2BA,0xE906E6BC,0xED39EB0F,0xF13DEF26,0xF5C4F35D,0xF997F785,0xFE12FBBA, | |||||
0x01EEFFA0,0x05FD041D,0x0A250856,0x0E630C8B,0x123410C7,0x16EE1466,0x1A7218FB,0x1EA51CEE, | |||||
0x22C920AE,0x26B62494,0x2A53286B,0x2E8C2C67,0x32082FC5,0x359333A0,0x39103782,0x3C893B1A, | |||||
0x40453E2A,0x43474180,0x468444F7,0x49A7481D,0x4C6E4AC6,0x4F374E1D,0x521C50C6,0x545C5313, | |||||
0x569555F7,0x58F5580B,0x5B105A21,0x5CE35BD1,0x5EA25DD0,0x5FE45F26,0x611360AE,0x62476210, | |||||
0x634762D0,0x640C636D,0x648063FD,0x64B8648D,0x64BC6483,0x6499647B,0x64106473,0x638463FD, | |||||
0x62E462FB,0x61B2624E,0x6072611B,0x5F056008,0x5D885E2E,0x5B865CAB,0x59755AC2,0x576158B6, | |||||
0x551D5650,0x529653F2,0x4FCF513B,0x4D184E98,0x4A2C4B66,0x47024873,0x43BC4517,0x40434206, | |||||
0x3CCF3E7C,0x39693B05,0x35A03777,0x31A5339D,0x2E0E3007,0x29FC2C05,0x25FD27F4,0x21C62400, | |||||
0x1DC51FFD,0x19631BE5,0x157317A5,0x11571353,0x0D380F02,0x08E20AD4,0x049006D3,0x00600287, | |||||
0xFC41FE1A,0xF7D2F9EE,0xF39FF5B4,0xEF24F188,0xEB00ECEF,0xE6C2E8B6,0xE26FE480,0xDE22E058, | |||||
0xD9F5DC40,0xD5FBD828,0xD1F0D3EE,0xCDE6CFFE,0xCA18CBFA,0xC637C825,0xC283C459,0xBEDAC0B7, | |||||
0xBB52BD2A,0xB7E0B987,0xB4B3B63B,0xB179B307,0xAE79AFE5,0xAB91ACEF,0xA8E2AA2D,0xA651A791, | |||||
0xA40AA50F,0xA1D5A2DC,0x9FDFA0E4,0x9E1A9EFD,0x9C8F9D4A,0x9B3B9BE7,0x9A0A9A9B,0x992699AB, | |||||
0x986598D8,0x98019831,0x97BA97C3,0x97B097A0,0x97CE97B9,0x981D97F9,0x98D79888,0x9995991D, | |||||
0x9A919A25,0x9BE29B2A,0x9D429C71,0x9EE59DF9,0xA0AB9FB8,0xA2AAA18F,0xA4C4A3B8,0xA71FA5EF, | |||||
0xA999A871,0xAC42AAED,0xAF11ADB2,0xB1F4B08F,0xB518B38C,0xB845B6B0,0xBB91B9E8,0xBF03BD4C, | |||||
0xC297C0C0,0xC634C44E,0xC9EBC80F,0xCDB4CBBA,0xD17DCF8F,0xD574D375,0xD95DD75C,0xDD5DDB5A, | |||||
0xE16ADF5B,0xE587E381,0xE9A6E7A7,0xEDE1EBCC,0xF213EFF4,0xF645F424,0xFA6FF859,0xFEA2FC8E, | |||||
0x02ED00C4,0x071C0503,0x0B670945,0x0F9B0D7D,0x13DA11D1,0x18111603,0x1C471A29,0x20541E48, | |||||
0x2467225E,0x28682663,0x2C592A68,0x30412E51,0x34053229,0x37D035E4,0x3B6E398D,0x3EE53D2A, | |||||
0x425D40AB,0x45AD43F3,0x48C94748,0x4BE44A66,0x4ED14D54,0x518B5033,0x542152E9,0x56A15567, | |||||
0x58DB57BD,0x5AE759F5,0x5CE55BF4,0x5E875DB5,0x600D5F67,0x616860CD,0x628A6203,0x638262FD, | |||||
0x642E63DE,0x64B86470,0x650664E0,0x6520651B,0x6517651C,0x64D164EB,0x644D648C,0x63AA6405, | |||||
0x62CB633C,0x61CA625C,0x609D6130,0x5F315FF0,0x5D9C5E73,0x5BED5CD4,0x5A0E5B07,0x58075911, | |||||
0x55DB56F4,0x538D54BA,0x511E5248,0x4E834FCD,0x4BCB4D32,0x49034A6C,0x4606478F,0x43084499, | |||||
0x3FF04174,0x3CB03E53,0x396F3B09,0x360837BC,0x3293344C,0x2F1F30E7,0x2B822D4C,0x27D929C3, | |||||
0x243E261E,0x20822264,0x1CDF1EB4,0x191C1AF2,0x1566172A,0x1192136C,0x0DC30FA3,0x09FE0BDC, | |||||
0x06330807,0x024F0442,0xFE7C0078,0xFA97FCA8,0xF6C9F8C1,0xF2F5F4D7,0xEF18F0F9,0xEB30ED2C, | |||||
0xE771E958,0xE3C0E59E,0xE017E1E7,0xDC8DDE45,0xD909DAB0,0xD58CD73E,0xD224D3D3,0xCEE2D082, | |||||
0xCB9ACD3D,0xC87BCA0A,0xC556C6F7,0xC273C3F9,0xBF8EC103,0xBCE3BE35,0xBA33BB74,0xB7ADB8DF, | |||||
0xB52FB673,0xB2F1B412,0xB0C9B1D2,0xAEC2AFC1,0xACDCADD0,0xAB20ABFA,0xA98AAA4F,0xA829A8C6, | |||||
0xA6D5A76E,0xA5B2A634,0xA4B4A52C,0xA3EDA450,0xA341A39C,0xA2CAA312,0xA274A2A5,0xA255A25F, | |||||
0xA254A260,0xA288A260,0xA2DCA2A9,0xA358A30C,0xA3FCA3A1,0xA4B6A45F,0xA5B8A53A,0xA6CDA62F, | |||||
0xA80FA75C,0xA961A8A3,0xAAE0AA17,0xAC6FABAC,0xAE35AD5D,0xB025AF30,0xB218B115,0xB43BB334, | |||||
0xB674B556,0xB8CFB79A,0xBB39B9F7,0xBDC1BC7B,0xC05EBF0A,0xC316C1BA,0xC5DCC46E,0xC8BCC747, | |||||
0xCBA5CA25,0xCE97CD27,0xD19FD02B,0xD4C8D342,0xD7F2D65C,0xDB20D980,0xDE6ADCB5,0xE1AEDFFF, | |||||
0xE4F0E357,0xE847E6AA,0xEBAAE9FD,0xEEF8ED4D,0xF26CF0B3,0xF5BFF404,0xF90CF76B,0xFC7AFAD1, | |||||
0xFFF9FE2F,0x0369019B,0x06D20510,0x0A4F0897,0x0DD00C0D,0x11320F82,0x14AD1308,0x18201678, | |||||
0x1B8419D7,0x1ED41D23,0x221A2076,0x255223B3,0x287326E8,0x2B9329FB,0x2E8F2D1B,0x31963012, | |||||
0x34793309,0x374D35EB,0x3A1E38B5,0x3CC73B76,0x3F703E23,0x420540AD,0x4476432A,0x46C445A0, | |||||
0x490A4801,0x4B384A2A,0x4D434C48,0x4F314E47,0x51115030,0x52C151EF,0x54595386,0x55D3550C, | |||||
0x570A566D,0x583857B3,0x594558BC,0x5A2359AC,0x5AD65A80,0x5B6D5B27,0x5BD55BA3,0x5C105C00, | |||||
0x5C375C28,0x5C2C5C2F,0x5BED5C10,0x5B925BD1,0x5B115B50,0x5A695ABF,0x598D5A0B,0x589A5924, | |||||
0x577E581F,0x565056EE,0x54E35586,0x5363541F,0x51B4527F,0x4FE150D6,0x4DFF4F04,0x4BF94CFA, | |||||
0x49D54AE9,0x478E48B0,0x45264664,0x42A943FA,0x40154172,0x3D763ECF,0x3AB03C07,0x37D93946, | |||||
0x34F03663,0x31ED3367,0x2EE8306D,0x2BCE2D4D,0x28A92A34,0x25682704,0x222A23BE,0x1ED22090, | |||||
0x1B8D1D36,0x183519D4,0x14C61677,0x11571313,0x0DEB0FAE,0x0A8E0C49,0x072608E8,0x03B3057E, | |||||
0x00380212,0xFCDBFE87,0xF955FB01,0xF5CBF786,0xF244F404,0xEEBDF073,0xEB34ECF9,0xE7BEE974, | |||||
0xE457E5FB,0xE0E0E292,0xDD81DF3F,0xDA36DBE9,0xD70AD8A3,0xD3D0D55E,0xD0B4D250,0xCDB8CF2A, | |||||
0xCABCCC2F,0xC7D7C946,0xC505C665,0xC24AC3A7,0xBF9DC0EB,0xBD0BBE5C,0xBA8DBBCB,0xB82BB972, | |||||
0xB5F1B70A,0xB3CDB4CA,0xB1B0B2AD,0xAFC0B0BD,0xADEEAED3,0xAC4BAD1D,0xAAB7AB82,0xA954AA01, | |||||
0xA80DA8A7,0xA6E2A77C,0xA5F4A662,0xA517A580,0xA470A4BD,0xA3E2A419,0xA380A3AF,0xA34BA361, | |||||
0xA341A337,0xA358A33E,0xA390A377,0xA406A3C0,0xA48EA449,0xA54AA4E1,0xA61FA5B2,0xA71FA6B1, | |||||
0xA848A7BC,0xA997A8F1,0xAB08AA4C,0xAC98ABC6,0xAE49AD6D,0xB022AF31,0xB208B10A,0xB41FB310, | |||||
0xB63DB528,0xB880B761,0xBAEDB9B0,0xBD5EBC16,0xBFF4BE90,0xC28AC13B,0xC54BC3EF,0xC819C6B8, | |||||
0xCB05C985,0xCDF0CC74,0xD0F3CF6F,0xD404D277,0xD717D584,0xDA2FD8B0,0xDD60DBDF,0xE0A2DF0C, | |||||
0xE3D2E241,0xE719E576,0xEA61E8C2,0xEDB3EBFC,0xF0F4EF49,0xF445F29E,0xF782F5D6,0xFACDF91D, | |||||
0xFE06FC76,0x0154FFB2,0x049302FE,0x07FD064A,0x0B370989,0x0E890CE0,0x11CA1031,0x1523137F, | |||||
0x185216B9,0x1B8F19E5,0x1EB11D14,0x21BB2027,0x24C62341,0x27B02646,0x2AA0293C,0x2D812C0E, | |||||
0x303E2EDF,0x32EC319C,0x3591344D,0x382436D1,0x3A8D3957,0x3CF23BD0,0x3F343E14,0x4168405B, | |||||
0x43884271,0x457C4488,0x476C468B,0x494B4851,0x4AFF4A26,0x4C9C4BD3,0x4E214D58,0x4F774ED3, | |||||
0x50D3502B,0x51F6516B,0x530A5285,0x53F75387,0x54D95457,0x55765512,0x560655CF,0x56785646, | |||||
0x56C556A3,0x56E956F8,0x570B570D,0x56F656FF,0x56CB56CE,0x5667569F,0x55F5562F,0x555755A2, | |||||
0x54AC550E,0x53D15437,0x52DA5355,0x51BE5251,0x508F512F,0x4F354FEE,0x4DD24E93,0x4C454D17, | |||||
0x4AA64B77,0x48DE49C5,0x470D47F5,0x4527460C,0x430D4410,0x40E4420C,0x3EBD3FDD,0x3C6F3D8E, | |||||
0x3A063B3D,0x379538D2,0x351A3658,0x328033CE,0x2FE2311F,0x2D202E75,0x2A522BCE,0x2785290A, | |||||
0x24B8262C,0x21D2234C,0x1EF1205D,0x1C0A1D77,0x190E1A77,0x160A177D,0x1308148E,0x0FFE1189, | |||||
0x0D060E7C,0x0A0E0B85,0x07000888,0x0408058D,0x00F60287,0xFDF8FF87,0xFAF4FC70,0xF7EDF96D, | |||||
0xF4E2F669,0xF1D6F357,0xEECBF057,0xEBCCED47,0xE8CFEA44,0xE5E4E755,0xE2EFE466,0xE01BE189, | |||||
0xDD4BDEAE,0xDA8EDBE7,0xD7C1D931,0xD52BD67D,0xD290D3CF,0xD003D141,0xCD88CEB6,0xCB19CC53, | |||||
0xC8BAC9F2,0xC688C7A4,0xC44EC56B,0xC231C334,0xC027C128,0xBE2BBF31,0xBC58BD46,0xBA99BB6B, | |||||
0xB8D8B9A7,0xB72DB810,0xB5B1B67A,0xB444B4FF,0xB2E9B398,0xB1BFB24E,0xB094B120,0xAF83B002, | |||||
0xAEA3AF05,0xADC2AE31,0xAD16AD71,0xAC7DACC1,0xAC0CAC2E,0xABA7ABCF,0xAB5AAB86,0xAB43AB58, | |||||
0xAB46AB43,0xAB68AB52,0xABA2AB85,0xAC06ABCB,0xAC7CAC36,0xAD1CACC0,0xADC9AD6A,0xAEA3AE4D, | |||||
0xAFA9AF23,0xB0B8B030,0xB1EAB14F,0xB343B28F,0xB4B0B3F1,0xB63DB563,0xB7D6B6EC,0xB986B8B3, | |||||
0xBB5BBA81,0xBD54BC58,0xBF54BE51,0xC171C068,0xC3B0C28F,0xC5F4C4C7,0xC855C71F,0xCAB6C982, | |||||
0xCD3ACC06,0xCFD2CE8A,0xD275D11C,0xD518D3D4,0xD7E4D682,0xDAAFD946,0xDD8CDC19,0xE065DEEA, | |||||
0xE35BE1C8,0xE63CE4C2,0xE929E7B3,0xEC27EAB1,0xEF24EDA5,0xF222F0A7,0xF522F3AD,0xF81BF685, | |||||
0xFB0BF994,0xFE0EFC95,0x0111FF8A,0x041802A5,0x07190597,0x0A2308B5,0x0D2B0BAA,0x10290EB6, | |||||
0x132D11BD,0x163A14AB,0x1920179A,0x1C041A87,0x1EDD1D67,0x21AC2039,0x24662301,0x272225C6, | |||||
0x29CC286B,0x2C4A2B20,0x2EEE2DAA,0x316A3021,0x33C432A0,0x36243509,0x3872374A,0x3A9E398A, | |||||
0x3CB93BBD,0x3EC63DCF,0x40CC3FC3,0x42A441A5,0x4469437E,0x461B453A,0x47A146E8,0x49244879, | |||||
0x4A9949E6,0x4BE34B49,0x4D224C8A,0x4E344DAF,0x4F454EC3,0x50234FB8,0x50FF5088,0x51AD514A, | |||||
0x523E51F3,0x52B1527E,0x530552F3,0x53565333,0x536D5360,0x53795373,0x5353535F,0x5320533D, | |||||
0x52BF52F5,0x524E5289,0x51BE51FE,0x510F5164,0x503650A3,0x4F434FCB,0x4E384ED2,0x4D1D4DC4, | |||||
0x4BDE4C8A,0x4A804B36,0x491449C9,0x478A483F,0x45D646AC,0x441944FA,0x423E4328,0x4052414A, | |||||
0x3E4E3F48,0x3C2D3D49,0x3A0A3B1E,0x37C738E3,0x356D36A6,0x330E3443,0x309B31D7,0x2E1B2F5B, | |||||
0x2B8B2CD2,0x28E62A42,0x26402797,0x238B24EB,0x20DC2233,0x1E111F6F,0x1B4E1CA4,0x186E19D2, | |||||
0x158C170C,0x12C01429,0x0FE11143,0x0CF30E71,0x0A1D0B9C,0x075808CE,0x047105E8,0x01AE030C, | |||||
0xFECA002F,0xFBE5FD53,0xF905FA79,0xF631F798,0xF353F4B6,0xF07BF1DE,0xED9AEF0A,0xEADEEC3E, | |||||
0xE81CE973,0xE56DE6B6,0xE2B9E41C,0xE01CE174,0xDDA2DED9,0xDB0CDC4F,0xD898D9DE,0xD62FD754, | |||||
0xD3D3D514,0xD18CD2AB,0xCF4ED06B,0xCD1DCE35,0xCB05CC16,0xC8FBC9FE,0xC704C7F2,0xC524C60F, | |||||
0xC34FC42F,0xC190C265,0xBFD8C0BC,0xBE49BF15,0xBCCABD96,0xBB59BC24,0xBA19BABD,0xB8DFB960, | |||||
0xB7ABB83A,0xB69FB721,0xB5ABB617,0xB4C0B526,0xB3FAB45A,0xB34CB38D,0xB2A3B2E8,0xB226B262, | |||||
0xB1A7B1ED,0xB151B197,0xB130B151,0xB101B117,0xB110B10B,0xB119B105,0xB148B12F,0xB18EB165, | |||||
0xB1F1B1B4,0xB26EB21E,0xB2FFB2B1,0xB3A8B353,0xB473B410,0xB549B4E0,0xB647B5E1,0xB76DB6D3, | |||||
0xB88EB7F7,0xB9D5B925,0xBB2EBA80,0xBC9FBBD8,0xBE25BD59,0xBFC4BEF4,0xC175C0A0,0xC335C24F, | |||||
0xC512C42C,0xC708C607,0xC8FDC801,0xCB1BCA06,0xCD37CC1F,0xCF61CE58,0xD1A9D085,0xD3F4D2D3, | |||||
0xD65AD526,0xD8CED77A,0xDB33D9EA,0xDDA9DC6E,0xE038DEF6,0xE2C1E17F,0xE563E41A,0xE7F8E69E, | |||||
0xEAA2E950,0xED48EBF6,0xEFEBEEAB,0xF29AF154,0xF550F3F8,0xF7FAF6A5,0xFAA4F94A,0xFD54FBF9, | |||||
0x0003FEAB,0x02B60163,0x05660413,0x081B06C6,0x0AC90976,0x0D8B0C22,0x102E0ED7,0x12E21181, | |||||
0x157B1423,0x181916D2,0x1AAC1950,0x1D1A1BDC,0x1FA01E5F,0x220220D1,0x24622339,0x26C22592, | |||||
0x290127E6,0x2B422A2B,0x2D6A2C63,0x2F9A2E89,0x31A830A9,0x33B532AE,0x359834AF,0x379036A6, | |||||
0x39613876,0x3B273A3A,0x3CDC3BF3,0x3E6D3DA2,0x3FF93F3F,0x417040B4,0x42D74225,0x441F4379, | |||||
0x455F44B8,0x467745ED,0x47874700,0x48784815,0x495D48F0,0x4A2F49CF,0x4AD94A82,0x4B7D4B2F, | |||||
0x4C014BC3,0x4C744C44,0x4CCD4C90,0x4D0A4CE7,0x4D214D1A,0x4D344D32,0x4D234D2A,0x4CF94D15, | |||||
0x4CB54CE5,0x4C644C99,0x4BE74C2D,0x4B664BAB,0x4AB14B17,0x49F94A62,0x49254980,0x483048AE, | |||||
0x472947A8,0x45FF468C,0x44CF456A,0x43804417,0x420942C3,0x4097414B,0x3EFF3FCA,0x3D4A3E30, | |||||
0x3B963C77,0x39BC3AAE,0x37DB38DC,0x35EA36F3,0x33E034ED,0x31C332DB,0x2FA430B9,0x2D6D2E8B, | |||||
0x2B272C48,0x28D92A03,0x268227A7,0x2418253C,0x219E22D9,0x1F242061,0x1C9C1DE0,0x1A1A1B54, | |||||
0x177718BD,0x14E3162F,0x12431396,0x0FA010FC,0x0CFC0E5B,0x0A5C0BBA,0x07C4091A,0x052C0664, | |||||
0x027D03D2,0xFFCE0131,0xFD2FFE8C,0xFA87FBE2,0xF7F1F921,0xF53BF693,0xF2A6F3F1,0xF003F142, | |||||
0xED6AEEA7,0xEACBEC1C,0xE845E98B,0xE5CFE70F,0xE361E4A1,0xE0F8E239,0xDEA8DFD2,0xDC51DD83, | |||||
0xDA27DB3A,0xD7F5D8FF,0xD5CDD6C7,0xD3A8D4B8,0xD1AAD2B7,0xCFABD0A3,0xCDC1CEC6,0xCBFACCC6, | |||||
0xCA1FCB04,0xC867C94F,0xC6C8C78A,0xC526C5F5,0xC39FC46F,0xC232C2F4,0xC0DCC187,0xBF9BC02E, | |||||
0xBE5BBEF3,0xBD45BDD2,0xBC36BCB0,0xBB39BBB2,0xBA60BAD6,0xB990B9FE,0xB8E2B937,0xB841B890, | |||||
0xB7BEB7FF,0xB754B773,0xB6DDB719,0xB6A5B6CB,0xB67EB688,0xB661B65B,0xB650B657,0xB66CB665, | |||||
0xB69BB680,0xB6D8B6B2,0xB73BB70C,0xB79CB76A,0xB82BB7E7,0xB8C9B878,0xB981B922,0xBA53B9D0, | |||||
0xBB21BAAC,0xBC12BB98,0xBD1DBC9A,0xBE37BDBA,0xBF6BBED8,0xC0B3C01E,0xC214C158,0xC37BC2C8, | |||||
0xC50CC43D,0xC68CC5BA,0xC83AC765,0xC9E1C914,0xCBB1CAC6,0xCD8BCC8E,0xCF5FCE75,0xD152D061, | |||||
0xD353D259,0xD56CD45A,0xD784D65B,0xD996D87F,0xDBCADABA,0xDDFBDCE6,0xE047DF20,0xE289E166, | |||||
0xE4DAE3B0,0xE736E5FD,0xE97AE856,0xEBEBEAC3,0xEE3CED26,0xF0B5EF89,0xF32AF1EF,0xF5A1F44D, | |||||
0xF7F9F6BC,0xFA57F91D,0xFCB3FBA2,0xFF39FDFE,0x01AC0065,0x041002DE,0x06820545,0x08EF07C2, | |||||
0x0B5F0A2C,0x0DC70C93,0x10150F08,0x1299115A,0x14FB13B2,0x173C15FD,0x19791857,0x1BB41AA0, | |||||
0x1DEE1CC5,0x1FFA1EF5,0x221B211E,0x242A2334,0x262E2537,0x28332726,0x2A172908,0x2BE62AFA, | |||||
0x2DB52CDF,0x2F7D2E97,0x312B3050,0x32C83210,0x3461339C,0x35EC3532,0x376036B9,0x38D2380B, | |||||
0x3A263977,0x3B5E3ABE,0x3C953C0C,0x3DC23D22,0x3ED33E39,0x3FB43F5B,0x40B74047,0x41924115, | |||||
0x425F41EB,0x42FF42AA,0x43974362,0x442443EE,0x44A3446F,0x44F944CE,0x455A4523,0x4592455D, | |||||
0x45A945A2,0x45C345BA,0x45BF45C8,0x45A945A5,0x455B459F,0x45324566,0x44DF450B,0x447544A5, | |||||
0x43F04431,0x436E43A5,0x42B64304,0x41F94249,0x41274194,0x403F40A7,0x3F463FBC,0x3E293EBC, | |||||
0x3D0B3DA9,0x3BD13C8B,0x3A8E3B45,0x394139F8,0x37D43895,0x365A3722,0x34DA358F,0x333D3401, | |||||
0x317F325E,0x2FD830B1,0x2E082EE6,0x2C352D1A,0x2A542B37,0x285C2958,0x2670275F,0x245A2558, | |||||
0x2243235F,0x20302138,0x1E081F1C,0x1BD31CF4,0x19B41ACA,0x17781889,0x15241654,0x12EC141B, | |||||
0x109911CC,0x0E4D0F81,0x0C050D38,0x09B80ADC,0x076F0883,0x0510063E,0x02CA03EE,0x006C0195, | |||||
0xFE17FF40,0xFBC7FCCF,0xF95AFA88,0xF6F7F833,0xF4A2F5DE,0xF25BF392,0xF00CF12B,0xEDBEEEDF, | |||||
0xEB83EC94,0xE937EA51,0xE711E826,0xE4E9E604,0xE2C9E3E7,0xE0CDE1D0,0xDEAEDFB9,0xDCC1DDCB, | |||||
0xDACFDBB9,0xD8F3D9E3,0xD719D7F0,0xD545D62C,0xD394D47D,0xD1F5D2CC,0xD057D112,0xCED3CF84, | |||||
0xCD44CDF4,0xCBCDCC96,0xCA74CB30,0xC92DC9C9,0xC7E5C87F,0xC6B7C74D,0xC5A6C62F,0xC486C50F, | |||||
0xC389C41A,0xC2B0C313,0xC1DDC237,0xC104C172,0xC05BC0BF,0xBFC6C016,0xBF41BF84,0xBECDBEFB, | |||||
0xBE74BE9E,0xBE20BE38,0xBDE2BE03,0xBDBCBDCC,0xBDABBDAD,0xBDA7BDAB,0xBDC5BDAC,0xBDDFBDC8, | |||||
0xBE20BDFB,0xBE61BE42,0xBECABE96,0xBF44BF00,0xBFC8BF8A,0xC05EC017,0xC10AC0B1,0xC1CCC171, | |||||
0xC2A1C23B,0xC381C313,0xC479C3F6,0xC583C4FC,0xC691C604,0xC7A6C738,0xC902C851,0xCA4DC98A, | |||||
0xCB9ACAD3,0xCD01CC4A,0xCE64CDAE,0xCFF1CF39,0xD186D0C3,0xD32BD258,0xD4CCD406,0xD695D5BE, | |||||
0xD859D75D,0xDA21D938,0xDC01DB0A,0xDDD5DCE4,0xDFC9DECC,0xE1BAE0BC,0xE3B6E2B8,0xE5A5E4AE, | |||||
0xE7B8E6C7,0xE9CEE8C1,0xEBEAEAD5,0xEDF2ECEA,0xF015EF0A,0xF228F11D,0xF45FF345,0xF678F55C, | |||||
0xF88CF77F,0xFAA9F99A,0xFCD6FBC4,0xFEFCFDE4,0x0119001C,0x03470236,0x05720454,0x07800684, | |||||
0x09B608AE,0x0BDB0AC5,0x0DFD0CEC,0x101D0EFB,0x122E1120,0x1447134E,0x164B1538,0x184B174B, | |||||
0x1A2F193A,0x1C151B20,0x1DF01D0A,0x1FC51ED7,0x219720B0,0x234B2268,0x2500242B,0x26A925CF, | |||||
0x2835277D,0x29B22900,0x2B472A84,0x2CAD2BFE,0x2E112D67,0x2F672EC2,0x30BE3018,0x31E53148, | |||||
0x3329327B,0x34313398,0x353D34C0,0x363035C2,0x373B36BB,0x380437A1,0x38EA3872,0x39AB3949, | |||||
0x3A4D39ED,0x3AD93AA6,0x3B6C3B3B,0x3BEF3BBA,0x3C5B3C22,0x3CB63C85,0x3CFF3CE1,0x3D393D1D, | |||||
0x3D503D46,0x3D673D6E,0x3D6F3D75,0x3D5F3D64,0x3D4B3D59,0x3D193D1D,0x3CD63CF2,0x3C833CA9, | |||||
0x3C153C4C,0x3BAF3BE2,0x3B1C3B6C,0x3A8A3AD3,0x39E73A38,0x39253993,0x386538CA,0x37A037FC, | |||||
0x36AD3713,0x35B8362B,0x34A6353C,0x338D3432,0x32713317,0x314531E2,0x300730B0,0x2EBF2F61, | |||||
0x2D612E0E,0x2C052CB1,0x2A8E2B2F,0x290529D4,0x27812841,0x25E026AF,0x244A2519,0x229D2378, | |||||
0x20E721CD,0x1F282016,0x1D6C1E52,0x1BAC1C79,0x19CC1AB3,0x17F018D8,0x160F1705,0x14291529, | |||||
0x1241133D,0x1057114F,0x0E680F4E,0x0C730D68,0x0A780B79,0x088B097F,0x069D0787,0x04970591, | |||||
0x029F0399,0x009601A2,0xFEA0FFA3,0xFC96FD9F,0xFA98FBA6,0xF8A2F9A2,0xF699F7A5,0xF4B2F5A1, | |||||
0xF2B2F3AA,0xF0AEF1AC,0xEEBBEFCC,0xECC5EDCB,0xEAFBEBDE,0xE91DE9F7,0xE748E823,0xE579E65E, | |||||
0xE3CEE49F,0xE20DE2E6,0xE065E12F,0xDEB9DF9B,0xDD2DDDF1,0xDBA8DC54,0xDA14DAD3,0xD89FD967, | |||||
0xD735D7ED,0xD5EFD691,0xD492D532,0xD346D3F7,0xD227D2C5,0xD0F2D190,0xCFE2D070,0xCEDDCF5A, | |||||
0xCDD5CE65,0xCCFDCD72,0xCC22CC85,0xCB4FCBA1,0xCA8BCAE8,0xC9D2CA28,0xC926C98C,0xC8B7C8ED, | |||||
0xC820C84D,0xC7B2C7EC,0xC743C77E,0xC703C728,0xC6C0C6DA,0xC69AC6AB,0xC681C684,0xC666C66C, | |||||
0xC67EC679,0xC680C67C,0xC6B9C6A0,0xC6E5C6D0,0xC731C70F,0xC785C75B,0xC7F4C7C4,0xC871C82E, | |||||
0xC8F7C8A8,0xC98DC942,0xCA36C9DF,0xCAEDCA91,0xCBBECB4C,0xCC88CC1A,0xCD6ACCF7,0xCE55CDDF, | |||||
0xCF59CEEB,0xD075CFDD,0xD180D0FC,0xD2B3D218,0xD3E8D348,0xD52ED487,0xD67AD5D1,0xD7D0D726, | |||||
0xD931D880,0xDAA8D9F0,0xDC2BDB63,0xDDA0DCE0,0xDF34DE68,0xE0CDDFFA,0xE260E199,0xE408E334, | |||||
0xE5BBE4DD,0xE768E688,0xE91DE844,0xEAD9EA00,0xEC97EBBD,0xEE69ED7E,0xF029EF3D,0xF1F3F117, | |||||
0xF3BEF2DD,0xF59DF4B7,0xF75EF67D,0xF925F854,0xFB04FA1A,0xFCD6FBE9,0xFEB8FDB2,0x0079FF8C, | |||||
0x02490164,0x0421033C,0x05F8050C,0x07D306D9,0x099008B3,0x0B5E0A7F,0x0D2E0C50,0x0EEB0E0D, | |||||
0x10AD0FD7,0x126A1192,0x1421133C,0x15C514E3,0x175B1686,0x18EC1825,0x1A7119B5,0x1BED1B39, | |||||
0x1D6A1CAD,0x1ED61E18,0x202F1F7F,0x218420D8,0x22CA2233,0x240D236F,0x253424AC,0x266225D1, | |||||
0x277826EC,0x287F27FA,0x297928FB,0x2A6D29F4,0x2B422AD6,0x2C142BBC,0x2CE52C7E,0x2D8C2D39, | |||||
0x2E4B2DEE,0x2EDA2E89,0x2F6B2F27,0x2FEE2FAC,0x305B301F,0x30BC3089,0x310630EC,0x315C3133, | |||||
0x318D3170,0x31B631A3,0x31CE31C7,0x31E231D6,0x31D531DE,0x31BF31D0,0x319D31B8,0x316F318D, | |||||
0x31393152,0x30E5310F,0x309130BC,0x302D305C,0x2FB62FF0,0x2F332F72,0x2EA22EF6,0x2E172E5E, | |||||
0x2D6B2DB5,0x2CB42D13,0x2BF82C59,0x2B2C2B98,0x2A5D2AC5,0x297B29EA,0x288B2909,0x27982815, | |||||
0x26992722,0x258E2616,0x24822509,0x236923F1,0x223D22D2,0x211521AD,0x1FE0207D,0x1EA41F43, | |||||
0x1D641E06,0x1C1B1CC1,0x1ACF1B78,0x19841A1D,0x182618CC,0x16C51777,0x15671618,0x140514B6, | |||||
0x1293134C,0x112D11EB,0x0FBF1076,0x0E4E0F0C,0x0CE30D9D,0x0B700C24,0x09FC0AB7,0x0890094B, | |||||
0x072807DA,0x05BD0670,0x045004FF,0x02DB038E,0x016B0228,0xFFFE00BB,0xFE9AFF4E,0xFD2BFDE3, | |||||
0xFBBEFC71,0xFA5AFB0C,0xF8F4F9A7,0xF798F844,0xF63EF6E2,0xF4E3F58A,0xF390F43F,0xF245F2EB, | |||||
0xF104F1AA,0xEFC0F060,0xEE87EF24,0xED5AEDF2,0xEC32ECCB,0xEB1AEBA3,0xEA07EA8D,0xE8FBE97C, | |||||
0xE7FDE879,0xE708E77D,0xE615E68B,0xE532E5A6,0xE457E4C7,0xE38BE3EF,0xE2C1E324,0xE205E266, | |||||
0xE158E1B3,0xE0B6E100,0xE014E065,0xDF8DDFCD,0xDF04DF40,0xDE83DEC2,0xDE17DE4A,0xDDAEDDE2, | |||||
0xDD55DD87,0xDD0BDD2F,0xDCC6DCE5,0xDC8DDCA5,0xDC5ADC73,0xDC37DC4D,0xDC1EDC2B,0xDC11DC18, | |||||
0xDC0CDC0B,0xDC0EDC07,0xDC1DDC14,0xDC36DC26,0xDC5BDC44,0xDC84DC6F,0xDCC0DCA0,0xDCFEDCDA, | |||||
0xDD44DD20,0xDD97DD71,0xDDF4DDC8,0xDE57DE26,0xDEC4DE8A,0xDF35DEFD,0xDFB6DF74,0xE037DFF0, | |||||
0xE0C4E07D,0xE155E10C,0xE1EFE1A0,0xE28FE23D,0xE338E2E3,0xE3E1E390,0xE498E43E,0xE552E4F0, | |||||
0xE60EE5AC,0xE6D0E66E,0xE798E730,0xE861E7FD,0xE92EE8CD,0xEA03E99F,0xEADFEA6F,0xEBBAEB48, | |||||
0xEC94EC24,0xED74ED02,0xEE56EDE2,0xEF3AEECA,0xF01FEFAD,0xF108F093,0xF1EEF17D,0xF2DAF265, | |||||
0xF3C4F34E,0xF4AFF438,0xF598F524,0xF67DF60A,0xF760F6EF,0xF845F7D2,0xF929F8B7,0xFA0FF99C, | |||||
0xFAF2FA80,0xFBD4FB64,0xFCB6FC47,0xFD99FD26,0xFE76FE07,0xFF51FEE2,0x002CFFC2,0x0102009B, | |||||
0x01D7016F,0x02AD0242,0x037A0310,0x044803E1,0x051304AC,0x05D50572,0x06970636,0x075506F7, | |||||
0x080C07B1,0x08BF0868,0x096E091A,0x0A1909C5,0x0ABF0A6D,0x0B5E0B10,0x0BFA0BAE,0x0C920C44, | |||||
0x0D220CDA,0x0DAC0D65,0x0E310DEF,0x0EAE0E71,0x0F250EE9,0x0F960F5E,0x0FFD0FCC,0x10631033, | |||||
0x10C01093,0x111610EB,0x11671140,0x11B2118D,0x11F711D6,0x12361214,0x126C1250,0x129E1288, | |||||
0x12CC12B5,0x12F212E2,0x13141303,0x132F1324,0x1347133C,0x1358134F,0x1361135F,0x13691367, | |||||
0x136A1369,0x13661366,0x1359135F,0x134A1354,0x13371341,0x131F132B,0x13011310,0x12E012F1, | |||||
0x12B912CD,0x128F12A4,0x125F1278,0x122E1247,0x11F71213,0x11BB11DA,0x117F119F,0x113E115F, | |||||
0x10F7111A,0x10B210D3,0x1065108A,0x10171040,0x0FC60FEF,0x0F730F9D,0x0F1D0F48,0x0EC60EF2, | |||||
0x0E6A0E97,0x0E0D0E3D,0x0DAF0DDE,0x0D4E0D7F,0x0CEC0D1D,0x0C890CBC,0x0C250C58,0x0BBF0BF2, | |||||
0x0B580B8C,0x0AF00B24,0x0A880ABB,0x0A230A54,0x09BD09EF,0x0955098A,0x08EF0922,0x088808BC, | |||||
0x08200854,0x07B807EC,0x07500784,0x06E8071B,0x068106B5,0x0619064C,0x05B105E6,0x054B057E, | |||||
0x04E60519,0x048004B4,0x041C044D,0x03B803EA,0x03570387,0x02F60326,0x029402C4,0x02360266, | |||||
0x01D80207,0x017C01AB,0x0122014E,0x00C900F6,0x0072009C,0x001D0046,0xFFCAFFF2,0xFF77FFA0, | |||||
0xFF28FF4F,0xFED9FF00,0xFE8DFEB3,0xFE44FE69,0xFDFBFE20,0xFDB7FDD9,0xFD73FD93,0xFD31FD52, | |||||
0xFCF2FD11,0xFCB6FCD4,0xFC79FC97,0xFC42FC5D,0xFC0CFC26,0xFBD8FBF2,0xFBA5FBBF,0xFB77FB8E, | |||||
0xFB4BFB61,0xFB1FFB35,0xFAF6FB0A,0xFAD1FAE4,0xFAACFABE,0xFA8AFA9B,0xFA6BFA7B,0xFA4DFA5D, | |||||
0xFA33FA40,0xFA19FA25,0xFA03FA0E,0xF9EDF9F8,0xF9DBF9E4,0xF9CCF9D3,0xF9BBF9C3,0xF9AFF9B5, | |||||
0xF9A3F9A9,0xF99CF99E,0xF993F997,0xF98FF98F,0xF98BF98D,0xF989F989,0xF989F988,0xF98AF989, | |||||
0xF98DF98B,0xF991F98F,0xF997F995,0xF9A0F99B,0xF9A8F9A3,0xF9B2F9AD,0xF9BEF9B7,0xF9CBF9C5, | |||||
0xF9D9F9D2,0xF9E8F9E0,0xF9F7F9F0,0xFA0AFA01,0xFA1CFA13,0xFA30FA26,0xFA44FA39,0xFA59FA4F, | |||||
0xFA6FFA64,0xFA86FA7A,0xFA9EFA92,0xFAB5FAA9,0xFACFFAC2,0xFAE7FADB,0xFB01FAF4,0xFB1CFB0E, | |||||
0xFB37FB29,0xFB51FB45,0xFB6DFB5F,0xFB8AFB7C,0xFBA5FB97,0xFBC2FBB4,0xFBDFFBD1,0xFBFBFBED, | |||||
0xFC19FC0A,0xFC34FC26,0xFC52FC44,0xFC6FFC60,0xFC8DFC7E,0xFCA9FC9B,0xFCC6FCB7,0xFCE2FCD4, | |||||
0xFCFFFCF1,0xFD1CFD0E,0xFD38FD2A,0xFD54FD46,0xFD70FD61,0xFD8CFD7E,0xFDA7FD9A,0xFDC1FDB4, | |||||
0xFDDDFDCE,0xFDF6FDEA,0xFE11FE04,0xFE2AFE1D,0xFE44FE37,0xFE5CFE51,0xFE74FE67,0xFE8CFE81, | |||||
0xFEA4FE98,0xFEBBFEAF,0xFED1FEC7,0xFEE7FEDD,0xFEFDFEF2,0xFF12FF08,0xFF26FF1C,0xFF3BFF31, | |||||
0xFF4EFF45,0xFF62FF58,0xFF74FF6B,0xFF87FF7D,0xFF98FF90,0xFFA9FFA0,0xFFB9FFB1,0xFFCAFFC2, | |||||
0xFFDAFFD1,0xFFE9FFE1,0xFFF7FFF0,0x0005FFFF,0x0012000B,0x001F0019,0x002D0026,0x00380032, | |||||
0x0044003E,0x004F0049,0x005A0055,0x0064005F,0x006D0069,0x00780073,0x0080007C,0x00890084, | |||||
0x0091008D,0x00990094,0x00A0009D,0x00A600A4,0x00AE00AA,0x00B400B1,0x00BA00B7,0x00C000BC, | |||||
0x00C400C2,0x00CA00C7,0x00CD00CB,0x00D300D0,0x00D600D4,0x00D900D8,0x00DC00DA,0x00DF00DD, | |||||
0x00E300E1,0x00E500E4,0x00E700E6,0x00E900E8,0x00EA00E9,0x00EC00EC,0x00EE00ED,0x00EE00EE, | |||||
0x00F000EF,0x00EE00F0,0x00F100F0,0x00F000F1,0x00F100F1,0x00F100F0,0x00F100F1,0x00F000F2, | |||||
0x00EF00F0,0x00EF00F0,0x00EF00EF,0x00EE00EE,0x00ED00EE,0x00EC00ED,0x00EB00EB,0x00EA00EB, | |||||
0x00E900E9,0x00E700E7,0x00E600E6,0x00E600E4,0x00E300E3,0x00E100E0,0x00E000DF,0x00DF00DE, | |||||
0x00DD00DC,0x00DB00DA,0x00D900D8,0x00D600D7,0x00D400D5,0x00D000D4,0x00CB00D5,0x00000000, | |||||
0x00000000,0x00000000,0x00000000,0x00000000, | |||||
}; |
// Audio data converted from WAV file by wav2sketch | |||||
extern const unsigned int AudioSampleKick[2561]; |
// Audio data converted from WAV file by wav2sketch | |||||
#include "AudioSampleSnare.h" | |||||
// Converted from snare.wav, using 22050 Hz, u-law encoding | |||||
const unsigned int AudioSampleSnare[2817] = { | |||||
0x02002BD3,0x65636656,0x6B6A6B67,0x7071706F,0x43637171,0x29ABBA23,0x3137474C,0x3A4A544D, | |||||
0x30C1542C,0xE14F6360,0xEDDCE2E6,0xEEF1F4F4,0xEEEDEAEA,0x3745A2E2,0xE7E6DAC8,0xC7C3C3DA, | |||||
0x2931A5C6,0xDCD6C813,0xEEEFE6DD,0x5750C0E5,0x24424E52,0xC4BEB2A5,0x0F4744A4,0x329AA698, | |||||
0x4C5E503E,0xC7D5D1D4,0x50737566,0x632BBED9,0x7A7C7A78,0x646B777A,0x5C595E62,0x60605C5B, | |||||
0x5F636462,0x14475057,0x271EC6C8,0xC9D8D2C3,0x68666252,0x53676666,0x4848D2D1,0xD2E3D7BB, | |||||
0xD7D2D6D6,0xDDD7D1CB,0xC4CCE3E7,0xD1BEBDB7,0xC6E3EBE5,0x493E2402,0xE6E9ECD4,0xCDECF1EA, | |||||
0x5320BFA5,0x70706C64,0x6F70716F,0x73717071,0x72717577,0x6F6F7171,0x6F747272,0x42584E53, | |||||
0x40402722,0x4E362416,0xD3A29A12,0xC2BCC0CD,0xEFE8E0CD,0xF4F4F3F2,0xF7F6F4F3,0xF8F7F7F6, | |||||
0xF9FBF9F7,0xDADFE8F5,0x973541AB,0xF3F2EEDD,0xCFEDF2F1,0x13925540,0x6260635B,0x6D696464, | |||||
0x6C6E696E,0x72716E6B,0x73767673,0x61747171,0x33913E34,0x726D6452,0x756E5161,0x73727274, | |||||
0x73747675,0x6B6F7676,0xB05E6B6F,0xE7E5D3D4,0xEDEFEEE6,0x8359ACE4,0xE3DDE7E5,0xF3F2F2EF, | |||||
0xF4F2F2F4,0xF7F5F3F4,0xFAFAF8F8,0xFFFEF8F7,0xFDFBFFFF,0xFBFCFAFC,0xE9FAFBFB,0x3823C0BC, | |||||
0x48282621,0x605D4246,0x69656560,0x71707070,0x76757574,0x74767575,0x696F7170,0xA1627170, | |||||
0x605E5F43,0x67545559,0x5E69696E,0xC084D9D1,0xBDC0DADC,0x37B291C4,0x545C5B5C,0x483C3D4F, | |||||
0xDFCAC1B7,0xF7F7F4EB,0xF5F3F2F4,0xFAFCF9F7,0xF4F6F9F9,0xEDF3F4F2,0xEBEEF5F4,0xE6E4EBED, | |||||
0xE6E9EDED,0xE7EAE7DF,0x696560C9,0x645E6164,0x6D6D656A,0xE6406263,0x50B223E0,0xAE3B4D5A, | |||||
0x594E534E,0x4F585958,0x53515152,0x565D3B3E,0x56504F44,0x4C4D5C5A,0x22535B56,0xE0D5303C, | |||||
0xD3BED6DE,0xCEA419C1,0xDBE8E5E1,0xABCDE1D9,0xD2CBDEDE,0xDEE2C0BE,0xBAC0E0DA,0xD7CDD0D1, | |||||
0xDCE4E3E0,0xE1E0D4D3,0xD5E2E8E0,0xE7E2DED6,0xE5E3EAEF,0xE4E8E7E7,0xE1D3D2E1,0xDEE0492F, | |||||
0xC9D5E6E1,0xCC45B2D5,0x614D129A,0x53534E5C,0x61666451,0x5F625956,0x5458533B,0x5C635A54, | |||||
0x68626A68,0x69706E67,0x5B66666A,0x5441383E,0x5AB5D82B,0x5E606660,0x4FAAC655,0xD34CD1C0, | |||||
0xE8E9E8E6,0xEEF1F0EB,0xE9E8E7F0,0xEAE6E9E2,0xEEE7E0ED,0xEEEEEFEC,0xE9E6ECF0,0xEEECE4E7, | |||||
0xEAECECE9,0xDEDCD0E5,0xE7EFF0DB,0xD9E5E3DF,0xB911D3DD,0x22B7C9C4,0x42AC5756,0x4E494151, | |||||
0x4653B8CE,0x4C4B4438,0x70685E48,0x6F6A6E74,0x646D6F71,0x65624D4F,0x706E635D,0x726E696B, | |||||
0x54636F70,0x33415660,0xCCD4B441,0xC2B7C9D1,0xD6D9DFD3,0xEBDFE0DF,0xE9EFECEC,0xF5F0E6E5, | |||||
0xF4F3F1F2,0xF8F9F9F8,0xF0F0ECF3,0xE1DDDFE7,0xF2E0E1E3,0xEEDFEFF8,0xF7F5F3F4,0xEFF0F3F3, | |||||
0xDBE0CEE4,0xD9CBD3D7,0x0242E5EA,0x553DD4E0,0xBAD6CA43,0xC0ADC1B0,0x4B4A30CD,0x62685E54, | |||||
0x4D505661,0x6457544F,0x655C6262,0x676F6768,0x42636B67,0xCEDBE3D5,0xE3DFD3C6,0xC2CACBE4, | |||||
0x11DFE6D3,0xD6CF994E,0xECF1F0E4,0xEDF1EEE8,0xF0F4F1E7,0xF4EBF0F1,0xDBD9E3F1,0xE9E5E7E6, | |||||
0xCADDE8EE,0xF5EEEBE2,0xE3E6E3F0,0x99D6E9E8,0xDBC92B40,0xD5D5CDDE,0xEEE3D3B8,0xC7D4E4EF, | |||||
0x623BDDD3,0x49563851,0x5E58AAC1,0xE1E2E3D5,0x4C4946AB,0x63614E34,0x5D616565,0x53335F61, | |||||
0x56686263,0x5B5744BE,0x959E5D67,0xDBDAD5C4,0xDEDCE4E7,0xE1E8EAE4,0xE4E7E2D8,0xE3E5DEDB, | |||||
0xDAD7D6CF,0xBFBFB3CB,0xCFD9A6BE,0x1F5309C9,0xD4CBDFD7,0x309339CE,0x524507B2,0xE1E4D34A, | |||||
0xC5E4E5D4,0xD62EC4C7,0x43C0CFDE,0x28325052,0xA5B3C130,0xD9D32826,0x4AB1D6D3,0xAB3BA3B8, | |||||
0x5B5E37B4,0x54419A99,0xC1515150,0x29D1D5D1,0xE0E1DF3B,0xD9DDCCDB,0xE2D3B7CC,0xE1D8E2E4, | |||||
0xE5E5E3E2,0xE2E5E6E6,0xE1E2E3E1,0xDCE6E7E5,0xD537B3D0,0xDDE3D8DB,0x9531D3D7,0x60624ACB, | |||||
0x80575C54,0x482226BC,0xD9D1DFB4,0xE5E9E3E3,0xCACCC9D8,0x525032B4,0x89D5D834,0xD6CCC04A, | |||||
0xD5D1B6DB,0xD5DBCCC7,0xCAE0D5B7,0x3F5C1DCC,0xE2E9DDCF,0xDFE4E1D1,0xDCE2E5E2,0xB0B7CBDA, | |||||
0xD047524D,0xE2E1D9D9,0xE0D0CEDE,0xD6E2E2E2,0xE2D4D0D2,0xC84123E0,0xE2E2E3DE,0xE8E5E1DE, | |||||
0xC8DCE7E6,0xE4E8EFE9,0xC6D9DEE2,0x2752A6B7,0xBAE2DECF,0xE0D0D2C1,0xDCDEE2E6,0xCAC6D8E1, | |||||
0x132C37B8,0x373EC1B0,0xD3DACFC0,0x34CEC9BA,0x533B555A,0x59404059,0x56D2DE49,0xC1B74663, | |||||
0xDCDAB8CF,0x36D8E0DA,0x260C4452,0xD4B4B2AB,0xE6DADAD9,0xE3E5E5E7,0xE4E0E1E4,0xE6E0DCE1, | |||||
0xE4E3D9E0,0xE4E4E2E0,0xEAE8E5E4,0xBED3DEEA,0xD1D3C815,0x35B0B5DC,0xD4924756,0xA5C5CBC4, | |||||
0xCB40503A,0xCED9D2D0,0x492FA8C6,0x4054514C,0xB20DB0C1,0xE3E1CEAE,0x3A80CEE3,0x49464C59, | |||||
0x50505441,0x59605C5C,0xC1D4C54C,0xE3DC313D,0xCAD3C1D7,0xC3D1D3BE,0xD61B4602,0xCD10B7DB, | |||||
0xDFE1D9D1,0xE0D6E2E4,0xE0DAD3E0,0xD0CFDDE2,0xE0E0DCD6,0xEAE7E8E2,0xE4E2E5E6,0xD7E3E2E7, | |||||
0x20B03422,0xD1CEC6A5,0xC1B1BFC1,0x4237BFE0,0x58573A49,0x1B99313F,0x232BD024,0xE0E1D5C1, | |||||
0x92A9BFD0,0xAEBBC7CB,0xB4D6DBD7,0x54535B5A,0xD2B35257,0xD6B94FA7,0xD1CEACBB,0x903742A3, | |||||
0xB2B99093,0xD7D4D4B8,0xE3DED7DC,0xDED7D5E0,0xE4E4E6E2,0xDFE2E0E1,0xE2E0DCD8,0xD7DFD9E0, | |||||
0xE2E7E7DD,0xC8CDD8E1,0xC8ADC5CB,0xD8D6D0D1,0xD4D7D0C7,0xCFA3BFD2,0x4427CAD2,0x90A9C4B5, | |||||
0x38B2D2D2,0x37C9D593,0x373A2D3D,0xC1CCC7B5,0xACD8DDC7,0x38B9D4A1,0xC6C3CCC3,0xD1DDCBC5, | |||||
0xE0DED5CE,0xD8DDD1D5,0xD5B72AC3,0x3B464833,0xE1DEC7AC,0xE3E4E5E3,0xDCE0E2E4,0xDED2D3D4, | |||||
0xD5D8DBE0,0xC0C7CAD1,0x4832340B,0xD2D1CE95,0xDAD2D5D6,0xD4D5D3DA,0x90495228,0xE0D9A604, | |||||
0xCCD1CCD6,0xAFCEDBC9,0xC7CAD2D0,0xCEBDC1C6,0xD8D5D1D2,0xD7D2DADC,0x474315D1,0xBEC3CCAF, | |||||
0xA6A61F08,0x30D5E0D0,0xD6D0184B,0xB8D0D8DB,0xDBD8CCC6,0x114229C2,0x08B5D4D5,0x84194133, | |||||
0xD5DCD78F,0xD5D4C8D1,0xCD20B5CC,0xCAD7D4D2,0xE5DBBDBE,0xD5DEE2E3,0xE1E2E1DC,0xE3E6E5E1, | |||||
0xB9AEC3D6,0xDBD7CAB9,0xD3D9DCD9,0xCAD1C9CE,0xAEC8C6C5,0x8C4D47AE,0x479FC8C6,0xC3275055, | |||||
0x2F26A5C4,0xC89F3F41,0x3D445825,0xC49B3747,0x93871396,0x351F3230,0x58534B46,0xC79C3248, | |||||
0x01372DC7,0x14B1BCBC,0xD0D2C040,0xBFD4E1D9,0xD8D9D4CD,0xCFD3DCDA,0xE1D9D6D7,0xD6D5D1D7, | |||||
0xD7DCD9D1,0xD5D4D4D7,0xDFD4D2D7,0xCAD1D1DA,0xB4C1B3C1,0x10A2BC97,0x27C1C6B4,0xC8C4B637, | |||||
0x2517CBD5,0xCEC2BAB5,0xC0C8C9C5,0xB3BAB5BF,0x82474523,0x35221E09,0xCBC4C1B6,0xE0D9D1CF, | |||||
0xD3D7DEDE,0xCAD6D8D6,0x2BB1C9C6,0xC7C03A37,0xBC362CB6,0xB0C2C2C7,0xA394BF28,0xC2B220B6, | |||||
0xC9D1D3D1,0xDCD1C2BE,0xE0DCD5D9,0xDDDBDCE0,0xDAD9D4D5,0xD4D4D7D8,0xD6CFC8D2,0xD6D1CFD6, | |||||
0xDBDBDAD8,0xC0C8D1CF,0xD7C6C5C4,0xD2DADEE2,0xCEC9D0D1,0xD1D7D4D3,0xD1CFD4D0,0x92C4D2D2, | |||||
0x208AC6BA,0xC10032AA,0xC7C7C0C1,0xCAD3D9D2,0xC9C6D2CF,0xD2D2CACD,0xC7D2C6BB,0xDBDBD5CA, | |||||
0xD2CDD4DC,0xC7D1D0D0,0x17402AB1,0xC9C6C0AB,0xCBD5CCC6,0xAEA4A6B7,0xDFD6D3CA,0xD8D4DBE1, | |||||
0xDBDCDBD9,0xC6CBD3DB,0xE0DBD4CC,0xCFD8D8D9,0xD4D3D3CF,0xCCC8C9D1,0xD1D0C4C5,0xB9C8D1D0, | |||||
0xAEA9B0BD,0x33423BA0,0x4094B8A4,0x2699B838,0xB1B10722,0xBDCBC6B3,0x9AA2B1B6,0x42313335, | |||||
0x2F383E3A,0xC8219C21,0xD1CECED5,0xE0DFDAD6,0xD2D3D8DE,0xC7D2D5D2,0x2617B0C1,0xC0C39B34, | |||||
0xC0B51EA1,0x94C0D1CA,0xB303A3B3,0xCDB90820,0xC4D1D8D7,0xCEC8C9C5,0xD2D4C9C9,0xB8C4C4C5, | |||||
0xD0CBC2B4,0xB7BCC6CE,0xB4AD2500,0x402D3C29,0x44A9903C,0x474B3A43,0xCC345047,0xA889B3C4, | |||||
0x173718BA,0xAFB9BAA9,0xB7C2B2A4,0x304210B5,0xBE11A1B6,0xC3BAACBC,0xD3D0C8C5,0xBDB8C9D5, | |||||
0xBDBBBEC0,0xD1D0C3BE,0xD0D1D2D0,0xD1CDD4D3,0xC0C6CBD2,0xBEC8C8BE,0xB3B4A5AA,0xC2C1C5C1, | |||||
0xCAD0C6C0,0xC12680C4,0xDBD7CBCD,0xD3D4D8D6,0xCFD4D7D6,0xC0B5C4C8,0xD8D0C3CA,0xC8C9C6CE, | |||||
0xCFD7D4C8,0xBAC0C2C5,0xC4B8BFC6,0xB4CAD1CB,0x16B0B7A2,0xBCB82832,0xBFBEC6BE,0xC8C9CDCA, | |||||
0xC3C8D0C8,0xC9B6B8CA,0xB2BCCAD1,0xC8B8BBC1,0xB6ACACB6,0xCAD1CBC4,0xD3D0D7D4,0xD7D9DAD9, | |||||
0xC4CACED1,0xC6D0D4CF,0xD6DBDBD1,0xC7C4D0D5,0xC3C5D0D3,0xC0AFA8C0,0xC9D2D3C7,0xC3B7B6BD, | |||||
0xBAC1BAC7,0xC6C3C2B7,0xD3CDC3BC,0xB1B3CAD4,0xD0D1C9C0,0x9FC1D0CD,0xB8C3B7B9,0xC1A3B1A2, | |||||
0x2616B4C4,0xCCC70B09,0xAC1785B6,0x98B5BCB2,0xBAA5AEA9,0xCEC5C6C7,0xD3D1CED2,0xD3D3CDCB, | |||||
0xD3D2D1D3,0xCDD0CACC,0xC296ADC9,0xC0C3BCC2,0xBFA1268B,0xD2C7B5B8,0xCDCCCCD0,0xBFC5D0D5, | |||||
0x2B2DA4B6,0xAAA08906,0x1FB2B194,0x411CA122,0x1A41504D,0x2112C1BF,0x90C0B017,0xBBA8262E, | |||||
0xBFB30694,0xB5AAACBD,0xC1CECBC3,0xD0C51E16,0xBBC7CAC8,0xC9CCC2B7,0xC1BEBAB8,0xC2C6CCC7, | |||||
0x25AEC2CA,0xA90C0E2F,0xC5CBCDC1,0xD1D1C9C5,0xB0CBCFD0,0xC9C4C4B0,0x3221B9C3,0xADB1A8A6, | |||||
0x3910BDAE,0x9BA40927,0xB10B3439,0xA888A4BF,0xB6B0A0AE,0xC1B2B2B4,0xB5ACBCC3,0x193E32B3, | |||||
0x2F2395A2,0xAE2D3F26,0x3A31ADAF,0x2FA5B084,0xB297223B,0xA4A2A2B8,0xCFD3D3C3,0xCCC2C2CC, | |||||
0xCDC7D2D1,0xD3D3C8CE,0xD0C9D3D5,0xD5DAD9D5,0xCBCFCED0,0xBDC6C8CB,0xA6BFC6BA,0xAD1B2905, | |||||
0x89122613,0xB4C3B7A8,0xA70CA7AA,0x200EBCBE,0xC8B8A2A5,0xB0B5C0C5,0xB2BDB0B0,0xB8B2BFBA, | |||||
0xB9C0CAC3,0xB9AE8BA6,0xC5C7C3C3,0xC3BEC0C2,0xC8C4C4C1,0xC9D0CDCB,0xCDCAC7C3,0x83B2C1CE, | |||||
0xC9C6AF21,0xC8C8C6C4,0xCFD1D0CA,0xCBCECBCA,0xB1BCC8CC,0xCBBBB2AF,0xC5C5C8CD,0xCCCACCCB, | |||||
0xD2D2CCC8,0xCCCECFD1,0xB7C6C8C7,0xB4BCB1AC,0xB3B7B29D,0xB7C2C1B1,0xCCCAC7C2,0xB6C2C0C2, | |||||
0xCBCCC9C1,0xC8C8C8C7,0xBDBAB9C0,0xC7CFC9BF,0xC2C4CECD,0xB7C4C2C3,0xCAC0B5B6,0xBBC4BEC0, | |||||
0xC5C5C2B8,0xC0C8C5C2,0xB4A8ABB9,0xB1B1ABB1,0xC8C1B9AF,0xC7D0D2CC,0xB3B6B9C0,0xB5BBBDB6, | |||||
0xC5C1B5B8,0xC3C6C9C7,0xD0D1D0C8,0xC8CAC8C7,0xD0D3D2CB,0xCDC7C3C9,0xCCD0D4D3,0xC7C7C8C9, | |||||
0xC7C7CBCC,0xBDBFC4C7,0x4133299E,0x3E34323B,0x3E413D3E,0x4140423D,0x1B2A3843,0x2C3D3E31, | |||||
0x24B0A403,0x042B393C,0xB6BCB6A5,0xC1BBB2AD,0xC8CCCEC8,0xC9C8C5C7,0xC0B4C0C7,0xADADB9B8, | |||||
0xC1B9B5C0,0xC6CDCBC8,0xA3959EA9,0xBFC0C0BB,0xC2B4B3B5,0xB7C0C6C9,0xADACB4BA,0x8D9CA7B1, | |||||
0x9628352C,0x8109A6AA,0xBBB6AD9A,0xB5C0C5C1,0x930E9CB5,0x30990314,0x232A353D,0x2D31322F, | |||||
0x3F434033,0x2E203235,0x24353235,0x9615261D,0x1189AAA9,0x1104A39D,0xC9C1B2A1,0xB39FBFCC, | |||||
0xC7C8CDC8,0xC2B8B5C0,0xBFBFC7CA,0xC4C4C1C2,0xB0BDB9B6,0x96082296,0xBFB5A812,0xC7C5C3C2, | |||||
0xC9C2C4CA,0xC4C0B1C4,0xB9C4C8C5,0xBEBFB493,0xC2C2C1C5,0xC2BFB8B6,0xB7ACC1C7,0xB5C7C9C4, | |||||
0xB1B0B3AA,0xBBB2B0B7,0xC1C3C2BC,0x2F97B3B7,0xBEC0AD24,0xA6B4B4AD,0xBFC8C4BE,0xBDBAA50F, | |||||
0xAC0291B7,0xB4BEC2BA,0xD4CEBDB3,0xC3C8CBD1,0xCED1CDC7,0xC5C7CEC6,0xCDCFD0D1,0xD7D2CEC9, | |||||
0xCFD1D4D7,0xCED0CFD0,0xCBC5C2C9,0xADB6BFC5,0xB9BCC3BB,0xC3C0C0BB,0xB2BFC2C7,0xC3C8BDA7, | |||||
0xC6C6BBAC,0xC6CDD1CD,0xB8B7BEC1,0xB3BCB1BD,0xB4B3B2A8,0x9111ABB0,0xC6C3BAB0,0xB8C0C0C7, | |||||
0xBFB4B6B6,0xC5C1B7B3,0xC3BEC1C6,0xA1C1C8C7,0xB407809A,0xB9BEC5C4,0xC2C4C4BC,0xB9BAC3C4, | |||||
0xA5BDB9BB,0x151E150B,0xB6C4C4AF,0xBBBAB9B0,0xC4BCBCBD,0xC1C0C4C8,0xBDBDC4C6,0x121982B7, | |||||
0x8A302D80,0xB30D2288,0xB1AE94A9,0x9806B2B5,0xB8B30492,0xBDB5AFB7,0x95A3B1BB,0xB011050E, | |||||
0xC0C3BABB,0xA6A2A9A5,0x230009AE,0x242A9D88,0x14313728,0x32392D14,0x433B3B35,0x41424243, | |||||
0x383D3D3F,0xBAAE162E,0x322B13AD,0x911D2D32,0x8791821D,0xBEBAB5B4,0xC4B9AEB3,0xB3B0BEC6, | |||||
0xC3BEB2B2,0xB5B5C0C2,0xC7CBC6C1,0xBABDBFC0,0xC0C3B9B4,0xBEC0BEBB,0x1893B0B5,0x222B2F28, | |||||
0x2623281D,0x34322C30,0x21373530,0x31209BA3,0xAC90142C,0x383D33A4,0xB092202D,0x152283AE, | |||||
0xC0B8A70A,0x87A0B6C0,0x1EA9B0A8,0x041F9D11,0xA3B09021,0xC2BDB2AD,0xA294B9C4,0xC0BDA593, | |||||
0xBBBBC1C2,0xC6C9C7C0,0xC2C3C1C2,0xBFC2C1C0,0xB2AFBDC1,0xBCC3C4BE,0xB8B1B3B4,0xCDCCC5C1, | |||||
0xB5C0C4C7,0xC0C2C1B8,0xAD9EADBD,0xAFA8AEB1,0x0BADABAB,0x8E90821D,0x1591909C,0xAC011D2D, | |||||
0xB0BBBEBA,0x27292B19,0xB7B11F26,0xB3BCC2BF,0xBFBAB2A9,0xB6B1BABC,0xC8CAC0B8,0xC0C0C1C3, | |||||
0xC2C1C0C3,0xADB1B3BA,0xB7B3B7B5,0xC0C2BBB3,0xB0BCC3C2,0xB5B7BDBD,0xA3B6BEB5,0xC0BBB3A5, | |||||
0xC8C6C4C1,0xB6C0C4C7,0xC4C5BFB8,0xC6C5BCBD,0xBEB3B9C3,0xB7B4B3BB,0xB4B99CA2,0xB4B8B1A7, | |||||
0xB3A9ABB1,0x14A1A8AF,0x2A222324,0x31323432,0x3236281C,0xAD173437,0x969AA9B5,0xA7B3AC99, | |||||
0x2C220BA0,0x131C2E30,0x9A9AA00C,0xBCBFB6A1,0xC7C3C3BF,0xCFD0D0CF,0xC3C6C8C9,0xB4C3C7C5, | |||||
0xBBB7B1B0,0xB1A3B2B9,0xB4BEBFB7,0xBAB7B4B3,0xC3BDB9BA,0xB8BDBEC2,0xAFAFABB0,0xA30396AB, | |||||
0xAEA9A7A6,0xB0B2BDBC,0xA8ABA3AE,0xA8929299,0x8C181CA0,0xA7ACB8AF,0x899FA3A3,0x88102310, | |||||
0x38322C1B,0x2723162C,0xA4808B82,0xB4A88B87,0x98AFAFB0,0xA59D8B84,0xA7AEB0B0,0xB4ADB0AD, | |||||
0xC3C0BBB8,0xC2C2C3C3,0xC2C2C4C4,0xC5C4C2C1,0xC3C2C2C5,0xC5C4C0C1,0xB3B1B6BF,0xBABAB9B7, | |||||
0xA3A9B0B7,0x990AA3A1,0xA38C9FB1,0xB6B2A1A1,0xA0A3A6B1,0x149AA79B,0x1FA00E20,0x2020242E, | |||||
0xA2A4A706,0x980D2384,0x1097959C,0xBCB7A51C,0xB3B1A7B2,0x95909EB0,0x1F2F3210,0x9E072223, | |||||
0xC0B3A9A6,0xB7B4BAC0,0xBBB8BABB,0xC4C5C1C0,0xBBC1C1BD,0xB0B6B2B5,0xBFB4A09C,0xBABBBDC0, | |||||
0xC7C3C1BB,0xC2C5C9C9,0xB1B5BDC1,0xA2B0A6A9,0x949C9C8D,0x209BAAA9,0xA88B0923,0xB0AEB1B3, | |||||
0x8DA8AEAF,0x1C1A2C26,0x2F2E2A2A,0x2E2B3333,0xA60C282E,0xB4A8A1A6,0xBAB5B5B7,0xBCBBBCBF, | |||||
0xB0ADB2B7,0xBFB8BABA,0xB7B9B9BD,0xB4B6B6B5,0xB5AEACB1,0xB1B1B0B2,0xA7A9A6AA,0xB2AB8AA0, | |||||
0xB3B3AEAA,0xC0C0BCB2,0xBBC0C1C0,0xB4B4B5BB,0xABB0B8B6,0xB3ACAEAD,0xB6BBBBBA,0xB8BCBEB6, | |||||
0xACB4B9B7,0xBAC1BDB3,0xB0B4B4B5,0x85A6A9A8,0x0E821822,0x9F910019,0xB9B9A89F,0xADA59FAD, | |||||
0xB2B0AEB0,0xA7B2B6B2,0x8295A6A9,0x261B0B11,0xABAE9226,0xABA8A8A4,0xC4C3BFB6,0xBABDBFC3, | |||||
0x9EA8B1B6,0x98A1A79B,0xA899959D,0x29229CA7,0xB7B0980B,0xBCBCB7B3,0x94B1B8BC,0x22869812, | |||||
0x17900E1B,0xA2929619,0xBFC0B8AF,0xC4C4C0BB,0xC4C2C0C1,0xB9C0C0C2,0xB2AFAEB3,0xAEB4ACAE, | |||||
0x958B999F,0x99939B9E,0x8C9D0311,0x160D0801,0x25179792,0x17080325,0x11959209,0x9D9AA297, | |||||
0x179BB3B0,0x20161623,0x23212725,0xA3931523,0xB5B1B1AC,0xBFBEBAB9,0xB7B5B9C0,0xC1C1C0BA, | |||||
0xB7B8BCC0,0xB6B9C0BE,0x91ABB2B3,0x1396A092,0x9CA9A88E,0xA8A6AA9F,0xAFB1B1B0,0x21969A9E, | |||||
0x9D9B1C28,0x97928E09,0xA6AFAEA5,0xA7A5A5A4,0xB2B0B5B5,0xB1AAB2B6,0x31290FA4,0x2217212C, | |||||
0x87283028,0x1587938F,0xB3B0A798,0xAEB2B1AD,0xB0B7B5B1,0xA5A4ADA8,0xA6B0B4B2,0xB0B3A59E, | |||||
0xB0A8AAA1,0xBDBEB5B3,0xB4B3B6BD,0xB2B3B3B1,0x9CA3A1AE,0xBAB4B3AB,0x888BA7B3,0x85949B9C, | |||||
0xB1A7978F,0xB0A7B7BB,0xAEB5B7B7,0x29262289,0x24202728,0x84860828,0xA5A4A498,0xB7B8B1A6, | |||||
0xB4B7B8B9,0xC2BFB9B7,0xB2B6B9BE,0xA3A5A8B1,0xB0AB9B95,0xA3ACB2AF,0xA49F0000,0x27171195, | |||||
0x8D9D911D,0x8D929982,0xB3B1AB9E,0xBCBEB7B4,0xABB1B9BB,0x0B9A9CA1,0xA49C8B16,0xADB1B2AC, | |||||
0xB0A890A7,0xB2B3AEA7,0xB9BBB6AF,0xACAFB6B9,0xA9B2B0AA,0x9EA0A09B,0xA0998C94,0xACAFB3AD, | |||||
0xA9B1B1B0,0xA4A7AEAB,0x172518A0,0x14909995,0x918F0A25,0x86959494,0xAEA49790,0xB4B5B5AE, | |||||
0xB9BAB9B8,0xB7BDBCBD,0x95A1AEAD,0x27140D07,0xAC9A0F25,0xAEADAEB2,0xA9ACAEB0,0xA4A3ACAB, | |||||
0x929387A3,0x94909A8B,0x87008090,0xB5ABA29B,0xB7B6AFB3,0xB9B8BBB8,0xB0AEB0B5,0xADABACB1, | |||||
0xA2A1A5AB,0xA096A0A7,0xA39C9CA0,0xA6A6A0A2,0xA39A97A0,0xA5ADB1AC,0xB2A79D9B,0x9A9EA3B1, | |||||
0x989B9E93,0x161C1796,0x9999A088,0x8E151481,0xA1A1A0A6,0xB3B3AC9F,0xA1AAB1B3,0xB0A7A196, | |||||
0xA69EA4B4,0xBBB9BCB1,0xA6ADACB6,0x118AA4A3,0x979B0B0E,0xA0959394,0xAEACA59E,0xB0A9A9B0, | |||||
0xB1B4B6B1,0xA0A6ACB1,0xB5B0A59D,0xB2AFB3B4,0xA7A9AEB5,0xA4A09DA0,0x82A1A8A6,0x8785191A, | |||||
0x2A190F02,0x27292F33,0xA3A49F0F,0xBAB6AAA3,0xA6B2B4B8,0x9398830E,0x0A95A4A6,0x9F959112, | |||||
0x1380959E,0xA9AA9D00,0xB6B1ABA8,0xB3B3B7B8,0xB4B4B2B3,0xB0B4B4B4,0xADAAA0A5,0xA9A5ABA8, | |||||
0xAFAFB3B3,0xA69B96A9,0xA0A4A4A8,0x0891A297,0x1E170090,0x1D212421,0x81202120,0x069B9B97, | |||||
0xB8B5AD8C,0xACB4B6B9,0xAAB0B0A5,0x0B91A2A6,0xB0A3A395,0x9DA3B0B4,0xADB1B0A7,0xAEACA6A1, | |||||
0xABADA3AB,0x1D141387,0x01202820,0x9D8B9292,0xA8A09DA1,0x9BA8AFAD,0x94919193,0x28220296, | |||||
0x0E131920,0xA59C998B,0xABA8A7A9,0xA4ABABAA,0xB0A9A59E,0x9FA2ABB3,0xB3B5AB9A,0xA9A6A9AE, | |||||
0xB3B5B5B0,0xB0ABA4AD,0x97A8ACA9,0xA1A3A192,0x8388929F,0xB3A19794,0xA6ACA8B1,0xADAAA3A2, | |||||
0x999298A5,0xAB9D939E,0x949398A4,0x12140C97,0x2A292721,0x272E302B,0xA39D821D,0xACAEAFA6, | |||||
0x90A4A9AC,0x95959C88,0x9DA29F9E,0xA1A2A099,0xA5A39CA0,0xB3B4B2A9,0xB5B6B7B4,0xB0B4B4B3, | |||||
0x03058EA8,0x16131713,0x9F0A2324,0xB3B4B3AE,0xACAFB1B1,0x96A0A1A7,0x8D81938F,0x00030A90, | |||||
0x1C201808,0x040F171A,0xA49DA39C,0xABACAAAA,0x8A93A0A9,0x8A05958D,0x93959599,0x97A2A59D, | |||||
0xA2A2A29D,0xA8A2A4A3,0xA8AAADAE,0xB0B2B0AA,0xA29CA1A9,0xA0A8ADAA,0xA5A09298,0x1600A2A2, | |||||
0xA09F8403,0x13110099,0x99999714,0xAAA19099,0xA3ADB0AF,0xA5978790,0x09A2B0AB,0xB0B0A393, | |||||
0x8690AAAF,0x231C1D07,0x1E282829,0x15101515,0x9A900109,0x989DA29D,0xB0AEA6A4,0x8F99A2A6, | |||||
0xA291808A,0xACB1B1AC,0xB0B4B4AD,0xA9A9A8AE,0xA9AEAEAA,0x94160B9D,0x869CA0A1,0x252C2A19, | |||||
0xA89B1122,0xB4ABA7A7,0xB4B7BBBB,0x8D0894AF,0x0A92820C,0x1723291F,0x13068B05,0xA490131A, | |||||
0xA8A5A1A3,0xB1B4B2B0,0xA8A4A9AD,0xA5A4A6A8,0x820F98A6,0x8F97949C,0xA0A7A288,0x1E129898, | |||||
0x0190920A,0x110F160A,0x22161B21,0x23231D21,0x04071417,0xA3A1A193,0xB5AD9D9C,0xB6B8BAB8, | |||||
0xAFAEA7B0,0x91A0A5A9,0x91821210,0x92A7ACA0,0xA8A69B82,0xA4A0A2A9,0xA6A3ABA7,0x08069DAD, | |||||
0x1920120D,0x98958E87,0xA4A7AAA3,0xA3AAAAA7,0x1C150492,0x29211518,0x22262D30,0x100F1B20, | |||||
0x8E99940A,0xA19D9990,0xA29B939D,0xA1ACADA3,0xB09D9099,0xA2A4ACB2,0xB0B0A6A3,0x9697A7AC, | |||||
0x9E9B9BA3,0x9B8E088D,0x0D8A9295,0x91918611,0xA8A8B2AC,0xA4A0A3A7,0x9AA3ACAD,0xA3A4A6A2, | |||||
0xA0A5AFAE,0x0399A49F,0x2522190C,0x302E2D2C,0x9014232B,0xABA8A1A0,0xA4A9ADA9,0x858F849B, | |||||
0x94959008,0x010B0F01,0x10120B02,0xA0911611,0xA4A4A39C,0xAFABA7A6,0x0D9099A7,0x040C0702, | |||||
0x091E1B11,0xB6B4AC98,0xB3B5B5B6,0xA0A5AEB1,0x8690949A,0x190A8E8D,0x241E8113,0x16181A1C, | |||||
0x09131D20,0xA6A9A79A,0xA8AAB0AA,0xA0A9A8AA,0xA0A1A4A1,0xA19F928A,0x029196A0,0x0383010D, | |||||
0x9D930912,0x8C97999A,0x21809997,0x22212226,0x851F2826,0x07080290,0x96909401,0xA6A5A8A3, | |||||
0xA5A0A1A9,0x141293A5,0x00120907,0x96958B83,0xA4A2A4A2,0xA7A6A2A1,0x98A1ABAA,0x01969B9A, | |||||
0x999F9483,0x9D9A9B90,0xB0B0B0AC,0xB1B1B2B1,0x889DAAB1,0x2C2C2212,0x2A2B2C2B,0x19222729, | |||||
0x928D0C17,0x85949597,0x97A1A691,0x92989695,0x9299A39F,0x82878B90,0x22241E0D,0x8C08181F, | |||||
0x9EA0A5A2,0x9A95A3A1,0x0894A5A8,0x9F911516,0x90929FA3,0x0E808B8F,0x8A0A2021,0xAEAFABA0, | |||||
0xAAAFB1AD,0x91A4AAAB,0x11079695,0x22251E14,0x101A100F,0xA7980384,0xB2AFB0AD,0xACB2B0B2, | |||||
0x919EAAAA,0x800B908F,0x1F1C0693,0x18181415,0x161B1C16,0x1C000112,0x22221D21,0x1C1C1114, | |||||
0x171A1517,0xA1A18714,0x918F9199,0x91988302,0x9C929392,0x81869A9D,0x96918F92,0x2119108B, | |||||
0xA49F001D,0xA2A29D9E,0xAAB0AFA6,0xAAAAA8A6,0xABAAACAD,0x838C93A4,0x05879491,0xA495010D, | |||||
0x9087A1A9,0x9B989391,0x0E09889A,0x20201004,0x18232319,0x13160D03,0xA6A39A05,0x99A2AAAB, | |||||
0x1A0D8F98,0x2B1F2224,0x1A1C222A,0x17222320,0x8E01800E,0xA09F9A9A,0xA4ABA8A3,0x96968E92, | |||||
0x211E1780,0x8985071D,0xA2958F8D,0xB3B2B0AA,0xB0AFB1B5,0x94A2AAB0,0x22201805,0x1E171520, | |||||
0x8B021822,0x9B9C9894,0x90939096,0x999A958A,0xA6988F96,0x148EA2A8,0x0E15161C,0x181D1505, | |||||
0x8184000A,0x14088081,0x92928A09,0x8511818D,0x92979691,0x8702028E,0x8A9A9A92,0x880A0F10, | |||||
0x1089979A,0x9A908D0D,0x090C8299,0x14849386,0x1321251F,0x9996958B,0xACA7A49F,0xA4A7A8AC, | |||||
0xA8A3A2A4,0x95A1A4A8,0x87008D91,0x07121200,0xA09D9581,0x90888695,0x00889296,0x8C830806, | |||||
0x17121186,0x93880E19,0x8B84858A,0xA5A5A199,0x078593A1,0x26231E15,0x25292621,0x1615121C, | |||||
0x80111619,0x98968E8B,0xAAA5A19C,0x8E9CA6AB,0x0F8D9994,0x0A1C1914,0x90908E8E,0xAAA39B91, | |||||
0xB2B2B0B0,0xABAEB0B0,0x1F0F90A2,0x22272625,0x1F201D1D,0x9B988D09,0x8B95999B,0x8B018C8B, | |||||
0x8E969495,0xA5A7A18C,0x1719039C,0x0D011416,0x8607191C,0x9492928C,0x81100E8C,0x87878B82, | |||||
0x9995020B,0x93989EA1,0x98999289,0x0B079297,0x9A9A810A,0x80140392,0x92988A86,0x0F161B0F, | |||||
0x2B262215,0x1A21272C,0x97880C17,0xA6AAAAA4,0x99A1A8A8,0xA0A39E96,0xA09C9193,0x949D9696, | |||||
0x9C989082,0x959F9C9D,0x9B9D938B,0x10100A8D,0x8F989486,0x8C0D1011,0x9FA4A39A,0x9E989196, | |||||
0x999B9B9F,0x1F12028E,0x25211C1B,0x18282525,0x11080405,0x938E1317,0x96050E00,0x9FA1A7A6, | |||||
0x91939699,0x1D168095,0x14101821,0x0D151617,0x010C100A,0xA2988885,0xA0A3A1A2,0xA0A8A8A2, | |||||
0x090C8A94,0x13161405,0x8A860108,0xADA7A395,0xB0B0B2B2,0xA5ADAFB1,0x0D08929A,0x211B0C81, | |||||
0x23252021,0x1A211B1B,0x9A90810A,0xA19A989E,0x8494989E,0x1F151309,0x13131D21,0x1721221E, | |||||
0x9D989302,0x8592858F,0x1B1A160A,0x14182020,0x0518201A,0x939B9B94,0xA2999A93,0xA19FA7A8, | |||||
0xA3A096A1,0x95918E94,0x919AA09E,0x99969590,0x04068A95,0x94930602,0x020A9093,0x06038385, | |||||
0x91870008,0x9297989B,0x86849891,0x9F999C9C,0xA19E989E,0x86878092,0x16110D03,0x25262521, | |||||
0x22212123,0x0E15181E,0x95868282,0xA2A2A19F,0xA0988E96,0x1602919D,0x24211B1D,0x21242121, | |||||
0x948A8510,0xA7A2A3A1,0xA6AAABAC,0xA7A6A7A5,0x820294A4,0x8A8B8E86,0xA09F9991,0x929AA0A1, | |||||
0x02908B83,0x91860309,0x929A9B94,0x17060B00,0x19171E22,0x231F1D21,0x1214151C,0x8D828205, | |||||
0x93948A89,0x81919293,0x100B1013,0x010C1113,0x0F0E0785,0x8C82070F,0x99929493,0x9C9A9B9D, | |||||
0x04909699,0x040D100D,0x10088487,0xA1969207,0xA6A7A5A3,0x9CA2A9AA,0x8B8C9299,0x028B9190, | |||||
0x8600110E,0x830B838A,0x959E9F91,0x98A09F9A,0x130A818B,0x14131919,0x1C171B1A,0x08121217, | |||||
0x96908702,0x97929496,0x8F949297,0x1C150487,0x21232420,0x1212111E,0x9B8F0810,0xA0A19D9F, | |||||
0x91979C9B,0x94969C98,0x95919191,0x110C0397,0x1F1D1719,0x100E191E,0x820A1018,0x969B9B97, | |||||
0x959AA19A,0x0B878586,0x0514120F,0x9FA19786,0xA099969A,0xA5A6A4A1,0xA3A4A5A4,0x029397A0, | |||||
0x1B1A1615,0x1621211D,0x8A878983,0x93909391,0x0005869A,0x13141006,0x1A1C1B15,0x2527231D, | |||||
0x1C212222,0x03101315,0x96969085,0x0E0D8494,0x11140F09,0xA095870B,0xA3A6A8A5,0xA5A9A7A2, | |||||
0xA4A6A7A7,0x979FA1A1,0x888E9798,0x8B880501,0x0E060282,0x1B141115,0x19181C1F,0x0B0E1113, | |||||
0x948D800B,0x90939C9B,0x8A8A8F92,0x13121004,0x0E101717,0x130A8005,0x9180040F,0x00899494, | |||||
0x8D86898A,0x1D181080,0x1C161C1F,0x8507171F,0xA39F948D,0x9CA0A2A1,0x94999C9D,0x1C140984, | |||||
0x140E171E,0x00161C18,0x92918D89,0x9A9A9A95,0x84848A94,0x88860282,0x8B8F8081,0x9796948C, | |||||
0x8B8C8D91,0x9D9A9694,0x86858A91,0x08858A90,0x0A161917,0x130E0885,0x82070D15,0x9392928D, | |||||
0x989A9594,0x8A929091,0x0D020100,0x12121112,0x1F181614,0x191A1F22,0x0F121215,0x95958D04, | |||||
0x96999492,0x1B14038B,0x20201A19,0x0912161B,0x8F008382,0xA5A19D98,0xA1A4A7A8,0x989BA0A1, | |||||
0x01100E8F,0x85858B84,0x9A989691,0x9194989C,0x90969590,0x9D9A9390,0x90969A9A,0x16050581, | |||||
0x1914141A,0x24211D20,0x1419191E,0x0B111512,0x07051013,0x12070404,0x17121317,0x07080C16, | |||||
0x12100903,0x81040D11,0x948D8C8B,0x9A9A9898,0x0D899194,0x08111413,0x0E070181,0xA0999201, | |||||
0xA4A3A3A0,0x98A0A5A8,0x92909094,0x81909696,0x92918303,0x90818590,0x949BA198,0x939B9E9A, | |||||
0x19110982,0x1914181C,0x201B1E21,0x1215171A,0x928B000D,0x93918F8E,0x8789888C,0x211E1283, | |||||
0x22232623,0x1216151D,0x94880F13,0x979B9595,0x90929794,0x91929A9A,0x95918E8B,0x09070393, | |||||
0x1415130F,0x80850C15,0x978C8903,0x939AA0A1,0x8D919D9E,0x13050407,0x0712100F,0x9DA09781, | |||||
0x9F9C9698,0xA0A2A2A0,0xA0A0A09E,0x11828F99,0x201D1C1B,0x17222221,0x8400050B,0x968C8B8A, | |||||
0x07100D95,0x181B140A,0x1C1E1E19,0x2224221E,0x141B2121,0x8A02060C,0x9C979697,0x0F0E0196, | |||||
0x1216140C,0x9A90800D,0x9CA0A2A0,0xA3A6A7A1,0xA1A4A4A5,0x9BA0A19E,0x878A979D,0x8B8D8385, | |||||
0x0B838788,0x1813070E,0x1814181C,0x14121316,0x89830911,0x0203898D,0x0C070483,0x1C171714, | |||||
0x0610171E,0x05818987,0x9D979186,0x87919B9E,0x8587898E,0x1E1B1105,0x1A161F21,0x810A151A, | |||||
0xA09E948D,0x9C9EA19F,0x9195989C,0x16140682,0x12060F15,0x8F061616,0x98989592,0x9E9EA09E, | |||||
0x84848D98,0x06800706,0x110A0B10,0x00010208,0x8082050A,0x95979490,0x88838789,0x14800089, | |||||
0x131E201F,0x1D151310,0x0609131C,0x92939181,0x98969693,0x96969899,0x8B8F9194,0x8B8B8485, | |||||
0x1A110B02,0x13131B1F,0x0A0B0509,0x98968E03,0x8D999B9A,0x1B1D1304,0x151A1B16,0x10121817, | |||||
0x000F0E10,0xA29E958E,0xA1A0A3A5,0x01909AA0,0x15161A16,0x07131714,0x8F878481,0x96949493, | |||||
0x9C9C9E9A,0x92989999,0x10010383,0x201A1214,0x1111141E,0x18202219,0x9294880D,0x81838085, | |||||
0x0F010108,0x090F1414,0x8687010B,0x928A9393,0x86808790,0x96979691,0x8C899397,0x8687818A, | |||||
0x83030A05,0x09828987,0x16181110,0x161C1B14,0x08070A11,0x100C0082,0x0C101211,0x06101813, | |||||
0x0412120C,0x90939087,0x9B9C9F98,0x9C989498,0x86939CA0,0x05008486,0x0C0D0609,0x92870605, | |||||
0x9B969697,0x9DA09E9B,0x94949297,0x1F170E86,0x25252421,0x191B2124,0x0A111516,0x0C07050B, | |||||
0x14111110,0x81800D16,0x0B080680,0x05100F0A,0x918D8D87,0x9B9C9A94,0x8E949A9E,0x03898E8A, | |||||
0x88000708,0x07050382,0x0B0E100B,0x04060B0D,0xA0988201,0x979A9C9A,0x95979D9E,0x07008991, | |||||
0x0A0F1110,0x1617130A,0x13131916,0x8D8D8311,0x9997908D,0x8A929193,0x12120B06,0x1F202118, | |||||
0x14171A1B,0x110A1015,0x85020711,0x10090487,0x1E161212,0x18191B1E,0x83111315,0x9293938F, | |||||
0x9F9D9A98,0x9BA1A3A1,0x97949195,0x898C9495,0x8791918A,0x91000085,0x93909395,0x8280838E, | |||||
0x110D0485,0x131A1E17,0x18181613,0x8E021118,0x8B8A9192,0x03869391,0x10100600,0x02141512, | |||||
0x9087898D,0x1612038D,0x1D1D1B16,0x06141C20,0x908C8582,0x8590908E,0x00000002,0x16110F07, | |||||
0x100F1219,0x83820910,0x8C830080,0x8F8D9090,0x94949192,0x050B0D82,0x06070201,0x84810709, | |||||
0x9E9C948C,0xA19D9D9D,0x969FA1A3,0x0E889090,0x1D1A1B19,0x2121201F,0x181A1A1D,0x14181A1A, | |||||
0x10101214,0x10171611,0x86838200,0x07050282,0x80030609,0x8E828283,0x96939192,0x85838D94, | |||||
0x07058588,0x00878983,0x09808203,0x07020106,0x0B070507,0x98979882,0x9A95939A,0x8A909294, | |||||
0x0F0A0680,0x1005080E,0x1A191917,0x0D171518,0x89868783,0x90949792,0x00808C90,0x1C121007, | |||||
0x1D1E2020,0x13141419,0x0C111010,0x018A8701,0x0E11100A,0x191E1D14,0x13151517,0x938D0511, | |||||
0x95908D93,0x9F9A9898,0x8F949CA1,0x9391908F,0x908E8D90,0x00048793,0x92908500,0x8087888C, | |||||
0x11060203,0x1B131014,0x1213171E,0x12161614,0x91928A07,0x9289878C,0x03010390,0x1817130E, | |||||
0x88831116,0x808B8502,0x1614140F,0x1A1B191A,0x8E840914,0x90919393,0x0200898F,0x0C068084, | |||||
0x18180E0B,0x12121212,0x0908050D,0x8D8C0007,0x878B8987,0x1284928A,0x0D101013,0x0404070B, | |||||
0x95918C81,0xA1A1A19E,0xA4A3A1A1,0x8A939CA1,0x1B180C84,0x1B171516,0x1B1F201F,0x1611161A, | |||||
0x1916161A,0x14131214,0x080D1417,0x0604050B,0x0F0B0904,0x0288820D,0x120C0908,0x8683000E, | |||||
0x86020482,0x8E8D8689,0x8002878D,0x06018585,0x8D000182,0x918C888D,0x95949794,0x908E9296, | |||||
0x868E9293,0x100F0E04,0x16130F0F,0x03111818,0x81010482,0x9796938D,0x09058390,0x11130F08, | |||||
0x0F111612,0x0304060D,0x8D8C8903,0x8C919694,0x140E0B02,0x2423221B,0x20222325,0x1115151A, | |||||
0x9D9D9887,0x9093989C,0x8B8F9392,0x05048389,0x09028381,0x0680050B,0x91908309,0x93959692, | |||||
0x92929193,0x120B0484,0x16161410,0x17191718,0x01101414,0x838D8C86,0x02818203,0x8C8E8C88, | |||||
0x8C888A89,0x0B06838D,0x1B15100B,0x171E2120,0x0E0A0B12,0x98918806,0x9798999B,0x90969A98, | |||||
0x0601828B,0x0C070104,0x0806020A,0x090A0D07,0x14150D0B,0x17141714,0x211F1E1C,0x161C2022, | |||||
0x8A82050E,0x9F9D9891,0xA09C9C9E,0x979C9EA0,0x848F9091,0x1C1A150E,0x86010E14,0x00038483, | |||||
0x078E938D,0x05090F10,0x848B8B82,0x16181408,0x16191716,0x12151411,0x8D8E830C,0x060B0886, | |||||
0x12140F03,0x18161210,0x0B091215,0x8681030C,0x03878E8E,0x938C8602,0x999B9C98,0x9C9D9B99, | |||||
0x17108191,0x1D1A1818,0x1B20211E,0x0B0E1216,0x88030A0B,0x92909091,0x80018791,0x0A030200, | |||||
0x1113100D,0x070F1311,0x918A8301,0xA1A09B94,0x93989B9D,0x1D158290,0x21201C1C,0x1316181E, | |||||
0x0D0C0F12,0x8C010A0D,0x89878B92,0x858A8A85,0x0F0C0C03,0x0B101110,0x04838401,0x0F048007, | |||||
0x908E8C02,0x110E008A,0x07080B0D,0x1717160F,0x89020C13,0x8583008A,0x928C8003,0x8783808E, | |||||
0x08018385,0x100C0B0A,0x1E1B1913,0x181D2121,0x10151817,0x948E8602,0xA09F9C99,0x9B989CA0, | |||||
0x8E93979B,0x02048088,0x090B0E07,0x83050304,0x84080585,0x16098288,0x201C1C1D,0x201F1E20, | |||||
0x181D1F20,0x85040D12,0x918F8F8F,0x8A8C8D90,0x0E0B0487,0x100F0D10,0x03111411,0x01868780, | |||||
0x86008003,0x93908B8C,0x91929191,0x0602828B,0x0402090A,0x8202100E,0x868A8880,0x01838686, | |||||
0x07050909,0x16171610,0x1B181818,0x17181517,0x16161919,0x86820712,0x9A97938E,0xA0A0A1A0, | |||||
0x8B959CA0,0x15120B82,0x21211C16,0x1213181D,0x0F0E0D0F,0x8181070D,0x00838781,0x80810082, | |||||
0x13130F07,0x13141513,0x85020C11,0x9391918E,0x9B9C9794,0x150A8892,0x140D0C12,0x15151718, | |||||
0x11101315,0x82050C0F,0x84878C8A,0x878A8985,0x05060582,0x070C100C,0x0B080506,0x0901040B, | |||||
0x88858305,0x09030183,0x01050709,0x14141108,0x83000911,0x80020183,0x86868000,0x83030285, | |||||
0x01020082,0x0F0D0602,0x18171711,0x1A1C1C1C,0x10131719,0x90878307,0x9B989895,0x9895979A, | |||||
0x8991969B,0x02008383,0x10111008,0x0A0F0E10,0x03070406,0x10008584,0x1A171B1B,0x1B1C1C1C, | |||||
0x151A1C1C,0x81090F10,0x86858888,0x82818385,0x100D0680,0x0F0D0B0D,0x06121110,0x83868482, | |||||
0x82818002,0x918E8986,0x8E919292,0x0600828A,0x01090C0B,0x020B1007,0x85878303,0x02040284, | |||||
0x08040804,0x1414120F,0x15141514,0x17151317,0x15181815,0x00050E13,0x96928883,0x9C9D9C98, | |||||
0x92969A9B,0x14100489,0x201D1614,0x1113171D,0x0C0E0E0E,0x84060A0A,0x08050481,0x00038200, | |||||
0x15100A02,0x18191617,0x050E1316,0x84828986,0x96938E87,0x130C8090,0x07060A11,0x13141410, | |||||
0x0D0B0A10,0x8A830309,0x0502878B,0x8B8A8401,0x0A0E0289,0x05060602,0x15131007,0x09060812, | |||||
0x06090302,0x03000407,0x0B0E0B05,0x07101310,0x06080503,0x04080D09,0x06818883,0x86010205, | |||||
0x04020380,0x15120D06,0x19161616,0x1F1D1B1A,0x090C131B,0x82030403,0x91908F8A,0x8E8E8F90, | |||||
0x06859190,0x800E1310,0x02818586,0x8C8B8681,0x90909191,0x8F8B8E91,0x0501868E,0x19191811, | |||||
0x1B1B1A1B,0x1014191B,0x87818206,0x01898D8D,0x1413120E,0x1A181516,0x1617181A,0x15161414, | |||||
0x090F1415,0x918D8400,0x95939191,0x90949595,0x888C9090,0x88878A89,0x0289908E,0x04090707, | |||||
0x100B0303,0x0F141210,0x0C0A0F10,0x1311100D,0x15111215,0x14151719,0x030B0E11,0x80828482, | |||||
0x84838A87,0x8A8E8B8A,0x80060486,0x03020301,0x8D8F8780,0x83868785,0x06058287,0x0F070303, | |||||
0x0F111110,0x1012110E,0x090F1010,0x80010306,0x03818283,0x100C0403,0x14121110,0x11121516, | |||||
0x81040E12,0x83808485,0x9493918E,0x898A8D92,0x83828186,0x07018100,0x0A0D0D0A,0x06040105, | |||||
0x040A0A08,0x07050282,0x0E080407,0x11101110,0x13151715,0x0B050811,0x84000E10,0x09048183, | |||||
0x88828005,0x0A030185,0x0F08030B,0x16191712,0x10111111,0x8482030A,0x8B858687,0x90919291, | |||||
0x868B8D8C,0x0F0B0581,0x0E0F1110,0x080D0E0E,0x86810609,0x8F918E89,0x0182888B,0x110D0B06, | |||||
0x15161512,0x0D111313,0x81828203,0x88878585,0x0D0B0385,0x10111111,0x13151511,0x14131212, | |||||
0x070D0E11,0x01020403,0x8E888782,0x8382888E,0x04030400,0x05008202,0x84888205,0x84838787, | |||||
0x07828886,0x0B0B0C0B,0x08080A0C,0x130E0708,0x16151514,0x15151518,0x080D1112,0x84020B0E, | |||||
0x0C050382,0x0202070D,0x09080D0A,0x02070906,0x06070602,0x90870104,0x898D9194,0x87878787, | |||||
0x0D080084,0x060C0809,0x0B0A0601,0x8784050A,0x82828687,0x0B060201,0x14141310,0x16161717, | |||||
0x12171A18,0x0B09090E,0x85040A0B,0x80818387,0x80838686,0x03030100,0x0C0B0705,0x0A090B0C, | |||||
0x82030708,0x84830202,0x888A8584,0x01800081,0x0E0A0603,0x0F0D0F10,0x11151412,0x0B09090F, | |||||
0x8B880007,0x8B8D8E8D,0x05028188,0x1612120D,0x16151416,0x040E1416,0x02040401,0x87898400, | |||||
0x87858383,0x07060284,0x0E0C0B0B,0x0E101211,0x0506060D,0x82810102,0x00838282,0x0C0A0302, | |||||
0x1111100E,0x0B0C0D10,0x87898404,0x8A898686,0x08818B8B,0x0B0C0A08,0x1111100D,0x110C1011, | |||||
0x0C0D1012,0x0707060A,0x83800104,0x80838686,0x04090805,0x80830001,0x82060905,0x00848481, | |||||
0x87888583,0x0C090582,0x080C0D0C,0x100B0A08,0x14141213,0x14131514,0x10101014,0x020B0B07, | |||||
0x82828000,0x02070B06,0x06090600,0x090A0808,0x04040304,0x01060706,0x8D929086,0x86868486, | |||||
0x07048285,0x0B09090D,0x09050105,0x810B0F0D,0x06808386,0x090A0805,0x1413110C,0x17191815, | |||||
0x15181615,0x04070E13,0x02050705,0x80838784,0x83888780,0x03018082,0x07050201,0x06060809, | |||||
0x04060708,0x81070601,0x83868787,0x81838383,0x07040300,0x080A0C09,0x11110B08,0x01070C0B, | |||||
0x81040908,0x898A8886,0x09028486,0x1615110D,0x17171918,0x10151817,0x08070408,0x88810405, | |||||
0x81000084,0x04028586,0x07060706,0x0B0C0C0A,0x0604080B,0x06060606,0x0502080A,0x0D038006, | |||||
0x0D0C0C10,0x060C100F,0x908A8001,0x898A8C8E,0x838C8D8E,0x0B0B0A06,0x11100D0A,0x07101213, | |||||
0x0D0C0C09,0x03070B0D,0x80820205,0x03020402,0x13110E09,0x0C0A090F,0x0A100E0C,0x81020002, | |||||
0x8E8C8300,0x80858B8E,0x09070281,0x11100F0C,0x14151311,0x0E0F1315,0x090C0B0D,0x83858304, | |||||
0x84878786,0x04818483,0x110C0908,0x13131313,0x0E111214,0x00828206,0x8F850003,0x8482878E, | |||||
0x03028287,0x06010203,0x050B0D0A,0x01010203,0x84820003,0x82838886,0x07010200,0x1413100D, | |||||
0x18181615,0x12141516,0x11101011,0x06081112,0x83010507,0x81818083,0x80808180,0x08070603, | |||||
0x06040607,0x05070807,0x81808201,0x82868683,0x03040180,0x00800080,0x07040300,0x01040606, | |||||
0x84828080,0x84858482,0x0A080281,0x0C0D0D0B,0x1211100F,0x0F111213,0x07080609,0x84848401, | |||||
0x02828383,0x05030302,0x0C070505,0x0608090B,0x08080504,0x81810104,0x01050400,0x0B040081, | |||||
0x0A0F0F0E,0x0F0E0D0C,0x0202060B,0x86858281,0x88888B8A,0x83858688,0x06030380,0x10100C07, | |||||
0x0807080B,0x04080C0C,0x02020102,0x82800101,0x01008184,0x06070704,0x05060507,0x08050206, | |||||
0x00010308,0x84810102,0x80808285,0x02818182,0x01010204,0x090B0602,0x0507090A,0x82000305, | |||||
0x83858786,0x82838685,0x03000182,0x0C080A08,0x11100F0E,0x0A0C0E11,0x06030206,0x02030306, | |||||
0x03040000,0x02020101,0x02020302,0x81800204,0x84858581,0x85838182,0x80818486,0x02020300, | |||||
0x04040404,0x03030304,0x02040603,0x03010100,0x01010204,0x04030101,0x04030202,0x03040403, | |||||
0x05030304,0x04040504,0x02000303,0x02040504,0x05030202,0x04050707,0x02040203,0x00000103, | |||||
0x80828101,0x83828181,0x00828382,0x04030201,0x08070705,0x06080808,0x02030505,0x84838100, | |||||
0x83838485,0x81818383,0x04010100,0x04040403,0x04050403,0x01010103,0x82828000,0x01818181, | |||||
0x02020100,0x06060403,0x03030506,0x02020303,0x81800081,0x81828282,0x81818181,0x03020180, | |||||
0x05050404,0x06050506,0x03030505,0x02020203,0x80000001,0x80000000,0x01010100,0x01020202, | |||||
0x01010102,0x80800000,0x80000080,0x01008080,0x00000001,0x01010101,0x00020101,0x80000001, | |||||
0x81818281,0x81828282,0x00008080,0x01010000,0x02020201,0x01010101,0x01010101,0x00000000, | |||||
0x00000000,0x01010100,0x00010001,0x01000101,0x00000000,0x80808000,0x00808080,0x80000080, | |||||
0x00000000,0x00000000,0x00000000,0x00800000,0x80008080,0x00008000,0x00000000,0x00000000, | |||||
0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, | |||||
0x00000000, | |||||
}; |
// Audio data converted from WAV file by wav2sketch | |||||
extern const unsigned int AudioSampleSnare[2817]; |
// Audio data converted from WAV file by wav2sketch | |||||
#include "AudioSampleTomtom.h" | |||||
// Converted from tomtom.wav, using 11025 Hz, 16 bit PCM encoding | |||||
const unsigned int AudioSampleTomtom[3489] = { | |||||
0x83001B3C,0xFC0EFF8B,0xFB40FD97,0x045BFB30,0xEABCEAD6,0x04C2F8B3,0x002B0733,0xFB1C0879, | |||||
0xE9CCED7A,0xEC2AEC4D,0xF7D8EF09,0xF6EC0EE6,0x15A4F3A6,0xFAD81B95,0xF591F001,0x0A3FFF14, | |||||
0xF381FB40,0x332009C7,0xCF10FB37,0xED11E51C,0xE59BF1AC,0xB42FCB21,0xBE20B6E5,0xD9D2D05A, | |||||
0xD648D2A3,0xD976C623,0xD3A7F5A6,0xF473C999,0xFE3F0527,0xD0C4E8CF,0xD7BDD5B6,0xD84CD6ED, | |||||
0xCA18CF00,0xE1DBD58F,0xEC6FE4FF,0xE3CEE5F2,0xEF13F3C3,0xED90EC25,0x091AF6A5,0xF3D2F890, | |||||
0xE66FEFE6,0xEE07EA0D,0xEDF3F7F0,0x04EBF85B,0x045103B6,0xFFA2FE0E,0x0148027F,0xF48A0227, | |||||
0xFA86EE2B,0xE9EDF020,0xDAA9E07B,0xEA35E48A,0xE98BEC06,0xE9EDE723,0xEB4AED81,0xE8CDE891, | |||||
0xE8FFEB3C,0xDF4CEA81,0xE16CDDD9,0xDFACE95C,0xE32DDA71,0xE61EE2A9,0xE6ABE1A8,0xEF7AEAF3, | |||||
0xFCD1F4CC,0x056700EC,0x0BAC085F,0x163C1029,0x22601EFF,0x29FE240D,0x3ED83772,0x35C73493, | |||||
0x39414159,0x37FB3442,0x36D03FD6,0x238C22DD,0x1FB4219B,0x0E9E1DB0,0x143E1252,0x084F0965, | |||||
0xFDF3FE41,0xFE8F0214,0xFA24FB39,0xF300F877,0xF30CF3B9,0xF1BAEEA3,0xF448F204,0xF613FACF, | |||||
0x0A76FD0A,0x1059120B,0x223F1707,0x364A2C9C,0x43D235D8,0x4F4E46DE,0x5B5D5A3B,0x5CAD5965, | |||||
0x677E6B66,0x631F5FA8,0x70B37087,0x77DF7199,0x772079FD,0x69CA703C,0x677D6988,0x52235C94, | |||||
0x41264878,0x3AF93FC8,0x24572EC1,0x18141BB6,0x117210FF,0xF6280C2D,0xF803F2CD,0xEF14F439, | |||||
0xECD4EC13,0xE4D1E4B7,0xF56EF0AA,0xEA3DEEB4,0xF8B4EF84,0xFA47FD61,0x0592FA10,0x13C311DB, | |||||
0x191D126B,0x225B1DC6,0x27262AEA,0x31182826,0x3906364E,0x3B76383F,0x32C23A07,0x38873A23, | |||||
0x316134D4,0x30DE326F,0x2FCA2F8E,0x27DF2854,0x296622EA,0x1A692331,0x0E3616C6,0xFF65089B, | |||||
0xF421FBB6,0xE7A2ED7F,0xE52FE489,0xD492DD6A,0xCA9ACA8D,0xCA95CB84,0xC010C54C,0xB778BFDB, | |||||
0xB6C2B763,0xAE45B4BC,0xA75CABDF,0xA084A20A,0x9BC99B36,0x948E9668,0x97BB9832,0xA9239F6D, | |||||
0xB620AA3A,0xB552B637,0xC988C485,0xC7A4C8EA,0xCB82CA3A,0xD1D5CC39,0xD8F5DCF1,0xD72DD323, | |||||
0xD66BD52D,0xE03DDD96,0xE0C9DE61,0xE83EE540,0xEFDFE612,0xEEFFF728,0xE8E7EB27,0xEF0DE905, | |||||
0xF11FECDF,0xEEECF768,0xF468EBB6,0xF51FF53F,0xF57EF839,0xFAC2F67A,0x00C9FF9F,0x0320016A, | |||||
0x004802F7,0x03520195,0x010802C5,0xFA92FD66,0xF7D1FD4D,0xF565F67A,0xF794F870,0xEDFFEAC2, | |||||
0xF63FF093,0xF2B0F69B,0xE8E2ECCE,0xF08EEAED,0xE739ED23,0xF14DEEFD,0xF472F59E,0xFDA1F8EB, | |||||
0xFC03F9C7,0xFD98FD9D,0x077CFFC2,0x184B1435,0x14F717BF,0x138E0DEC,0x1FAC1906,0x19A11EB0, | |||||
0x235A1FC8,0x291D2798,0x309D287A,0x362C32DA,0x3B1E37F2,0x37E33A9F,0x32523684,0x2F12322D, | |||||
0x38EC37B9,0x27DE32F2,0x245F22AD,0x1CB620DB,0x18D9176C,0x10C116CE,0x08E30ED3,0xFF0F0182, | |||||
0xF20CF754,0xEB11EE81,0xE529EAEE,0xDDD7E0B6,0xD922DB3E,0xD7BCD686,0xD4B8D6D5,0xCFF1D2C5, | |||||
0xD04AD111,0xCD1BCE4E,0xD44FCFFB,0xD4C7D40D,0xDFE8D83F,0xE23EDFFE,0xE859E8BB,0xF2ECECA3, | |||||
0xEA72EE74,0xEFC5EE8F,0xED1EECF8,0xF56CF192,0xEFBFF43E,0xEBD7EEAA,0xE7C8E788,0xE566E87A, | |||||
0xEE8DE70F,0xF0E9EF25,0xF228F48F,0xF3DFF2C5,0xF446F8FC,0xF94CF2C9,0xF16EF51B,0xFAA8F247, | |||||
0xF06DF927,0xF8E3F259,0xF1AFF56A,0xECEAED82,0xF83DF262,0xEFFFF512,0xEE17F373,0xE5E4E9CF, | |||||
0xE972E88E,0xE28AE451,0xEC94E566,0xEDD7ECDE,0xED42EBF8,0xEFC8F3D4,0xF796F0C8,0xF582F848, | |||||
0xF715F3D4,0xFA6DF8A2,0xFC2CFAD5,0x021B0020,0x05E8034F,0x08DA0807,0x0B410AB0,0x0D210D41, | |||||
0x09A10D3C,0x140109C1,0x18B315BF,0x14C117D3,0x1FA31CF5,0x1D531EF2,0x18F01976,0x240F1EA5, | |||||
0x271F28F1,0x2E2E28EA,0x2F932E39,0x311F2EE8,0x33F831BA,0x3C2337CF,0x3E6F3D11,0x3F644163, | |||||
0x3E913C25,0x3F70402A,0x3C003F4D,0x3AAD39EC,0x36DB3976,0x29032FFF,0x1E102471,0x13521B0B, | |||||
0x10710FE5,0x095A0D66,0x033C05E3,0xF987FEC4,0xF59BF5DD,0xF225F593,0xEBBCEDC6,0xE7D3EAAF, | |||||
0xE51CE814,0xD9C7DE89,0xD70FD698,0xD50CD61F,0xCF9AD19F,0xCF56D196,0xC974CC87,0xBF23C122, | |||||
0xBFFEC104,0xC13DBD7B,0xBBAFC20F,0xBCBEB97E,0xB7A7BA18,0xB7D3B888,0xBA4EBA40,0xBE68BBE3, | |||||
0xC8A0C33E,0xCBBDCCF8,0xCF89CCC8,0xD657D1D1,0xD7A7D63E,0xDD6CDAF7,0xE6DAE14B,0xECE8EC63, | |||||
0xF0E4ED1B,0xFC04F5B0,0x0220FFC8,0x069006F7,0x0B830618,0x07FE0C59,0x0BA40866,0x11DB0EAC, | |||||
0x1B9915BD,0x20E91F8A,0x260E230A,0x2C3626AA,0x319A2F88,0x354F3510,0x31EE2EC3,0x349836F8, | |||||
0x354235E7,0x3B1E3947,0x40233C09,0x430241EF,0x44C24303,0x49E548C7,0x409A460C,0x457643A5, | |||||
0x45FC42CD,0x4810478A,0x4618492E,0x40E4449D,0x3A893D1D,0x3A0737C2,0x31DD39C3,0x2D313002, | |||||
0x27762A0A,0x1BBE20F2,0x1D891CCE,0x15CB1875,0x0B320F56,0x08A109B9,0x07AB067F,0x01890796, | |||||
0xF78DF90F,0xF610F611,0xF12DF44A,0xEBAAEF98,0xF145EE64,0xED17F06E,0xE926E98B,0xEB33EAA7, | |||||
0xE7E0EA97,0xE2CEE5BB,0xDF0DE2F4,0xDF37DF14,0xDDEADCEE,0xDD3CDDC6,0xDB04DE40,0xCDBED36C, | |||||
0xCC6ECDD6,0xC518C749,0xC642C461,0xC1D3C415,0xC297C145,0xC208C255,0xC33DC29D,0xC777C51D, | |||||
0xCC78C91F,0xCDDDCCC9,0xCE59CED6,0xD280D08C,0xD6D5D41D,0xDC5EDB80,0xE3B4DF8E,0xEBB6E73D, | |||||
0xF448F0F8,0xFACFF5D9,0x0369FF9C,0x0D130966,0x141A1099,0x1243124A,0x1B301947,0x1A1817F1, | |||||
0x1FFB1F76,0x229E20B4,0x21E82159,0x205F2064,0x256F22DF,0x271926A6,0x278A2788,0x20E723B2, | |||||
0x22F520A6,0x1EB22265,0x1E9F1EFA,0x1FF32063,0x1BC81CA5,0x205D1DD8,0x1FCC1F59,0x228B2254, | |||||
0x20182287,0x19831BB6,0x19F71B7F,0x15C3190C,0x0E1E1046,0x0B3A0C78,0x0D820CF5,0x055B070B, | |||||
0x048F035E,0xFEF90399,0xFA6DFEE9,0xF8BEF70C,0xF607F8A1,0xF32FF6F2,0xF438F253,0xF033F193, | |||||
0xEF09F0A1,0xE8BAEC4E,0xE6F0E4A3,0xE42AE548,0xDFA2E235,0xDB2ADE12,0xDE9FDA6E,0xDA40DEF9, | |||||
0xD8B6D92B,0xDA1CDA7D,0xD97BD8BE,0xD5CBD775,0xDAB7D8A3,0xE130DFA9,0xE15CE1C4,0xE91AE430, | |||||
0xEE3DEAED,0xED3CECE2,0xEF58EFCB,0xF4D8EFB8,0xF5B7F611,0xF7B5F4E9,0xFCB4FB9A,0x025BFFF2, | |||||
0x068A04E0,0x09E208AA,0x08DF0826,0x07F909EA,0x0874080B,0x0A68095E,0x10AE0E43,0x0F6D0F42, | |||||
0x10A71031,0x15D9134C,0x157A154C,0x166B1578,0x19371839,0x1713170D,0x16D616B9,0x1983192C, | |||||
0x1B0D1B5F,0x1B1D1AE1,0x1D151C7C,0x1CE91CBE,0x1CFB1CFE,0x1D1A1D02,0x1CB21D18,0x1C441CA4, | |||||
0x1D081C93,0x1FF81C80,0x217B211E,0x25D92338,0x257D2504,0x282828AA,0x22482571,0x23DD222E, | |||||
0x21472272,0x22C223FF,0x1E6E207D,0x1A691C80,0x171D18C1,0x10DC143A,0x0A660C3B,0x081A0895, | |||||
0x02610698,0x058001FE,0xFF6305CB,0xFD3FFE19,0xF8FCFB15,0xF484F5E9,0xF35AF3ED,0xF0D7F171, | |||||
0xEA80EE54,0xE6FAE763,0xE48BE716,0xE324E281,0xE4F6E3EA,0xDF10E2FA,0xDE13DDEC,0xDE1BDDAA, | |||||
0xD7EEDA7B,0xD8C8D8C2,0xD2D7D6F2,0xD647D42A,0xD752D7B5,0xDAD1D899,0xDC80DC5B,0xDBE5DC59, | |||||
0xDD32DCC1,0xDF8DDCEC,0xE087DEB9,0xE2AFE236,0xE212E1AD,0xE293E38B,0xE3BBE42B,0xE43BE238, | |||||
0xE6A6E4D0,0xE5BCE8F3,0xE59CE559,0xE74BE59D,0xE57BE587,0xEA10E7D6,0xF24BEEB6,0xF61EF431, | |||||
0xFAB1F8A7,0xFDE1FD61,0x015CFE09,0x03B80179,0x090F0700,0x0E550B44,0x130D11C1,0x16D0157A, | |||||
0x1A2216F0,0x1E3F1CCB,0x1D941E9F,0x1DCB1DED,0x1EF91D60,0x1F472079,0x1ED71E71,0x230C224B, | |||||
0x2137218E,0x20422075,0x1DF21E6F,0x1D581DBF,0x1A5F1B74,0x19A51B95,0x1462166D,0x128E12BA, | |||||
0x0F39118D,0x10930FB1,0x10F71152,0x0F8C109F,0x0C3C0D87,0x098609A4,0x0809097B,0x04E80696, | |||||
0x041F0442,0x02850379,0x012E015C,0xFDCCFFC8,0x0091FD5B,0x011C02D9,0x00D20039,0x02B8038E, | |||||
0xFF040005,0xFD37FDF6,0xF9CAFB38,0xF94AFA79,0xF3DCF5E1,0xF148F3AB,0xF05DEFD6,0xF070F0A2, | |||||
0xF06FEFFF,0xF052F0E6,0xEE32EEF7,0xEC8EED59,0xECA1EBFD,0xECD7EC6B,0xEE49EDF4,0xF03FEEEF, | |||||
0xEE5AEF0A,0xF1FDF09F,0xF1CBF32B,0xF218F162,0xF1DAF213,0xEF9DF0C4,0xF097EFFB,0xF1D4F052, | |||||
0xF49CF447,0xF727F575,0xFA43F808,0xFAB3FAB6,0xFC99FAC4,0xFF45FF63,0xFFCDFDDE,0x00580044, | |||||
0x0082019A,0xFFC70013,0x05A601ED,0x0417055F,0x05CE0550,0x08E40832,0x08470831,0x09EF09FA, | |||||
0x0CA80AE6,0x0C360BD6,0x0D060C57,0x10530E7C,0x11DA0FFC,0x156D142C,0x1A6617DC,0x1BBD1BBD, | |||||
0x1DA61C9D,0x1D0B1D27,0x1DC91CD9,0x1EC51ECB,0x2036206B,0x201E2053,0x1F401FBD,0x1CD61F8D, | |||||
0x1A491A33,0x193F18B2,0x147C1869,0x0F6D10F1,0x0C0F0D1F,0x0B010B9B,0x08010A45,0x03B9061B, | |||||
0x00CF01B8,0xFCA4FDD4,0xF9FEFBE0,0xF729F904,0xF232F4D9,0xEF01EFAC,0xEC6CEF04,0xE917EA5A, | |||||
0xE643E79D,0xE58BE5A0,0xE513E61B,0xE3C9E445,0xE464E42B,0xE1D4E2EB,0xE1D7E1BF,0xE4C8E308, | |||||
0xE165E2AC,0xDFDEE0EB,0xE047DF52,0xE13EE11C,0xE1B7E110,0xE2DDE271,0xE1D6E37A,0xE17FE0EE, | |||||
0xE248E1C5,0xE32BE316,0xE422E3FB,0xE436E4A8,0xE30AE2D6,0xE5FAE417,0xE754E743,0xE674E648, | |||||
0xEB75E894,0xED85ECEE,0xF002EE33,0xF33FF270,0xF4D2F4B1,0xF4E0F39D,0xFA73F7C3,0xFB67FB49, | |||||
0xFE21FC15,0x02F800A4,0x057D048A,0x06630608,0x0939079C,0x0A2C09C3,0x0C320AE5,0x105A0E98, | |||||
0x107310FC,0x12501083,0x16D41556,0x16EE170B,0x17921676,0x1976193D,0x1B651A6F,0x1C2F1B38, | |||||
0x1F541E19,0x20821FE3,0x215B216F,0x22D62220,0x246022F1,0x253824E3,0x23C8255C,0x242723D9, | |||||
0x22AC22A9,0x23402378,0x24A72332,0x244724F5,0x260524A8,0x26EB2681,0x2A502899,0x2C7E2BE5, | |||||
0x2CFA2C62,0x2A122B71,0x28DB29AE,0x285728FA,0x25C6271D,0x2244246D,0x1EA62046,0x1CC61DBE, | |||||
0x17E91A23,0x121C143F,0x0E811120,0x0AEE0CF7,0x07560910,0x01ED04DF,0xFDF8FF80,0xF7FDFC44, | |||||
0xF1B9F427,0xEB09EE32,0xE434E7A6,0xE01CE202,0xDC30DE17,0xD9F3DAE7,0xD77AD8B0,0xD705D686, | |||||
0xD6DAD750,0xD5ABD64B,0xD559D5B8,0xD4A4D4EC,0xD16FD26F,0xD1A2D1AD,0xD206D236,0xCFB7D0BF, | |||||
0xD01BCFCA,0xCE24CF8D,0xCD38CD3A,0xCC87CC93,0xCDF3CDC9,0xCDAACDA3,0xCF13CE61,0xD172D01E, | |||||
0xD3E2D360,0xD29BD279,0xD499D3AF,0xD52AD582,0xD624D57D,0xDA00D7E7,0xDB1EDA28,0xDC08DB8E, | |||||
0xDDA2DCCF,0xE08DDED9,0xE2E9E146,0xE750E5BF,0xEB56E8DE,0xEF3FED14,0xF37FF19C,0xF91AF605, | |||||
0xFE31FBC2,0x04E201E6,0x07CE06F5,0x0A950900,0x0D860BCD,0x10260F2E,0x1480121A,0x190E170A, | |||||
0x1CA81AEB,0x1FFE1D6B,0x25F623F6,0x2758264F,0x27FF277C,0x2AA529BA,0x2C072AD2,0x2D5C2C92, | |||||
0x2EE92EE9,0x31832FB3,0x32C532AF,0x34B83363,0x34A434DF,0x35123480,0x33F63552,0x343B33D5, | |||||
0x355C349F,0x35AD3552,0x3601360E,0x384936E3,0x381038D1,0x3637371B,0x33DE3596,0x31D6329E, | |||||
0x2F562FAF,0x2E102EF2,0x2C082D2F,0x28B22AD6,0x26AB26D9,0x227924F6,0x1D852067,0x19271B57, | |||||
0x151E16F7,0x10FB1334,0x0D5E0F40,0x09660B96,0x041A0649,0xFE57016E,0xFAA8FCB4,0xF41CF78F, | |||||
0xED6AF0D3,0xE8B9EAF3,0xE58BE693,0xE358E50A,0xE054E10C,0xDD70DF47,0xDA5ADB79,0xD792D8C9, | |||||
0xD66BD753,0xD2CDD467,0xD38BD2FA,0xD216D2F7,0xD0A3D104,0xCF6FD084,0xCE18CF29,0xCC6BCCD1, | |||||
0xCC20CC8D,0xCA22CADB,0xCBC9CA8D,0xCD29CC73,0xD01BCEE7,0xD111D111,0xD152D06D,0xD2C6D20C, | |||||
0xD48BD3A1,0xD4FCD4BF,0xD689D5E0,0xD7D9D75C,0xD7D9D7EA,0xD894D7E4,0xDB6FD9E3,0xDEADDCFA, | |||||
0xE211E0CF,0xE41FE32C,0xE860E5B7,0xEC05EA7F,0xF04FEDF8,0xF396F25A,0xF571F438,0xF817F6DE, | |||||
0xFB87F9B2,0xFE02FCD9,0x00C9FF28,0x024E01D3,0x054903FC,0x06DB061A,0x09450799,0x0D5A0B71, | |||||
0x10520EF6,0x1256117A,0x160813FB,0x170B16E8,0x18B11783,0x1AFC1A0A,0x1D7D1BE7,0x1F511EE4, | |||||
0x20E01F7A,0x228A21DC,0x25312369,0x277B26D8,0x27992796,0x29AB293F,0x2986293C,0x2B0F29FF, | |||||
0x2B972BCD,0x2B662B98,0x296D2A82,0x29F92978,0x284D2949,0x25C1274A,0x252024E2,0x24D32556, | |||||
0x23102442,0x208B21A5,0x1E701EF5,0x1C041D7D,0x1BA61BA8,0x1B011B83,0x17BC19E6,0x14261595, | |||||
0x11A012D1,0x0E580FFC,0x0BFF0D86,0x080809A0,0x0450066E,0x02630342,0x0061010A,0xFE31FF48, | |||||
0xFB46FD03,0xF78BF983,0xF563F613,0xF490F4D0,0xF18DF3A3,0xEF2BEFEB,0xEF5CEF6A,0xECF8EE8A, | |||||
0xEA49EB2D,0xE9B6E9DE,0xE87DE91E,0xE7D9E8CD,0xE66CE6CE,0xE5C5E60B,0xE38DE4A1,0xE3DDE34B, | |||||
0xE532E4C2,0xE4D7E4F8,0xE4D7E4A4,0xE61BE58D,0xE5B0E5C6,0xE7B5E6DF,0xE934E858,0xEA1DE9CD, | |||||
0xE92FE9DA,0xE9B0E945,0xEB49EA14,0xEDFFEC94,0xEF40EF3F,0xF00CEF34,0xF156F0E1,0xF261F1F0, | |||||
0xF4ABF31F,0xF69DF644,0xF76FF6EA,0xF919F7CD,0xFB69FA5F,0xFC19FBE0,0xFE01FD00,0xFF81FF02, | |||||
0xFF10FFA5,0xFD91FDD9,0xFF0FFDD0,0x01CC009F,0x0344028F,0x04590406,0x059C04CC,0x06EC06CD, | |||||
0x07750673,0x0A2808F1,0x0B8E0B09,0x0B010BD0,0x0BB80AEF,0x0C6E0C23,0x0C390C52,0x0E6C0D34, | |||||
0x0FC80F50,0x0FBB0FBE,0x0FB90FDA,0x11011035,0x12561171,0x137C131A,0x13CD1363,0x138C1401, | |||||
0x123812DB,0x1075112F,0x108E10A4,0x0FBF107C,0x0D510E3F,0x0BEA0CDC,0x09830A77,0x08E10938, | |||||
0x062407D2,0x040D0508,0x018202CA,0xFF9B008E,0xFF34FF2E,0xFD52FEB2,0xFC27FC70,0xFAD5FB83, | |||||
0xF782F942,0xF5EAF680,0xF35AF4E2,0xF16CF244,0xEF5DF05B,0xEDFDEE8D,0xEC95ED81,0xED03EC20, | |||||
0xEDD7EDD3,0xED01EDA8,0xEB8FEC03,0xEA95EB69,0xEA11E9C5,0xEAF2EA63,0xED5AEC7A,0xEC6BECE7, | |||||
0xEC3AEC29,0xECA9EC78,0xED1CED0D,0xEE55ED7D,0xEF58EEA1,0xF212F0FA,0xF2C2F289,0xF364F2CC, | |||||
0xF43FF3F9,0xF4C3F478,0xF4B6F4D9,0xF5E9F546,0xF734F683,0xF87EF801,0xFA99F929,0xFD5CFC4C, | |||||
0xFF9FFE27,0x01050082,0x021A01D2,0x036C029C,0x053E040D,0x07CF06A9,0x0A4508D9,0x0C5A0B6F, | |||||
0x0F260D9F,0x1142108E,0x1220116F,0x12C412D3,0x131912D9,0x13A61398,0x13851361,0x13AB136C, | |||||
0x147C1410,0x15701535,0x159F157E,0x168315E8,0x16A016C2,0x174E16E7,0x18F017FB,0x19431933, | |||||
0x19921954,0x19FD19C3,0x19C01A20,0x19A319AF,0x19981995,0x19F219C6,0x198319D3,0x19B8191B, | |||||
0x198C1A33,0x189E194A,0x173217EC,0x15B21632,0x14D91533,0x13931460,0x1119122D,0x10A610E4, | |||||
0x0EE60FBF,0x0CA70DD7,0x0AA00BDA,0x072408CA,0x04EC0601,0x028803BC,0x00140152,0xFDC0FEFB, | |||||
0xFC45FCE2,0xFAC9FB8A,0xF8C7F9EB,0xF6ACF801,0xF345F4EE,0xEFD7F133,0xED04EEB7,0xEA2EEB7D, | |||||
0xE77EE89E,0xE511E650,0xE2DAE3E4,0xE15AE222,0xDFDCE077,0xDE56DF58,0xDD2CDDB3,0xDC14DC7A, | |||||
0xDB33DB7A,0xDA96DAFF,0xDAA9DA7A,0xDA4EDA99,0xDA54DA36,0xDAB1DA81,0xDA84DABE,0xDA07DA23, | |||||
0xDB21DA93,0xDC1ADBB1,0xDBFEDC0F,0xDC84DC27,0xDD2DDCF8,0xDEE8DDEA,0xE166E026,0xE3D0E25F, | |||||
0xE69DE559,0xE800E756,0xEA79E914,0xEC94EB99,0xEEBFED99,0xF173EFFF,0xF4A7F300,0xF760F626, | |||||
0xFA4EF8D8,0xFCFBFBAF,0x0027FE85,0x03A90206,0x063304DA,0x097D07C3,0x0C220AE3,0x0E910D5F, | |||||
0x11AA0FEC,0x137512E1,0x14DC144A,0x15981525,0x16E5164B,0x178C1721,0x18F31827,0x1AF61A02, | |||||
0x1D041BD5,0x1F521E2D,0x20E82058,0x21AC2166,0x21C6218E,0x22C02256,0x228222B7,0x22AE2287, | |||||
0x23CD2342,0x23A02400,0x23372355,0x235F2325,0x241A23B5,0x24362441,0x2451243D,0x2395240B, | |||||
0x22AE2319,0x2229227F,0x21232197,0x1FD820A7,0x1DE91EF3,0x1BCE1CE3,0x19341A98,0x157A1752, | |||||
0x123113D3,0x0EF01058,0x0C5E0DCC,0x09E80B24,0x077708A2,0x04960611,0x01F90359,0xFEF80069, | |||||
0xFC39FD8E,0xF901FAC1,0xF5FEF77B,0xF3C6F4A9,0xF104F282,0xEF8CF013,0xEE51EF16,0xEC60ED5A, | |||||
0xEB6EEB93,0xEA6AEB3D,0xE8F4E984,0xE7F3E863,0xE73BE7AD,0xE71FE718,0xE5D3E6C7,0xE4FEE534, | |||||
0xE413E465,0xE323E39C,0xE2A9E2F7,0xE1E4E22A,0xE1C3E1DD,0xE18CE1A6,0xE1ABE18C,0xE1DCE1C7, | |||||
0xE172E1CA,0xE1BFE16D,0xE333E27E,0xE4A1E3DB,0xE5ADE523,0xE6F6E659,0xE843E7A5,0xE92EE8A8, | |||||
0xEA98E9DC,0xEB4CEADD,0xEC0AEBC9,0xEDD3ECCE,0xEFCCEED4,0xF241F0FE,0xF4ADF37E,0xF7CCF609, | |||||
0xFA9AF950,0xFCA1FBB5,0xFF82FDF8,0x01BC00B6,0x03D302BB,0x06520502,0x08C807B1,0x0A30099A, | |||||
0x0C080AE0,0x0D060CC2,0x0D420D2C,0x0DD00D7E,0x0E320E08,0x0E710E58,0x0F3F0EDA,0x0F5C0F37, | |||||
0x10250FC6,0x10F510A0,0x109110E0,0x112110B5,0x11BA117E,0x11B511D0,0x121D11CC,0x12CB1264, | |||||
0x137A1320,0x143C13DD,0x14FB1483,0x15961585,0x15AC157B,0x15FD15E6,0x154215C2,0x144B14BB, | |||||
0x13C91411,0x12E61347,0x126112CA,0x10A71182,0x0F3E0FF2,0x0D870E6D,0x0BE60C91,0x0B150B98, | |||||
0x094D0A44,0x07E4087F,0x074507A3,0x05E5069A,0x037404CC,0x01190240,0xFEBAFFE7,0xFC7DFD8A, | |||||
0xFA77FB82,0xF8BAF98A,0xF7DBF82C,0xF686F76F,0xF4F8F58B,0xF419F499,0xF2F4F36C,0xF237F277, | |||||
0xF222F22B,0xF223F224,0xF207F219,0xF24AF215,0xF289F280,0xF246F266,0xF20DF239,0xF18AF1BD, | |||||
0xF1FCF1AB,0xF24CF21D,0xF2BBF2A2,0xF303F2C7,0xF2FDF330,0xF308F2EA,0xF292F2D1,0xF25AF27A, | |||||
0xF1FAF22B,0xF241F213,0xF2E1F291,0xF351F309,0xF3C9F380,0xF43BF414,0xF52AF494,0xF60AF5B2, | |||||
0xF67DF63B,0xF78AF6E8,0xF9BBF8A1,0xFACEFA48,0xFC0DFB5B,0xFD62FCCF,0xFE7DFDF4,0x0002FF27, | |||||
0x01EA00F0,0x03AD02DF,0x05840484,0x067A0644,0x072506A0,0x082807B4,0x08FC089F,0x0A0B0979, | |||||
0x0B110A97,0x0B640B55,0x0C4C0BBA,0x0C990C7E,0x0CD00CB0,0x0D2A0D05,0x0DB10D7E,0x0D6A0DA7, | |||||
0x0D470D31,0x0CF50D3E,0x0C360C92,0x0BDC0BFD,0x0B620BA0,0x0B1A0B3D,0x0B8E0B2B,0x0C010BE4, | |||||
0x0BE60C01,0x0BFD0BF4,0x0B600BC9,0x0AC30B07,0x0A5B0A7E,0x0A0C0A45,0x097809BA,0x09250948, | |||||
0x08BD08E5,0x085A0882,0x07A30805,0x06B2074C,0x052805EC,0x03AC047A,0x023302D0,0x016201DE, | |||||
0x005E00E2,0xFF1AFFC6,0xFD58FE42,0xFB6EFC63,0xF9E8FABD,0xF885F918,0xF790F7FB,0xF6A2F70A, | |||||
0xF579F61A,0xF4ACF519,0xF416F44A,0xF3BEF3EA,0xF374F390,0xF375F368,0xF32FF369,0xF314F30D, | |||||
0xF3B2F352,0xF389F3CC,0xF360F35F,0xF30BF34F,0xF2E0F2DD,0xF30BF2F3,0xF371F32A,0xF3D8F3B6, | |||||
0xF455F3F5,0xF4D6F4B5,0xF50CF4EE,0xF5B4F54D,0xF606F5FB,0xF604F600,0xF61AF60F,0xF646F612, | |||||
0xF6CBF68B,0xF7E1F74A,0xF8ACF852,0xFA1CF94E,0xFAEFFA98,0xFB7EFB43,0xFC24FBCF,0xFCD7FC76, | |||||
0xFD9FFD46,0xFEB8FE18,0xFFF9FF61,0x00E50062,0x02110172,0x02ED02AA,0x03EB034B,0x04F10484, | |||||
0x05F4055B,0x076106B1,0x085707EC,0x0915089A,0x09E509AC,0x09ED09F2,0x0A1B09F5,0x0A760A38, | |||||
0x0ABD0AB8,0x0ADF0ACF,0x0AC60ACD,0x0ADE0ACE,0x0ABF0ADD,0x0A060A76,0x09B409C5,0x099C09A4, | |||||
0x092C097A,0x08F708F2,0x094C0914,0x09F20990,0x0AE70A76,0x0B850B5B,0x0AF40B49,0x0AC60AC4, | |||||
0x0B070AE6,0x0B290B1A,0x0B090B19,0x0ADE0AF9,0x0A070A8E,0x0942098E,0x088908ED,0x07770800, | |||||
0x060B06DE,0x04B80559,0x0381041F,0x02700309,0x00D501B4,0xFF67FFFA,0xFE05FEDD,0xFC52FD18, | |||||
0xFB42FBB6,0xFA86FAE2,0xF966FA04,0xF88AF8E3,0xF75AF7F4,0xF632F6C6,0xF576F5B9,0xF580F57E, | |||||
0xF510F553,0xF486F4C2,0xF442F460,0xF422F420,0xF463F440,0xF4BBF497,0xF4DBF4D2,0xF4A4F4C2, | |||||
0xF48CF495,0xF52FF4C5,0xF616F5B3,0xF6A9F661,0xF71BF6DF,0xF775F752,0xF7BDF795,0xF7DFF7CA, | |||||
0xF7B1F7C2,0xF76EF7A6,0xF727F741,0xF769F743,0xF724F753,0xF747F72C,0xF7E9F78E,0xF897F830, | |||||
0xF987F91E,0xFA67F9F2,0xFBA7FAF9,0xFCC9FC32,0xFE1BFD62,0xFEEAFEAC,0xFF4EFF12,0x003CFFA8, | |||||
0x018600E9,0x02A30221,0x035F0309,0x046D03D3,0x055A04E6,0x06AC0603,0x07970739,0x084607EC, | |||||
0x08AE0888,0x08E008BE,0x08DF08F2,0x092108EC,0x096E0948,0x09CF09A3,0x09E609E1,0x096E09CD, | |||||
0x08DC091F,0x086D088F,0x08340852,0x07D30816,0x07550780,0x07000734,0x06F306E7,0x07020701, | |||||
0x06F406F6,0x06F206FA,0x06B206D0,0x06DE06B2,0x0727071C,0x074B0734,0x0774075A,0x07EF07AF, | |||||
0x080707F9,0x084B082B,0x07E1082E,0x076D079D,0x06D8073A,0x063C067F,0x05A805F6,0x04B60539, | |||||
0x03D90447,0x02900349,0x00D901BA,0xFEC2FFD1,0xFCD0FDB3,0xFBBCFC3E,0xFAC6FB40,0xF9B9FA43, | |||||
0xF8BAF92F,0xF7EFF863,0xF707F768,0xF6AAF6CF,0xF5E9F666,0xF4FCF567,0xF4D9F4CB,0xF4A7F4CD, | |||||
0xF4A3F497,0xF4D8F4CE,0xF4F2F4D0,0xF553F527,0xF585F55C,0xF603F5DC,0xF679F633,0xF6FCF6AC, | |||||
0xF78BF74D,0xF7D2F7B6,0xF7FDF7EC,0xF82CF809,0xF8A4F86B,0xF8E2F8C9,0xF94BF90E,0xF9CFF985, | |||||
0xFA5DFA21,0xFAB7FA90,0xFAFEFAE3,0xFAD5FAEB,0xFAE5FADF,0xFB22FAEB,0xFBB8FB74,0xFC75FC09, | |||||
0xFD3DFCD2,0xFE28FDBE,0xFE6DFE57,0xFECCFE9E,0xFF47FEF7,0x006DFFCC,0x019A0107,0x02CC022F, | |||||
0x03E70376,0x04AA0440,0x05D60534,0x06D1065A,0x07F9075C,0x08FF0894,0x09310919,0x0967094F, | |||||
0x09750978,0x09510970,0x0925093B,0x08E20901,0x08A008C9,0x0899087F,0x08670899,0x08250842, | |||||
0x07EB0811,0x078007B1,0x06DE0735,0x0689069E,0x06890691,0x0693068A,0x0672068D,0x066D065E, | |||||
0x0678066E,0x06650679,0x067C0669,0x06890692,0x06640677,0x06570652,0x0647065C,0x06370638, | |||||
0x05FF0622,0x057E05CC,0x04D10528,0x0438047B,0x03EC0410,0x032C03AC,0x01D4027F,0x00A20140, | |||||
0xFFAB0013,0xFEAEFF2D,0xFDB0FE2A,0xFD01FD5D,0xFC01FC7E,0xFB2EFBA5,0xF9FDFA92,0xF917F97E, | |||||
0xF84CF8BA,0xF775F7D4,0xF6EFF72F,0xF699F6B9,0xF68DF68B,0xF68EF694,0xF68FF689,0xF69EF69E, | |||||
0xF6C8F6A8,0xF740F6FC,0xF7C0F787,0xF817F7E6,0xF889F85F,0xF89AF88E,0xF88BF898,0xF897F890, | |||||
0xF88EF891,0xF89CF88E,0xF8DBF8AD,0xF95CF922,0xF9A6F988,0xF999F9A1,0xF9B2F99F,0xF9EDF9D4, | |||||
0xFA27FA04,0xFA8AFA5D,0xFAC1FAA9,0xFB1DFAE3,0xFBC8FB6C,0xFC92FC25,0xFD65FD06,0xFDEBFDA6, | |||||
0xFEEBFE64,0xFFB1FF50,0x00A90023,0x01BA0134,0x02D20249,0x039F0340,0x0474040A,0x050304C5, | |||||
0x057A0539,0x061E05D4,0x06680645,0x06910682,0x06B5069B,0x073A06F2,0x07730769,0x0791077B, | |||||
0x07930797,0x0790078A,0x07AC07A1,0x079407AB,0x073C076A,0x06E40713,0x065D06AA,0x05EB061E, | |||||
0x05C705D3,0x05AB05B8,0x052F0579,0x05020502,0x05180513,0x052A051F,0x0555053A,0x0580056F, | |||||
0x05BA058F,0x05F705E4,0x05EE05F3,0x05C805E4,0x05A905B3,0x05B105AA,0x059105AF,0x051C0554, | |||||
0x04BF04EA,0x049504AA,0x03EA0457,0x02A20356,0x016401F6,0x005300D3,0xFF82FFF3,0xFE6EFEFC, | |||||
0xFD49FDDD,0xFC01FCA9,0xFAE9FB6B,0xFA31FA83,0xF9B3F9F0,0xF90DF966,0xF88DF8BA,0xF864F876, | |||||
0xF80FF834,0xF83BF81E,0xF86AF855,0xF8BAF88A,0xF8F0F8DA,0xF935F916,0xF924F936,0xF941F920, | |||||
0xF9A5F975,0xF9D3F9BE,0xF9EEF9EE,0xF9E7F9E5,0xFA06F9F6,0xFA2FFA15,0xFA4AFA4E,0xFA0AFA26, | |||||
0xFA09FA03,0xF9F1F9FD,0xFA08F9F4,0xF9F2FA0F,0xF9C4F9CD,0xF9C3F9C5,0xF9E1F9D2,0xF9FDF9EC, | |||||
0xFA54FA24,0xFAC0FA87,0xFB46FB02,0xFBF1FB8F,0xFCE5FC6C,0xFDAEFD50,0xFE5FFE00,0xFF3BFECE, | |||||
0x001CFFAA,0x0100008D,0x02010179,0x02D8026D,0x03A40341,0x044803F9,0x04FF04A5,0x05B9055D, | |||||
0x064B0609,0x06DF0699,0x07320710,0x07730752,0x07B0079B,0x07B307AF,0x07A307B1,0x0750078A, | |||||
0x069106F4,0x061D0648,0x057F05DA,0x04F3052B,0x04CB04DA,0x049704B4,0x0470047C,0x047A0478, | |||||
0x0471047A,0x046F0466,0x04A10489,0x04A704AC,0x04A9049E,0x04F604CD,0x052B0510,0x05390539, | |||||
0x05340536,0x0540053D,0x053B0540,0x04FC0525,0x049704C6,0x046F0481,0x040F0449,0x03A803D8, | |||||
0x0329036A,0x029402E2,0x01C7023B,0x00E50150,0x00200081,0xFF6DFFBF,0xFEC8FF1B,0xFE02FE6C, | |||||
0xFD3AFDA4,0xFC6EFCCF,0xFBA2FC0E,0xFABCFB27,0xFA24FA69,0xF9DCF9F8,0xF9A6F9C2,0xF960F986, | |||||
0xF904F931,0xF8D0F8E5,0xF8B6F8C2,0xF8B3F8AC,0xF8F9F8CE,0xF947F923,0xF9AAF979,0xF9E7F9CD, | |||||
0xFA2FFA02,0xFAB3FA70,0xFB2AFAEC,0xFB76FB5F,0xFB77FB78,0xFB62FB71,0xFB34FB53,0xFAF6FB0A, | |||||
0xFAD5FAE7,0xFAC4FAC9,0xFAA1FAB6,0xFA82FA8C,0xFA94FA84,0xFACBFAB6,0xFAF1FADC,0xFB36FB0C, | |||||
0xFBB3FB71,0xFC38FBF5,0xFCCDFC80,0xFD76FD20,0xFE10FDC3,0xFED3FE6F,0xFF87FF2C,0x0023FFDA, | |||||
0x00B7006E,0x012F00EF,0x01CD0183,0x02680216,0x032502C1,0x03DA0386,0x04670424,0x04D004A3, | |||||
0x050804EB,0x055B0534,0x059C057A,0x05F605CC,0x061E0611,0x0612061E,0x059E05E2,0x0552056E, | |||||
0x05440545,0x056D0551,0x059A0586,0x058E059F,0x0573057C,0x05570568,0x051E053B,0x04D804FB, | |||||
0x04AB04BA,0x04B504AE,0x04CA04BE,0x04CD04D1,0x04ED04D3,0x04F604FC,0x04E204ED,0x04D604D7, | |||||
0x04CA04D6,0x047804A9,0x0434044F,0x04150422,0x03C203F7,0x036D0395,0x02FF033D,0x028402C0, | |||||
0x01E10238,0x0113017C,0x005600B3,0xFFB6FFFD,0xFF39FF78,0xFEADFEF0,0xFE29FE74,0xFD6FFDCD, | |||||
0xFCE3FD20,0xFC82FCB1,0xFC2EFC5A,0xFBC5FBFC,0xFB46FB8A,0xFAC6FB03,0xFA72FA96,0xFA53FA5A, | |||||
0xFA59FA52,0xFA6BFA64,0xFA72FA71,0xFA7DFA76,0xFA7FFA7F,0xFA7EFA7B,0xFA91FA89,0xFA87FA90, | |||||
0xFA5CFA71,0xFA4FFA50,0xFA6AFA58,0xFA7CFA76,0xFA92FA85,0xFAAAFA9D,0xFACEFABE,0xFAECFADD, | |||||
0xFAEEFAF1,0xFAFEFAF6,0xFB00FAFF,0xFB1DFB0B,0xFB51FB32,0xFBB5FB7E,0xFC3BFBF9,0xFCB5FC76, | |||||
0xFD4BFD00,0xFDC1FD90,0xFE2CFDEC,0xFEBFFE7C,0xFF1DFEEC,0xFF84FF53,0xFFE6FFB0,0x006E0025, | |||||
0x00FA00B6,0x01870141,0x01F701C0,0x02770237,0x02BA02A1,0x02F802D8,0x0348031B,0x03760368, | |||||
0x038E037E,0x03E303B3,0x04180403,0x043D042A,0x04610453,0x045F0464,0x0464045F,0x048E0477, | |||||
0x04AD049F,0x04C104B3,0x04DE04CF,0x04F404EF,0x04F904F6,0x04FA04F7,0x05150501,0x05540534, | |||||
0x0584056E,0x05B8059B,0x05EB05D5,0x05ED05F4,0x05D005E2,0x059705B7,0x05660578,0x052B0551, | |||||
0x04E10502,0x049004BE,0x04270460,0x039A03E4,0x02F70349,0x0244029B,0x01A401F5,0x00F1014E, | |||||
0x00310090,0xFF83FFD2,0xFF22FF4D,0xFEB4FEF4,0xFE13FE66,0xFD83FDC5,0xFD0EFD47,0xFCB6FCDE, | |||||
0xFC6EFC91,0xFC3CFC51,0xFC0DFC27,0xFBD0FBF1,0xFB99FBB2,0xFB83FB88,0xFB8EFB88,0xFB90FB8E, | |||||
0xFB9FFB95,0xFBB1FBAC,0xFBA2FBAA,0xFB9AFBA1,0xFB6EFB85,0xFB49FB58,0xFB3EFB40,0xFB41FB42, | |||||
0xFB3AFB3D,0xFB4DFB3F,0xFB68FB5B,0xFB48FB63,0xFB22FB2F,0xFB09FB18,0xFAF9FB01,0xFADAFAEA, | |||||
0xFACBFACE,0xFADBFAD0,0xFAFEFAEA,0xFB52FB21,0xFBBBFB85,0xFC1AFBEA,0xFC9DFC56,0xFD25FCE9, | |||||
0xFD96FD59,0xFE32FDE1,0xFECAFE7F,0xFF5AFF13,0xFFE3FF9B,0x007B0034,0x00FE00BE,0x01650135, | |||||
0x01B5018F,0x01E901D6,0x021701FB,0x02480232,0x02770259,0x02D502A4,0x030D02F8,0x03300320, | |||||
0x035B0341,0x03920378,0x03BE03AC,0x03D103C8,0x03E103DA,0x03DD03E2,0x03E203DB,0x03DE03E3, | |||||
0x03DF03DC,0x03EF03E5,0x041C0400,0x045A043E,0x04930475,0x04CC04B1,0x050804E8,0x05180517, | |||||
0x05280520,0x050E0521,0x05260510,0x0545053D,0x05450545,0x053A0541,0x0517052B,0x04E10503, | |||||
0x048B04B7,0x0430045E,0x03B903F7,0x0346037A,0x02DF0318,0x024D0297,0x01B30202,0x00FE015F, | |||||
0x0043009D,0xFF90FFEA,0xFEC7FF2C,0xFE3AFE77,0xFDC6FE01,0xFD52FD8C,0xFD00FD24,0xFCA4FCD5, | |||||
0xFC4CFC74,0xFC17FC2B,0xFC18FC13,0xFC18FC1D,0xFBFDFC08,0xFBE4FBF4,0xFBB7FBCB,0xFB9EFBAB, | |||||
0xFB79FB8B,0xFB6CFB6F,0xFB71FB6C,0xFB98FB82,0xFBB3FBA6,0xFBD8FBC6,0xFBE1FBE1,0xFBDCFBDE, | |||||
0xFBC6FBD4,0xFBAAFBB7,0xFBAAFBA6,0xFBACFBAD,0xFB9EFBA7,0xFB6DFB8B,0xFB51FB56,0xFB4DFB4F, | |||||
0xFB55FB4C,0xFB81FB68,0xFBB0FB9A,0xFBF7FBD0,0xFC3BFC1B,0xFC8AFC5F,0xFD00FCC1,0xFD7FFD41, | |||||
0xFDEBFDB6,0xFE69FE27,0xFEE8FEAA,0xFF76FF2C,0xFFFBFFBB,0x00720037,0x00DD00AC,0x012D0107, | |||||
0x017A0153,0x01D901A7,0x02490213,0x02A7027D,0x02D502C2,0x02EC02E3,0x030102F4,0x030E030A, | |||||
0x03190311,0x03230322,0x03320325,0x035F0347,0x038D0375,0x03BE03A7,0x03E403D1,0x041B03FF, | |||||
0x04360430,0x04400437,0x04680456,0x047E0475,0x04880485,0x048E048A,0x04AC049A,0x04D404BF, | |||||
0x04E804E4,0x04E604E5,0x04DA04E6,0x049C04BA,0x04670484,0x044A0455,0x0428043C,0x03F1040F, | |||||
0x03AB03D1,0x035B0382,0x03160339,0x02BE02EA,0x0254028F,0x01C4020F,0x0132017A,0x00A700EB, | |||||
0x00230066,0xFF8DFFDA,0xFF0FFF4B,0xFE94FED4,0xFE1DFE56,0xFDC7FDEA,0xFD91FDAA,0xFD48FD70, | |||||
0xFCF8FD1E,0xFCB8FCD7,0xFC62FC90,0xFC12FC36,0xFBFEFC00,0xFC0AFC08,0xFBFEFC02,0xFBF1FBF9, | |||||
0xFBDAFBE6,0xFBC4FBCE,0xFBA9FBB7,0xFB9CFBA5,0xFB82FB90,0xFB58FB6D,0xFB4AFB4C,0xFB58FB50, | |||||
0xFB66FB61,0xFB61FB64,0xFB5DFB5E,0xFB61FB5D,0xFB76FB6B,0xFB9BFB85,0xFBBEFBB1,0xFBC0FBBE, | |||||
0xFBE3FBCD,0xFC1BFBFE,0xFC5EFC3A,0xFCB3FC8A,0xFD15FCE0,0xFD87FD4E,0xFDF9FDBF,0xFE60FE32, | |||||
0xFECAFE92,0xFF34FF03,0xFF79FF56,0xFFD3FFA4,0x00390005,0x00B10070,0x013300F7,0x017B015C, | |||||
0x01B00199,0x01C801BF,0x01E801D5,0x021D0202,0x02370230,0x023E0239,0x025D024A,0x02860273, | |||||
0x02B7029A,0x02F102D6,0x03210309,0x03480337,0x03670357,0x0392037B,0x03BF03A7,0x040903E2, | |||||
0x043D0429,0x0461044D,0x04870474,0x04BD04A0,0x04EB04D6,0x050104FA,0x04FC0501,0x04EE04F5, | |||||
0x04E304E8,0x04CF04DA,0x04AE04C1,0x048F049D,0x046A0480,0x04290449,0x03DE0406,0x038603B4, | |||||
0x03250357,0x02B302EC,0x023B027A,0x01AB01F3,0x01210164,0x009C00DD,0x001C005D,0xFFA1FFDD, | |||||
0xFF31FF6A,0xFECDFEFA,0xFE86FEA9,0xFE46FE67,0xFE01FE23,0xFDBCFDDC,0xFD81FD9E,0xFD56FD69, | |||||
0xFD3EFD49,0xFD29FD34,0xFD0AFD1A,0xFCF2FCFF,0xFCD3FCE3,0xFC96FCB8,0xFC5EFC78,0xFC36FC4C, | |||||
0xFBF8FC18,0xFBCBFBDD,0xFBB3FBBF,0xFBA5FBA9,0xFBA6FBA3,0xFB94FBA2,0xFB6DFB7F,0xFB4DFB5F, | |||||
0xFB31FB3B,0xFB30FB2D,0xFB44FB37,0xFB5BFB51,0xFB71FB64,0xFB96FB84,0xFBB8FBA6,0xFBECFBCE, | |||||
0xFC36FC11,0xFC7EFC59,0xFCDEFCAB,0xFD4CFD15,0xFDBBFD85,0xFE1FFDED,0xFE86FE51,0xFEE7FEBA, | |||||
0xFF3CFF0F,0xFFB1FF74,0x001DFFEB,0x00820050,0x00DA00B0,0x011700FD,0x0143012C,0x017A0160, | |||||
0x01A90190,0x01D001BD,0x01FA01E2,0x02330215,0x0264024F,0x02870278,0x0290028D,0x028C0290, | |||||
0x028A0286,0x02A20295,0x02CF02B5,0x032102F4,0x0373034C,0x03C1039B,0x040003E1,0x0435041E, | |||||
0x04510444,0x04750462,0x04910487,0x04A30497,0x04B804AD,0x04CC04C4,0x04D704D1,0x04E204DB, | |||||
0x04D904E3,0x04BE04CB,0x049E04AF,0x046C0488,0x0428044C,0x03CE03FD,0x0364039C,0x02F4032D, | |||||
0x028102BD,0x01FC0240,0x017D01BA,0x00FB013E,0x007600B6,0xFFF40034,0xFF78FFB3,0xFF10FF41, | |||||
0xFEB0FEE0,0xFE52FE80,0xFE09FE2B,0xFDCAFDE7,0xFD98FDB1,0xFD75FD83,0xFD63FD6E,0xFD3CFD51, | |||||
0xFD0EFD26,0xFCDAFCF4,0xFCBAFCC6,0xFCA7FCB0,0xFC88FC9A,0xFC68FC75,0xFC63FC63,0xFC56FC5D, | |||||
0xFC4BFC51,0xFC3DFC45,0xFC1EFC30,0xFBFCFC0C,0xFBE3FBED,0xFBC6FBD7,0xFBADFBB6,0xFBA4FBA8, | |||||
0xFBA2FBA1,0xFBAEFBA5,0xFBB7FBB3,0xFBC4FBBC,0xFBDDFBCF,0xFBFDFBED,0xFC20FC0D,0xFC5CFC39, | |||||
0xFCB3FC86,0xFD0BFCDF,0xFD66FD3A,0xFDAEFD8A,0xFE05FDD7,0xFE73FE39,0xFEE1FEAC,0xFF4AFF16, | |||||
0xFFA9FF7C,0xFFF3FFD0,0x00350013,0x0086005C,0x00D600AE,0x011A00F8,0x016C0141,0x01C2019A, | |||||
0x01FF01E3,0x022C0215,0x02530241,0x02710263,0x0283027B,0x0296028A,0x02BE02A8,0x02F102D6, | |||||
0x033F0315,0x03890368,0x03C103A5,0x03FC03E0,0x04230411,0x0438042E,0x04460441,0x044A044A, | |||||
0x045B044F,0x04670464,0x04600464,0x045A045D,0x044C0456,0x0432043E,0x041A0426,0x04040411, | |||||
0x03E503F4,0x03C303D6,0x039303AE,0x03490370,0x03030322,0x02C002E4,0x0276029A,0x022B0253, | |||||
0x01C401FA,0x0152018B,0x00DF011A,0x006D00A4,0x00060038,0xFFA3FFD5,0xFF37FF6D,0xFEE8FF0B, | |||||
0xFEA6FEC8,0xFE5DFE80,0xFE26FE42,0xFDE5FE07,0xFDA4FDC4,0xFD64FD85,0xFD20FD43,0xFCE0FCFD, | |||||
0xFCB8FCCA,0xFC9AFCA9,0xFC86FC8D,0xFC6BFC7B,0xFC53FC5F,0xFC39FC44,0xFC1FFC2E,0xFC01FC0E, | |||||
0xFBE8FBF4,0xFBD5FBDE,0xFBC4FBCD,0xFBB3FBBC,0xFBABFBAF,0xFBB1FBAA,0xFBC7FBBD,0xFBE1FBD2, | |||||
0xFC06FBF4,0xFC2CFC19,0xFC57FC41,0xFC8FFC71,0xFCD3FCAF,0xFD1BFCF7,0xFD65FD3F,0xFDABFD89, | |||||
0xFDEFFDCD,0xFE2FFE10,0xFE61FE49,0xFEA2FE7E,0xFEDFFEC3,0xFF22FF00,0xFF63FF42,0xFFB0FF89, | |||||
0xFFFEFFD7,0x004A0021,0x009A0073,0x00E000BE,0x01200101,0x01660142,0x01A9018A,0x01DD01C4, | |||||
0x01F901EE,0x020F0202,0x02360221,0x02590249,0x028A026D,0x02D002AD,0x031902F5,0x0359033B, | |||||
0x03960378,0x03CB03B1,0x040403E9,0x0431041B,0x044C0442,0x045F0457,0x046B0465,0x0471046F, | |||||
0x046F0472,0x045F0469,0x043D044E,0x041F042D,0x04000411,0x03E403F1,0x03BC03D3,0x037E039F, | |||||
0x03310358,0x02D90308,0x027D02AA,0x02270252,0x01D701FE,0x018001AE,0x01210150,0x00CA00F5, | |||||
0x007A00A1,0x00310055,0xFFDF0008,0xFF98FFBB,0xFF59FF78,0xFF27FF3E,0xFEFBFF11,0xFEC5FEE6, | |||||
0xFE71FE9B,0xFE2BFE4A,0xFDF1FE0D,0xFDBBFDD5,0xFD8CFDA4,0xFD56FD71,0xFD24FD3C,0xFCF2FD0C, | |||||
0xFCCAFCDD,0xFCA3FCB8,0xFC79FC90,0xFC48FC61,0xFC25FC35,0xFC08FC17,0xFBEAFBF8,0xFBDFFBE3, | |||||
0xFBD4FBDB,0xFBC3FBCA,0xFBB9FBBB,0xFBBFFBBA,0xFBD2FBC8,0xFBF5FBE2,0xFC1FFC0C,0xFC4DFC34, | |||||
0xFC91FC6C,0xFCE0FCB8,0xFD2AFD06,0xFD6EFD4D,0xFDABFD8D,0xFDEAFDC8,0xFE35FE10,0xFE7EFE5A, | |||||
0xFEC8FEA1,0xFF0FFEEC,0xFF4FFF2E,0xFF8CFF6E,0xFFCAFFAA,0x000EFFEC,0x0050002F,0x00880070, | |||||
0x00B8009F,0x00E700D0,0x011700FD,0x01490131,0x01750161,0x01920186,0x01B001A0,0x01D501C3, | |||||
0x020201E8,0x0231021B,0x02530244,0x02760263,0x029E028A,0x02D202B7,0x030902EE,0x03410325, | |||||
0x0378035E,0x03A60390,0x03CB03B9,0x03E503DB,0x03F903EE,0x04060401,0x040A0408,0x04050408, | |||||
0x03FF0403,0x03F703FB,0x03F103F5,0x03D103E4,0x03A703BD,0x036A038B,0x03240348,0x02E00300, | |||||
0x028F02BB,0x022A025D,0x01CB01F9,0x017901A1,0x01250150,0x00CA00F7,0x0071009E,0x001C0045, | |||||
0xFFD5FFF9,0xFF8DFFB1,0xFF43FF68,0xFF02FF21,0xFECAFEE6,0xFE95FEAF,0xFE66FE7D,0xFE39FE50, | |||||
0xFE0FFE24,0xFDECFDFD,0xFDC0FDD8,0xFD8BFDA5,0xFD5CFD72,0xFD3EFD4C,0xFD26FD32,0xFD04FD17, | |||||
0xFCD6FCED,0xFCAEFCBF,0xFC94FC9E,0xFC8CFC8F,0xFC87FC8B,0xFC70FC7E,0xFC5BFC63,0xFC53FC57, | |||||
0xFC4CFC4F,0xFC4CFC4A,0xFC5EFC52,0xFC78FC6A,0xFC9DFC89,0xFCC4FCB0,0xFCEBFCD6,0xFD1FFD02, | |||||
0xFD58FD3C,0xFD8CFD72,0xFDC1FDA6,0xFDFBFDDE,0xFE42FE1C,0xFE92FE6B,0xFEDDFEB9,0xFF1CFEFE, | |||||
0xFF4EFF36,0xFF84FF68,0xFFBDFFA0,0xFFF3FFD9,0x001F0009,0x00530036,0x008C0070,0x00C400A8, | |||||
0x00FF00E3,0x012F0119,0x01560142,0x017E016A,0x01A70192,0x01D301BC,0x020101EB,0x021F0211, | |||||
0x0238022B,0x02510245,0x02770264,0x02A6028D,0x02D802C1,0x02F502E9,0x030E0302,0x0326031A, | |||||
0x03390330,0x03500344,0x035D0358,0x0359035C,0x035E035A,0x03620360,0x03650363,0x035C0361, | |||||
0x03480354,0x032C033B,0x0306031A,0x02D602EF,0x02A202BD,0x026A0286,0x022D024E,0x01EE020F, | |||||
0x01AE01CE,0x01740191,0x013B0159,0x00F6011A,0x00AD00D1,0x0069008B,0x002A0049,0xFFED000B, | |||||
0xFFAEFFCD,0xFF6DFF8E,0xFF2AFF4B,0xFEEEFF0C,0xFEBEFED5,0xFE8BFEA4,0xFE51FE6F,0xFE12FE30, | |||||
0xFDDDFDF6,0xFDAAFDC3,0xFD7DFD92,0xFD57FD69,0xFD39FD48,0xFD17FD28,0xFCF5FD06,0xFCDEFCE6, | |||||
0xFCDBFCDB,0xFCDCFCDC,0xFCD4FCD7,0xFCCBFCD0,0xFCBFFCC6,0xFCBAFCBA,0xFCC5FCBF,0xFCCBFCC9, | |||||
0xFCD6FCD0,0xFCF0FCE2,0xFD13FD00,0xFD3CFD27,0xFD63FD4F,0xFD8AFD76,0xFDB2FD9D,0xFDE5FDCB, | |||||
0xFE1BFE00,0xFE5AFE39,0xFE99FE7A,0xFED3FEB7,0xFF04FEEC,0xFF30FF1A,0xFF5BFF46,0xFF85FF70, | |||||
0xFFADFF9A,0xFFD4FFC1,0xFFFEFFE9,0x00280011,0x00650045,0x00950080,0x00B700A8,0x00D800C5, | |||||
0x010400ED,0x0135011C,0x016A0150,0x01970182,0x01BF01AB,0x01E701D3,0x020C01FA,0x0233021E, | |||||
0x025F0249,0x02870272,0x02B1029D,0x02D502C4,0x02ED02E2,0x030002F6,0x0310030A,0x03110312, | |||||
0x0309030E,0x03040307,0x03010302,0x02FE0301,0x02F202FA,0x02D602E6,0x02B402C4,0x029702A6, | |||||
0x02730286,0x024F0261,0x021E0238,0x01EF0206,0x01C101D8,0x018F01A8,0x015C0176,0x01270142, | |||||
0x00EB0108,0x00B200CE,0x007E0097,0x004B0064,0x00210035,0xFFF8000C,0xFFC8FFE1,0xFF97FFB0, | |||||
0xFF69FF7E,0xFF49FF58,0xFF24FF37,0xFEF3FF0C,0xFEC0FED9,0xFE8DFEA7,0xFE5BFE73,0xFE2FFE46, | |||||
0xFE02FE19,0xFDD1FDE9,0xFDA6FDBA,0xFD82FD93,0xFD61FD71,0xFD47FD53,0xFD2FFD3A,0xFD16FD21, | |||||
0xFD06FD0E,0xFCF7FCFF,0xFCEDFCF1,0xFCE8FCEA,0xFCEBFCE8,0xFCF7FCF0,0xFD0FFD02,0xFD2DFD1D, | |||||
0xFD50FD3E,0xFD7AFD65,0xFDA2FD8F,0xFDCAFDB4,0xFDF6FDDF,0xFE29FE0E,0xFE64FE47,0xFE93FE7D, | |||||
0xFEBFFEA9,0xFEECFED6,0xFF15FF02,0xFF39FF27,0xFF60FF4D,0xFF8CFF75,0xFFBCFFA4,0xFFECFFD3, | |||||
0x00230007,0x0052003B,0x007B0067,0x00A0008E,0x00C200B2,0x00E500D4,0x010A00F7,0x0131011D, | |||||
0x01560144,0x01720166,0x018B017F,0x01A70199,0x01CA01B6,0x01EC01DC,0x021201FF,0x02340224, | |||||
0x02510243,0x026E0260,0x028C027E,0x029A0295,0x02A0029E,0x02A402A3,0x02A702A6,0x02AA02A9, | |||||
0x02AD02AB,0x02A702AB,0x029B02A1,0x028A0293,0x0272027E,0x025A0264,0x02430250,0x021C0233, | |||||
0x01EF0206,0x01BA01D5,0x018701A0,0x0156016E,0x0121013D,0x00E80105,0x00B000CB,0x00840099, | |||||
0x00640073,0x00410053,0x0019002D,0xFFF10004,0xFFC8FFDD,0xFF9EFFB2,0xFF77FF8B,0xFF50FF63, | |||||
0xFF23FF39,0xFEF5FF0C,0xFECAFEDF,0xFEA0FEB5,0xFE7BFE8C,0xFE58FE6A,0xFE30FE44,0xFE07FE1B, | |||||
0xFDE4FDF5,0xFDCCFDD5,0xFDBAFDC3,0xFDA5FDB1,0xFD8FFD9B,0xFD7FFD85,0xFD74FD79,0xFD72FD72, | |||||
0xFD6BFD6F,0xFD67FD68,0xFD69FD66,0xFD77FD6F,0xFD8DFD82,0xFDA0FD96,0xFDB6FDAA,0xFDCDFDC2, | |||||
0xFDE9FDD9,0xFE06FDF8,0xFE27FE16,0xFE46FE36,0xFE66FE56,0xFE89FE77,0xFEACFE9A,0xFED9FEC1, | |||||
0xFF0BFEF0,0xFF3AFF23,0xFF66FF50,0xFF93FF7C,0xFFC6FFAC,0xFFF9FFE1,0x0021000D,0x00420032, | |||||
0x00620051,0x00840072,0x00AB0098,0x00CF00BC,0x00F400E1,0x011B0107,0x0143012F,0x01670155, | |||||
0x01890178,0x01AA0199,0x01CD01BB,0x01EF01DD,0x020B01FE,0x02240217,0x0239022F,0x024C0242, | |||||
0x02550251,0x02570256,0x02540254,0x02510252,0x024D0250,0x0246024B,0x023B0241,0x022F0236, | |||||
0x02210228,0x02100219,0x01FF0209,0x01EA01F5,0x01CE01DC,0x01B101C0,0x019201A3,0x0170017F, | |||||
0x01520163,0x01300142,0x0107011B,0x00E300F4,0x00C300D3,0x00A300B4,0x00810092,0x0057006D, | |||||
0x002A0040,0x00000014,0xFFD8FFEC,0xFFACFFC2,0xFF83FF98,0xFF59FF6E,0xFF2EFF43,0xFF09FF1B, | |||||
0xFEE1FEF5,0xFEB7FECC,0xFE8EFEA2,0xFE66FE79,0xFE43FE54,0xFE27FE34,0xFE0FFE1A,0xFDF9FE04, | |||||
0xFDE1FDEC,0xFDCDFDD6,0xFDBDFDC5,0xFDB5FDB8,0xFDB4FDB4,0xFDB7FDB5,0xFDBBFDB9,0xFDC1FDBD, | |||||
0xFDCEFDC7,0xFDE0FDD7,0xFDF1FDE8,0xFE03FDFB,0xFE17FE0C,0xFE34FE25,0xFE53FE43,0xFE70FE61, | |||||
0xFE89FE7C,0xFEA4FE97,0xFEBEFEB1,0xFEDAFECC,0xFEF5FEE7,0xFF14FF04,0xFF32FF23,0xFF52FF42, | |||||
0xFF72FF63,0xFF8FFF81,0xFFAAFF9C,0xFFC5FFB7,0xFFE2FFD4,0x0000FFF0,0x00230011,0x004C0038, | |||||
0x00750060,0x009E008A,0x00C500B1,0x00EB00D8,0x011500FF,0x013F012B,0x01640152,0x01820174, | |||||
0x01A20191,0x01C601B3,0x01E801D8,0x020301F7,0x0213020C,0x021E0219,0x02290225,0x0236022E, | |||||
0x023E023B,0x02410240,0x023A023E,0x022B0234,0x02160220,0x0202020C,0x01ED01F8,0x01D401E1, | |||||
0x01B901C6,0x019D01AC,0x0181018F,0x01640171,0x01460156,0x01280138,0x01020114,0x00E400F2, | |||||
0x00C900D6,0x00AC00BB,0x008B009B,0x00680079,0x00460057,0x00270037,0x000A0019,0xFFEBFFFA, | |||||
0xFFCCFFDB,0xFFB0FFBE,0xFF97FFA3,0xFF7CFF8A,0xFF5AFF6B,0xFF37FF49,0xFF10FF23,0xFEE9FEFC, | |||||
0xFEC5FED6,0xFEA6FEB6,0xFE86FE97,0xFE69FE78,0xFE4DFE5A,0xFE34FE41,0xFE22FE2B,0xFE11FE18, | |||||
0xFE02FE0A,0xFDF7FDFB,0xFDEDFDF2,0xFDECFDEC,0xFDF3FDEF,0xFDF9FDF5,0xFE00FDFC,0xFE09FE05, | |||||
0xFE19FE11,0xFE2EFE23,0xFE47FE3B,0xFE63FE54,0xFE80FE72,0xFE9EFE8F,0xFEBCFEAD,0xFEDAFECB, | |||||
0xFEF5FEE8,0xFF0FFF02,0xFF26FF1A,0xFF3FFF33,0xFF5BFF4D,0xFF78FF6A,0xFF92FF85,0xFFABFF9F, | |||||
0xFFC3FFB7,0xFFDCFFCF,0xFFFCFFEB,0x0020000D,0x00440033,0x00640054,0x007F0071,0x009A008D, | |||||
0x00B600A8,0x00D200C4,0x00ED00DF,0x010900FC,0x01210115,0x013A012E,0x01570147,0x01750166, | |||||
0x018D0181,0x01A5019A,0x01B901AF,0x01CE01C3,0x01E001D7,0x01F201E9,0x01FE01F9,0x01FF01FF, | |||||
0x01FB01FE,0x01F401F8,0x01E801F0,0x01D901E1,0x01C601D0,0x01B401BD,0x01A101AB,0x018B0197, | |||||
0x0170017D,0x01530161,0x01350145,0x01140124,0x00F50104,0x00D400E6,0x00B100C1,0x008F00A2, | |||||
0x0069007C,0x004A0058,0x002F003D,0x00150022,0xFFF60006,0xFFD7FFE6,0xFFB8FFC8,0xFFA0FFAC, | |||||
0xFF84FF93,0xFF66FF75,0xFF48FF56,0xFF28FF37,0xFF0CFF19,0xFEF3FEFE,0xFEDBFEE8,0xFEC3FED0, | |||||
0xFEADFEB8,0xFE98FEA3,0xFE87FE8F,0xFE78FE7E,0xFE69FE70,0xFE5DFE63,0xFE56FE59,0xFE50FE52, | |||||
0xFE4CFE4D,0xFE4CFE4C,0xFE4CFE4C,0xFE4CFE4B,0xFE4AFE4B,0xFE50FE4C,0xFE5BFE55,0xFE69FE62, | |||||
0xFE7BFE72,0xFE8FFE85,0xFEA5FE9A,0xFEBEFEB1,0xFED5FECA,0xFEEBFEDF,0xFEFFFEF4,0xFF16FF0B, | |||||
0xFF2DFF22,0xFF48FF3A,0xFF64FF56,0xFF81FF73,0xFF9DFF8F,0xFFB7FFAB,0xFFD2FFC4,0xFFF1FFE1, | |||||
0x00100000,0x00300021,0x004E003F,0x006A005D,0x00830076,0x009E0091,0x00B700AA,0x00CE00C2, | |||||
0x00E500DA,0x00FC00F1,0x01130108,0x0126011D,0x013A012F,0x014E0144,0x01600157,0x01730169, | |||||
0x0182017B,0x0192018B,0x019C0197,0x01A201A0,0x01A201A3,0x01A101A1,0x019D01A0,0x01960199, | |||||
0x018B0190,0x01800185,0x0178017A,0x01710174,0x0165016C,0x0156015F,0x0142014D,0x012B0137, | |||||
0x0113011E,0x00FD0109,0x00E600F2,0x00CA00D9,0x00AF00BD,0x009300A1,0x007A0086,0x005E006D, | |||||
0x00420050,0x00260034,0x00070017,0xFFE9FFF8,0xFFCBFFDA,0xFFADFFBB,0xFF90FF9F,0xFF72FF80, | |||||
0xFF51FF62,0xFF34FF42,0xFF18FF26,0xFEFEFF0B,0xFEE4FEF1,0xFECEFED8,0xFEBBFEC5,0xFEAEFEB6, | |||||
0xFEA2FEA7,0xFE97FE9C,0xFE8EFE92,0xFE85FE89,0xFE81FE83,0xFE7FFE7F,0xFE7DFE7D,0xFE7BFE7B, | |||||
0xFE7DFE7B,0xFE81FE7F,0xFE8AFE84,0xFE97FE90,0xFEA4FE9D,0xFEB5FEAD,0xFEC5FEBD,0xFED5FECD, | |||||
0xFEE6FEDE,0xFEF6FEEE,0xFF07FEFF,0xFF18FF0F,0xFF29FF21,0xFF3EFF33,0xFF54FF48,0xFF69FF5E, | |||||
0xFF7FFF74,0xFF92FF89,0xFFA7FF9D,0xFFBBFFB1,0xFFD0FFC5,0xFFE7FFDC,0xFFFFFFF3,0x001A000C, | |||||
0x00330028,0x004F0041,0x0069005C,0x00810075,0x009A008D,0x00B200A6,0x00CC00BF,0x00E400D9, | |||||
0x00FA00EF,0x010F0104,0x01220119,0x0133012A,0x0144013C,0x0152014C,0x015E0158,0x01670163, | |||||
0x016C016A,0x016D016C,0x016F0170,0x016C016E,0x0168016A,0x01640166,0x015E0161,0x01540159, | |||||
0x014B014F,0x013E0145,0x012E0137,0x011C0125,0x01080113,0x00F400FE,0x00E000EB,0x00CC00D7, | |||||
0x00B800C2,0x00A400AE,0x008E0099,0x00780082,0x0061006C,0x00490054,0x0032003E,0x001E0028, | |||||
0x00080013,0xFFF0FFFD,0xFFD9FFE4,0xFFC4FFCE,0xFFA9FFB6,0xFF92FF9D,0xFF77FF84,0xFF5DFF6A, | |||||
0xFF42FF4F,0xFF2CFF37,0xFF16FF21,0xFF00FF0B,0xFEEEFEF7,0xFEDEFEE6,0xFECFFED7,0xFEC3FEC8, | |||||
0xFEB8FEBD,0xFEAFFEB4,0xFEAAFEAD,0xFEA4FEA7,0xFEA1FEA2,0xFEA2FEA1,0xFEA4FEA2,0xFEAAFEA7, | |||||
0xFEB0FEAD,0xFEBDFEB5,0xFEC9FEC2,0xFED6FED0,0xFEE3FEDC,0xFEF0FEE9,0xFF00FEF8,0xFF13FF09, | |||||
0xFF24FF1C,0xFF39FF2F,0xFF4EFF44,0xFF63FF59,0xFF7BFF70,0xFF8FFF84,0xFF9FFF97,0xFFB0FFA7, | |||||
0xFFC2FFB8,0xFFD6FFCD,0xFFEAFFE0,0xFFFFFFF4,0x00100007,0x0023001A,0x0037002D,0x004A0040, | |||||
0x005D0054,0x00720067,0x0085007B,0x0096008D,0x00AB00A1,0x00BC00B3,0x00CF00C6,0x00DE00D7, | |||||
0x00EE00E6,0x00FD00F6,0x010C0105,0x01190112,0x0123011E,0x012B0127,0x0132012F,0x01370135, | |||||
0x013B013A,0x013D013D,0x013B013C,0x01380139,0x01330136,0x012B012F,0x011F0125,0x01140119, | |||||
0x0106010D,0x00F80100,0x00E900F0,0x00D900E2,0x00C600CF,0x00B200BD,0x009E00A8,0x00890094, | |||||
0x0073007E,0x005F0069,0x004B0055,0x00360041,0x0022002C,0x000D0017,0xFFFB0004,0xFFE9FFF1, | |||||
0xFFD3FFDE,0xFFBEFFC8,0xFFA9FFB4,0xFF95FF9F,0xFF81FF8B,0xFF6FFF78,0xFF5CFF65,0xFF4BFF53, | |||||
0xFF3AFF42,0xFF2AFF32,0xFF1CFF23,0xFF0FFF16,0xFF05FF0A,0xFEFAFEFF,0xFEF4FEF7,0xFEECFEEF, | |||||
0xFEE8FEEB,0xFEE4FEE6,0xFEE2FEE3,0xFEE1FEE1,0xFEE2FEE1,0xFEE4FEE2,0xFEE8FEE6,0xFEEEFEEB, | |||||
0xFEF3FEF1,0xFEFCFEF7,0xFF07FF01,0xFF12FF0B,0xFF1FFF18,0xFF2DFF26,0xFF3DFF36,0xFF4EFF46, | |||||
0xFF5EFF56,0xFF6EFF66,0xFF81FF77,0xFF91FF89,0xFFA3FF99,0xFFB6FFAC,0xFFC9FFC0,0xFFDEFFD3, | |||||
0xFFF1FFE8,0x0004FFFB,0x0016000D,0x0028001F,0x00390030,0x004A0042,0x005A0052,0x006A0062, | |||||
0x007C0072,0x008A0084,0x009A0093,0x00A700A1,0x00B500AD,0x00C200BC,0x00CE00C7,0x00DA00D5, | |||||
0x00E500DF,0x00EE00EA,0x00F800F3,0x00FE00FB,0x01020100,0x01030103,0x01050105,0x01040105, | |||||
0x01010103,0x00FC00FD,0x00F700FA,0x00EF00F2,0x00E700EA,0x00DE00E3,0x00D500DA,0x00CA00D0, | |||||
0x00BF00C5,0x00B300BA,0x00A500AC,0x0097009E,0x0085008E,0x0076007E,0x0066006D,0x0056005E, | |||||
0x0046004D,0x0035003F,0x0024002D,0x0012001B,0x0000000A,0xFFF0FFF9,0xFFDCFFE6,0xFFCAFFD3, | |||||
0xFFB9FFC2,0xFFA8FFB0,0xFF98FFA0,0xFF86FF8E,0xFF76FF7D,0xFF65FF6E,0xFF56FF5E,0xFF48FF4F, | |||||
0xFF3DFF42,0xFF32FF37,0xFF29FF2E,0xFF22FF25,0xFF1CFF1F,0xFF18FF1A,0xFF15FF16,0xFF12FF14, | |||||
0xFF11FF11,0xFF10FF10,0xFF13FF11,0xFF15FF14,0xFF1BFF18,0xFF21FF1D,0xFF29FF25,0xFF31FF2D, | |||||
0xFF3AFF36,0xFF45FF3E,0xFF50FF4B,0xFF5DFF56,0xFF68FF63,0xFF72FF6D,0xFF7EFF77,0xFF89FF84, | |||||
0xFF96FF90,0xFFA4FF9D,0xFFB1FFAB,0xFFC0FFB9,0xFFCEFFC7,0xFFDCFFD5,0xFFEAFFE3,0xFFF9FFF2, | |||||
0x00060000,0x0014000C,0x0022001C,0x00320029,0x0042003A,0x0051004A,0x00610059,0x006F0067, | |||||
0x007C0075,0x00880082,0x0097008F,0x00A5009E,0x00B200AB,0x00BE00B9,0x00CA00C4,0x00D100CD, | |||||
0x00D700D4,0x00DB00DA,0x00DC00DC,0x00DF00DE,0x00DC00DE,0x00DB00DC,0x00D700D9,0x00D200D5, | |||||
0x00CC00CF,0x00C600C8,0x00BE00C3,0x00B500B9,0x00AC00B1,0x00A100A6,0x0096009C,0x00880090, | |||||
0x007C0082,0x006E0075,0x00620069,0x0055005B,0x00490050,0x003B0043,0x002F0036,0x0023002A, | |||||
0x0015001C,0x0008000F,0xFFFC0003,0xFFF1FFF7,0xFFE6FFEB,0xFFDAFFE0,0xFFD0FFD2,0x00000000, | |||||
}; |
// Audio data converted from WAV file by wav2sketch | |||||
extern const unsigned int AudioSampleTomtom[3489]; |
} | } | ||||
void loop() { | void loop() { | ||||
// TODO: make PC's volume setting control the SGTL5000 volume... | |||||
// read the PC's volume setting | |||||
float vol = usb1.volume(); | |||||
// scale to a nice range (not too loud) | |||||
// and adjust the audio shield output volume | |||||
if (vol > 0) { | |||||
// scale 0 = 1.0 range to: | |||||
// 0.3 = almost silent | |||||
// 0.8 = really loud | |||||
vol = 0.3 + vol * 0.5; | |||||
} | |||||
// use the scaled volume setting. Delete this for fixed volume. | |||||
sgtl5000_1.volume(vol); | |||||
delay(100); | |||||
} | } | ||||
// A known problem occurs on Macintosh computers, where the Mac's driver | |||||
// does not seem to be able to adapt and transmit horribly distorted | |||||
// audio to Teensy after a matter of minutes. An imperfect workaround | |||||
// can be enabled by editing usb_audio.cpp. Find and uncomment | |||||
// "#define MACOSX_ADAPTIVE_LIMIT". More detailed info is available here: | |||||
// Teensyduino 1.35 & earlier had a problem with USB audio on Macintosh | |||||
// computers. For more info and a workaround: | |||||
// https://forum.pjrc.com/threads/34855-Distorted-audio-when-using-USB-input-on-Teensy-3-1?p=110392&viewfull=1#post110392 | // https://forum.pjrc.com/threads/34855-Distorted-audio-when-using-USB-input-on-Teensy-3-1?p=110392&viewfull=1#post110392 | ||||
AudioControlSGTL5000 sgtl5000_1; | AudioControlSGTL5000 sgtl5000_1; | ||||
AudioControlSGTL5000 sgtl5000_2; | AudioControlSGTL5000 sgtl5000_2; | ||||
// Use these with the audio adaptor board | |||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | #define SDCARD_CS_PIN 10 | ||||
#define SDCARD_MOSI_PIN 7 | #define SDCARD_MOSI_PIN 7 | ||||
#define SDCARD_SCK_PIN 14 | #define SDCARD_SCK_PIN 14 | ||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioMemory(10); | AudioMemory(10); |
#include <SD.h> | #include <SD.h> | ||||
#include <SPI.h> | #include <SPI.h> | ||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Sd2Card card; | Sd2Card card; | ||||
SdVolume volume; | SdVolume volume; | ||||
while (!Serial) ; | while (!Serial) ; | ||||
delay(50); | delay(50); | ||||
// Configure SPI for the audio shield pins | |||||
SPI.setMOSI(7); // Audio shield has MOSI on pin 7 | |||||
SPI.setSCK(14); // Audio shield has SCK on pin 14 | |||||
// Configure SPI | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
Serial.begin(9600); | Serial.begin(9600); | ||||
Serial.println("SD Card Test"); | Serial.println("SD Card Test"); | ||||
Serial.println("------------"); | Serial.println("------------"); | ||||
// First, detect the card | // First, detect the card | ||||
status = card.init(SPI_FULL_SPEED, 10); // Audio shield has SD card SD on pin 10 | |||||
status = card.init(SPI_FULL_SPEED, SDCARD_CS_PIN); | |||||
if (status) { | if (status) { | ||||
Serial.println("SD card is connected :-)"); | Serial.println("SD card is connected :-)"); | ||||
} else { | } else { | ||||
Serial.println(" Mbytes."); | Serial.println(" Mbytes."); | ||||
// Now open the SD card normally | // Now open the SD card normally | ||||
status = SD.begin(10); // Audio shield has SD card CS on pin 10 | |||||
status = SD.begin(SDCARD_CS_PIN); | |||||
if (status) { | if (status) { | ||||
Serial.println("SD library is able to access the filesystem"); | Serial.println("SD library is able to access the filesystem"); | ||||
} else { | } else { |
AudioConnection patchCord2(playWav1, 1, audioOutput, 1); | AudioConnection patchCord2(playWav1, 1, audioOutput, 1); | ||||
AudioConnection patchCord3(playWav1, 0, dac, 0); | AudioConnection patchCord3(playWav1, 0, dac, 0); | ||||
// Use these with the audio adaptor board | |||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | #define SDCARD_CS_PIN 10 | ||||
#define SDCARD_MOSI_PIN 7 | #define SDCARD_MOSI_PIN 7 | ||||
#define SDCARD_SCK_PIN 14 | #define SDCARD_SCK_PIN 14 | ||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioControlSGTL5000 sgtl5000_1; //xy=265,212 | AudioControlSGTL5000 sgtl5000_1; //xy=265,212 | ||||
// GUItool: end automatically generated code | // GUItool: end automatically generated code | ||||
// For a stereo recording version, see this forum thread: | |||||
// https://forum.pjrc.com/threads/46150?p=158388&viewfull=1#post158388 | |||||
// Bounce objects to easily and reliably read the buttons | // Bounce objects to easily and reliably read the buttons | ||||
Bounce buttonRecord = Bounce(0, 8); | Bounce buttonRecord = Bounce(0, 8); | ||||
Bounce buttonStop = Bounce(1, 8); // 8 = 8 ms debounce time | Bounce buttonStop = Bounce(1, 8); // 8 = 8 ms debounce time | ||||
const int myInput = AUDIO_INPUT_LINEIN; | const int myInput = AUDIO_INPUT_LINEIN; | ||||
//const int myInput = AUDIO_INPUT_MIC; | //const int myInput = AUDIO_INPUT_MIC; | ||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
// Remember which mode we're doing | // Remember which mode we're doing | ||||
int mode = 0; // 0=stopped, 1=recording, 2=playing | int mode = 0; // 0=stopped, 1=recording, 2=playing | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
// Initialize the SD card | // Initialize the SD card | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
// stop here if no SD card, but print a message | // stop here if no SD card, but print a message | ||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); |
#define NOTE_As4 466.16 | #define NOTE_As4 466.16 | ||||
#define NOTE_B4 493.88 | #define NOTE_B4 493.88 | ||||
// The equation for note to frequency is: | |||||
// float freq = 440.0f * exp2f((float)(note - 69) * 0.0833333f); | |||||
// according to http://www.guitar-chords.org.uk/ | // according to http://www.guitar-chords.org.uk/ | ||||
// and http://www.8notes.com/guitar_chord_chart/c.asp | // and http://www.8notes.com/guitar_chord_chart/c.asp | ||||
// | // |
AudioConnection patchCord2(playSdWav1, 1, i2s1, 1); | AudioConnection patchCord2(playSdWav1, 1, i2s1, 1); | ||||
AudioControlSGTL5000 sgtl5000_1; | AudioControlSGTL5000 sgtl5000_1; | ||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioMemory(8); | AudioMemory(8); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
AudioConnection patchCord2(playSdWav1, 1, audioOutput, 1); | AudioConnection patchCord2(playSdWav1, 1, audioOutput, 1); | ||||
AudioControlSGTL5000 sgtl5000_1; | AudioControlSGTL5000 sgtl5000_1; | ||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioMemory(8); | AudioMemory(8); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.45); | sgtl5000_1.volume(0.45); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
Bounce button0 = Bounce(0, 15); | Bounce button0 = Bounce(0, 15); | ||||
Bounce button2 = Bounce(2, 15); // 15 = 15 ms debounce time | Bounce button2 = Bounce(2, 15); // 15 = 15 ms debounce time | ||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioMemory(8); | AudioMemory(8); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioMemory(8); | AudioMemory(8); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioMemory(8); | AudioMemory(8); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
// Bounce objects to read pushbuttons | // Bounce objects to read pushbuttons | ||||
Bounce button0 = Bounce(0, 15); | Bounce button0 = Bounce(0, 15); | ||||
AudioMemory(12); | AudioMemory(12); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioMemory(10); | AudioMemory(10); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
AudioMemory(10); | AudioMemory(10); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC, TFT_RST, TFT_MOSI, TFT_SCLK, TFT_MISO); | ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC, TFT_RST, TFT_MOSI, TFT_SCLK, TFT_MISO); | ||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
void setup() { | void setup() { | ||||
Serial.begin(9600); | Serial.begin(9600); | ||||
delay(500); | delay(500); | ||||
AudioMemory(10); | AudioMemory(10); | ||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
if (!(SD.begin(10))) { | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
delay(500); | delay(500); |
Bounce button1 = Bounce(1, 15); | Bounce button1 = Bounce(1, 15); | ||||
Bounce button2 = Bounce(2, 15); | Bounce button2 = Bounce(2, 15); | ||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | |||||
#define SDCARD_MOSI_PIN 7 | |||||
#define SDCARD_SCK_PIN 14 | |||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | |||||
//#define SDCARD_CS_PIN 4 | |||||
//#define SDCARD_MOSI_PIN 11 | |||||
//#define SDCARD_SCK_PIN 13 | |||||
int mode; | int mode; | ||||
int count=1; | int count=1; | ||||
int a1=0, a2=0, a3=0; | int a1=0, a2=0, a3=0; | ||||
pinMode(1, INPUT_PULLUP); | pinMode(1, INPUT_PULLUP); | ||||
pinMode(2, INPUT_PULLUP); | pinMode(2, INPUT_PULLUP); | ||||
Serial.begin(115200); | Serial.begin(115200); | ||||
SPI.setMOSI(7); | |||||
SPI.setSCK(14); | |||||
SPI.setMOSI(SDCARD_MOSI_PIN); | |||||
SPI.setSCK(SDCARD_SCK_PIN); | |||||
sgtl5000_1.enable(); | sgtl5000_1.enable(); | ||||
sgtl5000_1.volume(0.5); | sgtl5000_1.volume(0.5); | ||||
sgtl5000_1.inputSelect(AUDIO_INPUT_MIC); | sgtl5000_1.inputSelect(AUDIO_INPUT_MIC); | ||||
mixer1.gain(0, 0); | mixer1.gain(0, 0); | ||||
mixer2.gain(0, 0); | mixer2.gain(0, 0); | ||||
if (sdcardinit) { | if (sdcardinit) { | ||||
if (!(SD.begin(10))) { | |||||
if (!(SD.begin(SDCARD_CS_PIN))) { | |||||
while (1) { | while (1) { | ||||
Serial.println("Unable to access the SD card"); | Serial.println("Unable to access the SD card"); | ||||
if (playsamples) sample1.play(AudioSampleNosdcard); | if (playsamples) sample1.play(AudioSampleNosdcard); |
AudioConnection patchCord2(playWav1, 1, audioOutput, 1); | AudioConnection patchCord2(playWav1, 1, audioOutput, 1); | ||||
AudioControlSGTL5000 sgtl5000_1; | AudioControlSGTL5000 sgtl5000_1; | ||||
// Use these with the audio adaptor board | |||||
// Use these with the Teensy Audio Shield | |||||
#define SDCARD_CS_PIN 10 | #define SDCARD_CS_PIN 10 | ||||
#define SDCARD_MOSI_PIN 7 | #define SDCARD_MOSI_PIN 7 | ||||
#define SDCARD_SCK_PIN 14 | #define SDCARD_SCK_PIN 14 | ||||
// Use these with the Teensy 3.5 & 3.6 SD card | |||||
//#define SDCARD_CS_PIN BUILTIN_SDCARD | |||||
//#define SDCARD_MOSI_PIN 11 // not actually used | |||||
//#define SDCARD_SCK_PIN 13 // not actually used | |||||
// Use these for the SD+Wiz820 or other adaptors | // Use these for the SD+Wiz820 or other adaptors | ||||
//#define SDCARD_CS_PIN 4 | //#define SDCARD_CS_PIN 4 | ||||
//#define SDCARD_MOSI_PIN 11 | //#define SDCARD_MOSI_PIN 11 |
void die(const char *format, ...) __attribute__ ((format (printf, 1, 2))); | void die(const char *format, ...) __attribute__ ((format (printf, 1, 2))); | ||||
// WAV file format: | // WAV file format: | ||||
// https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ | |||||
// http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html | |||||
const char *filename=""; | const char *filename=""; | ||||
char samplename[64]; | char samplename[64]; | ||||
int16_t format, channels, bits; | int16_t format, channels, bits; | ||||
uint32_t rate; | uint32_t rate; | ||||
uint32_t i, length, padlength=0, arraylen; | uint32_t i, length, padlength=0, arraylen; | ||||
uint32_t chunkSize; | |||||
int32_t audio=0; | int32_t audio=0; | ||||
// read the WAV file's header | // read the WAV file's header | ||||
for (i=0; i<5; i++) { | for (i=0; i<5; i++) { | ||||
header[i] = read_uint32(in); | header[i] = read_uint32(in); | ||||
} | } | ||||
chunkSize = header[4]; | |||||
if (header[0] != 0x46464952 || header[2] != 0x45564157 | if (header[0] != 0x46464952 || header[2] != 0x45564157 | ||||
|| header[3] != 0x20746D66 || header[4] != 0x00000010) { | |||||
|| header[3] != 0x20746D66 || !(chunkSize == 16 || chunkSize == 18 || chunkSize == 40)) { | |||||
die("error in format of file %s", filename); | die("error in format of file %s", filename); | ||||
} | } | ||||
if (bits != 16) | if (bits != 16) | ||||
die("file %s has %d bit format, but only 16 is supported", filename, bits); | die("file %s has %d bit format, but only 16 is supported", filename, bits); | ||||
// skip past any extra data on the WAVE header (hopefully it doesn't matter?) | |||||
for (chunkSize -= 16; chunkSize > 0; chunkSize--) { | |||||
read_uint8(in); | |||||
} | |||||
// read the data header, skip non-audio data | // read the data header, skip non-audio data | ||||
while (1) { | while (1) { | ||||
header[0] = read_uint32(in); | header[0] = read_uint32(in); |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "filter_biquad.h" | #include "filter_biquad.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "filter_fir.h" | #include "filter_fir.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "filter_variable.h" | #include "filter_variable.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
{"type":"AudioInputAnalog","data":{"defaults":{"name":{"value":"new"}},"shortName":"adc","inputs":0,"outputs":1,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioInputAnalog","data":{"defaults":{"name":{"value":"new"}},"shortName":"adc","inputs":0,"outputs":1,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioInputAnalogStereo","data":{"defaults":{"name":{"value":"new"}},"shortName":"adcs","inputs":0,"outputs":2,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioInputAnalogStereo","data":{"defaults":{"name":{"value":"new"}},"shortName":"adcs","inputs":0,"outputs":2,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioInputI2Sslave","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2sslave","inputs":0,"outputs":2,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioInputI2Sslave","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2sslave","inputs":0,"outputs":2,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioInputTDM","data":{"defaults":{"name":{"value":"new"}},"shortName":"tdm","inputs":0,"outputs":16,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | |||||
{"type":"AudioInputUSB","data":{"defaults":{"name":{"value":"new"}},"shortName":"usb","inputs":0,"outputs":2,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioInputUSB","data":{"defaults":{"name":{"value":"new"}},"shortName":"usb","inputs":0,"outputs":2,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioOutputI2S","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2s","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioOutputI2S","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2s","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioOutputI2SQuad","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2s_quad","inputs":4,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioOutputI2SQuad","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2s_quad","inputs":4,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioOutputSPDIF","data":{"defaults":{"name":{"value":"new"}},"shortName":"spdif","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioOutputSPDIF","data":{"defaults":{"name":{"value":"new"}},"shortName":"spdif","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioOutputPT8211","data":{"defaults":{"name":{"value":"new"}},"shortName":"pt2811","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | |||||
{"type":"AudioOutputPT8211","data":{"defaults":{"name":{"value":"new"}},"shortName":"pt8211","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | |||||
{"type":"AudioOutputAnalog","data":{"defaults":{"name":{"value":"new"}},"shortName":"dac","inputs":1,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioOutputAnalog","data":{"defaults":{"name":{"value":"new"}},"shortName":"dac","inputs":1,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioOutputAnalogStereo","data":{"defaults":{"name":{"value":"new"}},"shortName":"dacs","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioOutputAnalogStereo","data":{"defaults":{"name":{"value":"new"}},"shortName":"dacs","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioOutputPWM","data":{"defaults":{"name":{"value":"new"}},"shortName":"pwm","inputs":1,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioOutputPWM","data":{"defaults":{"name":{"value":"new"}},"shortName":"pwm","inputs":1,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioOutputI2Sslave","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2sslave","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioOutputI2Sslave","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2sslave","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioOutputTDM","data":{"defaults":{"name":{"value":"new"}},"shortName":"tdm","inputs":16,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | |||||
{"type":"AudioOutputADAT","data":{"defaults":{"name":{"value":"new"}},"shortName":"adat","inputs":8,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | |||||
{"type":"AudioOutputUSB","data":{"defaults":{"name":{"value":"new"}},"shortName":"usb","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioOutputUSB","data":{"defaults":{"name":{"value":"new"}},"shortName":"usb","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioMixer4","data":{"defaults":{"name":{"value":"new"}},"shortName":"mixer","inputs":4,"outputs":1,"category":"mixer-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioMixer4","data":{"defaults":{"name":{"value":"new"}},"shortName":"mixer","inputs":4,"outputs":1,"category":"mixer-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioPlayMemory","data":{"defaults":{"name":{"value":"new"}},"shortName":"playMem","inputs":0,"outputs":1,"category":"play-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioPlayMemory","data":{"defaults":{"name":{"value":"new"}},"shortName":"playMem","inputs":0,"outputs":1,"category":"play-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioSynthWaveformSineHires","data":{"defaults":{"name":{"value":"new"}},"shortName":"sine_hires","inputs":0,"outputs":2,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioSynthWaveformSineHires","data":{"defaults":{"name":{"value":"new"}},"shortName":"sine_hires","inputs":0,"outputs":2,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioSynthWaveformSineModulated","data":{"defaults":{"name":{"value":"new"}},"shortName":"sine_fm","inputs":1,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioSynthWaveformSineModulated","data":{"defaults":{"name":{"value":"new"}},"shortName":"sine_fm","inputs":1,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioSynthWaveform","data":{"defaults":{"name":{"value":"new"}},"shortName":"waveform","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioSynthWaveform","data":{"defaults":{"name":{"value":"new"}},"shortName":"waveform","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioSynthWaveformPWM","data":{"defaults":{"name":{"value":"new"}},"shortName":"pwm","inputs":1,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | |||||
{"type":"AudioSynthToneSweep","data":{"defaults":{"name":{"value":"new"}},"shortName":"tonesweep","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioSynthToneSweep","data":{"defaults":{"name":{"value":"new"}},"shortName":"tonesweep","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioSynthWaveformDc","data":{"defaults":{"name":{"value":"new"}},"shortName":"dc","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioSynthWaveformDc","data":{"defaults":{"name":{"value":"new"}},"shortName":"dc","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioSynthNoiseWhite","data":{"defaults":{"name":{"value":"new"}},"shortName":"noise","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioSynthNoiseWhite","data":{"defaults":{"name":{"value":"new"}},"shortName":"noise","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioEffectDelayExternal","data":{"defaults":{"name":{"value":"new"}},"shortName":"delayExt","inputs":1,"outputs":8,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioEffectDelayExternal","data":{"defaults":{"name":{"value":"new"}},"shortName":"delayExt","inputs":1,"outputs":8,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioEffectBitcrusher","data":{"shortName":"bitcrusher","inputs":1,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioEffectBitcrusher","data":{"shortName":"bitcrusher","inputs":1,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioEffectMidSide","data":{"shortName":"midside","inputs":2,"outputs":2,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioEffectMidSide","data":{"shortName":"midside","inputs":2,"outputs":2,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioEffectWaveshaper","data":{"shortName":"waveshape","inputs":1,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | |||||
{"type":"AudioFilterBiquad","data":{"defaults":{"name":{"value":"new"}},"shortName":"biquad","inputs":1,"outputs":1,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioFilterBiquad","data":{"defaults":{"name":{"value":"new"}},"shortName":"biquad","inputs":1,"outputs":1,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioFilterFIR","data":{"defaults":{"name":{"value":"new"}},"shortName":"fir","inputs":1,"outputs":1,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioFilterFIR","data":{"defaults":{"name":{"value":"new"}},"shortName":"fir","inputs":1,"outputs":1,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioFilterStateVariable","data":{"defaults":{"name":{"value":"new"}},"shortName":"filter","inputs":2,"outputs":3,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioFilterStateVariable","data":{"defaults":{"name":{"value":"new"}},"shortName":"filter","inputs":2,"outputs":3,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioControlAK4558","data":{"defaults":{"name":{"value":"new"}},"shortName":"ak4558","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioControlAK4558","data":{"defaults":{"name":{"value":"new"}},"shortName":"ak4558","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioControlCS4272","data":{"defaults":{"name":{"value":"new"}},"shortName":"cs4272","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioControlCS4272","data":{"defaults":{"name":{"value":"new"}},"shortName":"cs4272","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioControlWM8731","data":{"defaults":{"name":{"value":"new"}},"shortName":"wm8731","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | {"type":"AudioControlWM8731","data":{"defaults":{"name":{"value":"new"}},"shortName":"wm8731","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | ||||
{"type":"AudioControlWM8731master","data":{"defaults":{"name":{"value":"new"}},"shortName":"wm8731m","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}} | |||||
{"type":"AudioControlWM8731master","data":{"defaults":{"name":{"value":"new"}},"shortName":"wm8731m","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}}, | |||||
{"type":"AudioControlCS42448","data":{"defaults":{"name":{"value":"new"}},"shortName":"cs42448","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}} | |||||
]} | ]} | ||||
</script> | </script> | ||||
<p>Signal range is 0 to 1.2V</p> | <p>Signal range is 0 to 1.2V</p> | ||||
<p>With a <a href="https://forum.pjrc.com/threads/40468-Help-with-Basic-Audio-Lib-results?p=126317&viewfull=1#post126317">small modification</a> Adafruit's <a href="https://www.adafruit.com/products/1063">MAX4466 microphone</a> can be used</p> | <p>With a <a href="https://forum.pjrc.com/threads/40468-Help-with-Basic-Audio-Lib-results?p=126317&viewfull=1#post126317">small modification</a> Adafruit's <a href="https://www.adafruit.com/products/1063">MAX4466 microphone</a> can be used</p> | ||||
<p align=center><a href="https://forum.pjrc.com/threads/40468-Help-with-Basic-Audio-Lib-results?p=126317&viewfull=1#post126317"><img src="img/adccircuitmic.jpg" border=0></a></p> | <p align=center><a href="https://forum.pjrc.com/threads/40468-Help-with-Basic-Audio-Lib-results?p=126317&viewfull=1#post126317"><img src="img/adccircuitmic.jpg" border=0></a></p> | ||||
<p>Control Voltage (CV) from +5V to -5V can be adapted with a | |||||
<a href="https://www.dorkbotpdx.org/blog/paul/control_voltage_cv_to_analog_input_pin">simple circuit</a> | |||||
or better <a href="https://forum.pjrc.com/threads/28423?p=71257&viewfull=1#post71257">opamp-based circuity</a> | |||||
to Teensy's 0-1.2V analog input range.</p> | |||||
<h3>Examples</h3> | <h3>Examples</h3> | ||||
<p class=exam>File > Examples > Audio > HardwareTesting > PassThroughMono | <p class=exam>File > Examples > Audio > HardwareTesting > PassThroughMono | ||||
</p> | </p> | ||||
<p>By default, pins A2 & A3 are used for audio input. This circuitry is recommended.</p> | <p>By default, pins A2 & A3 are used for audio input. This circuitry is recommended.</p> | ||||
<p align=center><img src="img/adccircuit2.png"></p> | <p align=center><img src="img/adccircuit2.png"></p> | ||||
<p>Signal range is 0 to 1.2V</p> | <p>Signal range is 0 to 1.2V</p> | ||||
<p>Control Voltage (CV) from +5V to -5V can be adapted with a | |||||
<a href="https://www.dorkbotpdx.org/blog/paul/control_voltage_cv_to_analog_input_pin">simple circuit</a> | |||||
or better <a href="https://forum.pjrc.com/threads/28423?p=71257&viewfull=1#post71257">opamp-based circuity</a> | |||||
to Teensy's 0-1.2V analog input range.</p> | |||||
<h3>Examples</h3> | <h3>Examples</h3> | ||||
<!-- | <!-- | ||||
<p class=exam>File > Examples > Audio > HardwareTesting > PassThroughMono | <p class=exam>File > Examples > Audio > HardwareTesting > PassThroughMono | ||||
</div> | </div> | ||||
</script> | </script> | ||||
<script type="text/x-red" data-help-name="AudioInputTDM"> | |||||
<h3>Summary</h3> | |||||
<div class=tooltipinfo> | |||||
<p>Receive a 256 bit Time Division Multiplexed frame containing | |||||
many audio channels.</p> | |||||
<p align=center><img src="img/tdm.jpg"></p> | |||||
</div> | |||||
<h3>Audio Connections</h3> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Port</th><th>Purpose</th></tr> | |||||
<tr class=odd><td align=center>Out 0</td><td>Bits 0 to 15</td></tr> | |||||
<tr class=odd><td align=center>Out 1</td><td>Bits 16 to 31</td></tr> | |||||
<tr class=odd><td align=center>Out 2</td><td>Bits 32 to 47</td></tr> | |||||
<tr class=odd><td align=center>Out 3</td><td>Bits 48 to 63</td></tr> | |||||
<tr class=odd><td align=center>Out 4</td><td>Bits 64 to 79</td></tr> | |||||
<tr class=odd><td align=center>Out 5</td><td>Bits 80 to 95</td></tr> | |||||
<tr class=odd><td align=center>Out 6</td><td>Bits 96 to 111</td></tr> | |||||
<tr class=odd><td align=center>Out 7</td><td>Bits 112 to 127</td></tr> | |||||
<tr class=odd><td align=center>Out 8</td><td>Bits 128 to 143</td></tr> | |||||
<tr class=odd><td align=center>Out 9</td><td>Bits 144 to 159</td></tr> | |||||
<tr class=odd><td align=center>Out 10</td><td>Bits 160 to 175</td></tr> | |||||
<tr class=odd><td align=center>Out 11</td><td>Bits 176 to 191</td></tr> | |||||
<tr class=odd><td align=center>Out 12</td><td>Bits 192 to 207</td></tr> | |||||
<tr class=odd><td align=center>Out 13</td><td>Bits 208 to 223</td></tr> | |||||
<tr class=odd><td align=center>Out 14</td><td>Bits 224 to 239</td></tr> | |||||
<tr class=odd><td align=center>Out 15</td><td>Bits 240 to 255</td></tr> | |||||
</table> | |||||
<h3>Functions</h3> | |||||
<p>This object has no functions to call from the Arduino sketch. It | |||||
simply streams data from the TDM hardware to its 16 output ports.</p> | |||||
<h3>Hardware</h3> | |||||
<p>TDM has been tested with this <a href="https://oshpark.com/shared_projects/2Yj6rFaW"> | |||||
CS42448 Circuit Board</a>. It may also work with | |||||
<a href="https://forum.pjrc.com/threads/42894">Invensense ICS-52000 microphones</a>. | |||||
</p> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Pin</th><th>Signal</th><th>Direction</th></tr> | |||||
<tr class=odd><td align=center>9</td><td>BCLK</td><td>Output, 11.3 MHz</td></tr> | |||||
<tr class=odd><td align=center>11</td><td>MCLK</td><td>Output, 22.6 MHz</td></tr> | |||||
<tr class=odd><td align=center>13</td><td>RX</td><td>Input, 11.3 Mbit/sec</td></tr> | |||||
<tr class=odd><td align=center>23</td><td>FS</td><td>Output</td></tr> | |||||
</table> | |||||
<p>Audio from | |||||
master mode TDM may be used in the same project as ADC, DAC and | |||||
PWM signals, because all remain in sync to Teensy's timing</p> | |||||
<!--<h3>Examples</h3>--> | |||||
<h3>Notes</h3> | |||||
<p>Only one TDM input and one TDM output object may be used. The | |||||
I2S hardware is used by TDM, so TDM objects may not be used | |||||
together with I2S, SPDIF or PT8211.</p> | |||||
<p>When used with TDM devices which transmit 32 bit audio, the | |||||
even numbered channels will contain the useful upper 16 | |||||
bits of audio data.</p> | |||||
<p>AudioMemory should be at least 16. Even if most channels are | |||||
unused, this TDM object will need to allocate 16 blocks of | |||||
memory.</p> | |||||
</script> | |||||
<script type="text/x-red" data-template-name="AudioInputTDM"> | |||||
<div class="form-row"> | |||||
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label> | |||||
<input type="text" id="node-input-name" placeholder="Name"> | |||||
</div> | |||||
</script> | |||||
<script type="text/x-red" data-help-name="AudioInputUSB"> | <script type="text/x-red" data-help-name="AudioInputUSB"> | ||||
<h3>Summary</h3> | <h3>Summary</h3> | ||||
<div class=tooltipinfo> | <div class=tooltipinfo> | ||||
<tr class=odd><td align=center>Out 1</td><td>Right Channel</td></tr> | <tr class=odd><td align=center>Out 1</td><td>Right Channel</td></tr> | ||||
</table> | </table> | ||||
<h3>Functions</h3> | <h3>Functions</h3> | ||||
<p>This object has no functions to call from the Arduino sketch. It | |||||
simply streams data from the USB to its 2 output ports.</p> | |||||
<p class=func><span class=keyword>volume</span>();</p> | |||||
<p class=desc>Returns the volume setting requested by the USB host. | |||||
Range is 0 to 1.0. To make the PC's volume control work, this | |||||
setting should be read periodically and used to control the | |||||
system processing the signal. | |||||
</p> | |||||
<!-- | <!-- | ||||
<h3>Hardware</h3> | <h3>Hardware</h3> | ||||
--> | --> | ||||
<p>USB input & output does not cause the Teensy Audio Library to | <p>USB input & output does not cause the Teensy Audio Library to | ||||
update. At least one non-USB input or output object must be | update. At least one non-USB input or output object must be | ||||
present for the entire library to update properly.</p> | present for the entire library to update properly.</p> | ||||
<p>A known problem exists with USB audio from Macintosh computers. | |||||
An imperfect <a href="https://forum.pjrc.com/threads/34855-Distorted-audio-when-using-USB-input-on-Teensy-3-1?p=110392&viewfull=1#post110392">workaround | |||||
can be enabled by editing usb_audio.cpp</a>. | |||||
Find and uncomment "#define MACOSX_ADAPTIVE_LIMIT".</p> | |||||
</script> | </script> | ||||
<script type="text/x-red" data-template-name="AudioInputUSB"> | <script type="text/x-red" data-template-name="AudioInputUSB"> | ||||
<div class="form-row"> | <div class="form-row"> | ||||
<tr class=top><th>Pin</th><th>Signal</th><th>Direction</th></tr> | <tr class=top><th>Pin</th><th>Signal</th><th>Direction</th></tr> | ||||
<tr class=odd><td align=center>9</td><td>BCK</td><td>Output</td></tr> | <tr class=odd><td align=center>9</td><td>BCK</td><td>Output</td></tr> | ||||
<tr class=odd><td align=center>22</td><td>DIN</td><td>Output</td></tr> | <tr class=odd><td align=center>22</td><td>DIN</td><td>Output</td></tr> | ||||
<tr class=odd><td align=center>23</td><td>WS</td><td>Output</td></tr> | |||||
<tr class=odd><td align=center>23</td><td>FS</td><td>Output</td></tr> | |||||
</table> | </table> | ||||
<p>More information can be found in the PT8211 datasheet. | <p>More information can be found in the PT8211 datasheet. | ||||
</p> | </p> | ||||
</div> | </div> | ||||
</script> | </script> | ||||
<script type="text/x-red" data-help-name="AudioOutputTDM"> | |||||
<h3>Summary</h3> | |||||
<div class=tooltipinfo> | |||||
<p>Transmit a 256 bit Time Division Multiplexed frame containing | |||||
many audio channels.</p> | |||||
<p align=center><img src="img/tdm.jpg"></p> | |||||
</div> | |||||
<h3>Audio Connections</h3> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Port</th><th>Purpose</th></tr> | |||||
<tr class=odd><td align=center>In 0</td><td>Bits 0 to 15</td></tr> | |||||
<tr class=odd><td align=center>In 1</td><td>Bits 16 to 31</td></tr> | |||||
<tr class=odd><td align=center>In 2</td><td>Bits 32 to 47</td></tr> | |||||
<tr class=odd><td align=center>In 3</td><td>Bits 48 to 63</td></tr> | |||||
<tr class=odd><td align=center>In 4</td><td>Bits 64 to 79</td></tr> | |||||
<tr class=odd><td align=center>In 5</td><td>Bits 80 to 95</td></tr> | |||||
<tr class=odd><td align=center>In 6</td><td>Bits 96 to 111</td></tr> | |||||
<tr class=odd><td align=center>In 7</td><td>Bits 112 to 127</td></tr> | |||||
<tr class=odd><td align=center>In 8</td><td>Bits 128 to 143</td></tr> | |||||
<tr class=odd><td align=center>In 9</td><td>Bits 144 to 159</td></tr> | |||||
<tr class=odd><td align=center>In 10</td><td>Bits 160 to 175</td></tr> | |||||
<tr class=odd><td align=center>In 11</td><td>Bits 176 to 191</td></tr> | |||||
<tr class=odd><td align=center>In 12</td><td>Bits 192 to 207</td></tr> | |||||
<tr class=odd><td align=center>In 13</td><td>Bits 208 to 223</td></tr> | |||||
<tr class=odd><td align=center>In 14</td><td>Bits 224 to 239</td></tr> | |||||
<tr class=odd><td align=center>In 15</td><td>Bits 240 to 255</td></tr> | |||||
</table> | |||||
<h3>Functions</h3> | |||||
<p>This object has no functions to call from the Arduino sketch. It | |||||
simply streams data from its 16 input ports to the TDM hardware.</p> | |||||
<h3>Hardware</h3> | |||||
<p>TDM has been tested with this <a href="https://oshpark.com/shared_projects/2Yj6rFaW"> | |||||
CS42448 Circuit Board</a>. | |||||
</p> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Pin</th><th>Signal</th><th>Direction</th></tr> | |||||
<tr class=odd><td align=center>9</td><td>BCLK</td><td>Output, 11.3 MHz</td></tr> | |||||
<tr class=odd><td align=center>11</td><td>MCLK</td><td>Output, 22.6 MHz</td></tr> | |||||
<tr class=odd><td align=center>22</td><td>TX</td><td>Output, 11.3 Mbit/sec</td></tr> | |||||
<tr class=odd><td align=center>23</td><td>WS</td><td>Output</td></tr> | |||||
</table> | |||||
<p>Audio from | |||||
master mode TDM may be used in the same project as ADC, DAC and | |||||
PWM signals, because all remain in sync to Teensy's timing</p> | |||||
<!--<h3>Examples</h3>--> | |||||
<h3>Notes</h3> | |||||
<p>Only one TDM input and one TDM output object may be used. The | |||||
I2S hardware is used by TDM, so TDM objects may not be used | |||||
together with I2S, SPDIF or PT8211.</p> | |||||
<p>When used with TDM devices which receive 32 bit audio, the | |||||
even numbered channels are used for the top 16 bits.</p> | |||||
</script> | |||||
<script type="text/x-red" data-template-name="AudioOutputTDM"> | |||||
<div class="form-row"> | |||||
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label> | |||||
<input type="text" id="node-input-name" placeholder="Name"> | |||||
</div> | |||||
</script> | |||||
<script type="text/x-red" data-help-name="AudioOutputADAT"> | |||||
<h3>Summary</h3> | |||||
<div class=tooltipinfo> | |||||
<p>Transmit ADAT TOSLINK Optical Output</p> | |||||
<p align=center><img src="img/adat.jpg"></p> | |||||
</div> | |||||
<h3>Audio Connections</h3> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Port</th><th>Purpose</th></tr> | |||||
<tr class=odd><td align=center>In 0</td><td>Channel 1</td></tr> | |||||
<tr class=odd><td align=center>In 1</td><td>Channel 2</td></tr> | |||||
<tr class=odd><td align=center>In 2</td><td>Channel 3</td></tr> | |||||
<tr class=odd><td align=center>In 3</td><td>Channel 4</td></tr> | |||||
<tr class=odd><td align=center>In 4</td><td>Channel 5</td></tr> | |||||
<tr class=odd><td align=center>In 5</td><td>Channel 6</td></tr> | |||||
<tr class=odd><td align=center>In 6</td><td>Channel 7</td></tr> | |||||
<tr class=odd><td align=center>In 7</td><td>Channel 8</td></tr> | |||||
</table> | |||||
<h3>Functions</h3> | |||||
<p>This object has no functions to call from the Arduino sketch. It | |||||
simply streams data from its 8 input ports to the TOSLINK output.</p> | |||||
<h3>Hardware</h3> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Pin</th><th>Signal</th><th>Direction</th></tr> | |||||
<tr class=odd><td align=center>22</td><td>TX</td><td>TOSLINK Signal</td></tr> | |||||
</table> | |||||
<p>For optical TOSLINK output, this | |||||
<a href="https://www.oshpark.com/shared_projects/KcDBKHta" target="_blank">OSH Park board</a> | |||||
can be used with the inexpensive Everlight PLT133/T6A connector, available | |||||
at Digikey, 1080-1434-ND. | |||||
</p> | |||||
<h3>Examples</h3> | |||||
<p class=exam>File > Examples > Audio > HardwareTesting > ADAT_DrumSamplePlayer | |||||
</p> | |||||
<h3>Notes</h3> | |||||
<p>ADAT output was contributed by Ernstjan Freriks. See <a href="https://forum.pjrc.com/threads/28639-S-pdif?p=159530&viewfull=1#post159530">this forum thread</a> for details.</p> | |||||
<p>A <a href="https://www.youtube.com/watch?v=e5ov3q02zxo">Youtube video</a> | |||||
also demonstrates how it works.</p> | |||||
</script> | |||||
<script type="text/x-red" data-template-name="AudioOutputADAT"> | |||||
<div class="form-row"> | |||||
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label> | |||||
<input type="text" id="node-input-name" placeholder="Name"> | |||||
</div> | |||||
</script> | |||||
<script type="text/x-red" data-help-name="AudioOutputUSB"> | <script type="text/x-red" data-help-name="AudioOutputUSB"> | ||||
<h3>Summary</h3> | <h3>Summary</h3> | ||||
<div class=tooltipinfo> | <div class=tooltipinfo> | ||||
<h3>Functions</h3> | <h3>Functions</h3> | ||||
<p class=func><span class=keyword>gain</span>(channel, level);</p> | <p class=func><span class=keyword>gain</span>(channel, level);</p> | ||||
<p class=desc>Adjust the amplification or attenuation. "channel" must | <p class=desc>Adjust the amplification or attenuation. "channel" must | ||||
be 0 to 3. "level" may be any floating point number from 0 to 32767. | |||||
be 0 to 3. "level" may be any floating point number from 0 to 32767.0. | |||||
1.0 passes the signal through directly. Level of 0 shuts the channel | 1.0 passes the signal through directly. Level of 0 shuts the channel | ||||
off completely. Between 0 to 1.0 attenuates the signal, and above | off completely. Between 0 to 1.0 attenuates the signal, and above | ||||
1.0 amplifies it. All 4 channels have separate settings. | |||||
1.0 amplifies it. Negative numbers may also be used, to invert the | |||||
signal. All 4 channels have separate gain settings. | |||||
</p> | </p> | ||||
<h3>Examples</h3> | <h3>Examples</h3> | ||||
<p class=exam>File > Examples > Audio > SamplePlayer | <p class=exam>File > Examples > Audio > SamplePlayer | ||||
<p class=exam>File > Examples > Audio > SamplePlayer | <p class=exam>File > Examples > Audio > SamplePlayer | ||||
</p> | </p> | ||||
<h3>Notes</h3> | <h3>Notes</h3> | ||||
<p><a href="https://forum.pjrc.com/threads/42401-Instructions-or-tutorials-for-using-wav2sketch?p=135069&viewfull=1#post135069">Step by step instructions for wav2sketch</a> | |||||
running in Terminal on Macintosh.</p> | |||||
<p>TODO: supported sample rates: 11.025, 22.05, 44.1</p> | <p>TODO: supported sample rates: 11.025, 22.05, 44.1</p> | ||||
<p>TODO: ulaw vs uncompressed encoding</p> | <p>TODO: ulaw vs uncompressed encoding</p> | ||||
<p>Polyphonic playback can be built by creating multiple | <p>Polyphonic playback can be built by creating multiple | ||||
</div> | </div> | ||||
</script> | </script> | ||||
<script type="text/x-red" data-help-name="AudioSynthWaveformPWM"> | |||||
<h3>Summary</h3> | |||||
<div class=tooltipinfo> | |||||
<p>Create a Pulse Width Modulated waveform, with an audio signal | |||||
controlling the pulse width duty cycle.</p> | |||||
<p align=center><img src="img/pwm.png"></p> | |||||
</div> | |||||
<h3>Audio Connections</h3> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Port</th><th>Purpose</th></tr> | |||||
<tr class=odd><td align=center>In 0</td><td>Control Signal Output</td></tr> | |||||
<tr class=odd><td align=center>Out 0</td><td>Waveform Output</td></tr> | |||||
</table> | |||||
<p>The duty cycle is 50% when the control waveform is zero. | |||||
As the control input causes a linear changes in PWM duty | |||||
cycle, from nearly 0 to 100% over -1.0 to +1.0 range. | |||||
See the notes below for minimum and maximum limitations. | |||||
</p> | |||||
<h3>Functions</h3> | |||||
<p class=func><span class=keyword>frequency</span>(freq);</p> | |||||
<p class=desc>Change the frequency. | |||||
</p> | |||||
<p class=func><span class=keyword>amplitude</span>(level);</p> | |||||
<p class=desc>Change the amplitude. Set to 0 to turn the signal off. | |||||
</p> | |||||
<h3>Examples</h3> | |||||
<p class=exam>TODO, examples needed | |||||
</p> | |||||
<h3>Notes</h3> | |||||
<p>The maximum duty cycle is 65536 samples high followed by | |||||
one sample low (99.9985%) and the minimum duty cycle is | |||||
1 sample high followed by 65536 samples low (0.00153%). | |||||
</p> | |||||
</script> | |||||
<script type="text/x-red" data-template-name="AudioSynthWaveformPWM"> | |||||
<div class="form-row"> | |||||
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label> | |||||
<input type="text" id="node-input-name" placeholder="Name"> | |||||
</div> | |||||
</script> | |||||
<script type="text/x-red" data-help-name="AudioSynthToneSweep"> | <script type="text/x-red" data-help-name="AudioSynthToneSweep"> | ||||
<h3>Summary</h3> | <h3>Summary</h3> | ||||
<div class=tooltipinfo> | <div class=tooltipinfo> | ||||
<h3>Functions</h3> | <h3>Functions</h3> | ||||
<p class=func><span class=keyword>play</span>(level, lowFreq, highFreq, time);</p> | <p class=func><span class=keyword>play</span>(level, lowFreq, highFreq, time);</p> | ||||
<p class=desc>Start generating frequency sweep output. The time is specified | <p class=desc>Start generating frequency sweep output. The time is specified | ||||
in milliseconds. Level is 0 to 1.0. | |||||
in seconds. Level is 0 to 1.0. | |||||
</p> | </p> | ||||
<p class=func><span class=keyword>isPlaying</span>();</p> | <p class=func><span class=keyword>isPlaying</span>();</p> | ||||
<p class=desc>Returns true (non-zero) while the output is active. | <p class=desc>Returns true (non-zero) while the output is active. | ||||
</p> | </p> | ||||
<p class=func><span class=keyword>read</span>();</p> | |||||
<p class=desc>Returns the current frequency, or zero if the output is not active. | |||||
</p> | |||||
<h3>Examples</h3> | <h3>Examples</h3> | ||||
<p class=exam>File > Examples > Audio > HardwareTesting > ToneSweep | <p class=exam>File > Examples > Audio > HardwareTesting > ToneSweep | ||||
</p> | </p> | ||||
<h3>Notes</h3> | <h3>Notes</h3> | ||||
<p>Uses excessive CPU time</p> | |||||
<p>Uses excessive CPU time.</p> | |||||
<p>The frequency actually changes in discrete steps every 128 samples (2.9 ms).</p> | |||||
</script> | </script> | ||||
<script type="text/x-red" data-template-name="AudioSynthToneSweep"> | <script type="text/x-red" data-template-name="AudioSynthToneSweep"> | ||||
<div class="form-row"> | <div class="form-row"> | ||||
be specified, but periods longer than 1 second may be automatically | be specified, but periods longer than 1 second may be automatically | ||||
shortened for small level changes, due to numerical precision limits. | shortened for small level changes, due to numerical precision limits. | ||||
</p> | </p> | ||||
<p class=func><span class=keyword>read</span>();</p> | |||||
<p class=desc>Read the current level. Returns -1.0 to 1.0. This can be | |||||
useful for monitoring the amplitude after configuring a slow change. | |||||
</p> | |||||
<!-- | <!-- | ||||
<h3>Examples</h3> | <h3>Examples</h3> | ||||
<p class=exam>File > Examples > Audio > | <p class=exam>File > Examples > Audio > | ||||
the original voice (so, 2 and up to get a chorus effect, although you can | the original voice (so, 2 and up to get a chorus effect, although you can | ||||
specify 1 if you want). | specify 1 if you want). | ||||
</p> | </p> | ||||
<p class=func><span class=keyword>modify</span>(n_chorus);</p> | |||||
<p class=func><span class=keyword>voices</span>(n_chorus);</p> | |||||
<p class=desc>Alters the number of voices in a running chorus (previously started with begin). | <p class=desc>Alters the number of voices in a running chorus (previously started with begin). | ||||
</p> | </p> | ||||
<h3>Examples</h3> | <h3>Examples</h3> | ||||
default is zero, for no delay. | default is zero, for no delay. | ||||
</p> | </p> | ||||
<p class=func><span class=keyword>attack</span>(milliseconds);</p> | <p class=func><span class=keyword>attack</span>(milliseconds);</p> | ||||
<p class=desc>Set the attack time. The default is 1.5 milliseconds. | |||||
<p class=desc>Set the attack time. The default is 10.5 milliseconds. | |||||
The maximum is 11880 milliseconds. | |||||
</p> | </p> | ||||
<p class=func><span class=keyword>hold</span>(milliseconds);</p> | <p class=func><span class=keyword>hold</span>(milliseconds);</p> | ||||
<p class=desc>Set the hold time. The default is 0.5 milliseconds. | |||||
<p class=desc>Set the hold time. The default is 2.5 milliseconds. | |||||
The maximum is 11880 milliseconds. | |||||
</p> | </p> | ||||
<p class=func><span class=keyword>decay</span>(milliseconds);</p> | <p class=func><span class=keyword>decay</span>(milliseconds);</p> | ||||
<p class=desc>Set the decay time. The default is 15 milliseconds. | |||||
<p class=desc>Set the decay time. The default is 35 milliseconds. | |||||
The maximum is 11880 milliseconds. | |||||
</p> | </p> | ||||
<p class=func><span class=keyword>sustain</span>(level);</p> | <p class=func><span class=keyword>sustain</span>(level);</p> | ||||
<p class=desc>Set the sustain level. The range is 0 to 1.0. The | <p class=desc>Set the sustain level. The range is 0 to 1.0. The | ||||
gain will be maintained at this level after the decay phase, | gain will be maintained at this level after the decay phase, | ||||
until noteOff() is called. | |||||
until noteOff() is called. The sustain phase may last any | |||||
length of time, controlled by when release() is called. | |||||
</p> | </p> | ||||
<p class=func><span class=keyword>release</span>(milliseconds);</p> | <p class=func><span class=keyword>release</span>(milliseconds);</p> | ||||
<p class=desc>Set the release time. The default is 30 millisecond. | |||||
<p class=desc>Set the release time. The default is 300 millisecond. | |||||
The maximum is 11880 milliseconds. | |||||
</p> | |||||
<p class=func><span class=keyword>releaseNoteOn</span>(milliseconds);</p> | |||||
<p class=desc>Set a quick release time to be used when a new note is | |||||
started while the envelop is in any state passing the signal. | |||||
This will add latency before your new attack phase begins, so | |||||
short times are recommended. Zero may be used to completely | |||||
disable this feature (never extra latency). Longer times help | |||||
reduce clicks or pops. The default is 5 millisecond. | |||||
</p> | </p> | ||||
<h3>Examples</h3> | <h3>Examples</h3> | ||||
<p class=exam>File > Examples > Audio > Synthesis > PlaySynthMusic | <p class=exam>File > Examples > Audio > Synthesis > PlaySynthMusic | ||||
<h3>Notes</h3> | <h3>Notes</h3> | ||||
<p>To achieve the more common ADSR shape, simply | <p>To achieve the more common ADSR shape, simply | ||||
set delay and hold to zero.</p> | set delay and hold to zero.</p> | ||||
<p>The recommended range for each of the 5 timing inputs is 0 to 50 | |||||
milliseconds. Up to 200 ms can be used, with somewhat reduced | |||||
accuracy</p> | |||||
</script> | </script> | ||||
<script type="text/x-red" data-template-name="AudioEffectEnvelope"> | <script type="text/x-red" data-template-name="AudioEffectEnvelope"> | ||||
<div class="form-row"> | <div class="form-row"> | ||||
<h3>Functions</h3> | <h3>Functions</h3> | ||||
<p class=func><span class=keyword>delay</span>(channel, milliseconds);</p> | <p class=func><span class=keyword>delay</span>(channel, milliseconds);</p> | ||||
<p class=desc>Set output channel (0 to 7) to delay the signals by | <p class=desc>Set output channel (0 to 7) to delay the signals by | ||||
milliseconds. The maximum delay is approx 425 ms. The actual delay | |||||
milliseconds. See the table below for the maximum delay. The actual delay | |||||
is rounded to the nearest sample. Each channel can be configured for | is rounded to the nearest sample. Each channel can be configured for | ||||
any delay. There is no requirement to configure the "taps" in increasing | any delay. There is no requirement to configure the "taps" in increasing | ||||
delay order. | delay order. | ||||
<h3>Notes</h3> | <h3>Notes</h3> | ||||
<p>Memory for the delayed signal is take from the memory pool allocated by | <p>Memory for the delayed signal is take from the memory pool allocated by | ||||
<a href="http://www.pjrc.com/teensy/td_libs_AudioConnection.html" target="_blank">AudioMemory()</a>. | <a href="http://www.pjrc.com/teensy/td_libs_AudioConnection.html" target="_blank">AudioMemory()</a>. | ||||
Each block allows about 3 milliseconds of delay, so AudioMemory | |||||
Each block allows about 2.9 milliseconds of delay, so AudioMemory | |||||
should be increased to allow for the longest delay tap. | should be increased to allow for the longest delay tap. | ||||
</p> | </p> | ||||
<p>Each board has a maximum possible delay. | |||||
</p> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Board</th><th>Maximum</th></tr> | |||||
<tr class=odd><td>Teensy 3.0</td><td align=center>139.26 ms</td></tr> | |||||
<tr class=odd><td>Teensy 3.1</td><td align=center>449.39 ms</td></tr> | |||||
<tr class=odd><td>Teensy 3.2</td><td align=center>449.39 ms</td></tr> | |||||
<tr class=odd><td>Teensy 3.5</td><td align=center>1671.19 ms</td></tr> | |||||
<tr class=odd><td>Teensy 3.6</td><td align=center>2413.94 ms</td></tr> | |||||
</table> | |||||
</script> | </script> | ||||
<script type="text/x-red" data-template-name="AudioEffectDelay"> | <script type="text/x-red" data-template-name="AudioEffectDelay"> | ||||
<div class="form-row"> | <div class="form-row"> | ||||
<tr class=odd><td align=center>7</td><td>MOSI</td></tr> | <tr class=odd><td align=center>7</td><td>MOSI</td></tr> | ||||
<tr class=odd><td align=center>12</td><td>MISO</td></tr> | <tr class=odd><td align=center>12</td><td>MISO</td></tr> | ||||
<tr class=odd><td align=center>14</td><td>SCK</td></tr> | <tr class=odd><td align=center>14</td><td>SCK</td></tr> | ||||
</table> | |||||
</p> | |||||
<p>When <span class=literal>AUDIO_MEMORY_CY15B104</span> is used, a single | |||||
CY15B104 FRAM chip is used, with these pins: | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Pin</th><th>Signal</th></tr> | |||||
<tr class=odd><td align=center>6</td><td>CS</td></tr> | |||||
<tr class=odd><td align=center>7</td><td>SI</td></tr> | |||||
<tr class=odd><td align=center>12</td><td>SO</td></tr> | |||||
<tr class=odd><td align=center>14</td><td>SCK</td></tr> | |||||
</table> | </table> | ||||
</p> | </p> | ||||
<p>When <span class=literal>AUDIO_MEMORY_MEMORYBOARD</span> is used, up to six | <p>When <span class=literal>AUDIO_MEMORY_MEMORYBOARD</span> is used, up to six | ||||
<p class=desc><span class=keyword>AudioEffectDelayExternal</span> delayExt1(<span class=literal>AUDIO_MEMORY_23LC1024</span>, 700);<br><span class=keyword>AudioEffectDelayExternal</span> delayExt2(<span class=literal>AUDIO_MEMORY_23LC1024</span>, 700); | <p class=desc><span class=keyword>AudioEffectDelayExternal</span> delayExt1(<span class=literal>AUDIO_MEMORY_23LC1024</span>, 700);<br><span class=keyword>AudioEffectDelayExternal</span> delayExt2(<span class=literal>AUDIO_MEMORY_23LC1024</span>, 700); | ||||
</p> | </p> | ||||
<p>When using CY15B104, you | |||||
<a href="https://forum.pjrc.com/threads/45872-Memory-Chip-for-Audio-Adaptor-Board?p=151839&viewfull=1#post151839">may need to add a capacitor between 3.3V & GND</a> | |||||
to make the chip work. | |||||
</p> | |||||
</script> | </script> | ||||
<script type="text/x-red" data-template-name="AudioEffectDelayExternal"> | <script type="text/x-red" data-template-name="AudioEffectDelayExternal"> | ||||
<div class="form-row"> | <div class="form-row"> | ||||
</div> | </div> | ||||
</script> | </script> | ||||
<script type="text/x-red" data-help-name="AudioEffectWaveshaper"> | |||||
<h3>Summary</h3> | |||||
<div class=tooltipinfo> | |||||
<p>Modify the waveform shape of a signal.</p> | |||||
<p align=center><img src="img/waveshaper.png"></p> | |||||
<p>Useful for overdrive, distortion, fuzz, | |||||
clipping, expo converters, phase inversion, waveform modification & adjustments. | |||||
</p> | |||||
</div> | |||||
<h3>Audio Connections</h3> | |||||
<table class=doc align=center cellpadding=3> | |||||
<tr class=top><th>Port</th><th>Signal</th></tr> | |||||
<tr class=odd><td align=center>In 0</td><td>Original Input Signal</td></tr> | |||||
<tr class=odd><td align=center>Out 0</td><td>Shaped Output</td></tr> | |||||
</table> | |||||
<h3>Functions</h3> | |||||
<p class=func><span class=keyword>shape</span>(array, length);</p> | |||||
<p class=desc>Configure the waveform shape. Array is a list of float | |||||
numbers, given in order. The first number maps to input -1.0. The | |||||
last maps to input +1.0. The numbers represent the desired output | |||||
level at each of these input levels. Length must be 2, 3, 5, 9, 17, | |||||
33, 65, 129, 257, 513, 1025, 2049, 4097, 8193, 16385, or 32769. | |||||
</p> | |||||
<h3>Examples</h3> | |||||
<p class=exam>TODO: example needed</p> | |||||
<!--<p class=exam>File > Examples > Audio > Effects > Mid_Side</p>--> | |||||
<h3>Notes</h3> | |||||
<p><a href="https://github.com/dxinteractive/TeensyAudioWaveshaper">More information</a> | |||||
</p> | |||||
</script> | |||||
<script type="text/x-red" data-template-name="AudioEffectWaveshaper"> | |||||
<div class="form-row"> | |||||
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label> | |||||
<input type="text" id="node-input-name" placeholder="Name"> | |||||
</div> | |||||
</script> | |||||
<script type="text/x-red" data-help-name="AudioFilterBiquad"> | <script type="text/x-red" data-help-name="AudioFilterBiquad"> | ||||
<h3>Summary</h3> | <h3>Summary</h3> | ||||
<div class=tooltipinfo> | <div class=tooltipinfo> | ||||
object uses approximately 4% of the CPU time on Teensy 3.1. | object uses approximately 4% of the CPU time on Teensy 3.1. | ||||
</p> | </p> | ||||
</script> | </script> | ||||
<script type="text/x-red" data-template-name="AudioFilterFIR"> | |||||
<script type="text/x-red" data-template-name="AudioFilterStateVariable"> | |||||
<div class="form-row"> | <div class="form-row"> | ||||
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label> | <label for="node-input-name"><i class="fa fa-tag"></i> Name</label> | ||||
<input type="text" id="node-input-name" placeholder="Name"> | <input type="text" id="node-input-name" placeholder="Name"> | ||||
</p> | </p> | ||||
<p class=func><span class=keyword>adcHighPassFilterDisable</span>();</p> | <p class=func><span class=keyword>adcHighPassFilterDisable</span>();</p> | ||||
<p class=desc>Completely disable the analog input filter. DC and sub-audible | <p class=desc>Completely disable the analog input filter. DC and sub-audible | ||||
low frequencies are allowed to enter the digital signal. | |||||
low frequencies are allowed to enter the digital signal. This | |||||
<a href="http://openaudio.blogspot.com/2017/03/teensy-audio-board-self-noise.html">may | |||||
reduce noise</a> in some cases. | |||||
</p> | </p> | ||||
<p class=func><span class=keyword>adcHighPassFilterEnable</span>();</p> | <p class=func><span class=keyword>adcHighPassFilterEnable</span>();</p> | ||||
<p class=desc>Turn the DC-blocking filter back on, if disabled, or | <p class=desc>Turn the DC-blocking filter back on, if disabled, or | ||||
</div> | </div> | ||||
</script> | </script> | ||||
<script type="text/x-red" data-help-name="AudioControlCS42448"> | |||||
<h3>Summary</h3> | |||||
<div class=tooltipinfo> | |||||
<p>Control the CS42448 chip in TDM mode, for 6 inputs and 8 outputs. | |||||
</p> | |||||
<p align=center><img src="img/cs42448.jpg"></p> | |||||
</div> | |||||
</div> | |||||
<h3>Audio Connections</h3> | |||||
<p>This object has no audio inputs or outputs. Separate TDM objects | |||||
are used to send and receive audio data. | |||||
</p> | |||||
<h3>Functions</h3> | |||||
<p class=func><span class=keyword>enable</span>();</p> | |||||
<p class=desc>Enables the CS42448 to work in TDM mode. | |||||
</p> | |||||
<p class=func><span class=keyword>volume</span>(level);</p> | |||||
<p class=desc>Set the volume level for all output channels. Range is 0 to 1.0. | |||||
</p> | |||||
<p class=func><span class=keyword>volume</span>(channel, level);</p> | |||||
<p class=desc>Set the volume level for a single output. Channel is 1 to 8. Range is 0 to 1.0. | |||||
</p> | |||||
<p class=func><span class=keyword>inputLevel</span>(level);</p> | |||||
<p class=desc>Set the input gain level for all input channels. Range is 0 to 15.85. | |||||
</p> | |||||
<p class=func><span class=keyword>inputLevel</span>(channel, level);</p> | |||||
<p class=desc>Set the input gain level for a single input. Channel is 1 to 6. Range is 0 to 15.85. | |||||
</p> | |||||
<h3>Hardware</h3> | |||||
<p>Tested with this <a href="https://oshpark.com/shared_projects/2Yj6rFaW"> | |||||
CS42448 Circuit Board</a>. | |||||
</p> | |||||
<p align=center><img src="img/tdm.jpg"></p> | |||||
</div> | |||||
<h3>Notes</h3> | |||||
</script> | |||||
<script type="text/x-red" data-template-name="AudioControlCS42448"> | |||||
<div class="form-row"> | |||||
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label> | |||||
<input type="text" id="node-input-name" placeholder="Name"> | |||||
</div> | |||||
</script> | |||||
var src_name = make_name(src); | var src_name = make_name(src); | ||||
var dst_name = make_name(dst); | var dst_name = make_name(dst); | ||||
if (j == 0 && parts[1] == 0 && src && src.outputs == 1 && dst && dst._def.inputs == 1) { | if (j == 0 && parts[1] == 0 && src && src.outputs == 1 && dst && dst._def.inputs == 1) { | ||||
cpp += src_name + ", " + parts[0]; | |||||
cpp += src_name + ", " + dst_name; | |||||
} else { | } else { | ||||
cpp += src_name + ", " + j + ", " + dst_name + ", " + parts[1]; | cpp += src_name + ", " + j + ", " + dst_name + ", " + parts[1]; | ||||
} | } |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "input_adc.h" | #include "input_adc.h" | ||||
#include "utility/pdb.h" | #include "utility/pdb.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
#define COEF_HPF_DCBLOCK (1048300<<10) // DC Removal filter coefficient in S1.30 | |||||
DMAMEM static uint16_t analog_rx_buffer[AUDIO_BLOCK_SAMPLES]; | DMAMEM static uint16_t analog_rx_buffer[AUDIO_BLOCK_SAMPLES]; | ||||
audio_block_t * AudioInputAnalog::block_left = NULL; | audio_block_t * AudioInputAnalog::block_left = NULL; | ||||
uint16_t AudioInputAnalog::block_offset = 0; | uint16_t AudioInputAnalog::block_offset = 0; | ||||
int32_t AudioInputAnalog::dc_average_hist[16]; | |||||
int32_t AudioInputAnalog::current_dc_average_index = 0; | |||||
int32_t AudioInputAnalog::hpf_y1 = 0; | |||||
int32_t AudioInputAnalog::hpf_x1 = 0; | |||||
bool AudioInputAnalog::update_responsibility = false; | bool AudioInputAnalog::update_responsibility = false; | ||||
DMAChannel AudioInputAnalog::dma(false); | DMAChannel AudioInputAnalog::dma(false); | ||||
void AudioInputAnalog::init(uint8_t pin) | void AudioInputAnalog::init(uint8_t pin) | ||||
{ | { | ||||
uint32_t i, sum=0; | |||||
int32_t tmp; | |||||
// Configure the ADC and run at least one software-triggered | // Configure the ADC and run at least one software-triggered | ||||
// conversion. This completes the self calibration stuff and | // conversion. This completes the self calibration stuff and | ||||
#else | #else | ||||
analogReadAveraging(4); | analogReadAveraging(4); | ||||
#endif | #endif | ||||
// Actually, do many normal reads, to start with a nice DC level | |||||
for (i=0; i < 1024; i++) { | |||||
sum += analogRead(pin); | |||||
} | |||||
for (i = 0; i < 16; i++) { | |||||
dc_average_hist[i] = sum >> 10; | |||||
} | |||||
// Note for review: | |||||
// Probably not useful to spin cycles here stabilizing | |||||
// since DC blocking is similar to te external analog filters | |||||
tmp = (uint16_t) analogRead(pin); | |||||
tmp = ( ((int32_t) tmp) << 14); | |||||
hpf_x1 = tmp; // With constant DC level x1 would be x0 | |||||
hpf_y1 = 0; // Output will settle here when stable | |||||
// set the programmable delay block to trigger the ADC at 44.1 kHz | // set the programmable delay block to trigger the ADC at 44.1 kHz | ||||
#if defined(KINETISK) | #if defined(KINETISK) | ||||
} | } | ||||
} | } | ||||
void AudioInputAnalog::update(void) | void AudioInputAnalog::update(void) | ||||
{ | { | ||||
audio_block_t *new_left=NULL, *out_left=NULL; | audio_block_t *new_left=NULL, *out_left=NULL; | ||||
uint32_t i, dc, offset; | |||||
uint32_t offset; | |||||
int32_t tmp; | int32_t tmp; | ||||
int16_t s, *p, *end; | int16_t s, *p, *end; | ||||
block_offset = 0; | block_offset = 0; | ||||
__enable_irq(); | __enable_irq(); | ||||
// Find and subtract DC offset... We use an average of the | |||||
// last 16 * AUDIO_BLOCK_SAMPLES samples. | |||||
dc = 0; | |||||
for (i = 0; i < 16; i++) { | |||||
dc += dc_average_hist[i]; | |||||
} | |||||
dc /= 16 * AUDIO_BLOCK_SAMPLES; | |||||
dc_average_hist[current_dc_average_index] = 0; | |||||
// | |||||
// DC Offset Removal Filter | |||||
// 1-pole digital high-pass filter implementation | |||||
// y = a*(x[n] - x[n-1] + y[n-1]) | |||||
// The coefficient "a" is as follows: | |||||
// a = UNITY*e^(-2*pi*fc/fs) | |||||
// fc = 2 @ fs = 44100 | |||||
// | |||||
p = out_left->data; | p = out_left->data; | ||||
end = p + AUDIO_BLOCK_SAMPLES; | end = p + AUDIO_BLOCK_SAMPLES; | ||||
do { | do { | ||||
dc_average_hist[current_dc_average_index] += (uint16_t)(*p); | |||||
tmp = (uint16_t)(*p) - (int32_t)dc; | |||||
s = signed_saturate_rshift(tmp, 16, 0); | |||||
tmp = (uint16_t)(*p); | |||||
tmp = ( ((int32_t) tmp) << 14); | |||||
int32_t acc = hpf_y1 - hpf_x1; | |||||
acc += tmp; | |||||
hpf_y1 = FRACMUL_SHL(acc, COEF_HPF_DCBLOCK, 1); | |||||
hpf_x1 = tmp; | |||||
s = signed_saturate_rshift(hpf_y1, 16, 14); | |||||
*p++ = s; | *p++ = s; | ||||
} while (p < end); | } while (p < end); | ||||
current_dc_average_index = (current_dc_average_index + 1) % 16; | |||||
// then transmit the AC data | // then transmit the AC data | ||||
transmit(out_left); | transmit(out_left); | ||||
release(out_left); | release(out_left); | ||||
} | } | ||||
private: | private: | ||||
static audio_block_t *block_left; | static audio_block_t *block_left; | ||||
static uint16_t block_offset; | static uint16_t block_offset; | ||||
static int32_t dc_average_hist[16]; | |||||
static int32_t current_dc_average_index; | |||||
static int32_t hpf_y1; | |||||
static int32_t hpf_x1; | |||||
static bool update_responsibility; | static bool update_responsibility; | ||||
static DMAChannel dma; | |||||
static void isr(void); | |||||
static void init(uint8_t pin); | |||||
static DMAChannel dma; | |||||
static void isr(void); | |||||
static void init(uint8_t pin); | |||||
}; | }; | ||||
#endif | #endif |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "input_adcs.h" | #include "input_adcs.h" | ||||
#include "utility/pdb.h" | #include "utility/pdb.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
#if defined(__MK20DX256__) || defined(__MK64FX512__) || defined(__MK66FX1M0__) | #if defined(__MK20DX256__) || defined(__MK64FX512__) || defined(__MK66FX1M0__) | ||||
#define COEF_HPF_DCBLOCK (1048300<<10) // DC Removal filter coefficient in S1.30 | |||||
DMAMEM static uint16_t left_buffer[AUDIO_BLOCK_SAMPLES]; | DMAMEM static uint16_t left_buffer[AUDIO_BLOCK_SAMPLES]; | ||||
DMAMEM static uint16_t right_buffer[AUDIO_BLOCK_SAMPLES]; | DMAMEM static uint16_t right_buffer[AUDIO_BLOCK_SAMPLES]; | ||||
audio_block_t * AudioInputAnalogStereo::block_left = NULL; | audio_block_t * AudioInputAnalogStereo::block_left = NULL; | ||||
audio_block_t * AudioInputAnalogStereo::block_right = NULL; | audio_block_t * AudioInputAnalogStereo::block_right = NULL; | ||||
uint16_t AudioInputAnalogStereo::offset_left = 0; | uint16_t AudioInputAnalogStereo::offset_left = 0; | ||||
uint16_t AudioInputAnalogStereo::offset_right = 0; | uint16_t AudioInputAnalogStereo::offset_right = 0; | ||||
int32_t AudioInputAnalogStereo::left_dc_average_hist[16]; | |||||
int32_t AudioInputAnalogStereo::right_dc_average_hist[16]; | |||||
int32_t AudioInputAnalogStereo::current_dc_average_index = 0; | |||||
int32_t AudioInputAnalogStereo::hpf_y1[2] = { 0, 0 }; | |||||
int32_t AudioInputAnalogStereo::hpf_x1[2] = { 0, 0 }; | |||||
bool AudioInputAnalogStereo::update_responsibility = false; | bool AudioInputAnalogStereo::update_responsibility = false; | ||||
DMAChannel AudioInputAnalogStereo::dma0(false); | DMAChannel AudioInputAnalogStereo::dma0(false); | ||||
DMAChannel AudioInputAnalogStereo::dma1(false); | DMAChannel AudioInputAnalogStereo::dma1(false); | ||||
void AudioInputAnalogStereo::init(uint8_t pin0, uint8_t pin1) | void AudioInputAnalogStereo::init(uint8_t pin0, uint8_t pin1) | ||||
{ | { | ||||
uint32_t i, sum0=0, sum1=0; | |||||
uint32_t tmp; | |||||
//pinMode(32, OUTPUT); | //pinMode(32, OUTPUT); | ||||
//pinMode(33, OUTPUT); | //pinMode(33, OUTPUT); | ||||
analogReadAveraging(4); | analogReadAveraging(4); | ||||
ADC1_SC3 = ADC_SC3_AVGE + ADC_SC3_AVGS(0); | ADC1_SC3 = ADC_SC3_AVGE + ADC_SC3_AVGS(0); | ||||
#endif | #endif | ||||
// Actually, do many normal reads, to start with a nice DC level | |||||
for (i=0; i < 1024; i++) { | |||||
sum0 += analogRead(pin0); | |||||
sum1 += analogReadADC1(pin1); | |||||
} | |||||
for (i = 0; i < 16; i++) { | |||||
left_dc_average_hist[i] = sum0 >> 10; | |||||
right_dc_average_hist[i] = sum1 >> 10; | |||||
} | |||||
// Note for review: | |||||
// Probably not useful to spin cycles here stabilizing | |||||
// since DC blocking is similar to te external analog filters | |||||
tmp = (uint16_t) analogRead(pin0); | |||||
tmp = ( ((int32_t) tmp) << 14); | |||||
hpf_x1[0] = tmp; // With constant DC level x1 would be x0 | |||||
hpf_y1[0] = 0; // Output will settle here when stable | |||||
tmp = (uint16_t) analogReadADC1(pin1); | |||||
tmp = ( ((int32_t) tmp) << 14); | |||||
hpf_x1[1] = tmp; // With constant DC level x1 would be x0 | |||||
hpf_y1[1] = 0; // Output will settle here when stable | |||||
// set the programmable delay block to trigger the ADC at 44.1 kHz | // set the programmable delay block to trigger the ADC at 44.1 kHz | ||||
//if (!(SIM_SCGC6 & SIM_SCGC6_PDB) | //if (!(SIM_SCGC6 & SIM_SCGC6_PDB) | ||||
} | } | ||||
void AudioInputAnalogStereo::update(void) | void AudioInputAnalogStereo::update(void) | ||||
{ | { | ||||
audio_block_t *new_left=NULL, *out_left=NULL; | audio_block_t *new_left=NULL, *out_left=NULL; | ||||
audio_block_t *new_right=NULL, *out_right=NULL; | audio_block_t *new_right=NULL, *out_right=NULL; | ||||
uint32_t i, dc; | |||||
int32_t tmp; | int32_t tmp; | ||||
int16_t s, *p, *end; | int16_t s, *p, *end; | ||||
offset_right = 0; | offset_right = 0; | ||||
__enable_irq(); | __enable_irq(); | ||||
// Find and subtract DC offset... We use an average of the | |||||
// last 16 * AUDIO_BLOCK_SAMPLES samples. | |||||
dc = 0; | |||||
for (i = 0; i < 16; i++) { | |||||
dc += left_dc_average_hist[i]; | |||||
} | |||||
dc /= 16 * AUDIO_BLOCK_SAMPLES; | |||||
left_dc_average_hist[current_dc_average_index] = 0; | |||||
p = out_left->data; | |||||
end = p + AUDIO_BLOCK_SAMPLES; | |||||
do { | |||||
left_dc_average_hist[current_dc_average_index] += (uint16_t)(*p); | |||||
tmp = (uint16_t)(*p) - (int32_t)dc; | |||||
s = signed_saturate_rshift(tmp, 16, 0); | |||||
*p++ = s; | |||||
} while (p < end); | |||||
dc = 0; | |||||
for (i = 0; i < 16; i++) { | |||||
dc += right_dc_average_hist[i]; | |||||
} | |||||
dc /= 16 * AUDIO_BLOCK_SAMPLES; | |||||
right_dc_average_hist[current_dc_average_index] = 0; | |||||
p = out_right->data; | |||||
end = p + AUDIO_BLOCK_SAMPLES; | |||||
do { | |||||
right_dc_average_hist[current_dc_average_index] += (uint16_t)(*p); | |||||
tmp = (uint16_t)(*p) - (int32_t)dc; | |||||
s = signed_saturate_rshift(tmp, 16, 0); | |||||
*p++ = s; | |||||
} while (p < end); | |||||
current_dc_average_index = (current_dc_average_index + 1) % 16; | |||||
// | |||||
// DC Offset Removal Filter | |||||
// 1-pole digital high-pass filter implementation | |||||
// y = a*(x[n] - x[n-1] + y[n-1]) | |||||
// The coefficient "a" is as follows: | |||||
// a = UNITY*e^(-2*pi*fc/fs) | |||||
// fc = 2 @ fs = 44100 | |||||
// | |||||
// DC removal, LEFT | |||||
p = out_left->data; | |||||
end = p + AUDIO_BLOCK_SAMPLES; | |||||
do { | |||||
tmp = (uint16_t)(*p); | |||||
tmp = ( ((int32_t) tmp) << 14); | |||||
int32_t acc = hpf_y1[0] - hpf_x1[0]; | |||||
acc += tmp; | |||||
hpf_y1[0] = FRACMUL_SHL(acc, COEF_HPF_DCBLOCK, 1); | |||||
hpf_x1[0] = tmp; | |||||
s = signed_saturate_rshift(hpf_y1[0], 16, 14); | |||||
*p++ = s; | |||||
} while (p < end); | |||||
// DC removal, RIGHT | |||||
p = out_right->data; | |||||
end = p + AUDIO_BLOCK_SAMPLES; | |||||
do { | |||||
tmp = (uint16_t)(*p); | |||||
tmp = ( ((int32_t) tmp) << 14); | |||||
int32_t acc = hpf_y1[1] - hpf_x1[1]; | |||||
acc += tmp; | |||||
hpf_y1[1]= FRACMUL_SHL(acc, COEF_HPF_DCBLOCK, 1); | |||||
hpf_x1[1] = tmp; | |||||
s = signed_saturate_rshift(hpf_y1[1], 16, 14); | |||||
*p++ = s; | |||||
} while (p < end); | |||||
// then transmit the AC data | // then transmit the AC data | ||||
transmit(out_left, 0); | transmit(out_left, 0); |
{ | { | ||||
public: | public: | ||||
AudioInputAnalogStereo() : AudioStream(0, NULL) { | AudioInputAnalogStereo() : AudioStream(0, NULL) { | ||||
init(A2, A3); | |||||
} | |||||
init(A2, A3); | |||||
} | |||||
AudioInputAnalogStereo(uint8_t pin0, uint8_t pin1) : AudioStream(0, NULL) { | AudioInputAnalogStereo(uint8_t pin0, uint8_t pin1) : AudioStream(0, NULL) { | ||||
init(pin0, pin1); | |||||
} | |||||
init(pin0, pin1); | |||||
} | |||||
virtual void update(void); | virtual void update(void); | ||||
private: | private: | ||||
static audio_block_t *block_left; | static audio_block_t *block_left; | ||||
static audio_block_t *block_right; | static audio_block_t *block_right; | ||||
static uint16_t offset_left; | static uint16_t offset_left; | ||||
static uint16_t offset_right; | static uint16_t offset_right; | ||||
static int32_t left_dc_average_hist[16]; | |||||
static int32_t right_dc_average_hist[16]; | |||||
static int32_t current_dc_average_index; | |||||
static int32_t hpf_y1[2]; | |||||
static int32_t hpf_x1[2]; | |||||
static bool update_responsibility; | static bool update_responsibility; | ||||
static DMAChannel dma0; | |||||
static DMAChannel dma1; | |||||
static void isr0(void); | |||||
static void isr1(void); | |||||
static void init(uint8_t pin0, uint8_t pin1); | |||||
static DMAChannel dma0; | |||||
static DMAChannel dma1; | |||||
static void isr0(void); | |||||
static void isr1(void); | |||||
static void init(uint8_t pin0, uint8_t pin1); | |||||
}; | }; | ||||
#endif | #endif |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "input_i2s.h" | #include "input_i2s.h" | ||||
#include "output_i2s.h" | #include "output_i2s.h" | ||||
CORE_PIN13_CONFIG = PORT_PCR_MUX(4); // pin 13, PTC5, I2S0_RXD0 | CORE_PIN13_CONFIG = PORT_PCR_MUX(4); // pin 13, PTC5, I2S0_RXD0 | ||||
#if defined(KINETISK) | #if defined(KINETISK) | ||||
dma.TCD->SADDR = &I2S0_RDR0; | |||||
dma.TCD->SADDR = (void *)((uint32_t)&I2S0_RDR0 + 2); | |||||
dma.TCD->SOFF = 0; | dma.TCD->SOFF = 0; | ||||
dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(1) | DMA_TCD_ATTR_DSIZE(1); | dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(1) | DMA_TCD_ATTR_DSIZE(1); | ||||
dma.TCD->NBYTES_MLNO = 2; | dma.TCD->NBYTES_MLNO = 2; | ||||
CORE_PIN13_CONFIG = PORT_PCR_MUX(4); // pin 13, PTC5, I2S0_RXD0 | CORE_PIN13_CONFIG = PORT_PCR_MUX(4); // pin 13, PTC5, I2S0_RXD0 | ||||
#if defined(KINETISK) | #if defined(KINETISK) | ||||
dma.TCD->SADDR = &I2S0_RDR0; | |||||
dma.TCD->SADDR = (void *)((uint32_t)&I2S0_RDR0 + 2); | |||||
dma.TCD->SOFF = 0; | dma.TCD->SOFF = 0; | ||||
dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(1) | DMA_TCD_ATTR_DSIZE(1); | dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(1) | DMA_TCD_ATTR_DSIZE(1); | ||||
dma.TCD->NBYTES_MLNO = 2; | dma.TCD->NBYTES_MLNO = 2; |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "input_i2s_quad.h" | #include "input_i2s_quad.h" | ||||
#include "output_i2s_quad.h" | #include "output_i2s_quad.h" | ||||
/* Audio Library for Teensy 3.X | |||||
* Copyright (c) 2017, Paul Stoffregen, paul@pjrc.com | |||||
* | |||||
* Development of this audio library was funded by PJRC.COM, LLC by sales of | |||||
* Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | |||||
* open source software by purchasing Teensy or other PJRC products. | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice, development funding notice, and this permission | |||||
* notice shall be included in all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
* THE SOFTWARE. | |||||
*/ | |||||
#include <Arduino.h> | |||||
#include "input_tdm.h" | |||||
#include "output_tdm.h" | |||||
#if defined(KINETISK) | |||||
DMAMEM static uint32_t tdm_rx_buffer[AUDIO_BLOCK_SAMPLES*16]; | |||||
audio_block_t * AudioInputTDM::block_incoming[16] = { | |||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL | |||||
}; | |||||
bool AudioInputTDM::update_responsibility = false; | |||||
DMAChannel AudioInputTDM::dma(false); | |||||
void AudioInputTDM::begin(void) | |||||
{ | |||||
dma.begin(true); // Allocate the DMA channel first | |||||
// TODO: should we set & clear the I2S_RCSR_SR bit here? | |||||
AudioOutputTDM::config_tdm(); | |||||
CORE_PIN13_CONFIG = PORT_PCR_MUX(4); // pin 13, PTC5, I2S0_RXD0 | |||||
dma.TCD->SADDR = &I2S0_RDR0; | |||||
dma.TCD->SOFF = 0; | |||||
dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(2) | DMA_TCD_ATTR_DSIZE(2); | |||||
dma.TCD->NBYTES_MLNO = 4; | |||||
dma.TCD->SLAST = 0; | |||||
dma.TCD->DADDR = tdm_rx_buffer; | |||||
dma.TCD->DOFF = 4; | |||||
dma.TCD->CITER_ELINKNO = sizeof(tdm_rx_buffer) / 4; | |||||
dma.TCD->DLASTSGA = -sizeof(tdm_rx_buffer); | |||||
dma.TCD->BITER_ELINKNO = sizeof(tdm_rx_buffer) / 4; | |||||
dma.TCD->CSR = DMA_TCD_CSR_INTHALF | DMA_TCD_CSR_INTMAJOR; | |||||
dma.triggerAtHardwareEvent(DMAMUX_SOURCE_I2S0_RX); | |||||
update_responsibility = update_setup(); | |||||
dma.enable(); | |||||
I2S0_RCSR |= I2S_RCSR_RE | I2S_RCSR_BCE | I2S_RCSR_FRDE | I2S_RCSR_FR; | |||||
I2S0_TCSR |= I2S_TCSR_TE | I2S_TCSR_BCE; // TX clock enable, because sync'd to TX | |||||
dma.attachInterrupt(isr); | |||||
} | |||||
// TODO: needs optimization... | |||||
static void memcpy_tdm_rx(uint32_t *dest1, uint32_t *dest2, const uint32_t *src) | |||||
{ | |||||
uint32_t i, in1, in2; | |||||
for (i=0; i < AUDIO_BLOCK_SAMPLES/2; i++) { | |||||
in1 = *src; | |||||
in2 = *(src+8); | |||||
src += 16; | |||||
*dest1++ = (in1 >> 16) | (in2 & 0xFFFF0000); | |||||
*dest2++ = (in1 << 16) | (in2 & 0x0000FFFF); | |||||
} | |||||
} | |||||
void AudioInputTDM::isr(void) | |||||
{ | |||||
uint32_t daddr; | |||||
const uint32_t *src; | |||||
unsigned int i; | |||||
//digitalWriteFast(3, HIGH); | |||||
daddr = (uint32_t)(dma.TCD->DADDR); | |||||
dma.clearInterrupt(); | |||||
if (daddr < (uint32_t)tdm_rx_buffer + sizeof(tdm_rx_buffer) / 2) { | |||||
// DMA is receiving to the first half of the buffer | |||||
// need to remove data from the second half | |||||
src = &tdm_rx_buffer[AUDIO_BLOCK_SAMPLES*8]; | |||||
} else { | |||||
// DMA is receiving to the second half of the buffer | |||||
// need to remove data from the first half | |||||
src = &tdm_rx_buffer[0]; | |||||
} | |||||
if (block_incoming[0] != NULL) { | |||||
for (i=0; i < 16; i += 2) { | |||||
uint32_t *dest1 = (uint32_t *)(block_incoming[i]->data); | |||||
uint32_t *dest2 = (uint32_t *)(block_incoming[i+1]->data); | |||||
memcpy_tdm_rx(dest1, dest2, src); | |||||
src++; | |||||
} | |||||
} | |||||
if (update_responsibility) update_all(); | |||||
//digitalWriteFast(3, LOW); | |||||
} | |||||
void AudioInputTDM::update(void) | |||||
{ | |||||
unsigned int i, j; | |||||
audio_block_t *new_block[16]; | |||||
audio_block_t *out_block[16]; | |||||
// allocate 16 new blocks. If any fails, allocate none | |||||
for (i=0; i < 16; i++) { | |||||
new_block[i] = allocate(); | |||||
if (new_block[i] == NULL) { | |||||
for (j=0; j < i; j++) { | |||||
release(new_block[j]); | |||||
} | |||||
memset(new_block, 0, sizeof(new_block)); | |||||
break; | |||||
} | |||||
} | |||||
__disable_irq(); | |||||
memcpy(out_block, block_incoming, sizeof(out_block)); | |||||
memcpy(block_incoming, new_block, sizeof(block_incoming)); | |||||
__enable_irq(); | |||||
if (out_block[0] != NULL) { | |||||
// if we got 1 block, all 16 are filled | |||||
for (i=0; i < 16; i++) { | |||||
transmit(out_block[i], i); | |||||
release(out_block[i]); | |||||
} | |||||
} | |||||
} | |||||
#endif // KINETISK |
/* Audio Library for Teensy 3.X | |||||
* Copyright (c) 2017, Paul Stoffregen, paul@pjrc.com | |||||
* | |||||
* Development of this audio library was funded by PJRC.COM, LLC by sales of | |||||
* Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | |||||
* open source software by purchasing Teensy or other PJRC products. | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice, development funding notice, and this permission | |||||
* notice shall be included in all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
* THE SOFTWARE. | |||||
*/ | |||||
#ifndef _input_tdm_h_ | |||||
#define _input_tdm_h_ | |||||
#include "Arduino.h" | |||||
#include "AudioStream.h" | |||||
#include "DMAChannel.h" | |||||
class AudioInputTDM : public AudioStream | |||||
{ | |||||
public: | |||||
AudioInputTDM(void) : AudioStream(0, NULL) { begin(); } | |||||
virtual void update(void); | |||||
void begin(void); | |||||
protected: | |||||
static bool update_responsibility; | |||||
static DMAChannel dma; | |||||
static void isr(void); | |||||
private: | |||||
static audio_block_t *block_incoming[16]; | |||||
}; | |||||
#endif |
AudioInputI2S KEYWORD2 | AudioInputI2S KEYWORD2 | ||||
AudioInputI2SQuad KEYWORD2 | AudioInputI2SQuad KEYWORD2 | ||||
AudioInputI2Sslave KEYWORD2 | AudioInputI2Sslave KEYWORD2 | ||||
AudioInputTDM KEYWORD2 | |||||
AudioInputUSB KEYWORD2 | AudioInputUSB KEYWORD2 | ||||
AudioOutputI2S KEYWORD2 | AudioOutputI2S KEYWORD2 | ||||
AudioOutputI2SQuad KEYWORD2 | AudioOutputI2SQuad KEYWORD2 | ||||
AudioOutputI2Sslave KEYWORD2 | AudioOutputI2Sslave KEYWORD2 | ||||
AudioOutputSPDIF KEYWORD2 | AudioOutputSPDIF KEYWORD2 | ||||
AudioOutputPT8211 KEYWORD2 | AudioOutputPT8211 KEYWORD2 | ||||
AudioOutputTDM KEYWORD2 | |||||
AudioOutputADAT KEYWORD2 | |||||
AudioOutputPWM KEYWORD2 | AudioOutputPWM KEYWORD2 | ||||
AudioOutputUSB KEYWORD2 | AudioOutputUSB KEYWORD2 | ||||
AudioControlSGTL5000 KEYWORD2 | AudioControlSGTL5000 KEYWORD2 | ||||
AudioControlWM8731master KEYWORD2 | AudioControlWM8731master KEYWORD2 | ||||
AudioControlAK4558 KEYWORD2 | AudioControlAK4558 KEYWORD2 | ||||
AudioControlCS4272 KEYWORD2 | AudioControlCS4272 KEYWORD2 | ||||
AudioControlCS42448 KEYWORD2 | |||||
AudioMemory KEYWORD2 | AudioMemory KEYWORD2 | ||||
AudioAnalyzeFFT256 KEYWORD2 | AudioAnalyzeFFT256 KEYWORD2 | ||||
AudioEffectBitcrusher KEYWORD2 | AudioEffectBitcrusher KEYWORD2 | ||||
AudioEffectReverb KEYWORD2 | AudioEffectReverb KEYWORD2 | ||||
AudioEffectMidSide KEYWORD2 | AudioEffectMidSide KEYWORD2 | ||||
AudioEffectWaveshaper KEYWORD2 | |||||
AudioFilterBiquad KEYWORD2 | AudioFilterBiquad KEYWORD2 | ||||
AudioFilterFIR KEYWORD2 | AudioFilterFIR KEYWORD2 | ||||
AudioFilterStateVariable KEYWORD2 | AudioFilterStateVariable KEYWORD2 | ||||
AudioPlaySdRaw KEYWORD2 | AudioPlaySdRaw KEYWORD2 | ||||
AudioPlaySdWav KEYWORD2 | AudioPlaySdWav KEYWORD2 | ||||
AudioPlayQueue KEYWORD2 | AudioPlayQueue KEYWORD2 | ||||
AudioPlaySerialflashRaw KEYWORD2 | |||||
AudioRecordQueue KEYWORD2 | AudioRecordQueue KEYWORD2 | ||||
AudioSynthToneSweep KEYWORD2 | AudioSynthToneSweep KEYWORD2 | ||||
AudioSynthWaveform KEYWORD2 | AudioSynthWaveform KEYWORD2 | ||||
AudioSynthWaveformSineHires KEYWORD2 | AudioSynthWaveformSineHires KEYWORD2 | ||||
AudioSynthWaveformSineModulated KEYWORD2 | AudioSynthWaveformSineModulated KEYWORD2 | ||||
AudioSynthWaveformDc KEYWORD2 | AudioSynthWaveformDc KEYWORD2 | ||||
AudioSynthWaveformPWM KEYWORD2 | |||||
AudioSynthNoiseWhite KEYWORD2 | AudioSynthNoiseWhite KEYWORD2 | ||||
AudioSynthNoisePink KEYWORD2 | AudioSynthNoisePink KEYWORD2 | ||||
AudioSynthKarplusStrong KEYWORD2 | AudioSynthKarplusStrong KEYWORD2 | ||||
decay KEYWORD2 | decay KEYWORD2 | ||||
sustain KEYWORD2 | sustain KEYWORD2 | ||||
release KEYWORD2 | release KEYWORD2 | ||||
releaseNoteOn KEYWORD2 | |||||
inputLevel KEYWORD2 | inputLevel KEYWORD2 | ||||
inputSelect KEYWORD2 | inputSelect KEYWORD2 | ||||
muteHeadphone KEYWORD2 | muteHeadphone KEYWORD2 | ||||
decode KEYWORD2 | decode KEYWORD2 | ||||
secondMix KEYWORD2 | secondMix KEYWORD2 | ||||
pitchMod KEYWORD2 | pitchMod KEYWORD2 | ||||
shape KEYWORD2 | |||||
AudioMemoryUsage KEYWORD2 | AudioMemoryUsage KEYWORD2 | ||||
AudioMemoryUsageMax KEYWORD2 | AudioMemoryUsageMax KEYWORD2 |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "mixer.h" | #include "mixer.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
/* ADAT for Teensy 3.X | |||||
* Copyright (c) 2017, Ernstjan Freriks, | |||||
* Thanks to Frank Bösing & KPC & Paul Stoffregen! | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice, development funding notice, and this permission | |||||
* notice shall be included in all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
* THE SOFTWARE. | |||||
*/ | |||||
#include <Arduino.h> | |||||
#include "output_adat.h" | |||||
#if defined(KINETISK) | |||||
audio_block_t * AudioOutputADAT::block_ch1_1st = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch2_1st = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch3_1st = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch4_1st = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch5_1st = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch6_1st = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch7_1st = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch8_1st = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch1_2nd = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch2_2nd = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch3_2nd = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch4_2nd = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch5_2nd = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch6_2nd = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch7_2nd = NULL; | |||||
audio_block_t * AudioOutputADAT::block_ch8_2nd = NULL; | |||||
uint16_t AudioOutputADAT::ch1_offset = 0; | |||||
uint16_t AudioOutputADAT::ch2_offset = 0; | |||||
uint16_t AudioOutputADAT::ch3_offset = 0; | |||||
uint16_t AudioOutputADAT::ch4_offset = 0; | |||||
uint16_t AudioOutputADAT::ch5_offset = 0; | |||||
uint16_t AudioOutputADAT::ch6_offset = 0; | |||||
uint16_t AudioOutputADAT::ch7_offset = 0; | |||||
uint16_t AudioOutputADAT::ch8_offset = 0; | |||||
bool AudioOutputADAT::update_responsibility = false; | |||||
//uint32_t AudioOutputADAT::vucp = VUCP_VALID; | |||||
DMAMEM static uint32_t ADAT_tx_buffer[AUDIO_BLOCK_SAMPLES * 8]; //4 KB, AUDIO_BLOCK_SAMPLES is usually 128 | |||||
DMAChannel AudioOutputADAT::dma(false); | |||||
static const uint32_t zerodata[AUDIO_BLOCK_SAMPLES/4] = {0}; | |||||
// These are the lookup tables. There are four of them so that the remainder of the 32 bit result can easily be XORred with the next 8 bits. | |||||
static const uint32_t LookupTable_firstword[256] = { 0x0, 0x1ffffff, 0x3ffffff, 0x2000000, 0x7ffffff, 0x6000000, 0x4000000, 0x5ffffff, 0xfffffff, 0xe000000, 0xc000000, 0xdffffff, 0x8000000, 0x9ffffff, 0xbffffff, 0xa000000, 0x1fffffff, 0x1e000000, 0x1c000000, 0x1dffffff, 0x18000000, 0x19ffffff, 0x1bffffff, 0x1a000000, 0x10000000, 0x11ffffff, 0x13ffffff, 0x12000000, 0x17ffffff, 0x16000000, 0x14000000, 0x15ffffff, 0x3fffffff, 0x3e000000, 0x3c000000, 0x3dffffff, 0x38000000, 0x39ffffff, 0x3bffffff, 0x3a000000, 0x30000000, 0x31ffffff, 0x33ffffff, 0x32000000, 0x37ffffff, 0x36000000, 0x34000000, 0x35ffffff, 0x20000000, 0x21ffffff, 0x23ffffff, 0x22000000, 0x27ffffff, 0x26000000, 0x24000000, 0x25ffffff, 0x2fffffff, 0x2e000000, 0x2c000000, 0x2dffffff, 0x28000000, 0x29ffffff, 0x2bffffff, 0x2a000000, 0x7fffffff, 0x7e000000, 0x7c000000, 0x7dffffff, 0x78000000, 0x79ffffff, 0x7bffffff, 0x7a000000, 0x70000000, 0x71ffffff, 0x73ffffff, 0x72000000, 0x77ffffff, 0x76000000, 0x74000000, 0x75ffffff, 0x60000000, 0x61ffffff, 0x63ffffff, 0x62000000, 0x67ffffff, 0x66000000, 0x64000000, 0x65ffffff, 0x6fffffff, 0x6e000000, 0x6c000000, 0x6dffffff, 0x68000000, 0x69ffffff, 0x6bffffff, 0x6a000000, 0x40000000, 0x41ffffff, 0x43ffffff, 0x42000000, 0x47ffffff, 0x46000000, 0x44000000, 0x45ffffff, 0x4fffffff, 0x4e000000, 0x4c000000, 0x4dffffff, 0x48000000, 0x49ffffff, 0x4bffffff, 0x4a000000, 0x5fffffff, 0x5e000000, 0x5c000000, 0x5dffffff, 0x58000000, 0x59ffffff, 0x5bffffff, 0x5a000000, 0x50000000, 0x51ffffff, 0x53ffffff, 0x52000000, 0x57ffffff, 0x56000000, 0x54000000, 0x55ffffff, 0xffffffff, 0xfe000000, 0xfc000000, 0xfdffffff, 0xf8000000, 0xf9ffffff, 0xfbffffff, 0xfa000000, 0xf0000000, 0xf1ffffff, 0xf3ffffff, 0xf2000000, 0xf7ffffff, 0xf6000000, 0xf4000000, 0xf5ffffff, 0xe0000000, 0xe1ffffff, 0xe3ffffff, 0xe2000000, 0xe7ffffff, 0xe6000000, 0xe4000000, 0xe5ffffff, 0xefffffff, 0xee000000, 0xec000000, 0xedffffff, 0xe8000000, 0xe9ffffff, 0xebffffff, 0xea000000, 0xc0000000, 0xc1ffffff, 0xc3ffffff, 0xc2000000, 0xc7ffffff, 0xc6000000, 0xc4000000, 0xc5ffffff, 0xcfffffff, 0xce000000, 0xcc000000, 0xcdffffff, 0xc8000000, 0xc9ffffff, 0xcbffffff, 0xca000000, 0xdfffffff, 0xde000000, 0xdc000000, 0xddffffff, 0xd8000000, 0xd9ffffff, 0xdbffffff, 0xda000000, 0xd0000000, 0xd1ffffff, 0xd3ffffff, 0xd2000000, 0xd7ffffff, 0xd6000000, 0xd4000000, 0xd5ffffff, 0x80000000, 0x81ffffff, 0x83ffffff, 0x82000000, 0x87ffffff, 0x86000000, 0x84000000, 0x85ffffff, 0x8fffffff, 0x8e000000, 0x8c000000, 0x8dffffff, 0x88000000, 0x89ffffff, 0x8bffffff, 0x8a000000, 0x9fffffff, 0x9e000000, 0x9c000000, 0x9dffffff, 0x98000000, 0x99ffffff, 0x9bffffff, 0x9a000000, 0x90000000, 0x91ffffff, 0x93ffffff, 0x92000000, 0x97ffffff, 0x96000000, 0x94000000, 0x95ffffff, 0xbfffffff, 0xbe000000, 0xbc000000, 0xbdffffff, 0xb8000000, 0xb9ffffff, 0xbbffffff, 0xba000000, 0xb0000000, 0xb1ffffff, 0xb3ffffff, 0xb2000000, 0xb7ffffff, 0xb6000000, 0xb4000000, 0xb5ffffff, 0xa0000000, 0xa1ffffff, 0xa3ffffff, 0xa2000000, 0xa7ffffff, 0xa6000000, 0xa4000000, 0xa5ffffff, 0xafffffff, 0xae000000, 0xac000000, 0xadffffff, 0xa8000000, 0xa9ffffff, 0xabffffff, 0xaa000000}; | |||||
static const uint32_t LookupTable_secondword[256] = { 0x0, 0x1ffff, 0x3ffff, 0x20000, 0x7ffff, 0x60000, 0x40000, 0x5ffff, 0xfffff, 0xe0000, 0xc0000, 0xdffff, 0x80000, 0x9ffff, 0xbffff, 0xa0000, 0x1fffff, 0x1e0000, 0x1c0000, 0x1dffff, 0x180000, 0x19ffff, 0x1bffff, 0x1a0000, 0x100000, 0x11ffff, 0x13ffff, 0x120000, 0x17ffff, 0x160000, 0x140000, 0x15ffff, 0x3fffff, 0x3e0000, 0x3c0000, 0x3dffff, 0x380000, 0x39ffff, 0x3bffff, 0x3a0000, 0x300000, 0x31ffff, 0x33ffff, 0x320000, 0x37ffff, 0x360000, 0x340000, 0x35ffff, 0x200000, 0x21ffff, 0x23ffff, 0x220000, 0x27ffff, 0x260000, 0x240000, 0x25ffff, 0x2fffff, 0x2e0000, 0x2c0000, 0x2dffff, 0x280000, 0x29ffff, 0x2bffff, 0x2a0000, 0x7fffff, 0x7e0000, 0x7c0000, 0x7dffff, 0x780000, 0x79ffff, 0x7bffff, 0x7a0000, 0x700000, 0x71ffff, 0x73ffff, 0x720000, 0x77ffff, 0x760000, 0x740000, 0x75ffff, 0x600000, 0x61ffff, 0x63ffff, 0x620000, 0x67ffff, 0x660000, 0x640000, 0x65ffff, 0x6fffff, 0x6e0000, 0x6c0000, 0x6dffff, 0x680000, 0x69ffff, 0x6bffff, 0x6a0000, 0x400000, 0x41ffff, 0x43ffff, 0x420000, 0x47ffff, 0x460000, 0x440000, 0x45ffff, 0x4fffff, 0x4e0000, 0x4c0000, 0x4dffff, 0x480000, 0x49ffff, 0x4bffff, 0x4a0000, 0x5fffff, 0x5e0000, 0x5c0000, 0x5dffff, 0x580000, 0x59ffff, 0x5bffff, 0x5a0000, 0x500000, 0x51ffff, 0x53ffff, 0x520000, 0x57ffff, 0x560000, 0x540000, 0x55ffff, 0xffffff, 0xfe0000, 0xfc0000, 0xfdffff, 0xf80000, 0xf9ffff, 0xfbffff, 0xfa0000, 0xf00000, 0xf1ffff, 0xf3ffff, 0xf20000, 0xf7ffff, 0xf60000, 0xf40000, 0xf5ffff, 0xe00000, 0xe1ffff, 0xe3ffff, 0xe20000, 0xe7ffff, 0xe60000, 0xe40000, 0xe5ffff, 0xefffff, 0xee0000, 0xec0000, 0xedffff, 0xe80000, 0xe9ffff, 0xebffff, 0xea0000, 0xc00000, 0xc1ffff, 0xc3ffff, 0xc20000, 0xc7ffff, 0xc60000, 0xc40000, 0xc5ffff, 0xcfffff, 0xce0000, 0xcc0000, 0xcdffff, 0xc80000, 0xc9ffff, 0xcbffff, 0xca0000, 0xdfffff, 0xde0000, 0xdc0000, 0xddffff, 0xd80000, 0xd9ffff, 0xdbffff, 0xda0000, 0xd00000, 0xd1ffff, 0xd3ffff, 0xd20000, 0xd7ffff, 0xd60000, 0xd40000, 0xd5ffff, 0x800000, 0x81ffff, 0x83ffff, 0x820000, 0x87ffff, 0x860000, 0x840000, 0x85ffff, 0x8fffff, 0x8e0000, 0x8c0000, 0x8dffff, 0x880000, 0x89ffff, 0x8bffff, 0x8a0000, 0x9fffff, 0x9e0000, 0x9c0000, 0x9dffff, 0x980000, 0x99ffff, 0x9bffff, 0x9a0000, 0x900000, 0x91ffff, 0x93ffff, 0x920000, 0x97ffff, 0x960000, 0x940000, 0x95ffff, 0xbfffff, 0xbe0000, 0xbc0000, 0xbdffff, 0xb80000, 0xb9ffff, 0xbbffff, 0xba0000, 0xb00000, 0xb1ffff, 0xb3ffff, 0xb20000, 0xb7ffff, 0xb60000, 0xb40000, 0xb5ffff, 0xa00000, 0xa1ffff, 0xa3ffff, 0xa20000, 0xa7ffff, 0xa60000, 0xa40000, 0xa5ffff, 0xafffff, 0xae0000, 0xac0000, 0xadffff, 0xa80000, 0xa9ffff, 0xabffff, 0xaa0000}; | |||||
static const uint32_t LookupTable_thirdword[256] = { 0x0, 0x1ff, 0x3ff, 0x200, 0x7ff, 0x600, 0x400, 0x5ff, 0xfff, 0xe00, 0xc00, 0xdff, 0x800, 0x9ff, 0xbff, 0xa00, 0x1fff, 0x1e00, 0x1c00, 0x1dff, 0x1800, 0x19ff, 0x1bff, 0x1a00, 0x1000, 0x11ff, 0x13ff, 0x1200, 0x17ff, 0x1600, 0x1400, 0x15ff, 0x3fff, 0x3e00, 0x3c00, 0x3dff, 0x3800, 0x39ff, 0x3bff, 0x3a00, 0x3000, 0x31ff, 0x33ff, 0x3200, 0x37ff, 0x3600, 0x3400, 0x35ff, 0x2000, 0x21ff, 0x23ff, 0x2200, 0x27ff, 0x2600, 0x2400, 0x25ff, 0x2fff, 0x2e00, 0x2c00, 0x2dff, 0x2800, 0x29ff, 0x2bff, 0x2a00, 0x7fff, 0x7e00, 0x7c00, 0x7dff, 0x7800, 0x79ff, 0x7bff, 0x7a00, 0x7000, 0x71ff, 0x73ff, 0x7200, 0x77ff, 0x7600, 0x7400, 0x75ff, 0x6000, 0x61ff, 0x63ff, 0x6200, 0x67ff, 0x6600, 0x6400, 0x65ff, 0x6fff, 0x6e00, 0x6c00, 0x6dff, 0x6800, 0x69ff, 0x6bff, 0x6a00, 0x4000, 0x41ff, 0x43ff, 0x4200, 0x47ff, 0x4600, 0x4400, 0x45ff, 0x4fff, 0x4e00, 0x4c00, 0x4dff, 0x4800, 0x49ff, 0x4bff, 0x4a00, 0x5fff, 0x5e00, 0x5c00, 0x5dff, 0x5800, 0x59ff, 0x5bff, 0x5a00, 0x5000, 0x51ff, 0x53ff, 0x5200, 0x57ff, 0x5600, 0x5400, 0x55ff, 0xffff, 0xfe00, 0xfc00, 0xfdff, 0xf800, 0xf9ff, 0xfbff, 0xfa00, 0xf000, 0xf1ff, 0xf3ff, 0xf200, 0xf7ff, 0xf600, 0xf400, 0xf5ff, 0xe000, 0xe1ff, 0xe3ff, 0xe200, 0xe7ff, 0xe600, 0xe400, 0xe5ff, 0xefff, 0xee00, 0xec00, 0xedff, 0xe800, 0xe9ff, 0xebff, 0xea00, 0xc000, 0xc1ff, 0xc3ff, 0xc200, 0xc7ff, 0xc600, 0xc400, 0xc5ff, 0xcfff, 0xce00, 0xcc00, 0xcdff, 0xc800, 0xc9ff, 0xcbff, 0xca00, 0xdfff, 0xde00, 0xdc00, 0xddff, 0xd800, 0xd9ff, 0xdbff, 0xda00, 0xd000, 0xd1ff, 0xd3ff, 0xd200, 0xd7ff, 0xd600, 0xd400, 0xd5ff, 0x8000, 0x81ff, 0x83ff, 0x8200, 0x87ff, 0x8600, 0x8400, 0x85ff, 0x8fff, 0x8e00, 0x8c00, 0x8dff, 0x8800, 0x89ff, 0x8bff, 0x8a00, 0x9fff, 0x9e00, 0x9c00, 0x9dff, 0x9800, 0x99ff, 0x9bff, 0x9a00, 0x9000, 0x91ff, 0x93ff, 0x9200, 0x97ff, 0x9600, 0x9400, 0x95ff, 0xbfff, 0xbe00, 0xbc00, 0xbdff, 0xb800, 0xb9ff, 0xbbff, 0xba00, 0xb000, 0xb1ff, 0xb3ff, 0xb200, 0xb7ff, 0xb600, 0xb400, 0xb5ff, 0xa000, 0xa1ff, 0xa3ff, 0xa200, 0xa7ff, 0xa600, 0xa400, 0xa5ff, 0xafff, 0xae00, 0xac00, 0xadff, 0xa800, 0xa9ff, 0xabff, 0xaa00}; | |||||
static const uint32_t LookupTable_fourthword[256] = { 0x0, 0x1, 0x3, 0x2, 0x7, 0x6, 0x4, 0x5, 0xf, 0xe, 0xc, 0xd, 0x8, 0x9, 0xb, 0xa, 0x1f, 0x1e, 0x1c, 0x1d, 0x18, 0x19, 0x1b, 0x1a, 0x10, 0x11, 0x13, 0x12, 0x17, 0x16, 0x14, 0x15, 0x3f, 0x3e, 0x3c, 0x3d, 0x38, 0x39, 0x3b, 0x3a, 0x30, 0x31, 0x33, 0x32, 0x37, 0x36, 0x34, 0x35, 0x20, 0x21, 0x23, 0x22, 0x27, 0x26, 0x24, 0x25, 0x2f, 0x2e, 0x2c, 0x2d, 0x28, 0x29, 0x2b, 0x2a, 0x7f, 0x7e, 0x7c, 0x7d, 0x78, 0x79, 0x7b, 0x7a, 0x70, 0x71, 0x73, 0x72, 0x77, 0x76, 0x74, 0x75, 0x60, 0x61, 0x63, 0x62, 0x67, 0x66, 0x64, 0x65, 0x6f, 0x6e, 0x6c, 0x6d, 0x68, 0x69, 0x6b, 0x6a, 0x40, 0x41, 0x43, 0x42, 0x47, 0x46, 0x44, 0x45, 0x4f, 0x4e, 0x4c, 0x4d, 0x48, 0x49, 0x4b, 0x4a, 0x5f, 0x5e, 0x5c, 0x5d, 0x58, 0x59, 0x5b, 0x5a, 0x50, 0x51, 0x53, 0x52, 0x57, 0x56, 0x54, 0x55, 0xff, 0xfe, 0xfc, 0xfd, 0xf8, 0xf9, 0xfb, 0xfa, 0xf0, 0xf1, 0xf3, 0xf2, 0xf7, 0xf6, 0xf4, 0xf5, 0xe0, 0xe1, 0xe3, 0xe2, 0xe7, 0xe6, 0xe4, 0xe5, 0xef, 0xee, 0xec, 0xed, 0xe8, 0xe9, 0xeb, 0xea, 0xc0, 0xc1, 0xc3, 0xc2, 0xc7, 0xc6, 0xc4, 0xc5, 0xcf, 0xce, 0xcc, 0xcd, 0xc8, 0xc9, 0xcb, 0xca, 0xdf, 0xde, 0xdc, 0xdd, 0xd8, 0xd9, 0xdb, 0xda, 0xd0, 0xd1, 0xd3, 0xd2, 0xd7, 0xd6, 0xd4, 0xd5, 0x80, 0x81, 0x83, 0x82, 0x87, 0x86, 0x84, 0x85, 0x8f, 0x8e, 0x8c, 0x8d, 0x88, 0x89, 0x8b, 0x8a, 0x9f, 0x9e, 0x9c, 0x9d, 0x98, 0x99, 0x9b, 0x9a, 0x90, 0x91, 0x93, 0x92, 0x97, 0x96, 0x94, 0x95, 0xbf, 0xbe, 0xbc, 0xbd, 0xb8, 0xb9, 0xbb, 0xba, 0xb0, 0xb1, 0xb3, 0xb2, 0xb7, 0xb6, 0xb4, 0xb5, 0xa0, 0xa1, 0xa3, 0xa2, 0xa7, 0xa6, 0xa4, 0xa5, 0xaf, 0xae, 0xac, 0xad, 0xa8, 0xa9, 0xab, 0xaa}; | |||||
void AudioOutputADAT::begin(void) | |||||
{ | |||||
dma.begin(true); // Allocate the DMA channel first | |||||
block_ch1_1st = NULL; | |||||
block_ch2_1st = NULL; | |||||
block_ch3_1st = NULL; | |||||
block_ch4_1st = NULL; | |||||
block_ch5_1st = NULL; | |||||
block_ch6_1st = NULL; | |||||
block_ch7_1st = NULL; | |||||
block_ch8_1st = NULL; | |||||
// TODO: should we set & clear the I2S_TCSR_SR bit here? | |||||
config_ADAT(); | |||||
CORE_PIN22_CONFIG = PORT_PCR_MUX(6); // pin 22, PTC1, I2S0_TXD0 | |||||
const int nbytes_mlno = 2 * 8; // 16 Bytes per minor loop | |||||
dma.TCD->SADDR = ADAT_tx_buffer; | |||||
dma.TCD->SOFF = 4; | |||||
dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(2) | DMA_TCD_ATTR_DSIZE(2); //transfersize 2 = 32 bit, 5 = 32 byte | |||||
dma.TCD->NBYTES_MLNO = nbytes_mlno; | |||||
dma.TCD->SLAST = -sizeof(ADAT_tx_buffer); | |||||
dma.TCD->DADDR = &I2S0_TDR0; | |||||
dma.TCD->DOFF = 0; | |||||
dma.TCD->CITER_ELINKNO = sizeof(ADAT_tx_buffer) / nbytes_mlno; | |||||
dma.TCD->DLASTSGA = 0; | |||||
dma.TCD->BITER_ELINKNO = sizeof(ADAT_tx_buffer) / nbytes_mlno; | |||||
dma.TCD->CSR = DMA_TCD_CSR_INTHALF | DMA_TCD_CSR_INTMAJOR; | |||||
dma.triggerAtHardwareEvent(DMAMUX_SOURCE_I2S0_TX); | |||||
update_responsibility = update_setup(); | |||||
dma.enable(); | |||||
I2S0_TCSR |= I2S_TCSR_TE | I2S_TCSR_BCE | I2S_TCSR_FRDE | I2S_TCSR_FR; | |||||
dma.attachInterrupt(isr); | |||||
} | |||||
/* | |||||
https://ackspace.nl/wiki/ADAT_project | |||||
https://github.com/xcore/sc_adat/blob/master/module_adat_tx/src/adat_tx_port.xc | |||||
for information about the clock: | |||||
http://cache.freescale.com/files/32bit/doc/app_note/AN4800.pdf | |||||
We need a bitrate twice as high as the SPDIF example. | |||||
Because BITCLK can not be the same as MCLK, but only half of MCLK, we need a 2*MCLK (so for 44100 samplerate we need 88200 MCLK) | |||||
*/ | |||||
void AudioOutputADAT::isr(void) | |||||
{ | |||||
const int16_t *src1, *src2, *src3, *src4,*src5, *src6, *src7, *src8; | |||||
const int16_t *zeros = (const int16_t *)zerodata; | |||||
uint32_t *end, *dest; | |||||
uint32_t saddr; | |||||
uint32_t sample1, sample2, sample3, sample4, sample5, sample6, sample7, sample8; | |||||
static uint32_t previousnrzi_highlow = 0; //this is used for the NZRI encoding to remember the last state. | |||||
// if the result of the lookup table LSB is other than this lastbit, the result of the lookup table must be inverted. | |||||
//static bool previousframeinverted=false; | |||||
saddr = (uint32_t)(dma.TCD->SADDR); | |||||
dma.clearInterrupt(); | |||||
if (saddr < (uint32_t)ADAT_tx_buffer + sizeof(ADAT_tx_buffer) / 2) { | |||||
// DMA is transmitting the first half of the buffer | |||||
// so we must fill the second half | |||||
dest = (uint32_t *)&ADAT_tx_buffer[AUDIO_BLOCK_SAMPLES * 8/2]; | |||||
end = (uint32_t *)&ADAT_tx_buffer[AUDIO_BLOCK_SAMPLES * 8]; | |||||
if (AudioOutputADAT::update_responsibility) AudioStream::update_all(); | |||||
} else { | |||||
// DMA is transmitting the second half of the buffer | |||||
// so we must fill the first half | |||||
dest = (uint32_t *)ADAT_tx_buffer; | |||||
end = (uint32_t *)&ADAT_tx_buffer[AUDIO_BLOCK_SAMPLES * 8/2]; | |||||
} | |||||
src1 = (block_ch1_1st) ? block_ch1_1st->data + ch1_offset : zeros; | |||||
src2 = (block_ch2_1st) ? block_ch2_1st->data + ch2_offset : zeros; | |||||
src3 = (block_ch3_1st) ? block_ch3_1st->data + ch3_offset : zeros; | |||||
src4 = (block_ch4_1st) ? block_ch4_1st->data + ch4_offset : zeros; | |||||
src5 = (block_ch5_1st) ? block_ch5_1st->data + ch5_offset : zeros; | |||||
src6 = (block_ch6_1st) ? block_ch6_1st->data + ch6_offset : zeros; | |||||
src7 = (block_ch7_1st) ? block_ch7_1st->data + ch7_offset : zeros; | |||||
src8 = (block_ch8_1st) ? block_ch8_1st->data + ch8_offset : zeros; | |||||
//Non-NZRI encoded 'empty' ADAT Frame | |||||
/* | |||||
*(dest+0) = 0b10000100001000010000100001000010; // bit 0-31 | |||||
*(dest+1) = 0b00010000100001000010000100001000; // bit 32-63 | |||||
*(dest+2) = 0b01000010000100001000010000100001; // bit 64-95 | |||||
*(dest+3) = 0b00001000010000100001000010000100; // bit 96-127 | |||||
*(dest+4) = 0b00100001000010000100001000010000; // bit 128-159 | |||||
*(dest+5) = 0b10000100001000010000100001000010; // bit 160-191 | |||||
*(dest+6) = 0b00010000100001000010000100001000; // bit 192-223 | |||||
*(dest+7) = 0b01000010000100001000000000010000; // bit 224-255 | |||||
dest+=8; | |||||
*/ | |||||
/* | |||||
//NZRI encoded 'empty' ADAT Frame | |||||
*(dest+0) = 0b11111000001111100000111110000011; // bit 0-31 | |||||
*(dest+1) = 0b11100000111110000011111000001111; // bit 32-63 | |||||
*(dest+2) = 0b10000011111000001111100000111110; // bit 64-95 | |||||
*(dest+3) = 0b00001111100000111110000011111000; // bit 96-127 | |||||
*(dest+4) = 0b00111110000011111000001111100000; // bit 128-159 | |||||
*(dest+5) = 0b11111000001111100000111110000011; // bit 160-191 | |||||
*(dest+6) = 0b11100000111110000011111000001111; // bit 192-223 | |||||
*(dest+7) = 0b10000011111000001111111111100000; // bit 224-255 | |||||
dest+=8; | |||||
*/ | |||||
do | |||||
{ | |||||
sample1 = (*src1++); | |||||
sample2 = (*src2++); | |||||
sample3 = (*src3++); | |||||
sample4 = (*src4++); | |||||
sample5 = (*src5++); | |||||
sample6 = (*src6++); | |||||
sample7 = (*src7++); | |||||
sample8 = (*src8++); | |||||
uint32_t value; | |||||
uint32_t nzrivalue; | |||||
value= 0b10000100001000010000100001000010 /* bit 0-31 */ | |||||
// b00000000000000001000000000000000 // start of 16 bit sample | |||||
| ((sample1<<15)&0b01111000000000000000000000000000) | |||||
| ((sample1<<14)&0b00000011110000000000000000000000) | |||||
| ((sample1<<13)&0b00000000000111100000000000000000) | |||||
| ((sample1<<12)&0b00000000000000001111000000000000) | |||||
| ((sample2>>15)&0b00000000000000000000000000000001) | |||||
; | |||||
nzrivalue = previousnrzi_highlow ^ (LookupTable_firstword[(byte)(value >> 24)] ^ LookupTable_secondword[(byte)(value >> 16)] ^ LookupTable_thirdword[(byte)(value >> 8)] ^ LookupTable_fourthword[(byte)value]); | |||||
*(dest+0) = nzrivalue; | |||||
previousnrzi_highlow = ((nzrivalue & 0b1) == 0b1) ? ~0U : 0U; | |||||
value = 0b00010000100001000010000100001000 /* bit 32-63 */ | |||||
// b00000000000000001000100010001000 // start of 16 bit sample | |||||
| ((sample2<<17)&0b11100000000000000000000000000000) | |||||
| ((sample2<<16)&0b00001111000000000000000000000000) | |||||
| ((sample2<<15)&0b00000000011110000000000000000000) | |||||
| ((sample2<<14)&0b00000000000000111100000000000000) | |||||
| ((sample3>>13)&0b00000000000000000000000000000111) | |||||
; | |||||
nzrivalue = previousnrzi_highlow ^ (LookupTable_firstword[(byte)(value >> 24)] ^ LookupTable_secondword[(byte)(value >> 16)] ^ LookupTable_thirdword[(byte)(value >> 8)] ^ LookupTable_fourthword[(byte)value]); | |||||
*(dest+1) = nzrivalue; | |||||
previousnrzi_highlow = ((nzrivalue & 0b1) == 0b1) ? ~0U : 0U; | |||||
value = 0b01000010000100001000010000100001 /* bit 64-95 */ | |||||
// b00000000000000001000000000000000 // start of 16 bit sample | |||||
| ((sample3<<19)&0b10000000000000000000000000000000) | |||||
| ((sample3<<18)&0b00111100000000000000000000000000) | |||||
| ((sample3<<17)&0b00000001111000000000000000000000) | |||||
| ((sample3<<16)&0b00000000000011110000000000000000) | |||||
| ((sample4>>11)&0b00000000000000000000000000011110) | |||||
; | |||||
nzrivalue = previousnrzi_highlow ^ (LookupTable_firstword[(byte)(value >> 24)] ^ LookupTable_secondword[(byte)(value >> 16)] ^ LookupTable_thirdword[(byte)(value >> 8)] ^ LookupTable_fourthword[(byte)value]); | |||||
*(dest+2) = nzrivalue; | |||||
previousnrzi_highlow = ((nzrivalue & 0b1) == 0b1) ? ~0U : 0U; | |||||
value = 0b00001000010000100001000010000100 /* bit 96-127 */ | |||||
// b00000000000000001000100010001000 // start of 16 bit sample | |||||
| ((sample4<<20)&0b11110000000000000000000000000000) | |||||
| ((sample4<<19)&0b00000111100000000000000000000000) | |||||
| ((sample4<<18)&0b00000000001111000000000000000000) | |||||
| ((sample5>>9 )&0b00000000000000000000000001111000) | |||||
| ((sample5>>10)&0b00000000000000000000000000000011) | |||||
; | |||||
nzrivalue = previousnrzi_highlow ^ (LookupTable_firstword[(byte)(value >> 24)] ^ LookupTable_secondword[(byte)(value >> 16)] ^ LookupTable_thirdword[(byte)(value >> 8)] ^ LookupTable_fourthword[(byte)value]); | |||||
*(dest+3) = nzrivalue; | |||||
previousnrzi_highlow = ((nzrivalue & 0b1) == 0b1) ? ~0U : 0U; | |||||
value = 0b00100001000010000100001000010000 /* bit 128-159 */ | |||||
// b00000000000000001000100010001000 // start of 16 bit sample | |||||
| ((sample5<<22)&0b11000000000000000000000000000000) | |||||
| ((sample5<<21)&0b00011110000000000000000000000000) | |||||
| ((sample5<<20)&0b00000000111100000000000000000000) | |||||
| ((sample6>>7 )&0b00000000000000000000000111100000) | |||||
| ((sample6>>8 )&0b00000000000000000000000000001111) | |||||
; | |||||
nzrivalue = previousnrzi_highlow ^ (LookupTable_firstword[(byte)(value >> 24)] ^ LookupTable_secondword[(byte)(value >> 16)] ^ LookupTable_thirdword[(byte)(value >> 8)] ^ LookupTable_fourthword[(byte)value]); | |||||
*(dest+4) = nzrivalue; | |||||
previousnrzi_highlow = ((nzrivalue & 0b1) == 0b1) ? ~0U : 0U; | |||||
value = 0b10000100001000010000100001000010 /* bit 160-191 */ | |||||
// b00000000000000001000100010001000 // start of 16 bit sample | |||||
| ((sample6<<23)&0b01111000000000000000000000000000) | |||||
| ((sample6<<22)&0b00000011110000000000000000000000) | |||||
| ((sample7>>5 )&0b00000000000000000000011110000000) | |||||
| ((sample7>>6 )&0b00000000000000000000000000111100) | |||||
| ((sample7>>7 )&0b00000000000000000000000000000001) | |||||
; | |||||
nzrivalue = previousnrzi_highlow ^ (LookupTable_firstword[(byte)(value >> 24)] ^ LookupTable_secondword[(byte)(value >> 16)] ^ LookupTable_thirdword[(byte)(value >> 8)] ^ LookupTable_fourthword[(byte)value]); | |||||
*(dest+5) = nzrivalue; | |||||
previousnrzi_highlow = ((nzrivalue & 0b1) == 0b1) ? ~0U : 0U; | |||||
value = 0b00010000100001000010000100001000 /* bit 192-223 */ | |||||
// b00000000000000001000100010001000 // start of 16 bit sample | |||||
| ((sample7<<25)&0b11100000000000000000000000000000) | |||||
| ((sample7<<24)&0b00001111000000000000000000000000) | |||||
| ((sample8>>3 )&0b00000000000000000001111000000000) | |||||
| ((sample8>>4 )&0b00000000000000000000000011110000) | |||||
| ((sample8>>5 )&0b00000000000000000000000000000111) | |||||
; | |||||
nzrivalue = previousnrzi_highlow ^ (LookupTable_firstword[(byte)(value >> 24)] ^ LookupTable_secondword[(byte)(value >> 16)] ^ LookupTable_thirdword[(byte)(value >> 8)] ^ LookupTable_fourthword[(byte)value]); | |||||
*(dest+6) = nzrivalue; | |||||
previousnrzi_highlow = ((nzrivalue & 0b1) == 0b1) ? ~0U : 0U; | |||||
value = 0b01000010000100001000000000010000 /* bit 224-255 */ | |||||
// b00000000000000001000100010001000 // start of 16 bit sample | |||||
| ((sample8<<27)&0b10000000000000000000000000000000) | |||||
| ((sample8<<26)&0b00111100000000000000000000000000) | |||||
; | |||||
nzrivalue = previousnrzi_highlow ^ (LookupTable_firstword[(byte)(value >> 24)] ^ LookupTable_secondword[(byte)(value >> 16)] ^ LookupTable_thirdword[(byte)(value >> 8)] ^ LookupTable_fourthword[(byte)value]); | |||||
*(dest+7) = nzrivalue; | |||||
previousnrzi_highlow = ((nzrivalue & 0b1) == 0b1) ? ~0U : 0U; | |||||
dest+=8; | |||||
} while (dest < end); | |||||
/* | |||||
block = AudioOutputADAT::block_ch1_1st; | |||||
if (block) { | |||||
offset = AudioOutputADAT::ch1_offset; | |||||
src = &block->data[offset]; | |||||
do { | |||||
sample = (uint32_t)*src++; | |||||
} while (dest < end); | |||||
offset += AUDIO_BLOCK_SAMPLES/2; | |||||
if (offset < AUDIO_BLOCK_SAMPLES) { | |||||
AudioOutputADAT::ch1_offset = offset; | |||||
} else { | |||||
AudioOutputADAT::ch1_offset = 0; | |||||
AudioStream::release(block); | |||||
AudioOutputADAT::block_ch1_1st = AudioOutputADAT::block_ch1_2nd; | |||||
AudioOutputADAT::block_ch1_2nd = NULL; | |||||
} | |||||
} else { | |||||
sample = 0; | |||||
do { | |||||
// *(dest+0) = 0b11111000001111100000111110000011; // bit 0-31 | |||||
// *(dest+1) = 0b11100000111110000011111000001111; // bit 32-63 | |||||
// *(dest+2) = 0b10000011111000001111100000111110; // bit 64-95 | |||||
// *(dest+3) = 0b00001111100000111110000011111000; // bit 96-127 | |||||
// *(dest+4) = 0b00111110000011111000001111100000; // bit 128-159 | |||||
// *(dest+5) = 0b11111000001111100000111110000011; // bit 160-191 | |||||
// *(dest+6) = 0b11100000111110000011111000001111; // bit 192-223 | |||||
// *(dest+7) = 0b10000011111000001111111111100000; // bit 224-255 | |||||
dest+=8; | |||||
} while (dest < end); | |||||
} | |||||
dest -= AUDIO_BLOCK_SAMPLES * 8/2 - 8/2; | |||||
block = AudioOutputADAT::block_ch2_1st; | |||||
if (block) { | |||||
offset = AudioOutputADAT::ch2_offset; | |||||
src = &block->data[offset]; | |||||
do { | |||||
sample = *src++; | |||||
// *(dest+0) = 0b00111110000011111000001111100000; // bit 128-159 | |||||
// *(dest+1) = 0b11111000001111100000111110000011; // bit 160-191 | |||||
// *(dest+2) = 0b11100000111110000011111000001111; // bit 192-223 | |||||
// *(dest+3) = 0b10000011111000001111111111100000; // bit 224-255 | |||||
dest+=8; | |||||
} while (dest < end); | |||||
offset += AUDIO_BLOCK_SAMPLES/2; | |||||
if (offset < AUDIO_BLOCK_SAMPLES) { | |||||
AudioOutputADAT::ch2_offset = offset; | |||||
} else { | |||||
AudioOutputADAT::ch2_offset = 0; | |||||
AudioStream::release(block); | |||||
AudioOutputADAT::block_ch2_1st = AudioOutputADAT::block_ch2_2nd; | |||||
AudioOutputADAT::block_ch2_2nd = NULL; | |||||
} | |||||
} else { | |||||
// *(dest+0) = 0b00111110000011111000001111100000; // bit 128-159 | |||||
// *(dest+1) = 0b11111000001111100000111110000011; // bit 160-191 | |||||
// *(dest+2) = 0b11100000111110000011111000001111; // bit 192-223 | |||||
// *(dest+3) = 0b10000011111000001111111111100000; // bit 224-255 | |||||
dest+=8; | |||||
}*/ | |||||
if (block_ch1_1st) { | |||||
if (ch1_offset == 0) { | |||||
ch1_offset = AUDIO_BLOCK_SAMPLES/2; | |||||
} else { | |||||
ch1_offset = 0; | |||||
release(block_ch1_1st); | |||||
block_ch1_1st = block_ch1_2nd; | |||||
block_ch1_2nd = NULL; | |||||
} | |||||
} | |||||
if (block_ch2_1st) { | |||||
if (ch2_offset == 0) { | |||||
ch2_offset = AUDIO_BLOCK_SAMPLES/2; | |||||
} else { | |||||
ch2_offset = 0; | |||||
release(block_ch2_1st); | |||||
block_ch2_1st = block_ch2_2nd; | |||||
block_ch2_2nd = NULL; | |||||
} | |||||
} | |||||
if (block_ch3_1st) { | |||||
if (ch3_offset == 0) { | |||||
ch3_offset = AUDIO_BLOCK_SAMPLES/2; | |||||
} else { | |||||
ch3_offset = 0; | |||||
release(block_ch3_1st); | |||||
block_ch3_1st = block_ch3_2nd; | |||||
block_ch3_2nd = NULL; | |||||
} | |||||
} | |||||
if (block_ch4_1st) { | |||||
if (ch4_offset == 0) { | |||||
ch4_offset = AUDIO_BLOCK_SAMPLES/2; | |||||
} else { | |||||
ch4_offset = 0; | |||||
release(block_ch4_1st); | |||||
block_ch4_1st = block_ch4_2nd; | |||||
block_ch4_2nd = NULL; | |||||
} | |||||
} | |||||
if (block_ch5_1st) { | |||||
if (ch5_offset == 0) { | |||||
ch5_offset = AUDIO_BLOCK_SAMPLES/2; | |||||
} else { | |||||
ch5_offset = 0; | |||||
release(block_ch5_1st); | |||||
block_ch5_1st = block_ch5_2nd; | |||||
block_ch5_2nd = NULL; | |||||
} | |||||
} | |||||
if (block_ch6_1st) { | |||||
if (ch6_offset == 0) { | |||||
ch6_offset = AUDIO_BLOCK_SAMPLES/2; | |||||
} else { | |||||
ch6_offset = 0; | |||||
release(block_ch6_1st); | |||||
block_ch6_1st = block_ch6_2nd; | |||||
block_ch6_2nd = NULL; | |||||
} | |||||
} | |||||
if (block_ch7_1st) { | |||||
if (ch7_offset == 0) { | |||||
ch7_offset = AUDIO_BLOCK_SAMPLES/2; | |||||
} else { | |||||
ch7_offset = 0; | |||||
release(block_ch7_1st); | |||||
block_ch7_1st = block_ch7_2nd; | |||||
block_ch7_2nd = NULL; | |||||
} | |||||
} | |||||
if (block_ch8_1st) { | |||||
if (ch8_offset == 0) { | |||||
ch8_offset = AUDIO_BLOCK_SAMPLES/2; | |||||
} else { | |||||
ch8_offset = 0; | |||||
release(block_ch8_1st); | |||||
block_ch8_1st = block_ch8_2nd; | |||||
block_ch8_2nd = NULL; | |||||
} | |||||
} | |||||
} | |||||
void AudioOutputADAT::mute_PCM(const bool mute) | |||||
{ | |||||
//vucp = mute?VUCP_INVALID:VUCP_VALID; | |||||
//#TODO | |||||
} | |||||
void AudioOutputADAT::update(void) | |||||
{ | |||||
audio_block_t *block, *tmp; | |||||
block = receiveReadOnly(0); // input 0 = channel 1 | |||||
if (block) { | |||||
__disable_irq(); | |||||
if (block_ch1_1st == NULL) { | |||||
block_ch1_1st = block; | |||||
ch1_offset = 0; | |||||
__enable_irq(); | |||||
} else if (block_ch1_2nd == NULL) { | |||||
block_ch1_2nd = block; | |||||
__enable_irq(); | |||||
} else { | |||||
tmp = block_ch1_1st; | |||||
block_ch1_1st = block_ch1_2nd; | |||||
block_ch1_2nd = block; | |||||
ch1_offset = 0; | |||||
__enable_irq(); | |||||
release(tmp); | |||||
} | |||||
} | |||||
block = receiveReadOnly(1); // input 1 = channel 2 | |||||
if (block) { | |||||
__disable_irq(); | |||||
if (block_ch2_1st == NULL) { | |||||
block_ch2_1st = block; | |||||
ch2_offset = 0; | |||||
__enable_irq(); | |||||
} else if (block_ch2_2nd == NULL) { | |||||
block_ch2_2nd = block; | |||||
__enable_irq(); | |||||
} else { | |||||
tmp = block_ch2_1st; | |||||
block_ch2_1st = block_ch2_2nd; | |||||
block_ch2_2nd = block; | |||||
ch2_offset = 0; | |||||
__enable_irq(); | |||||
release(tmp); | |||||
} | |||||
} | |||||
block = receiveReadOnly(2); // channel 3 | |||||
if (block) { | |||||
__disable_irq(); | |||||
if (block_ch3_1st == NULL) { | |||||
block_ch3_1st = block; | |||||
ch3_offset = 0; | |||||
__enable_irq(); | |||||
} else if (block_ch3_2nd == NULL) { | |||||
block_ch3_2nd = block; | |||||
__enable_irq(); | |||||
} else { | |||||
tmp = block_ch3_1st; | |||||
block_ch3_1st = block_ch3_2nd; | |||||
block_ch3_2nd = block; | |||||
ch3_offset = 0; | |||||
__enable_irq(); | |||||
release(tmp); | |||||
} | |||||
} | |||||
block = receiveReadOnly(3); // channel 4 | |||||
if (block) { | |||||
__disable_irq(); | |||||
if (block_ch4_1st == NULL) { | |||||
block_ch4_1st = block; | |||||
ch4_offset = 0; | |||||
__enable_irq(); | |||||
} else if (block_ch4_2nd == NULL) { | |||||
block_ch4_2nd = block; | |||||
__enable_irq(); | |||||
} else { | |||||
tmp = block_ch4_1st; | |||||
block_ch4_1st = block_ch4_2nd; | |||||
block_ch4_2nd = block; | |||||
ch4_offset = 0; | |||||
__enable_irq(); | |||||
release(tmp); | |||||
} | |||||
} | |||||
block = receiveReadOnly(4); // channel 5 | |||||
if (block) { | |||||
__disable_irq(); | |||||
if (block_ch5_1st == NULL) { | |||||
block_ch5_1st = block; | |||||
ch5_offset = 0; | |||||
__enable_irq(); | |||||
} else if (block_ch5_2nd == NULL) { | |||||
block_ch5_2nd = block; | |||||
__enable_irq(); | |||||
} else { | |||||
tmp = block_ch5_1st; | |||||
block_ch5_1st = block_ch5_2nd; | |||||
block_ch5_2nd = block; | |||||
ch5_offset = 0; | |||||
__enable_irq(); | |||||
release(tmp); | |||||
} | |||||
} | |||||
block = receiveReadOnly(5); // channel 6 | |||||
if (block) { | |||||
__disable_irq(); | |||||
if (block_ch6_1st == NULL) { | |||||
block_ch6_1st = block; | |||||
ch6_offset = 0; | |||||
__enable_irq(); | |||||
} else if (block_ch6_2nd == NULL) { | |||||
block_ch6_2nd = block; | |||||
__enable_irq(); | |||||
} else { | |||||
tmp = block_ch6_1st; | |||||
block_ch6_1st = block_ch6_2nd; | |||||
block_ch6_2nd = block; | |||||
ch6_offset = 0; | |||||
__enable_irq(); | |||||
release(tmp); | |||||
} | |||||
} | |||||
block = receiveReadOnly(6); // channel 7 | |||||
if (block) { | |||||
__disable_irq(); | |||||
if (block_ch7_1st == NULL) { | |||||
block_ch7_1st = block; | |||||
ch7_offset = 0; | |||||
__enable_irq(); | |||||
} else if (block_ch7_2nd == NULL) { | |||||
block_ch7_2nd = block; | |||||
__enable_irq(); | |||||
} else { | |||||
tmp = block_ch7_1st; | |||||
block_ch7_1st = block_ch7_2nd; | |||||
block_ch7_2nd = block; | |||||
ch7_offset = 0; | |||||
__enable_irq(); | |||||
release(tmp); | |||||
} | |||||
} | |||||
block = receiveReadOnly(7); // channel 8 | |||||
if (block) { | |||||
__disable_irq(); | |||||
if (block_ch8_1st == NULL) { | |||||
block_ch8_1st = block; | |||||
ch8_offset = 0; | |||||
__enable_irq(); | |||||
} else if (block_ch8_2nd == NULL) { | |||||
block_ch8_2nd = block; | |||||
__enable_irq(); | |||||
} else { | |||||
tmp = block_ch8_1st; | |||||
block_ch8_1st = block_ch8_2nd; | |||||
block_ch8_2nd = block; | |||||
ch8_offset = 0; | |||||
__enable_irq(); | |||||
release(tmp); | |||||
} | |||||
} | |||||
} | |||||
#ifndef MCLK_SRC | |||||
#if F_CPU >= 20000000 | |||||
#define MCLK_SRC 3 // the PLL | |||||
#else | |||||
#define MCLK_SRC 0 // system clock | |||||
#endif | |||||
#endif | |||||
void AudioOutputADAT::config_ADAT(void) | |||||
{ | |||||
SIM_SCGC6 |= SIM_SCGC6_I2S; | |||||
SIM_SCGC7 |= SIM_SCGC7_DMA; | |||||
SIM_SCGC6 |= SIM_SCGC6_DMAMUX; | |||||
// enable MCLK output | |||||
I2S0_MCR = I2S_MCR_MICS(MCLK_SRC) | I2S_MCR_MOE; | |||||
//while (I2S0_MCR & I2S_MCR_DUF) ; | |||||
//I2S0_MDR = I2S_MDR_FRACT((MCLK_MULT-1)) | I2S_MDR_DIVIDE((MCLK_DIV-1)); | |||||
AudioOutputADAT::setI2SFreq(88200); | |||||
// configure transmitter | |||||
I2S0_TMR = 0; | |||||
I2S0_TCR1 = I2S_TCR1_TFW(1); // watermark | |||||
I2S0_TCR2 = I2S_TCR2_SYNC(0) | I2S_TCR2_MSEL(1) | I2S_TCR2_BCD | I2S_TCR2_DIV(0); | |||||
I2S0_TCR3 = I2S_TCR3_TCE; | |||||
//8 Words per Frame 32 Bit Word-Length -> 256 Bit Frame-Length, MSB First: | |||||
I2S0_TCR4 = I2S_TCR4_FRSZ(7) | I2S_TCR4_SYWD(0) | I2S_TCR4_MF | I2S_TCR4_FSP | I2S_TCR4_FSD; | |||||
I2S0_TCR5 = I2S_TCR5_WNW(31) | I2S_TCR5_W0W(31) | I2S_TCR5_FBT(31); | |||||
I2S0_RCSR = 0; | |||||
#if 0 | |||||
// configure pin mux for 3 clock signals (debug only) | |||||
CORE_PIN23_CONFIG = PORT_PCR_MUX(6); // pin 23, PTC2, I2S0_TX_FS (LRCLK) | |||||
CORE_PIN9_CONFIG = PORT_PCR_MUX(6); // pin 9, PTC3, I2S0_TX_BCLK | |||||
// CORE_PIN11_CONFIG = PORT_PCR_MUX(6); // pin 11, PTC6, I2S0_MCLK | |||||
#endif | |||||
} | |||||
#elif defined(KINETISL) | |||||
void AudioOutputADAT::update(void) | |||||
{ | |||||
audio_block_t *block; | |||||
block = receiveReadOnly(0); // input 0 = ch1 channel | |||||
if (block) release(block); | |||||
block = receiveReadOnly(1); // input 1 = ch2 channel | |||||
if (block) release(block); | |||||
block = receiveReadOnly(2); // input 2 = ch3 channel | |||||
if (block) release(block); | |||||
block = receiveReadOnly(3); // input 3 = ch4 channel | |||||
if (block) release(block); | |||||
block = receiveReadOnly(4); // input 4 = ch5 channel | |||||
if (block) release(block); | |||||
block = receiveReadOnly(5); // input 5 = ch6 channel | |||||
if (block) release(block); | |||||
block = receiveReadOnly(6); // input 6 = ch7 channel | |||||
if (block) release(block); | |||||
block = receiveReadOnly(7); // input 7 = ch8 channel | |||||
if (block) release(block); | |||||
} | |||||
#endif | |||||
/* | |||||
https://forum.pjrc.com/threads/38753-Discussion-about-a-simple-way-to-change-the-sample-rate | |||||
*/ | |||||
void AudioOutputADAT::setI2SFreq(int freq) { | |||||
typedef struct { | |||||
uint8_t mult; | |||||
uint16_t div; | |||||
} tmclk; | |||||
const int numfreqs = 14; | |||||
const int samplefreqs[numfreqs] = { 8000, 11025, 16000, 22050, 32000, 44100, (int) 44117.64706 , 48000, 88200, (int) (44117.64706 * 2.0), 96000, 176400,(int) (44117.64706 * 4.0), 192000}; | |||||
#if (F_PLL==16000000) | |||||
const tmclk clkArr[numfreqs] = {{16, 125}, {148, 839}, {32, 125}, {145, 411}, {64, 125}, {151, 214}, {12, 17}, {96, 125}, {151, 107}, {24, 17}, {192, 125}, {127, 45}, {48, 17}, {255, 83} }; | |||||
#elif (F_PLL==72000000) | |||||
const tmclk clkArr[numfreqs] = {{32, 1125}, {49, 1250}, {64, 1125}, {49, 625}, {128, 1125}, {98, 625}, {8, 51}, {64, 375}, {196, 625}, {16, 51}, {128, 375}, {249, 397}, {32, 51}, {185, 271} }; | |||||
#elif (F_PLL==96000000) | |||||
const tmclk clkArr[numfreqs] = {{8, 375}, {73, 2483}, {16, 375}, {147, 2500}, {32, 375}, {147, 1250}, {2, 17}, {16, 125}, {147, 625}, {4, 17}, {32, 125}, {151, 321}, {8, 17}, {64, 125} }; | |||||
#elif (F_PLL==120000000) | |||||
const tmclk clkArr[numfreqs] = {{32, 1875}, {89, 3784}, {64, 1875}, {147, 3125}, {128, 1875}, {205, 2179}, {8, 85}, {64, 625}, {89, 473}, {16, 85}, {128, 625}, {178, 473}, {32, 85}, {145, 354} }; | |||||
#elif (F_PLL==144000000) | |||||
const tmclk clkArr[numfreqs] = {{16, 1125}, {49, 2500}, {32, 1125}, {49, 1250}, {64, 1125}, {49, 625}, {4, 51}, {32, 375}, {98, 625}, {8, 51}, {64, 375}, {196, 625}, {16, 51}, {128, 375} }; | |||||
#elif (F_PLL==180000000) | |||||
const tmclk clkArr[numfreqs] = {{46, 4043}, {49, 3125}, {73, 3208}, {98, 3125}, {183, 4021}, {196, 3125}, {16, 255}, {128, 1875}, {107, 853}, {32, 255}, {219, 1604}, {214, 853}, {64, 255}, {219, 802} }; | |||||
#elif (F_PLL==192000000) | |||||
const tmclk clkArr[numfreqs] = {{4, 375}, {37, 2517}, {8, 375}, {73, 2483}, {16, 375}, {147, 2500}, {1, 17}, {8, 125}, {147, 1250}, {2, 17}, {16, 125}, {147, 625}, {4, 17}, {32, 125} }; | |||||
#elif (F_PLL==216000000) | |||||
const tmclk clkArr[numfreqs] = {{32, 3375}, {49, 3750}, {64, 3375}, {49, 1875}, {128, 3375}, {98, 1875}, {8, 153}, {64, 1125}, {196, 1875}, {16, 153}, {128, 1125}, {226, 1081}, {32, 153}, {147, 646} }; | |||||
#elif (F_PLL==240000000) | |||||
const tmclk clkArr[numfreqs] = {{16, 1875}, {29, 2466}, {32, 1875}, {89, 3784}, {64, 1875}, {147, 3125}, {4, 85}, {32, 625}, {205, 2179}, {8, 85}, {64, 625}, {89, 473}, {16, 85}, {128, 625} }; | |||||
#endif | |||||
for (int f = 0; f < numfreqs; f++) { | |||||
if ( freq == samplefreqs[f] ) { | |||||
while (I2S0_MCR & I2S_MCR_DUF) ; | |||||
I2S0_MDR = I2S_MDR_FRACT((clkArr[f].mult - 1)) | I2S_MDR_DIVIDE((clkArr[f].div - 1)); | |||||
return; | |||||
} | |||||
} | |||||
} |
/* ADAT for Teensy 3.X | |||||
* Copyright (c) 2017, Ernstjan Freriks, | |||||
* Thanks to Frank Bösing & KPC & Paul Stoffregen! | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice, development funding notice, and this permission | |||||
* notice shall be included in all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
* THE SOFTWARE. | |||||
*/ | |||||
#ifndef output_ADAT_h_ | |||||
#define output_ADAT_h_ | |||||
#include "Arduino.h" | |||||
#include "AudioStream.h" | |||||
#include "DMAChannel.h" | |||||
class AudioOutputADAT : public AudioStream | |||||
{ | |||||
public: | |||||
AudioOutputADAT(void) : AudioStream(8, inputQueueArray) { begin(); } | |||||
virtual void update(void); | |||||
void begin(void); | |||||
static void mute_PCM(const bool mute); | |||||
protected: | |||||
AudioOutputADAT(int dummy): AudioStream(8, inputQueueArray) {} | |||||
static void config_ADAT(void); | |||||
static audio_block_t *block_ch1_1st; | |||||
static audio_block_t *block_ch2_1st; | |||||
static audio_block_t *block_ch3_1st; | |||||
static audio_block_t *block_ch4_1st; | |||||
static audio_block_t *block_ch5_1st; | |||||
static audio_block_t *block_ch6_1st; | |||||
static audio_block_t *block_ch7_1st; | |||||
static audio_block_t *block_ch8_1st; | |||||
static bool update_responsibility; | |||||
static DMAChannel dma; | |||||
static void isr(void); | |||||
static void setI2SFreq(int freq); | |||||
private: | |||||
//static uint32_t vucp; | |||||
static audio_block_t *block_ch1_2nd; | |||||
static audio_block_t *block_ch2_2nd; | |||||
static audio_block_t *block_ch3_2nd; | |||||
static audio_block_t *block_ch4_2nd; | |||||
static audio_block_t *block_ch5_2nd; | |||||
static audio_block_t *block_ch6_2nd; | |||||
static audio_block_t *block_ch7_2nd; | |||||
static audio_block_t *block_ch8_2nd; | |||||
static uint16_t ch1_offset; | |||||
static uint16_t ch2_offset; | |||||
static uint16_t ch3_offset; | |||||
static uint16_t ch4_offset; | |||||
static uint16_t ch5_offset; | |||||
static uint16_t ch6_offset; | |||||
static uint16_t ch7_offset; | |||||
static uint16_t ch8_offset; | |||||
audio_block_t *inputQueueArray[8]; | |||||
}; | |||||
#endif |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "output_dac.h" | #include "output_dac.h" | ||||
#include "utility/pdb.h" | #include "utility/pdb.h" | ||||
SIM_SCGC2 |= SIM_SCGC2_DAC0; | SIM_SCGC2 |= SIM_SCGC2_DAC0; | ||||
DAC0_C0 = DAC_C0_DACEN; // 1.2V VDDA is DACREF_2 | DAC0_C0 = DAC_C0_DACEN; // 1.2V VDDA is DACREF_2 | ||||
// slowly ramp up to DC voltage, approx 1/4 second | // slowly ramp up to DC voltage, approx 1/4 second | ||||
for (int16_t i=0; i<2048; i+=8) { | |||||
for (int16_t i=0; i<=2048; i+=8) { | |||||
*(int16_t *)&(DAC0_DAT0L) = i; | *(int16_t *)&(DAC0_DAT0L) = i; | ||||
delay(1); | delay(1); | ||||
} | } | ||||
src = block->data; | src = block->data; | ||||
do { | do { | ||||
// TODO: this should probably dither | // TODO: this should probably dither | ||||
*dest++ = ((*src++) + 32767) >> 4; | |||||
*dest++ = ((*src++) + 32768) >> 4; | |||||
} while (dest < end); | } while (dest < end); | ||||
AudioStream::release(block); | AudioStream::release(block); | ||||
AudioOutputAnalog::block_left_1st = AudioOutputAnalog::block_left_2nd; | AudioOutputAnalog::block_left_1st = AudioOutputAnalog::block_left_2nd; | ||||
AudioOutputAnalog::block_left_2nd = NULL; | AudioOutputAnalog::block_left_2nd = NULL; | ||||
} else { | } else { | ||||
do { | do { | ||||
*dest++ = 2047; | |||||
*dest++ = 2048; | |||||
} while (dest < end); | } while (dest < end); | ||||
} | } | ||||
if (AudioOutputAnalog::update_responsibility) AudioStream::update_all(); | if (AudioOutputAnalog::update_responsibility) AudioStream::update_all(); |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "output_dacs.h" | #include "output_dacs.h" | ||||
#include "utility/pdb.h" | #include "utility/pdb.h" | ||||
memset(&block_silent, 0, sizeof(block_silent)); | memset(&block_silent, 0, sizeof(block_silent)); | ||||
// slowly ramp up to DC voltage, approx 1/4 second | // slowly ramp up to DC voltage, approx 1/4 second | ||||
for (int16_t i=0; i<2048; i+=8) { | |||||
for (int16_t i=0; i<=2048; i+=8) { | |||||
*(int16_t *)&(DAC0_DAT0L) = i; | *(int16_t *)&(DAC0_DAT0L) = i; | ||||
*(int16_t *)&(DAC1_DAT0L) = i; | *(int16_t *)&(DAC1_DAT0L) = i; | ||||
delay(1); | delay(1); | ||||
// TODO: can this be optimized? | // TODO: can this be optimized? | ||||
uint32_t left = *src_left++; | uint32_t left = *src_left++; | ||||
uint32_t right = *src_right++; | uint32_t right = *src_right++; | ||||
uint32_t out1 = ((left & 0xFFFF) + 32767) >> 4; | |||||
out1 |= (((right & 0xFFFF) + 32767) >> 4) << 16; | |||||
uint32_t out2 = ((left >> 16) + 32767) >> 4; | |||||
out2 |= (((right >> 16) + 32767) >> 4) << 16; | |||||
uint32_t out1 = ((left & 0xFFFF) + 32768) >> 4; | |||||
out1 |= (((right & 0xFFFF) + 32768) >> 4) << 16; | |||||
uint32_t out2 = ((left >> 16) + 32768) >> 4; | |||||
out2 |= (((right >> 16) + 32768) >> 4) << 16; | |||||
*dest++ = out1; | *dest++ = out1; | ||||
*dest++ = out2; | *dest++ = out2; | ||||
} while (dest < end); | } while (dest < end); | ||||
} | } | ||||
if (block_right != &block_silent) { | if (block_right != &block_silent) { | ||||
release(block_right); | release(block_right); | ||||
block_left_1st = block_left_2nd; | |||||
block_left_2nd = NULL; | |||||
block_right_1st = block_right_2nd; | |||||
block_right_2nd = NULL; | |||||
} | } | ||||
if (update_responsibility) update_all(); | if (update_responsibility) update_all(); |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "output_i2s.h" | #include "output_i2s.h" | ||||
#include "memcpy_audio.h" | #include "memcpy_audio.h" | ||||
dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(1) | DMA_TCD_ATTR_DSIZE(1); | dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(1) | DMA_TCD_ATTR_DSIZE(1); | ||||
dma.TCD->NBYTES_MLNO = 2; | dma.TCD->NBYTES_MLNO = 2; | ||||
dma.TCD->SLAST = -sizeof(i2s_tx_buffer); | dma.TCD->SLAST = -sizeof(i2s_tx_buffer); | ||||
dma.TCD->DADDR = &I2S0_TDR0; | |||||
dma.TCD->DADDR = (void *)((uint32_t)&I2S0_TDR0 + 2); | |||||
dma.TCD->DOFF = 0; | dma.TCD->DOFF = 0; | ||||
dma.TCD->CITER_ELINKNO = sizeof(i2s_tx_buffer) / 2; | dma.TCD->CITER_ELINKNO = sizeof(i2s_tx_buffer) / 2; | ||||
dma.TCD->DLASTSGA = 0; | dma.TCD->DLASTSGA = 0; | ||||
I2S0_TMR = 0; | I2S0_TMR = 0; | ||||
I2S0_TCR1 = I2S_TCR1_TFW(1); // watermark at half fifo size | I2S0_TCR1 = I2S_TCR1_TFW(1); // watermark at half fifo size | ||||
I2S0_TCR2 = I2S_TCR2_SYNC(0) | I2S_TCR2_BCP | I2S_TCR2_MSEL(1) | I2S0_TCR2 = I2S_TCR2_SYNC(0) | I2S_TCR2_BCP | I2S_TCR2_MSEL(1) | ||||
| I2S_TCR2_BCD | I2S_TCR2_DIV(3); | |||||
| I2S_TCR2_BCD | I2S_TCR2_DIV(1); | |||||
I2S0_TCR3 = I2S_TCR3_TCE; | I2S0_TCR3 = I2S_TCR3_TCE; | ||||
I2S0_TCR4 = I2S_TCR4_FRSZ(1) | I2S_TCR4_SYWD(15) | I2S_TCR4_MF | |||||
I2S0_TCR4 = I2S_TCR4_FRSZ(1) | I2S_TCR4_SYWD(31) | I2S_TCR4_MF | |||||
| I2S_TCR4_FSE | I2S_TCR4_FSP | I2S_TCR4_FSD; | | I2S_TCR4_FSE | I2S_TCR4_FSP | I2S_TCR4_FSD; | ||||
I2S0_TCR5 = I2S_TCR5_WNW(15) | I2S_TCR5_W0W(15) | I2S_TCR5_FBT(15); | |||||
I2S0_TCR5 = I2S_TCR5_WNW(31) | I2S_TCR5_W0W(31) | I2S_TCR5_FBT(31); | |||||
// configure receiver (sync'd to transmitter clocks) | // configure receiver (sync'd to transmitter clocks) | ||||
I2S0_RMR = 0; | I2S0_RMR = 0; | ||||
I2S0_RCR1 = I2S_RCR1_RFW(1); | I2S0_RCR1 = I2S_RCR1_RFW(1); | ||||
I2S0_RCR2 = I2S_RCR2_SYNC(1) | I2S_TCR2_BCP | I2S_RCR2_MSEL(1) | I2S0_RCR2 = I2S_RCR2_SYNC(1) | I2S_TCR2_BCP | I2S_RCR2_MSEL(1) | ||||
| I2S_RCR2_BCD | I2S_RCR2_DIV(3); | |||||
| I2S_RCR2_BCD | I2S_RCR2_DIV(1); | |||||
I2S0_RCR3 = I2S_RCR3_RCE; | I2S0_RCR3 = I2S_RCR3_RCE; | ||||
I2S0_RCR4 = I2S_RCR4_FRSZ(1) | I2S_RCR4_SYWD(15) | I2S_RCR4_MF | |||||
I2S0_RCR4 = I2S_RCR4_FRSZ(1) | I2S_RCR4_SYWD(31) | I2S_RCR4_MF | |||||
| I2S_RCR4_FSE | I2S_RCR4_FSP | I2S_RCR4_FSD; | | I2S_RCR4_FSE | I2S_RCR4_FSP | I2S_RCR4_FSD; | ||||
I2S0_RCR5 = I2S_RCR5_WNW(15) | I2S_RCR5_W0W(15) | I2S_RCR5_FBT(15); | |||||
I2S0_RCR5 = I2S_RCR5_WNW(31) | I2S_RCR5_W0W(31) | I2S_RCR5_FBT(31); | |||||
// configure pin mux for 3 clock signals | // configure pin mux for 3 clock signals | ||||
CORE_PIN23_CONFIG = PORT_PCR_MUX(6); // pin 23, PTC2, I2S0_TX_FS (LRCLK) | CORE_PIN23_CONFIG = PORT_PCR_MUX(6); // pin 23, PTC2, I2S0_TX_FS (LRCLK) | ||||
dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(1) | DMA_TCD_ATTR_DSIZE(1); | dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(1) | DMA_TCD_ATTR_DSIZE(1); | ||||
dma.TCD->NBYTES_MLNO = 2; | dma.TCD->NBYTES_MLNO = 2; | ||||
dma.TCD->SLAST = -sizeof(i2s_tx_buffer); | dma.TCD->SLAST = -sizeof(i2s_tx_buffer); | ||||
dma.TCD->DADDR = &I2S0_TDR0; | |||||
dma.TCD->DADDR = (void *)((uint32_t)&I2S0_TDR0 + 2); | |||||
dma.TCD->DOFF = 0; | dma.TCD->DOFF = 0; | ||||
dma.TCD->CITER_ELINKNO = sizeof(i2s_tx_buffer) / 2; | dma.TCD->CITER_ELINKNO = sizeof(i2s_tx_buffer) / 2; | ||||
dma.TCD->DLASTSGA = 0; | dma.TCD->DLASTSGA = 0; | ||||
update_responsibility = update_setup(); | update_responsibility = update_setup(); | ||||
dma.enable(); | dma.enable(); | ||||
I2S0_TCSR |= I2S_TCSR_TE | I2S_TCSR_BCE | I2S_TCSR_FRDE | I2S_TCSR_FR; | |||||
I2S0_TCSR = I2S_TCSR_SR; | |||||
I2S0_TCSR = I2S_TCSR_TE | I2S_TCSR_BCE | I2S_TCSR_FRDE; | |||||
dma.attachInterrupt(isr); | dma.attachInterrupt(isr); | ||||
} | } | ||||
I2S0_TCR2 = I2S_TCR2_SYNC(0) | I2S_TCR2_BCP; | I2S0_TCR2 = I2S_TCR2_SYNC(0) | I2S_TCR2_BCP; | ||||
I2S0_TCR3 = I2S_TCR3_TCE; | I2S0_TCR3 = I2S_TCR3_TCE; | ||||
I2S0_TCR4 = I2S_TCR4_FRSZ(1) | I2S_TCR4_SYWD(15) | I2S_TCR4_MF | |||||
I2S0_TCR4 = I2S_TCR4_FRSZ(1) | I2S_TCR4_SYWD(31) | I2S_TCR4_MF | |||||
| I2S_TCR4_FSE | I2S_TCR4_FSP; | | I2S_TCR4_FSE | I2S_TCR4_FSP; | ||||
I2S0_TCR5 = I2S_TCR5_WNW(15) | I2S_TCR5_W0W(15) | I2S_TCR5_FBT(15); | |||||
I2S0_TCR5 = I2S_TCR5_WNW(31) | I2S_TCR5_W0W(31) | I2S_TCR5_FBT(31); | |||||
// configure receiver (sync'd to transmitter clocks) | // configure receiver (sync'd to transmitter clocks) | ||||
I2S0_RMR = 0; | I2S0_RMR = 0; | ||||
I2S0_RCR2 = I2S_RCR2_SYNC(1) | I2S_TCR2_BCP; | I2S0_RCR2 = I2S_RCR2_SYNC(1) | I2S_TCR2_BCP; | ||||
I2S0_RCR3 = I2S_RCR3_RCE; | I2S0_RCR3 = I2S_RCR3_RCE; | ||||
I2S0_RCR4 = I2S_RCR4_FRSZ(1) | I2S_RCR4_SYWD(15) | I2S_RCR4_MF | |||||
I2S0_RCR4 = I2S_RCR4_FRSZ(1) | I2S_RCR4_SYWD(31) | I2S_RCR4_MF | |||||
| I2S_RCR4_FSE | I2S_RCR4_FSP | I2S_RCR4_FSD; | | I2S_RCR4_FSE | I2S_RCR4_FSP | I2S_RCR4_FSD; | ||||
I2S0_RCR5 = I2S_RCR5_WNW(15) | I2S_RCR5_W0W(15) | I2S_RCR5_FBT(15); | |||||
I2S0_RCR5 = I2S_RCR5_WNW(31) | I2S_RCR5_W0W(31) | I2S_RCR5_FBT(31); | |||||
// configure pin mux for 3 clock signals | // configure pin mux for 3 clock signals | ||||
CORE_PIN23_CONFIG = PORT_PCR_MUX(6); // pin 23, PTC2, I2S0_TX_FS (LRCLK) | CORE_PIN23_CONFIG = PORT_PCR_MUX(6); // pin 23, PTC2, I2S0_TX_FS (LRCLK) |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "output_i2s_quad.h" | #include "output_i2s_quad.h" | ||||
#include "memcpy_audio.h" | #include "memcpy_audio.h" | ||||
//Adapted to PT8211, Frank Bösing, Ben-Rheinland | //Adapted to PT8211, Frank Bösing, Ben-Rheinland | ||||
#include <Arduino.h> | |||||
#include "output_pt8211.h" | #include "output_pt8211.h" | ||||
#include "memcpy_audio.h" | #include "memcpy_audio.h" | ||||
I2S0_TCR2 = I2S_TCR2_SYNC(0) | I2S_TCR2_BCP | I2S_TCR2_MSEL(1) | I2S_TCR2_BCD | I2S_TCR2_DIV(3); | I2S0_TCR2 = I2S_TCR2_SYNC(0) | I2S_TCR2_BCP | I2S_TCR2_MSEL(1) | I2S_TCR2_BCD | I2S_TCR2_DIV(3); | ||||
#endif | #endif | ||||
I2S0_TCR3 = I2S_TCR3_TCE; | I2S0_TCR3 = I2S_TCR3_TCE; | ||||
// I2S0_TCR4 = I2S_TCR4_FRSZ(1) | I2S_TCR4_SYWD(15) | I2S_TCR4_MF | I2S_TCR4_FSE | I2S_TCR4_FSP | I2S_TCR4_FSD; | |||||
// I2S0_TCR4 = I2S_TCR4_FRSZ(1) | I2S_TCR4_SYWD(15) | I2S_TCR4_MF | I2S_TCR4_FSE | I2S_TCR4_FSP | I2S_TCR4_FSD; //TDA1543 | |||||
I2S0_TCR4 = I2S_TCR4_FRSZ(1) | I2S_TCR4_SYWD(15) | I2S_TCR4_MF /*| I2S_TCR4_FSE*/ | I2S_TCR4_FSP | I2S_TCR4_FSD; //PT8211 | I2S0_TCR4 = I2S_TCR4_FRSZ(1) | I2S_TCR4_SYWD(15) | I2S_TCR4_MF /*| I2S_TCR4_FSE*/ | I2S_TCR4_FSP | I2S_TCR4_FSD; //PT8211 | ||||
I2S0_TCR5 = I2S_TCR5_WNW(15) | I2S_TCR5_W0W(15) | I2S_TCR5_FBT(15); | I2S0_TCR5 = I2S_TCR5_WNW(15) | I2S_TCR5_W0W(15) | I2S_TCR5_FBT(15); | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "output_pwm.h" | #include "output_pwm.h" | ||||
audio_block_t * AudioOutputPWM::block_1st = NULL; | audio_block_t * AudioOutputPWM::block_1st = NULL; |
// 2015/08/23: (FB) added mute_PCM() - sets or unsets VALID in VUCP (and adjusts PARITY) | // 2015/08/23: (FB) added mute_PCM() - sets or unsets VALID in VUCP (and adjusts PARITY) | ||||
#include <Arduino.h> | |||||
#include "output_spdif.h" | #include "output_spdif.h" | ||||
#if defined(KINETISK) | #if defined(KINETISK) |
/* Audio Library for Teensy 3.X | |||||
* Copyright (c) 2017, Paul Stoffregen, paul@pjrc.com | |||||
* | |||||
* Development of this audio library was funded by PJRC.COM, LLC by sales of | |||||
* Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | |||||
* open source software by purchasing Teensy or other PJRC products. | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice, development funding notice, and this permission | |||||
* notice shall be included in all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
* THE SOFTWARE. | |||||
*/ | |||||
#include <Arduino.h> | |||||
#include "output_tdm.h" | |||||
#include "memcpy_audio.h" | |||||
#if defined(KINETISK) | |||||
audio_block_t * AudioOutputTDM::block_input[16] = { | |||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL | |||||
}; | |||||
bool AudioOutputTDM::update_responsibility = false; | |||||
static uint32_t zeros[AUDIO_BLOCK_SAMPLES/2]; | |||||
DMAMEM static uint32_t tdm_tx_buffer[AUDIO_BLOCK_SAMPLES*16]; | |||||
DMAChannel AudioOutputTDM::dma(false); | |||||
void AudioOutputTDM::begin(void) | |||||
{ | |||||
dma.begin(true); // Allocate the DMA channel first | |||||
for (int i=0; i < 16; i++) { | |||||
block_input[i] = NULL; | |||||
} | |||||
// TODO: should we set & clear the I2S_TCSR_SR bit here? | |||||
config_tdm(); | |||||
CORE_PIN22_CONFIG = PORT_PCR_MUX(6); // pin 22, PTC1, I2S0_TXD0 | |||||
dma.TCD->SADDR = tdm_tx_buffer; | |||||
dma.TCD->SOFF = 4; | |||||
dma.TCD->ATTR = DMA_TCD_ATTR_SSIZE(2) | DMA_TCD_ATTR_DSIZE(2); | |||||
dma.TCD->NBYTES_MLNO = 4; | |||||
dma.TCD->SLAST = -sizeof(tdm_tx_buffer); | |||||
dma.TCD->DADDR = &I2S0_TDR0; | |||||
dma.TCD->DOFF = 0; | |||||
dma.TCD->CITER_ELINKNO = sizeof(tdm_tx_buffer) / 4; | |||||
dma.TCD->DLASTSGA = 0; | |||||
dma.TCD->BITER_ELINKNO = sizeof(tdm_tx_buffer) / 4; | |||||
dma.TCD->CSR = DMA_TCD_CSR_INTHALF | DMA_TCD_CSR_INTMAJOR; | |||||
dma.triggerAtHardwareEvent(DMAMUX_SOURCE_I2S0_TX); | |||||
update_responsibility = update_setup(); | |||||
dma.enable(); | |||||
I2S0_TCSR = I2S_TCSR_SR; | |||||
I2S0_TCSR = I2S_TCSR_TE | I2S_TCSR_BCE | I2S_TCSR_FRDE; | |||||
dma.attachInterrupt(isr); | |||||
} | |||||
// TODO: needs optimization... | |||||
static void memcpy_tdm_tx(uint32_t *dest, const uint32_t *src1, const uint32_t *src2) | |||||
{ | |||||
uint32_t i, in1, in2, out1, out2; | |||||
for (i=0; i < AUDIO_BLOCK_SAMPLES/2; i++) { | |||||
in1 = *src1++; | |||||
in2 = *src2++; | |||||
out1 = (in1 << 16) | (in2 & 0xFFFF); | |||||
out2 = (in1 & 0xFFFF0000) | (in2 >> 16); | |||||
*dest = out1; | |||||
*(dest + 8) = out2; | |||||
dest += 16; | |||||
} | |||||
} | |||||
void AudioOutputTDM::isr(void) | |||||
{ | |||||
uint32_t *dest; | |||||
const uint32_t *src1, *src2; | |||||
uint32_t i, saddr; | |||||
saddr = (uint32_t)(dma.TCD->SADDR); | |||||
dma.clearInterrupt(); | |||||
if (saddr < (uint32_t)tdm_tx_buffer + sizeof(tdm_tx_buffer) / 2) { | |||||
// DMA is transmitting the first half of the buffer | |||||
// so we must fill the second half | |||||
dest = tdm_tx_buffer + AUDIO_BLOCK_SAMPLES*8; | |||||
} else { | |||||
// DMA is transmitting the second half of the buffer | |||||
// so we must fill the first half | |||||
dest = tdm_tx_buffer; | |||||
} | |||||
if (update_responsibility) AudioStream::update_all(); | |||||
for (i=0; i < 16; i += 2) { | |||||
src1 = block_input[i] ? (uint32_t *)(block_input[i]->data) : zeros; | |||||
src2 = block_input[i+1] ? (uint32_t *)(block_input[i+1]->data) : zeros; | |||||
memcpy_tdm_tx(dest, src1, src2); | |||||
dest++; | |||||
} | |||||
for (i=0; i < 16; i++) { | |||||
if (block_input[i]) { | |||||
release(block_input[i]); | |||||
block_input[i] = NULL; | |||||
} | |||||
} | |||||
} | |||||
void AudioOutputTDM::update(void) | |||||
{ | |||||
audio_block_t *prev[16]; | |||||
unsigned int i; | |||||
__disable_irq(); | |||||
for (i=0; i < 16; i++) { | |||||
prev[i] = block_input[i]; | |||||
block_input[i] = receiveReadOnly(i); | |||||
} | |||||
__enable_irq(); | |||||
for (i=0; i < 16; i++) { | |||||
if (prev[i]) release(prev[i]); | |||||
} | |||||
} | |||||
// MCLK needs to be 48e6 / 1088 * 512 = 22.588235 MHz -> 44.117647 kHz sample rate | |||||
// | |||||
#if F_CPU == 96000000 || F_CPU == 48000000 || F_CPU == 24000000 | |||||
// PLL is at 96 MHz in these modes | |||||
#define MCLK_MULT 4 | |||||
#define MCLK_DIV 17 | |||||
#elif F_CPU == 72000000 | |||||
#define MCLK_MULT 16 | |||||
#define MCLK_DIV 51 | |||||
#elif F_CPU == 120000000 | |||||
#define MCLK_MULT 16 | |||||
#define MCLK_DIV 85 | |||||
#elif F_CPU == 144000000 | |||||
#define MCLK_MULT 8 | |||||
#define MCLK_DIV 51 | |||||
#elif F_CPU == 168000000 | |||||
#define MCLK_MULT 16 | |||||
#define MCLK_DIV 119 | |||||
#elif F_CPU == 180000000 | |||||
#define MCLK_MULT 32 | |||||
#define MCLK_DIV 255 | |||||
#define MCLK_SRC 0 | |||||
#elif F_CPU == 192000000 | |||||
#define MCLK_MULT 2 | |||||
#define MCLK_DIV 17 | |||||
#elif F_CPU == 216000000 | |||||
#define MCLK_MULT 16 | |||||
#define MCLK_DIV 153 | |||||
#define MCLK_SRC 0 | |||||
#elif F_CPU == 240000000 | |||||
#define MCLK_MULT 8 | |||||
#define MCLK_DIV 85 | |||||
#else | |||||
#error "This CPU Clock Speed is not supported by the Audio library"; | |||||
#endif | |||||
#ifndef MCLK_SRC | |||||
#if F_CPU >= 20000000 | |||||
#define MCLK_SRC 3 // the PLL | |||||
#else | |||||
#define MCLK_SRC 0 // system clock | |||||
#endif | |||||
#endif | |||||
void AudioOutputTDM::config_tdm(void) | |||||
{ | |||||
SIM_SCGC6 |= SIM_SCGC6_I2S; | |||||
SIM_SCGC7 |= SIM_SCGC7_DMA; | |||||
SIM_SCGC6 |= SIM_SCGC6_DMAMUX; | |||||
// if either transmitter or receiver is enabled, do nothing | |||||
if (I2S0_TCSR & I2S_TCSR_TE) return; | |||||
if (I2S0_RCSR & I2S_RCSR_RE) return; | |||||
// enable MCLK output | |||||
I2S0_MCR = I2S_MCR_MICS(MCLK_SRC) | I2S_MCR_MOE; | |||||
while (I2S0_MCR & I2S_MCR_DUF) ; | |||||
I2S0_MDR = I2S_MDR_FRACT((MCLK_MULT-1)) | I2S_MDR_DIVIDE((MCLK_DIV-1)); | |||||
// configure transmitter | |||||
I2S0_TMR = 0; | |||||
I2S0_TCR1 = I2S_TCR1_TFW(4); | |||||
I2S0_TCR2 = I2S_TCR2_SYNC(0) | I2S_TCR2_BCP | I2S_TCR2_MSEL(1) | |||||
| I2S_TCR2_BCD | I2S_TCR2_DIV(0); | |||||
I2S0_TCR3 = I2S_TCR3_TCE; | |||||
I2S0_TCR4 = I2S_TCR4_FRSZ(7) | I2S_TCR4_SYWD(0) | I2S_TCR4_MF | |||||
| I2S_TCR4_FSE | I2S_TCR4_FSD; | |||||
I2S0_TCR5 = I2S_TCR5_WNW(31) | I2S_TCR5_W0W(31) | I2S_TCR5_FBT(31); | |||||
// configure receiver (sync'd to transmitter clocks) | |||||
I2S0_RMR = 0; | |||||
I2S0_RCR1 = I2S_RCR1_RFW(4); | |||||
I2S0_RCR2 = I2S_RCR2_SYNC(1) | I2S_TCR2_BCP | I2S_RCR2_MSEL(1) | |||||
| I2S_RCR2_BCD | I2S_RCR2_DIV(0); | |||||
I2S0_RCR3 = I2S_RCR3_RCE; | |||||
I2S0_RCR4 = I2S_RCR4_FRSZ(7) | I2S_RCR4_SYWD(0) | I2S_RCR4_MF | |||||
| I2S_RCR4_FSE | I2S_RCR4_FSD; | |||||
I2S0_RCR5 = I2S_RCR5_WNW(31) | I2S_RCR5_W0W(31) | I2S_RCR5_FBT(31); | |||||
// configure pin mux for 3 clock signals | |||||
CORE_PIN23_CONFIG = PORT_PCR_MUX(6); // pin 23, PTC2, I2S0_TX_FS (LRCLK) | |||||
CORE_PIN9_CONFIG = PORT_PCR_MUX(6); // pin 9, PTC3, I2S0_TX_BCLK | |||||
CORE_PIN11_CONFIG = PORT_PCR_MUX(6); // pin 11, PTC6, I2S0_MCLK | |||||
} | |||||
#endif // KINETISK |
/* Audio Library for Teensy 3.X | |||||
* Copyright (c) 2017, Paul Stoffregen, paul@pjrc.com | |||||
* | |||||
* Development of this audio library was funded by PJRC.COM, LLC by sales of | |||||
* Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop | |||||
* open source software by purchasing Teensy or other PJRC products. | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice, development funding notice, and this permission | |||||
* notice shall be included in all copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
* THE SOFTWARE. | |||||
*/ | |||||
#ifndef output_tdm_h_ | |||||
#define output_tdm_h_ | |||||
#include "Arduino.h" | |||||
#include "AudioStream.h" | |||||
#include "DMAChannel.h" | |||||
class AudioOutputTDM : public AudioStream | |||||
{ | |||||
public: | |||||
AudioOutputTDM(void) : AudioStream(16, inputQueueArray) { begin(); } | |||||
virtual void update(void); | |||||
void begin(void); | |||||
friend class AudioInputTDM; | |||||
protected: | |||||
static void config_tdm(void); | |||||
static audio_block_t *block_input[16]; | |||||
static bool update_responsibility; | |||||
static DMAChannel dma; | |||||
static void isr(void); | |||||
private: | |||||
audio_block_t *inputQueueArray[16]; | |||||
}; | |||||
#endif |
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "play_memory.h" | #include "play_memory.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "play_queue.h" | #include "play_queue.h" | ||||
#include "utility/dspinst.h" | #include "utility/dspinst.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "play_sd_raw.h" | #include "play_sd_raw.h" | ||||
#include "spi_interrupt.h" | #include "spi_interrupt.h" | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "play_sd_wav.h" | #include "play_sd_wav.h" | ||||
#include "spi_interrupt.h" | #include "spi_interrupt.h" | ||||
bool AudioPlaySdWav::isPlaying(void) | bool AudioPlaySdWav::isPlaying(void) | ||||
{ | { | ||||
return (state < 8); | |||||
uint8_t s = *(volatile uint8_t *)&state; | |||||
return (s < 8); | |||||
} | } | ||||
uint32_t AudioPlaySdWav::positionMillis(void) | uint32_t AudioPlaySdWav::positionMillis(void) | ||||
{ | { | ||||
if (state >= 8) return 0; | |||||
uint32_t offset = total_length - data_length; | |||||
return ((uint64_t)offset * bytes2millis) >> 32; | |||||
uint8_t s = *(volatile uint8_t *)&state; | |||||
if (s >= 8) return 0; | |||||
uint32_t tlength = *(volatile uint32_t *)&total_length; | |||||
uint32_t dlength = *(volatile uint32_t *)&data_length; | |||||
uint32_t offset = tlength - dlength; | |||||
uint32_t b2m = *(volatile uint32_t *)&bytes2millis; | |||||
return ((uint64_t)offset * b2m) >> 32; | |||||
} | } | ||||
uint32_t AudioPlaySdWav::lengthMillis(void) | uint32_t AudioPlaySdWav::lengthMillis(void) | ||||
{ | { | ||||
if (state >= 8) return 0; | |||||
return ((uint64_t)total_length * bytes2millis) >> 32; | |||||
uint8_t s = *(volatile uint8_t *)&state; | |||||
if (s >= 8) return 0; | |||||
uint32_t tlength = *(volatile uint32_t *)&total_length; | |||||
uint32_t b2m = *(volatile uint32_t *)&bytes2millis; | |||||
return ((uint64_t)tlength * b2m) >> 32; | |||||
} | } | ||||
* THE SOFTWARE. | * THE SOFTWARE. | ||||
*/ | */ | ||||
#include <Arduino.h> | |||||
#include "play_serialflash_raw.h" | #include "play_serialflash_raw.h" | ||||
#include "spi_interrupt.h" | #include "spi_interrupt.h" | ||||