/***************************************************************
Play a musical composition in the background while
the main sketch code runs in the foreground.
The ArduboyPlaytune library must be installed to use this sketch
https://g...content-available-to-author-only...b.com/Arduboy/ArduboyPlayTune
The D-Pad buttons will move the text and play a tone.
The A button mutes the sound.
The screen is inverted when sound is muted.
The B button will turn sound back on if it's muted.
The score that is played contains two parts.
With the DevKit only one part is played.
***************************************************************/
#include <Arduboy2.h>
#include <ArduboyPlaytune.h>
const byte score[] PROGMEM = {
0,201, 0x90,43, 0,2, 0x91,31, 3,178, 0x92,58, 0,2, 0x93,70, 0,8, 0x94,62, 0,34, 0x84, 0,23, 0x82,
0,48, 0x83, 1,90, 0x92,58, 0,5, 0x93,55, 0,8, 0x94,67, 0,25, 0x83, 0,26, 0x84, 0,9, 0x81, 0,1,
0x80, 0,1, 0x82, 1,125, 0x90,45, 0,10, 0x91,33, 0,2, 0x92,63, 0,4, 0x93,60, 0,2, 0x94,72, 1,204,
0x84, 0,16, 0x82, 0,2, 0x83, 1,148, 0x92,69, 0,5, 0x93,60, 0,3, 0x94,57, 0,191, 0x81, 0,3, 0x80, 2,152,
0x90,46, 0,2, 0x91,34, 0,104, 0x84, 0,2, 0x83, 0,60, 0x82, 2,210, 0x92,74, 0,14, 0x93,62, 0,2, 0x94,65,
0,62, 0x81, 0,23, 0x80, 0,88, 0x83, 0,26, 0x82, 0,19, 0x84, 2,129, 0x90,36, 0,19, 0x91,48, 0,1, 0x92,70,
0,2, 0x93,58, 0,5, 0x94,63, 0,200, 0x83, 0,5, 0x84, 0,32, 0x82, 2,133, 0x92,69, 0,10, 0x93,57, 0,5,
0x94,60, 0,63, 0x83, 0,12, 0x84, 0,37, 0x82, 1,46, 0x92,63, 0,14, 0x93,60, 0,5, 0x94,72, 0,87, 0x80,
0,11, 0x81, 1,92, 0x83, 0,2, 0x90,38, 0,2, 0x91,50, 0,2, 0x84, 0,41, 0x82, 3,60, 0x92,70, 0,1,
0x93,58, 0,18, 0x94,62, 0,61, 0x83, 0,27, 0x84, 0,29, 0x82, 0,69, 0x80, 0,12, 0x81, 0,218, 0x90,62, 0,2,
0x91,74, 0,4, 0x92,69, 0,62, 0x80, 0,34, 0x82, 0,1, 0x81, 1,79, 0x90,70, 0,2, 0x91,67, 0,3, 0x92,79,
0,4, 0x93,39, 0,4, 0x94,51, 0,229, 0x84, 0,8, 0x83, 0,174, 0x93,55, 1,148, 0x94,53, 0,26, 0x83, 1,146,
0x93,51, 0,5, 0x84, 0,69, 0x83, 1,102, 0x93,47, 0,7, 0x94,35, 0,31, 0x82, 0,48, 0x80, 0,59, 0x81, 2,194,
0x90,77, 0,5, 0x91,67, 0,4, 0x92,74, 0,2, 0x95,71, 0,201, 0x84, 0,40, 0x83, 0,31, 0x85, 0,16, 0x81,
0,27, 0x80, 0,16, 0x82, 1,242, 0x90,48, 0,3, 0x91,36, 0,5, 0x92,77, 0,16, 0x93,67, 0,1, 0x94,72,
2,171, 0x84, 0,8, 0x82, 0,17, 0x83, 0,16, 0x81, 0,40, 0x80, 1,186, 0x90,75, 0,1, 0x91,67, 0,4, 0x92,72,
0,63, 0x82, 0,26, 0x80, 0,1, 0x81, 1,68, 0x90,67, 0,3, 0x91,62, 0,5, 0x92,58, 0,2, 0x93,70, 0,3,
0x94,74, 0,2, 0x95,55, 1,192, 0x80, 0,5, 0x84, 0,21, 0x83, 1,101, 0x90,70, 0,83, 0x85, 0,31, 0x82, 0,3,
0x81, 1,50, 0x91,67, 0,5, 0x80, 0,69, 0x81, 1,98, 0x90,70, 0,2, 0x91,63, 0,4, 0x92,48, 0,2, 0x93,60,
0,243, 0x82, 0,29, 0x83, 0,30, 0x81, 0,22, 0x80, 1,247, 0x90,54, 0,3, 0x91,69, 0,3, 0x92,57, 0,2,
0x93,62, 0,5, 0x94,66, 0,3, 0x95,50, 0,208, 0x83, 0,32, 0x81, 0,5, 0x84, 0,20, 0x82, 0,25, 0x85, 0,41,
0x80, 2,30, 0x90,55, 0,4, 0x91,43, 0,1, 0x92,31, 0,3, 0x93,58, 0,5, 0x94,67, 0,2, 0x95,62, 4,23,
0x80, 0,22, 0x82, 0,13, 0x83, 0,45, 0x81, 0,3, 0x85, 0,9, 0x84, 1,193, 0x90,43, 1,138, 0x91,74, 1,128,
0x92,79, 0,21, 0x81, 1,98, 0x91,74, 0,44, 0x82, 1,77, 0x92,82, 0,62, 0x81, 0,253, 0x82, 1,217, 0x91,81,
1,125, 0x92,79, 0,46, 0x81, 1,29, 0x80, 0,55, 0x90,45, 1,92, 0x82, 0,49, 0x91,74, 1,128, 0x92,79, 0,72,
0x81, 1,41, 0x91,74, 0,67, 0x82, 1,75, 0x92,82, 1,127, 0x82, 0,34, 0x81, 1,95, 0x91,81, 0,32, 0x80, 1,99,
0x90,79, 0,51, 0x81, 1,82, 0x91,46, 0,56, 0x80, 1,71, 0x90,74, 1,123, 0x92,79, 0,34, 0x80, 1,78, 0x90,74,
0,1, 0x82, 1,132, 0x92,82, 0,61, 0x80, 1,83, 0x82, 1,92, 0x90,81, 1,115, 0x92,79, 0,25, 0x80, 0,18,
0x81, 1,91, 0x90,48, 0,97, 0x82, 1,33, 0x91,74, 1,96, 0x92,79, 0,33, 0x81, 1,84, 0x91,74, 0,29, 0x82,
1,75, 0x92,82, 0,69, 0x81, 1,64, 0x82, 1,148, 0x91,81, 1,113, 0x92,79, 0,62, 0x81, 0,37, 0x80, 1,27,
0x90,43, 0,29, 0x82, 1,82, 0x91,74, 1,115, 0x92,79, 0,18, 0x81, 1,73, 0x91,74, 0,66, 0x82, 1,74, 0x92,82,
0,70, 0x81, 0,254, 0x82, 1,188, 0x91,81, 1,99, 0x92,79, 0,54, 0x81, 0,2, 0x80, 1,55, 0x90,45, 0,232,
0x82, 0,137, 0x91,74, 1,106, 0x92,79, 0,6, 0x81, 1,103, 0x91,74, 0,93, 0x82, 1,36, 0x92,82, 0,54, 0x81,
1,19, 0x82, 1,152, 0x91,81, 1,91, 0x80, 0,18, 0x90,79, 0,69, 0x81, 1,63, 0x91,46, 0,107, 0x80, 0,243,
0x90,74, 1,122, 0x92,79, 0,49, 0x80, 1,45, 0x90,74, 0,121, 0x82, 1,4, 0x92,82, 0,54, 0x80, 0,247, 0x82,
1,179, 0x90,81, 0,31, 0x81, 1,64, 0x91,79, 0,57, 0x80, 1,65, 0x90,48, 0,85, 0x81, 1,29, 0x91,74, 1,100,
0x92,79, 0,64, 0x81, 1,50, 0x91,74, 0,67, 0x82, 1,62, 0x92,82, 0,65, 0x81, 0,247, 0x82, 1,171, 0x91,81,
0,155, 0x80, 0,211, 0x90,79, 0,17, 0x81, 0,64, 0x80, 1,28, 0x90,43, 1,112, 0x91,62, 1,101, 0x92,67, 0,64,
0x81, 1,60, 0x91,62, 0,1, 0x82, 1,99, 0x92,70, 0,73, 0x81, 1,33, 0x91,62, 0,38, 0x82, 1,83, 0x92,67,
0,74, 0x81, 1,30, 0x91,62, 0,4, 0x82, 0,55, 0x80, 1,43, 0x90,72, 0,13, 0x92,45, 0,46, 0x81, 1,37,
0x80, 0,8, 0x90,62, 1,117, 0x91,66, 0,6, 0x80, 1,88, 0x81, 0,5, 0x90,62, 1,104, 0x91,69, 0,60, 0x80,
1,19, 0x90,62, 0,32, 0x81, 1,106, 0x91,66, 0,47, 0x80, 0,87, 0x82, 0,226, 0x90,62, 0,2, 0x81, 0,247,
0x80, 0,95, 0x90,46, 1,93, 0x91,62, 1,103, 0x92,67, 0,39, 0x81, 1,84, 0x91,62, 0,29, 0x82, 1,64, 0x92,74,
0,21, 0x81, 1,70, 0x91,62, 0,25, 0x82, 1,67, 0x92,70, 0,9, 0x81, 1,56, 0x80, 0,13, 0x82, 0,23, 0x90,62,
0,138, 0x80, 0,219, 0x90,48, 0,4, 0x91,70, 1,71, 0x81, 0,31, 0x91,60, 1,75, 0x81, 0,29, 0x91,63, 1,78,
0x92,60, 0,30, 0x81, 0,88, 0x82, 1,2, 0x91,69, 1,65, 0x81, 0,16, 0x91,63, 0,231, 0x80, 0,121, 0x90,72,
0,0, 0x81, 1,106, 0x91,63, 0,41, 0x80, 0,88, 0x81, 0,218, 0x90,50, 1,99, 0x91,62, 1,98, 0x92,67, 0,18,
0x81, 1,58, 0x91,62, 0,2, 0x82, 0,204, 0x81, 0,146, 0x91,70, 1,79, 0x81, 0,15, 0x91,67, 1,94, 0x92,74,
0,44, 0x81, 0,16, 0x80, 1,55, 0x90,70, 0,22, 0x82, 0,46, 0x80, 1,53, 0x90,79, 0,2, 0x91,51, 1,5,
0x80, 0,89, 0x90,67, 1,61, 0x80, 0,21, 0x90,70, 1,90, 0x92,67, 0,43, 0x80, 0,113, 0x82, 0,187, 0x90,75,
1,98, 0x80, 0,2, 0x90,70, 1,15, 0x81, 0,77, 0x91,79, 0,25, 0x80, 1,21, 0x81, 0,25, 0x90,70, 1,100,
0x91,47, 0,3, 0x92,79, 0,22, 0x80, 0,238, 0x82, 0,92, 0x90,67, 1,86, 0x80, 0,7, 0x90,71, 1,113, 0x80,
0,4, 0x90,67, 1,94, 0x92,74, 0,40, 0x80, 1,52, 0x90,67, 0,24, 0x82, 1,73, 0x92,77, 0,59, 0x80, 1,24,
0x82, 0,1, 0x81, 0,25, 0x90,67, 1,95, 0x91,77, 0,4, 0x92,48, 0,21, 0x80, 1,80, 0x90,67, 0,23, 0x81,
1,71, 0x91,72, 0,94, 0x80, 0,249, 0x90,77, 0,33, 0x81, 1,73, 0x91,75, 0,27, 0x80, 0,89, 0x82, 0,226,
0x90,67, 0,21, 0x81, 1,74, 0x91,72, 1,23, 0x80, 0,61, 0x90,75, 0,57, 0x81, 0,38, 0x80, 1,19, 0x90,74,
0,9, 0x91,43, 1,67, 0x80, 0,16, 0x90,62, 1,95, 0x80, 0,7, 0x90,67, 1,74, 0x80, 0,18, 0x90,62, 1,94,
0x92,70, 0,45, 0x80, 0,215, 0x81, 0,99, 0x90,62, 0,1, 0x82, 1,97, 0x91,67, 0,59, 0x80, 1,41, 0x90,62,
0,6, 0x81, 0,132, 0x80, 0,222, 0x90,70, 0,4, 0x91,48, 1,122, 0x92,60, 0,2, 0x80, 1,97, 0x90,63, 0,120,
0x82, 0,233, 0x92,70, 0,95, 0x80, 0,38, 0x81, 0,31, 0x82, 0,206, 0x90,50, 0,2, 0x91,69, 1,66, 0x92,60,
0,5, 0x81, 1,140, 0x91,62, 0,74, 0x82, 0,184, 0x80, 0,71, 0x90,66, 0,42, 0x81, 1,71, 0x91,43, 0,13,
0x92,67, 0,54, 0x80, 0,113, 0x82, 0,191, 0x90,55, 1,86, 0x92,58, 0,83, 0x80, 0,255, 0x82, 0,9, 0x90,62,
1,30, 0x80, 0,75, 0x90,67, 0,252, 0x80, 0,73, 0x90,62, 0,153, 0x80, 0,202, 0x90,70, 1,60, 0x80, 0,26,
0x90,67, 1,100, 0x92,74, 0,44, 0x80, 1,40, 0x90,70, 0,31, 0x82, 0,46, 0x80, 1,20, 0x90,79, 1,50, 0x80,
0,16, 0x90,74, 1,71, 0x80, 0,35, 0x90,82, 1,51, 0x80, 0,22, 0x90,79, 1,144, 0x92,86, 0,44, 0x80, 0,150,
0x81, 0,140, 0x90,82, 0,2, 0x82, 0,79, 0x80, 1,33, 0x90,43, 0,10, 0x91,91, 0,127, 0x81, 1,3, 0x91,62,
1,57, 0x81, 0,60, 0x91,67, 1,85, 0x81, 0,10, 0x91,62, 1,103, 0x92,70, 0,63, 0x81, 1,57, 0x91,62, 0,5,
0x82, 1,100, 0x92,67, 0,45, 0x81, 1,62, 0x82, 0,6, 0x91,62, 0,76, 0x80, 1,20, 0x90,45, 0,12, 0x92,72,
0,6, 0x81, 0,70, 0x80, 0,168, 0x82, 0,115, 0x90,62, 1,112, 0x80, 0,9, 0x90,66, 1,34, 0x80, 0,38, 0x90,62,
1,109, 0x80, 0,6, 0x90,89, 0,3, 0x91,69, 1,111, 0x92,62, 0,10, 0x81, 0,33, 0x80, 0,148, 0x90,87, 0,193,
0x91,66, 0,1, 0x82, 0,185, 0x92,86, 0,4, 0x80, 0,173, 0x90,62, 0,7, 0x81, 0,56, 0x91,84, 0,10, 0x82,
0,29, 0x80, 0,120, 0x81, 0,109, 0x90,86, 0,26, 0x91,46, 0,110, 0x81, 0,59, 0x91,87, 0,6, 0x80, 0,152,
0x90,86, 0,21, 0x92,62, 0,30, 0x81, 0,150, 0x91,84, 0,1, 0x80, 0,186, 0x90,67, 0,5, 0x93,86, 0,7,
0x82, 0,14, 0x81, 1,33, 0x80, 0,18, 0x90,62, 1,103, 0x80, 0,9, 0x90,74, 0,37, 0x83, 1,10, 0x80, 0,13,
0x90,62, 0,229, 0x80, 0,164, 0x90,70, 1,78, 0x80, 0,4, 0x90,62, 1,22, 0x80, 0,94, 0x90,48, 0,8, 0x91,70,
0,128, 0x80, 0,200, 0x81, 0,43, 0x90,60, 1,93, 0x91,63, 0,31, 0x80, 1,53, 0x81, 0,13, 0x90,60, 1,89,
0x80, 0,24, 0x90,84, 0,1, 0x91,69, 1,84, 0x92,63, 0,18, 0x81, 0,48, 0x80, 0,84, 0x82, 0,8, 0x90,82,
0,199, 0x91,72, 0,177, 0x92,81, 0,1, 0x80, 0,183, 0x90,63, 0,12, 0x81, 0,79, 0x80, 0,15, 0x90,79, 0,1,
0x82, 0,196, 0x80, 0,40, 0x90,81, 0,23, 0x91,50, 0,114, 0x81, 0,59, 0x91,82, 0,36, 0x80, 0,124, 0x90,81,
0,26, 0x92,62, 0,18, 0x81, 0,141, 0x91,79, 0,8, 0x80, 0,189, 0x90,81, 0,1, 0x82, 0,7, 0x92,67, 0,7,
0x81, 1,33, 0x82, 0,28, 0x91,62, 0,20, 0x80, 1,109, 0x90,70, 0,66, 0x81, 0,209, 0x80, 0,60, 0x90,67, 1,116,
0x91,74, 0,27, 0x80, 1,65, 0x90,70, 0,34, 0x81, 0,139, 0x80, 0,215, 0x90,51, 0,0, 0x91,79, 0,8, 0x92,63,
1,71, 0x81, 0,35, 0x91,67, 1,32, 0x81, 0,40, 0x91,70, 0,100, 0x80, 0,17, 0x82, 0,186, 0x81, 0,23, 0x90,67,
0,200, 0x80, 0,170, 0x90,75, 1,82, 0x91,70, 0,39, 0x80, 1,38, 0x81, 0,29, 0x90,79, 0,120, 0x80, 0,173,
0x90,79, 0,57, 0x91,70, 0,74, 0x81, 0,4, 0x91,77, 0,59, 0x80, 0,69, 0x90,75, 0,43, 0x81, 0,69, 0x80,
0,68, 0x90,47, 0,16, 0x91,79, 0,11, 0x92,74, 0,162, 0x82, 0,23, 0x81, 0,128, 0x91,67, 0,219, 0x81, 0,139,
0x91,71, 1,67, 0x92,67, 0,6, 0x81, 0,254, 0x82, 0,116, 0x91,74, 1,76, 0x92,67, 0,18, 0x81, 1,106, 0x91,77,
0,41, 0x82, 0,240, 0x81, 0,46, 0x91,67, 0,182, 0x80, 0,44, 0x81, 0,145, 0x90,77, 0,19, 0x91,48, 1,59,
0x92,67, 0,48, 0x80, 1,56, 0x90,72, 0,117, 0x82, 0,46, 0x81, 0,168, 0x91,77, 0,18, 0x80, 1,90, 0x90,75,
0,40, 0x81, 1,31, 0x91,67, 0,42, 0x80, 1,59, 0x90,72, 0,72, 0x81, 0,17, 0x80, 0,233, 0x90,74, 0,73,
0x91,72, 0,96, 0x80, 0,18, 0x90,70, 0,54, 0x81, 0,45, 0x80, 0,85, 0x90,43, 0,20, 0x91,74, 0,4, 0x92,69,
0,169, 0x82, 0,66, 0x81, 0,131, 0x91,62, 1,48, 0x81, 0,73, 0x91,67, 1,64, 0x81, 0,27, 0x91,62, 1,88,
0x92,70, 0,60, 0x81, 1,29, 0x91,62, 0,0, 0x82, 1,83, 0x92,67, 0,75, 0x81, 1,13, 0x91,62, 0,4, 0x82,
0,148, 0x81, 0,10, 0x80, 0,187, 0x90,70, 0,12, 0x91,48, 1,71, 0x80, 0,9, 0x90,60, 1,148, 0x92,63, 0,116,
0x80, 0,191, 0x81, 0,44, 0x90,70, 0,76, 0x82, 0,85, 0x80, 0,207, 0x90,69, 0,3, 0x91,50, 1,83, 0x92,60,
0,2, 0x80, 1,139, 0x90,62, 0,101, 0x82, 0,244, 0x92,66, 0,20, 0x80, 0,54, 0x81, 1,57, 0x90,43, 0,1,
0x82, 0,4, 0x91,67, 0,157, 0x81, 0,181, 0x91,55, 1,113, 0x92,58, 0,141, 0x81, 0,206, 0x91,62, 0,19, 0x82,
1,2, 0x81, 0,89, 0x91,67, 1,11, 0x81, 0,75, 0x91,62, 0,153, 0x81, 0,217, 0x91,70, 1,25, 0x81, 0,40,
0x91,67, 1,119, 0x92,74, 0,48, 0x81, 1,72, 0x91,70, 0,47, 0x82, 0,38, 0x81, 1,11, 0x91,79, 1,69, 0x81,
0,13, 0x91,74, 1,50, 0x81, 0,55, 0x91,82, 1,91, 0x81, 0,11, 0x91,79, 1,124, 0x92,86, 0,71, 0x81, 1,65,
0x91,82, 0,25, 0x82, 0,59, 0x81, 1,77, 0x91,91, 7,92, 0x80, 0,71, 0x81,
0xf0
};
Arduboy2 arduboy;
ArduboyPlaytune tunes(arduboy.audio.enabled);
void setup()
{
arduboy.begin();
arduboy.setFrameRate(25);
arduboy.setTextSize(3);
// audio setup
tunes.initChannel(PIN_SPEAKER_1);
#ifndef AB_DEVKIT
// if not a DevKit
tunes.initChannel(PIN_SPEAKER_2);
#else
// if it's a DevKit
tunes.initChannel(PIN_SPEAKER_1); // use the same pin for both channels
tunes.toneMutesScore(true); // mute the score when a tone is sounding
#endif
arduboy.invert(!arduboy.audio.enabled()); // invert display if sound muted
}
int x = 20, y = 10; // initial text position
void loop()
{
// pause render until it's time for the next frame
if (!(arduboy.nextFrame()))
return;
if (arduboy.pressed(UP_BUTTON)) {
y-=1;
tunes.tone(1175,300);
} else if (arduboy.pressed(DOWN_BUTTON)) {
y+=1;
tunes.tone(1397,300);
} else if (arduboy.pressed(LEFT_BUTTON)) {
x-=1;
tunes.tone(1047,300);
} else if (arduboy.pressed(RIGHT_BUTTON)) {
x+=1;
tunes.tone(1319,300);
}
if (arduboy.pressed(A_BUTTON)) {
arduboy.invert(true);
arduboy.audio.off();
} else if (arduboy.pressed(B_BUTTON)) {
arduboy.invert(false);
arduboy.audio.on();
}
arduboy.clear();
arduboy.setCursor(x,y);
arduboy.print("Music");
arduboy.setCursor(x+8,y+24);
arduboy.print("Demo");
arduboy.display();
// play the tune if we aren't already
if (!tunes.playing())
tunes.playScore(score);
}
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpQbGF5IGEgbXVzaWNhbCBjb21wb3NpdGlvbiBpbiB0aGUgYmFja2dyb3VuZCB3aGlsZQp0aGUgbWFpbiBza2V0Y2ggY29kZSBydW5zIGluIHRoZSBmb3JlZ3JvdW5kLgoKVGhlIEFyZHVib3lQbGF5dHVuZSBsaWJyYXJ5IG11c3QgYmUgaW5zdGFsbGVkIHRvIHVzZSB0aGlzIHNrZXRjaApodHRwczovL2cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmIuY29tL0FyZHVib3kvQXJkdWJveVBsYXlUdW5lCgpUaGUgRC1QYWQgYnV0dG9ucyB3aWxsIG1vdmUgdGhlIHRleHQgYW5kIHBsYXkgYSB0b25lLgoKVGhlIEEgYnV0dG9uIG11dGVzIHRoZSBzb3VuZC4KVGhlIHNjcmVlbiBpcyBpbnZlcnRlZCB3aGVuIHNvdW5kIGlzIG11dGVkLgoKVGhlIEIgYnV0dG9uIHdpbGwgdHVybiBzb3VuZCBiYWNrIG9uIGlmIGl0J3MgbXV0ZWQuCgpUaGUgc2NvcmUgdGhhdCBpcyBwbGF5ZWQgY29udGFpbnMgdHdvIHBhcnRzLgpXaXRoIHRoZSBEZXZLaXQgb25seSBvbmUgcGFydCBpcyBwbGF5ZWQuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNsdWRlIDxBcmR1Ym95Mi5oPgojaW5jbHVkZSA8QXJkdWJveVBsYXl0dW5lLmg+Cgpjb25zdCBieXRlIHNjb3JlW10gUFJPR01FTSA9IHsKIDAsMjAxLCAweDkwLDQzLCAwLDIsIDB4OTEsMzEsIDMsMTc4LCAweDkyLDU4LCAwLDIsIDB4OTMsNzAsIDAsOCwgMHg5NCw2MiwgMCwzNCwgMHg4NCwgMCwyMywgMHg4MiwKIDAsNDgsIDB4ODMsIDEsOTAsIDB4OTIsNTgsIDAsNSwgMHg5Myw1NSwgMCw4LCAweDk0LDY3LCAwLDI1LCAweDgzLCAwLDI2LCAweDg0LCAwLDksIDB4ODEsIDAsMSwKIDB4ODAsIDAsMSwgMHg4MiwgMSwxMjUsIDB4OTAsNDUsIDAsMTAsIDB4OTEsMzMsIDAsMiwgMHg5Miw2MywgMCw0LCAweDkzLDYwLCAwLDIsIDB4OTQsNzIsIDEsMjA0LAogMHg4NCwgMCwxNiwgMHg4MiwgMCwyLCAweDgzLCAxLDE0OCwgMHg5Miw2OSwgMCw1LCAweDkzLDYwLCAwLDMsIDB4OTQsNTcsIDAsMTkxLCAweDgxLCAwLDMsIDB4ODAsIDIsMTUyLAogMHg5MCw0NiwgMCwyLCAweDkxLDM0LCAwLDEwNCwgMHg4NCwgMCwyLCAweDgzLCAwLDYwLCAweDgyLCAyLDIxMCwgMHg5Miw3NCwgMCwxNCwgMHg5Myw2MiwgMCwyLCAweDk0LDY1LAogMCw2MiwgMHg4MSwgMCwyMywgMHg4MCwgMCw4OCwgMHg4MywgMCwyNiwgMHg4MiwgMCwxOSwgMHg4NCwgMiwxMjksIDB4OTAsMzYsIDAsMTksIDB4OTEsNDgsIDAsMSwgMHg5Miw3MCwKIDAsMiwgMHg5Myw1OCwgMCw1LCAweDk0LDYzLCAwLDIwMCwgMHg4MywgMCw1LCAweDg0LCAwLDMyLCAweDgyLCAyLDEzMywgMHg5Miw2OSwgMCwxMCwgMHg5Myw1NywgMCw1LAogMHg5NCw2MCwgMCw2MywgMHg4MywgMCwxMiwgMHg4NCwgMCwzNywgMHg4MiwgMSw0NiwgMHg5Miw2MywgMCwxNCwgMHg5Myw2MCwgMCw1LCAweDk0LDcyLCAwLDg3LCAweDgwLAogMCwxMSwgMHg4MSwgMSw5MiwgMHg4MywgMCwyLCAweDkwLDM4LCAwLDIsIDB4OTEsNTAsIDAsMiwgMHg4NCwgMCw0MSwgMHg4MiwgMyw2MCwgMHg5Miw3MCwgMCwxLAogMHg5Myw1OCwgMCwxOCwgMHg5NCw2MiwgMCw2MSwgMHg4MywgMCwyNywgMHg4NCwgMCwyOSwgMHg4MiwgMCw2OSwgMHg4MCwgMCwxMiwgMHg4MSwgMCwyMTgsIDB4OTAsNjIsIDAsMiwKIDB4OTEsNzQsIDAsNCwgMHg5Miw2OSwgMCw2MiwgMHg4MCwgMCwzNCwgMHg4MiwgMCwxLCAweDgxLCAxLDc5LCAweDkwLDcwLCAwLDIsIDB4OTEsNjcsIDAsMywgMHg5Miw3OSwKIDAsNCwgMHg5MywzOSwgMCw0LCAweDk0LDUxLCAwLDIyOSwgMHg4NCwgMCw4LCAweDgzLCAwLDE3NCwgMHg5Myw1NSwgMSwxNDgsIDB4OTQsNTMsIDAsMjYsIDB4ODMsIDEsMTQ2LAogMHg5Myw1MSwgMCw1LCAweDg0LCAwLDY5LCAweDgzLCAxLDEwMiwgMHg5Myw0NywgMCw3LCAweDk0LDM1LCAwLDMxLCAweDgyLCAwLDQ4LCAweDgwLCAwLDU5LCAweDgxLCAyLDE5NCwKIDB4OTAsNzcsIDAsNSwgMHg5MSw2NywgMCw0LCAweDkyLDc0LCAwLDIsIDB4OTUsNzEsIDAsMjAxLCAweDg0LCAwLDQwLCAweDgzLCAwLDMxLCAweDg1LCAwLDE2LCAweDgxLAogMCwyNywgMHg4MCwgMCwxNiwgMHg4MiwgMSwyNDIsIDB4OTAsNDgsIDAsMywgMHg5MSwzNiwgMCw1LCAweDkyLDc3LCAwLDE2LCAweDkzLDY3LCAwLDEsIDB4OTQsNzIsCiAyLDE3MSwgMHg4NCwgMCw4LCAweDgyLCAwLDE3LCAweDgzLCAwLDE2LCAweDgxLCAwLDQwLCAweDgwLCAxLDE4NiwgMHg5MCw3NSwgMCwxLCAweDkxLDY3LCAwLDQsIDB4OTIsNzIsCiAwLDYzLCAweDgyLCAwLDI2LCAweDgwLCAwLDEsIDB4ODEsIDEsNjgsIDB4OTAsNjcsIDAsMywgMHg5MSw2MiwgMCw1LCAweDkyLDU4LCAwLDIsIDB4OTMsNzAsIDAsMywKIDB4OTQsNzQsIDAsMiwgMHg5NSw1NSwgMSwxOTIsIDB4ODAsIDAsNSwgMHg4NCwgMCwyMSwgMHg4MywgMSwxMDEsIDB4OTAsNzAsIDAsODMsIDB4ODUsIDAsMzEsIDB4ODIsIDAsMywKIDB4ODEsIDEsNTAsIDB4OTEsNjcsIDAsNSwgMHg4MCwgMCw2OSwgMHg4MSwgMSw5OCwgMHg5MCw3MCwgMCwyLCAweDkxLDYzLCAwLDQsIDB4OTIsNDgsIDAsMiwgMHg5Myw2MCwKIDAsMjQzLCAweDgyLCAwLDI5LCAweDgzLCAwLDMwLCAweDgxLCAwLDIyLCAweDgwLCAxLDI0NywgMHg5MCw1NCwgMCwzLCAweDkxLDY5LCAwLDMsIDB4OTIsNTcsIDAsMiwKIDB4OTMsNjIsIDAsNSwgMHg5NCw2NiwgMCwzLCAweDk1LDUwLCAwLDIwOCwgMHg4MywgMCwzMiwgMHg4MSwgMCw1LCAweDg0LCAwLDIwLCAweDgyLCAwLDI1LCAweDg1LCAwLDQxLAogMHg4MCwgMiwzMCwgMHg5MCw1NSwgMCw0LCAweDkxLDQzLCAwLDEsIDB4OTIsMzEsIDAsMywgMHg5Myw1OCwgMCw1LCAweDk0LDY3LCAwLDIsIDB4OTUsNjIsIDQsMjMsCiAweDgwLCAwLDIyLCAweDgyLCAwLDEzLCAweDgzLCAwLDQ1LCAweDgxLCAwLDMsIDB4ODUsIDAsOSwgMHg4NCwgMSwxOTMsIDB4OTAsNDMsIDEsMTM4LCAweDkxLDc0LCAxLDEyOCwKIDB4OTIsNzksIDAsMjEsIDB4ODEsIDEsOTgsIDB4OTEsNzQsIDAsNDQsIDB4ODIsIDEsNzcsIDB4OTIsODIsIDAsNjIsIDB4ODEsIDAsMjUzLCAweDgyLCAxLDIxNywgMHg5MSw4MSwKIDEsMTI1LCAweDkyLDc5LCAwLDQ2LCAweDgxLCAxLDI5LCAweDgwLCAwLDU1LCAweDkwLDQ1LCAxLDkyLCAweDgyLCAwLDQ5LCAweDkxLDc0LCAxLDEyOCwgMHg5Miw3OSwgMCw3MiwKIDB4ODEsIDEsNDEsIDB4OTEsNzQsIDAsNjcsIDB4ODIsIDEsNzUsIDB4OTIsODIsIDEsMTI3LCAweDgyLCAwLDM0LCAweDgxLCAxLDk1LCAweDkxLDgxLCAwLDMyLCAweDgwLCAxLDk5LAogMHg5MCw3OSwgMCw1MSwgMHg4MSwgMSw4MiwgMHg5MSw0NiwgMCw1NiwgMHg4MCwgMSw3MSwgMHg5MCw3NCwgMSwxMjMsIDB4OTIsNzksIDAsMzQsIDB4ODAsIDEsNzgsIDB4OTAsNzQsCiAwLDEsIDB4ODIsIDEsMTMyLCAweDkyLDgyLCAwLDYxLCAweDgwLCAxLDgzLCAweDgyLCAxLDkyLCAweDkwLDgxLCAxLDExNSwgMHg5Miw3OSwgMCwyNSwgMHg4MCwgMCwxOCwKIDB4ODEsIDEsOTEsIDB4OTAsNDgsIDAsOTcsIDB4ODIsIDEsMzMsIDB4OTEsNzQsIDEsOTYsIDB4OTIsNzksIDAsMzMsIDB4ODEsIDEsODQsIDB4OTEsNzQsIDAsMjksIDB4ODIsCiAxLDc1LCAweDkyLDgyLCAwLDY5LCAweDgxLCAxLDY0LCAweDgyLCAxLDE0OCwgMHg5MSw4MSwgMSwxMTMsIDB4OTIsNzksIDAsNjIsIDB4ODEsIDAsMzcsIDB4ODAsIDEsMjcsCiAweDkwLDQzLCAwLDI5LCAweDgyLCAxLDgyLCAweDkxLDc0LCAxLDExNSwgMHg5Miw3OSwgMCwxOCwgMHg4MSwgMSw3MywgMHg5MSw3NCwgMCw2NiwgMHg4MiwgMSw3NCwgMHg5Miw4MiwKIDAsNzAsIDB4ODEsIDAsMjU0LCAweDgyLCAxLDE4OCwgMHg5MSw4MSwgMSw5OSwgMHg5Miw3OSwgMCw1NCwgMHg4MSwgMCwyLCAweDgwLCAxLDU1LCAweDkwLDQ1LCAwLDIzMiwKIDB4ODIsIDAsMTM3LCAweDkxLDc0LCAxLDEwNiwgMHg5Miw3OSwgMCw2LCAweDgxLCAxLDEwMywgMHg5MSw3NCwgMCw5MywgMHg4MiwgMSwzNiwgMHg5Miw4MiwgMCw1NCwgMHg4MSwKIDEsMTksIDB4ODIsIDEsMTUyLCAweDkxLDgxLCAxLDkxLCAweDgwLCAwLDE4LCAweDkwLDc5LCAwLDY5LCAweDgxLCAxLDYzLCAweDkxLDQ2LCAwLDEwNywgMHg4MCwgMCwyNDMsCiAweDkwLDc0LCAxLDEyMiwgMHg5Miw3OSwgMCw0OSwgMHg4MCwgMSw0NSwgMHg5MCw3NCwgMCwxMjEsIDB4ODIsIDEsNCwgMHg5Miw4MiwgMCw1NCwgMHg4MCwgMCwyNDcsIDB4ODIsCiAxLDE3OSwgMHg5MCw4MSwgMCwzMSwgMHg4MSwgMSw2NCwgMHg5MSw3OSwgMCw1NywgMHg4MCwgMSw2NSwgMHg5MCw0OCwgMCw4NSwgMHg4MSwgMSwyOSwgMHg5MSw3NCwgMSwxMDAsCiAweDkyLDc5LCAwLDY0LCAweDgxLCAxLDUwLCAweDkxLDc0LCAwLDY3LCAweDgyLCAxLDYyLCAweDkyLDgyLCAwLDY1LCAweDgxLCAwLDI0NywgMHg4MiwgMSwxNzEsIDB4OTEsODEsCiAwLDE1NSwgMHg4MCwgMCwyMTEsIDB4OTAsNzksIDAsMTcsIDB4ODEsIDAsNjQsIDB4ODAsIDEsMjgsIDB4OTAsNDMsIDEsMTEyLCAweDkxLDYyLCAxLDEwMSwgMHg5Miw2NywgMCw2NCwKIDB4ODEsIDEsNjAsIDB4OTEsNjIsIDAsMSwgMHg4MiwgMSw5OSwgMHg5Miw3MCwgMCw3MywgMHg4MSwgMSwzMywgMHg5MSw2MiwgMCwzOCwgMHg4MiwgMSw4MywgMHg5Miw2NywKIDAsNzQsIDB4ODEsIDEsMzAsIDB4OTEsNjIsIDAsNCwgMHg4MiwgMCw1NSwgMHg4MCwgMSw0MywgMHg5MCw3MiwgMCwxMywgMHg5Miw0NSwgMCw0NiwgMHg4MSwgMSwzNywKIDB4ODAsIDAsOCwgMHg5MCw2MiwgMSwxMTcsIDB4OTEsNjYsIDAsNiwgMHg4MCwgMSw4OCwgMHg4MSwgMCw1LCAweDkwLDYyLCAxLDEwNCwgMHg5MSw2OSwgMCw2MCwgMHg4MCwKIDEsMTksIDB4OTAsNjIsIDAsMzIsIDB4ODEsIDEsMTA2LCAweDkxLDY2LCAwLDQ3LCAweDgwLCAwLDg3LCAweDgyLCAwLDIyNiwgMHg5MCw2MiwgMCwyLCAweDgxLCAwLDI0NywKIDB4ODAsIDAsOTUsIDB4OTAsNDYsIDEsOTMsIDB4OTEsNjIsIDEsMTAzLCAweDkyLDY3LCAwLDM5LCAweDgxLCAxLDg0LCAweDkxLDYyLCAwLDI5LCAweDgyLCAxLDY0LCAweDkyLDc0LAogMCwyMSwgMHg4MSwgMSw3MCwgMHg5MSw2MiwgMCwyNSwgMHg4MiwgMSw2NywgMHg5Miw3MCwgMCw5LCAweDgxLCAxLDU2LCAweDgwLCAwLDEzLCAweDgyLCAwLDIzLCAweDkwLDYyLAogMCwxMzgsIDB4ODAsIDAsMjE5LCAweDkwLDQ4LCAwLDQsIDB4OTEsNzAsIDEsNzEsIDB4ODEsIDAsMzEsIDB4OTEsNjAsIDEsNzUsIDB4ODEsIDAsMjksIDB4OTEsNjMsIDEsNzgsCiAweDkyLDYwLCAwLDMwLCAweDgxLCAwLDg4LCAweDgyLCAxLDIsIDB4OTEsNjksIDEsNjUsIDB4ODEsIDAsMTYsIDB4OTEsNjMsIDAsMjMxLCAweDgwLCAwLDEyMSwgMHg5MCw3MiwKIDAsMCwgMHg4MSwgMSwxMDYsIDB4OTEsNjMsIDAsNDEsIDB4ODAsIDAsODgsIDB4ODEsIDAsMjE4LCAweDkwLDUwLCAxLDk5LCAweDkxLDYyLCAxLDk4LCAweDkyLDY3LCAwLDE4LAogMHg4MSwgMSw1OCwgMHg5MSw2MiwgMCwyLCAweDgyLCAwLDIwNCwgMHg4MSwgMCwxNDYsIDB4OTEsNzAsIDEsNzksIDB4ODEsIDAsMTUsIDB4OTEsNjcsIDEsOTQsIDB4OTIsNzQsCiAwLDQ0LCAweDgxLCAwLDE2LCAweDgwLCAxLDU1LCAweDkwLDcwLCAwLDIyLCAweDgyLCAwLDQ2LCAweDgwLCAxLDUzLCAweDkwLDc5LCAwLDIsIDB4OTEsNTEsIDEsNSwKIDB4ODAsIDAsODksIDB4OTAsNjcsIDEsNjEsIDB4ODAsIDAsMjEsIDB4OTAsNzAsIDEsOTAsIDB4OTIsNjcsIDAsNDMsIDB4ODAsIDAsMTEzLCAweDgyLCAwLDE4NywgMHg5MCw3NSwKIDEsOTgsIDB4ODAsIDAsMiwgMHg5MCw3MCwgMSwxNSwgMHg4MSwgMCw3NywgMHg5MSw3OSwgMCwyNSwgMHg4MCwgMSwyMSwgMHg4MSwgMCwyNSwgMHg5MCw3MCwgMSwxMDAsCiAweDkxLDQ3LCAwLDMsIDB4OTIsNzksIDAsMjIsIDB4ODAsIDAsMjM4LCAweDgyLCAwLDkyLCAweDkwLDY3LCAxLDg2LCAweDgwLCAwLDcsIDB4OTAsNzEsIDEsMTEzLCAweDgwLAogMCw0LCAweDkwLDY3LCAxLDk0LCAweDkyLDc0LCAwLDQwLCAweDgwLCAxLDUyLCAweDkwLDY3LCAwLDI0LCAweDgyLCAxLDczLCAweDkyLDc3LCAwLDU5LCAweDgwLCAxLDI0LAogMHg4MiwgMCwxLCAweDgxLCAwLDI1LCAweDkwLDY3LCAxLDk1LCAweDkxLDc3LCAwLDQsIDB4OTIsNDgsIDAsMjEsIDB4ODAsIDEsODAsIDB4OTAsNjcsIDAsMjMsIDB4ODEsCiAxLDcxLCAweDkxLDcyLCAwLDk0LCAweDgwLCAwLDI0OSwgMHg5MCw3NywgMCwzMywgMHg4MSwgMSw3MywgMHg5MSw3NSwgMCwyNywgMHg4MCwgMCw4OSwgMHg4MiwgMCwyMjYsCiAweDkwLDY3LCAwLDIxLCAweDgxLCAxLDc0LCAweDkxLDcyLCAxLDIzLCAweDgwLCAwLDYxLCAweDkwLDc1LCAwLDU3LCAweDgxLCAwLDM4LCAweDgwLCAxLDE5LCAweDkwLDc0LAogMCw5LCAweDkxLDQzLCAxLDY3LCAweDgwLCAwLDE2LCAweDkwLDYyLCAxLDk1LCAweDgwLCAwLDcsIDB4OTAsNjcsIDEsNzQsIDB4ODAsIDAsMTgsIDB4OTAsNjIsIDEsOTQsCiAweDkyLDcwLCAwLDQ1LCAweDgwLCAwLDIxNSwgMHg4MSwgMCw5OSwgMHg5MCw2MiwgMCwxLCAweDgyLCAxLDk3LCAweDkxLDY3LCAwLDU5LCAweDgwLCAxLDQxLCAweDkwLDYyLAogMCw2LCAweDgxLCAwLDEzMiwgMHg4MCwgMCwyMjIsIDB4OTAsNzAsIDAsNCwgMHg5MSw0OCwgMSwxMjIsIDB4OTIsNjAsIDAsMiwgMHg4MCwgMSw5NywgMHg5MCw2MywgMCwxMjAsCiAweDgyLCAwLDIzMywgMHg5Miw3MCwgMCw5NSwgMHg4MCwgMCwzOCwgMHg4MSwgMCwzMSwgMHg4MiwgMCwyMDYsIDB4OTAsNTAsIDAsMiwgMHg5MSw2OSwgMSw2NiwgMHg5Miw2MCwKIDAsNSwgMHg4MSwgMSwxNDAsIDB4OTEsNjIsIDAsNzQsIDB4ODIsIDAsMTg0LCAweDgwLCAwLDcxLCAweDkwLDY2LCAwLDQyLCAweDgxLCAxLDcxLCAweDkxLDQzLCAwLDEzLAogMHg5Miw2NywgMCw1NCwgMHg4MCwgMCwxMTMsIDB4ODIsIDAsMTkxLCAweDkwLDU1LCAxLDg2LCAweDkyLDU4LCAwLDgzLCAweDgwLCAwLDI1NSwgMHg4MiwgMCw5LCAweDkwLDYyLAogMSwzMCwgMHg4MCwgMCw3NSwgMHg5MCw2NywgMCwyNTIsIDB4ODAsIDAsNzMsIDB4OTAsNjIsIDAsMTUzLCAweDgwLCAwLDIwMiwgMHg5MCw3MCwgMSw2MCwgMHg4MCwgMCwyNiwKIDB4OTAsNjcsIDEsMTAwLCAweDkyLDc0LCAwLDQ0LCAweDgwLCAxLDQwLCAweDkwLDcwLCAwLDMxLCAweDgyLCAwLDQ2LCAweDgwLCAxLDIwLCAweDkwLDc5LCAxLDUwLCAweDgwLAogMCwxNiwgMHg5MCw3NCwgMSw3MSwgMHg4MCwgMCwzNSwgMHg5MCw4MiwgMSw1MSwgMHg4MCwgMCwyMiwgMHg5MCw3OSwgMSwxNDQsIDB4OTIsODYsIDAsNDQsIDB4ODAsIDAsMTUwLAogMHg4MSwgMCwxNDAsIDB4OTAsODIsIDAsMiwgMHg4MiwgMCw3OSwgMHg4MCwgMSwzMywgMHg5MCw0MywgMCwxMCwgMHg5MSw5MSwgMCwxMjcsIDB4ODEsIDEsMywgMHg5MSw2MiwKIDEsNTcsIDB4ODEsIDAsNjAsIDB4OTEsNjcsIDEsODUsIDB4ODEsIDAsMTAsIDB4OTEsNjIsIDEsMTAzLCAweDkyLDcwLCAwLDYzLCAweDgxLCAxLDU3LCAweDkxLDYyLCAwLDUsCiAweDgyLCAxLDEwMCwgMHg5Miw2NywgMCw0NSwgMHg4MSwgMSw2MiwgMHg4MiwgMCw2LCAweDkxLDYyLCAwLDc2LCAweDgwLCAxLDIwLCAweDkwLDQ1LCAwLDEyLCAweDkyLDcyLAogMCw2LCAweDgxLCAwLDcwLCAweDgwLCAwLDE2OCwgMHg4MiwgMCwxMTUsIDB4OTAsNjIsIDEsMTEyLCAweDgwLCAwLDksIDB4OTAsNjYsIDEsMzQsIDB4ODAsIDAsMzgsIDB4OTAsNjIsCiAxLDEwOSwgMHg4MCwgMCw2LCAweDkwLDg5LCAwLDMsIDB4OTEsNjksIDEsMTExLCAweDkyLDYyLCAwLDEwLCAweDgxLCAwLDMzLCAweDgwLCAwLDE0OCwgMHg5MCw4NywgMCwxOTMsCiAweDkxLDY2LCAwLDEsIDB4ODIsIDAsMTg1LCAweDkyLDg2LCAwLDQsIDB4ODAsIDAsMTczLCAweDkwLDYyLCAwLDcsIDB4ODEsIDAsNTYsIDB4OTEsODQsIDAsMTAsIDB4ODIsCiAwLDI5LCAweDgwLCAwLDEyMCwgMHg4MSwgMCwxMDksIDB4OTAsODYsIDAsMjYsIDB4OTEsNDYsIDAsMTEwLCAweDgxLCAwLDU5LCAweDkxLDg3LCAwLDYsIDB4ODAsIDAsMTUyLAogMHg5MCw4NiwgMCwyMSwgMHg5Miw2MiwgMCwzMCwgMHg4MSwgMCwxNTAsIDB4OTEsODQsIDAsMSwgMHg4MCwgMCwxODYsIDB4OTAsNjcsIDAsNSwgMHg5Myw4NiwgMCw3LAogMHg4MiwgMCwxNCwgMHg4MSwgMSwzMywgMHg4MCwgMCwxOCwgMHg5MCw2MiwgMSwxMDMsIDB4ODAsIDAsOSwgMHg5MCw3NCwgMCwzNywgMHg4MywgMSwxMCwgMHg4MCwgMCwxMywKIDB4OTAsNjIsIDAsMjI5LCAweDgwLCAwLDE2NCwgMHg5MCw3MCwgMSw3OCwgMHg4MCwgMCw0LCAweDkwLDYyLCAxLDIyLCAweDgwLCAwLDk0LCAweDkwLDQ4LCAwLDgsIDB4OTEsNzAsCiAwLDEyOCwgMHg4MCwgMCwyMDAsIDB4ODEsIDAsNDMsIDB4OTAsNjAsIDEsOTMsIDB4OTEsNjMsIDAsMzEsIDB4ODAsIDEsNTMsIDB4ODEsIDAsMTMsIDB4OTAsNjAsIDEsODksCiAweDgwLCAwLDI0LCAweDkwLDg0LCAwLDEsIDB4OTEsNjksIDEsODQsIDB4OTIsNjMsIDAsMTgsIDB4ODEsIDAsNDgsIDB4ODAsIDAsODQsIDB4ODIsIDAsOCwgMHg5MCw4MiwKIDAsMTk5LCAweDkxLDcyLCAwLDE3NywgMHg5Miw4MSwgMCwxLCAweDgwLCAwLDE4MywgMHg5MCw2MywgMCwxMiwgMHg4MSwgMCw3OSwgMHg4MCwgMCwxNSwgMHg5MCw3OSwgMCwxLAogMHg4MiwgMCwxOTYsIDB4ODAsIDAsNDAsIDB4OTAsODEsIDAsMjMsIDB4OTEsNTAsIDAsMTE0LCAweDgxLCAwLDU5LCAweDkxLDgyLCAwLDM2LCAweDgwLCAwLDEyNCwgMHg5MCw4MSwKIDAsMjYsIDB4OTIsNjIsIDAsMTgsIDB4ODEsIDAsMTQxLCAweDkxLDc5LCAwLDgsIDB4ODAsIDAsMTg5LCAweDkwLDgxLCAwLDEsIDB4ODIsIDAsNywgMHg5Miw2NywgMCw3LAogMHg4MSwgMSwzMywgMHg4MiwgMCwyOCwgMHg5MSw2MiwgMCwyMCwgMHg4MCwgMSwxMDksIDB4OTAsNzAsIDAsNjYsIDB4ODEsIDAsMjA5LCAweDgwLCAwLDYwLCAweDkwLDY3LCAxLDExNiwKIDB4OTEsNzQsIDAsMjcsIDB4ODAsIDEsNjUsIDB4OTAsNzAsIDAsMzQsIDB4ODEsIDAsMTM5LCAweDgwLCAwLDIxNSwgMHg5MCw1MSwgMCwwLCAweDkxLDc5LCAwLDgsIDB4OTIsNjMsCiAxLDcxLCAweDgxLCAwLDM1LCAweDkxLDY3LCAxLDMyLCAweDgxLCAwLDQwLCAweDkxLDcwLCAwLDEwMCwgMHg4MCwgMCwxNywgMHg4MiwgMCwxODYsIDB4ODEsIDAsMjMsIDB4OTAsNjcsCiAwLDIwMCwgMHg4MCwgMCwxNzAsIDB4OTAsNzUsIDEsODIsIDB4OTEsNzAsIDAsMzksIDB4ODAsIDEsMzgsIDB4ODEsIDAsMjksIDB4OTAsNzksIDAsMTIwLCAweDgwLCAwLDE3MywKIDB4OTAsNzksIDAsNTcsIDB4OTEsNzAsIDAsNzQsIDB4ODEsIDAsNCwgMHg5MSw3NywgMCw1OSwgMHg4MCwgMCw2OSwgMHg5MCw3NSwgMCw0MywgMHg4MSwgMCw2OSwgMHg4MCwKIDAsNjgsIDB4OTAsNDcsIDAsMTYsIDB4OTEsNzksIDAsMTEsIDB4OTIsNzQsIDAsMTYyLCAweDgyLCAwLDIzLCAweDgxLCAwLDEyOCwgMHg5MSw2NywgMCwyMTksIDB4ODEsIDAsMTM5LAogMHg5MSw3MSwgMSw2NywgMHg5Miw2NywgMCw2LCAweDgxLCAwLDI1NCwgMHg4MiwgMCwxMTYsIDB4OTEsNzQsIDEsNzYsIDB4OTIsNjcsIDAsMTgsIDB4ODEsIDEsMTA2LCAweDkxLDc3LAogMCw0MSwgMHg4MiwgMCwyNDAsIDB4ODEsIDAsNDYsIDB4OTEsNjcsIDAsMTgyLCAweDgwLCAwLDQ0LCAweDgxLCAwLDE0NSwgMHg5MCw3NywgMCwxOSwgMHg5MSw0OCwgMSw1OSwKIDB4OTIsNjcsIDAsNDgsIDB4ODAsIDEsNTYsIDB4OTAsNzIsIDAsMTE3LCAweDgyLCAwLDQ2LCAweDgxLCAwLDE2OCwgMHg5MSw3NywgMCwxOCwgMHg4MCwgMSw5MCwgMHg5MCw3NSwKIDAsNDAsIDB4ODEsIDEsMzEsIDB4OTEsNjcsIDAsNDIsIDB4ODAsIDEsNTksIDB4OTAsNzIsIDAsNzIsIDB4ODEsIDAsMTcsIDB4ODAsIDAsMjMzLCAweDkwLDc0LCAwLDczLAogMHg5MSw3MiwgMCw5NiwgMHg4MCwgMCwxOCwgMHg5MCw3MCwgMCw1NCwgMHg4MSwgMCw0NSwgMHg4MCwgMCw4NSwgMHg5MCw0MywgMCwyMCwgMHg5MSw3NCwgMCw0LCAweDkyLDY5LAogMCwxNjksIDB4ODIsIDAsNjYsIDB4ODEsIDAsMTMxLCAweDkxLDYyLCAxLDQ4LCAweDgxLCAwLDczLCAweDkxLDY3LCAxLDY0LCAweDgxLCAwLDI3LCAweDkxLDYyLCAxLDg4LAogMHg5Miw3MCwgMCw2MCwgMHg4MSwgMSwyOSwgMHg5MSw2MiwgMCwwLCAweDgyLCAxLDgzLCAweDkyLDY3LCAwLDc1LCAweDgxLCAxLDEzLCAweDkxLDYyLCAwLDQsIDB4ODIsCiAwLDE0OCwgMHg4MSwgMCwxMCwgMHg4MCwgMCwxODcsIDB4OTAsNzAsIDAsMTIsIDB4OTEsNDgsIDEsNzEsIDB4ODAsIDAsOSwgMHg5MCw2MCwgMSwxNDgsIDB4OTIsNjMsIDAsMTE2LAogMHg4MCwgMCwxOTEsIDB4ODEsIDAsNDQsIDB4OTAsNzAsIDAsNzYsIDB4ODIsIDAsODUsIDB4ODAsIDAsMjA3LCAweDkwLDY5LCAwLDMsIDB4OTEsNTAsIDEsODMsIDB4OTIsNjAsCiAwLDIsIDB4ODAsIDEsMTM5LCAweDkwLDYyLCAwLDEwMSwgMHg4MiwgMCwyNDQsIDB4OTIsNjYsIDAsMjAsIDB4ODAsIDAsNTQsIDB4ODEsIDEsNTcsIDB4OTAsNDMsIDAsMSwKIDB4ODIsIDAsNCwgMHg5MSw2NywgMCwxNTcsIDB4ODEsIDAsMTgxLCAweDkxLDU1LCAxLDExMywgMHg5Miw1OCwgMCwxNDEsIDB4ODEsIDAsMjA2LCAweDkxLDYyLCAwLDE5LCAweDgyLAogMSwyLCAweDgxLCAwLDg5LCAweDkxLDY3LCAxLDExLCAweDgxLCAwLDc1LCAweDkxLDYyLCAwLDE1MywgMHg4MSwgMCwyMTcsIDB4OTEsNzAsIDEsMjUsIDB4ODEsIDAsNDAsCiAweDkxLDY3LCAxLDExOSwgMHg5Miw3NCwgMCw0OCwgMHg4MSwgMSw3MiwgMHg5MSw3MCwgMCw0NywgMHg4MiwgMCwzOCwgMHg4MSwgMSwxMSwgMHg5MSw3OSwgMSw2OSwgMHg4MSwKIDAsMTMsIDB4OTEsNzQsIDEsNTAsIDB4ODEsIDAsNTUsIDB4OTEsODIsIDEsOTEsIDB4ODEsIDAsMTEsIDB4OTEsNzksIDEsMTI0LCAweDkyLDg2LCAwLDcxLCAweDgxLCAxLDY1LAogMHg5MSw4MiwgMCwyNSwgMHg4MiwgMCw1OSwgMHg4MSwgMSw3NywgMHg5MSw5MSwgNyw5MiwgMHg4MCwgMCw3MSwgMHg4MSwKIDB4ZjAKfTsKCkFyZHVib3kyIGFyZHVib3k7CkFyZHVib3lQbGF5dHVuZSB0dW5lcyhhcmR1Ym95LmF1ZGlvLmVuYWJsZWQpOwoKdm9pZCBzZXR1cCgpCnsKICBhcmR1Ym95LmJlZ2luKCk7CgogIGFyZHVib3kuc2V0RnJhbWVSYXRlKDI1KTsKICBhcmR1Ym95LnNldFRleHRTaXplKDMpOwoKICAvLyBhdWRpbyBzZXR1cAogIHR1bmVzLmluaXRDaGFubmVsKFBJTl9TUEVBS0VSXzEpOwojaWZuZGVmIEFCX0RFVktJVAogIC8vIGlmIG5vdCBhIERldktpdAogIHR1bmVzLmluaXRDaGFubmVsKFBJTl9TUEVBS0VSXzIpOwojZWxzZQogIC8vIGlmIGl0J3MgYSBEZXZLaXQKICB0dW5lcy5pbml0Q2hhbm5lbChQSU5fU1BFQUtFUl8xKTsgLy8gdXNlIHRoZSBzYW1lIHBpbiBmb3IgYm90aCBjaGFubmVscwogIHR1bmVzLnRvbmVNdXRlc1Njb3JlKHRydWUpOyAgICAgICAvLyBtdXRlIHRoZSBzY29yZSB3aGVuIGEgdG9uZSBpcyBzb3VuZGluZwojZW5kaWYKCiAgYXJkdWJveS5pbnZlcnQoIWFyZHVib3kuYXVkaW8uZW5hYmxlZCgpKTsgLy8gaW52ZXJ0IGRpc3BsYXkgaWYgc291bmQgbXV0ZWQKfQoKCmludCB4ID0gMjAsIHkgPSAxMDsgLy8gaW5pdGlhbCB0ZXh0IHBvc2l0aW9uCgp2b2lkIGxvb3AoKQp7CiAgLy8gcGF1c2UgcmVuZGVyIHVudGlsIGl0J3MgdGltZSBmb3IgdGhlIG5leHQgZnJhbWUKICBpZiAoIShhcmR1Ym95Lm5leHRGcmFtZSgpKSkKICAgIHJldHVybjsKCiAgaWYgKGFyZHVib3kucHJlc3NlZChVUF9CVVRUT04pKSB7CiAgICB5LT0xOwogICAgdHVuZXMudG9uZSgxMTc1LDMwMCk7CiAgfSBlbHNlIGlmIChhcmR1Ym95LnByZXNzZWQoRE9XTl9CVVRUT04pKSB7CiAgICB5Kz0xOwogICAgdHVuZXMudG9uZSgxMzk3LDMwMCk7CiAgfSBlbHNlIGlmIChhcmR1Ym95LnByZXNzZWQoTEVGVF9CVVRUT04pKSB7CiAgICB4LT0xOwogICAgdHVuZXMudG9uZSgxMDQ3LDMwMCk7CiAgfSBlbHNlIGlmIChhcmR1Ym95LnByZXNzZWQoUklHSFRfQlVUVE9OKSkgewogICAgeCs9MTsKICAgIHR1bmVzLnRvbmUoMTMxOSwzMDApOwogIH0KCiAgaWYgKGFyZHVib3kucHJlc3NlZChBX0JVVFRPTikpIHsKICAgIGFyZHVib3kuaW52ZXJ0KHRydWUpOwogICAgYXJkdWJveS5hdWRpby5vZmYoKTsKICB9IGVsc2UgaWYgKGFyZHVib3kucHJlc3NlZChCX0JVVFRPTikpIHsKICAgIGFyZHVib3kuaW52ZXJ0KGZhbHNlKTsKICAgIGFyZHVib3kuYXVkaW8ub24oKTsKICB9CgogIGFyZHVib3kuY2xlYXIoKTsKICBhcmR1Ym95LnNldEN1cnNvcih4LHkpOwogIGFyZHVib3kucHJpbnQoIk11c2ljIik7CiAgYXJkdWJveS5zZXRDdXJzb3IoeCs4LHkrMjQpOwogIGFyZHVib3kucHJpbnQoIkRlbW8iKTsKICBhcmR1Ym95LmRpc3BsYXkoKTsKCiAgLy8gcGxheSB0aGUgdHVuZSBpZiB3ZSBhcmVuJ3QgYWxyZWFkeQogIGlmICghdHVuZXMucGxheWluZygpKQogICAgdHVuZXMucGxheVNjb3JlKHNjb3JlKTsKfQ==