diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..93a2ee965 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +indent_style = tab +charset = utf-8 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true + +[*.yml] +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..964d223f3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# IDE - IntelliJ +.idea/* +# Keep the code styles. +!.idea/codeStyles +.idea/codeStyles/* +!.idea/codeStyles/Project.xml +!.idea/codeStyles/codeStyleConfig.xml +# Keep the inspection levels +!.idea/inspectionProfiles +.idea/inspectionProfiles/* +!.idea/inspectionProfiles/Project_Default.xml + +# project stuff +.build/* +docs/* +vendor/* +composer.lock diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 000000000..0d9148f39 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,888 @@ + + + + + diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 000000000..79ee123c2 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 000000000..fcf7b674d --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,28 @@ + + + + \ No newline at end of file diff --git a/.phan/config.php b/.phan/config.php new file mode 100644 index 000000000..442d5f7d5 --- /dev/null +++ b/.phan/config.php @@ -0,0 +1,55 @@ + '7.4', + + // A list of directories that should be parsed for class and + // method information. After excluding the directories + // defined in exclude_analysis_directory_list, the remaining + // files will be statically analyzed for errors. + // + // Thus, both first-party and third-party code being used by + // your application should be included in this list. + 'directory_list' => [ + 'examples', + 'src', + 'tests', + 'vendor', + '.phan/stubs' + ], + + // A regex used to match every file name that you want to + // exclude from parsing. Actual value will exclude every + // "test", "tests", "Test" and "Tests" folders found in + // "vendor/" directory. + 'exclude_file_regex' => '@^vendor/.*/(tests?|Tests?)/@', + + // A directory list that defines files that will be excluded + // from static analysis, but whose class and method + // information should be included. + // + // Generally, you'll want to include the directories for + // third-party code (such as "vendor/") in this list. + // + // n.b.: If you'd like to parse but not analyze 3rd + // party code, directories containing that code + // should be added to both the `directory_list` + // and `exclude_analysis_directory_list` arrays. + 'exclude_analysis_directory_list' => [ + 'vendor/', + '.phan/stubs' + ], +]; diff --git a/.phan/stubs/imagick.php b/.phan/stubs/imagick.php new file mode 100644 index 000000000..508d2018f --- /dev/null +++ b/.phan/stubs/imagick.php @@ -0,0 +1,6744 @@ +Makes an exact copy of the Imagick object + * @link https://php.net/manual/en/class.imagick.php + */ +class Imagick implements Iterator, Countable { + const COLOR_BLACK = 11; + const COLOR_BLUE = 12; + const COLOR_CYAN = 13; + const COLOR_GREEN = 14; + const COLOR_RED = 15; + const COLOR_YELLOW = 16; + const COLOR_MAGENTA = 17; + const COLOR_OPACITY = 18; + const COLOR_ALPHA = 19; + const COLOR_FUZZ = 20; + const IMAGICK_EXTNUM = 30403; + const IMAGICK_EXTVER = "3.4.3"; + const QUANTUM_RANGE = 65535; + const USE_ZEND_MM = 0; + const COMPOSITE_DEFAULT = 40; + const COMPOSITE_UNDEFINED = 0; + const COMPOSITE_NO = 1; + const COMPOSITE_ADD = 2; + const COMPOSITE_ATOP = 3; + const COMPOSITE_BLEND = 4; + const COMPOSITE_BUMPMAP = 5; + const COMPOSITE_CLEAR = 7; + const COMPOSITE_COLORBURN = 8; + const COMPOSITE_COLORDODGE = 9; + const COMPOSITE_COLORIZE = 10; + const COMPOSITE_COPYBLACK = 11; + const COMPOSITE_COPYBLUE = 12; + const COMPOSITE_COPY = 13; + const COMPOSITE_COPYCYAN = 14; + const COMPOSITE_COPYGREEN = 15; + const COMPOSITE_COPYMAGENTA = 16; + const COMPOSITE_COPYOPACITY = 17; + const COMPOSITE_COPYRED = 18; + const COMPOSITE_COPYYELLOW = 19; + const COMPOSITE_DARKEN = 20; + const COMPOSITE_DSTATOP = 21; + const COMPOSITE_DST = 22; + const COMPOSITE_DSTIN = 23; + const COMPOSITE_DSTOUT = 24; + const COMPOSITE_DSTOVER = 25; + const COMPOSITE_DIFFERENCE = 26; + const COMPOSITE_DISPLACE = 27; + const COMPOSITE_DISSOLVE = 28; + const COMPOSITE_EXCLUSION = 29; + const COMPOSITE_HARDLIGHT = 30; + const COMPOSITE_HUE = 31; + const COMPOSITE_IN = 32; + const COMPOSITE_LIGHTEN = 33; + const COMPOSITE_LUMINIZE = 35; + const COMPOSITE_MINUS = 36; + const COMPOSITE_MODULATE = 37; + const COMPOSITE_MULTIPLY = 38; + const COMPOSITE_OUT = 39; + const COMPOSITE_OVER = 40; + const COMPOSITE_OVERLAY = 41; + const COMPOSITE_PLUS = 42; + const COMPOSITE_REPLACE = 43; + const COMPOSITE_SATURATE = 44; + const COMPOSITE_SCREEN = 45; + const COMPOSITE_SOFTLIGHT = 46; + const COMPOSITE_SRCATOP = 47; + const COMPOSITE_SRC = 48; + const COMPOSITE_SRCIN = 49; + const COMPOSITE_SRCOUT = 50; + const COMPOSITE_SRCOVER = 51; + const COMPOSITE_SUBTRACT = 52; + const COMPOSITE_THRESHOLD = 53; + const COMPOSITE_XOR = 54; + const COMPOSITE_CHANGEMASK = 6; + const COMPOSITE_LINEARLIGHT = 34; + const COMPOSITE_DIVIDE = 55; + const COMPOSITE_DISTORT = 56; + const COMPOSITE_BLUR = 57; + const COMPOSITE_PEGTOPLIGHT = 58; + const COMPOSITE_VIVIDLIGHT = 59; + const COMPOSITE_PINLIGHT = 60; + const COMPOSITE_LINEARDODGE = 61; + const COMPOSITE_LINEARBURN = 62; + const COMPOSITE_MATHEMATICS = 63; + const COMPOSITE_MODULUSADD = 2; + const COMPOSITE_MODULUSSUBTRACT = 52; + const COMPOSITE_MINUSDST = 36; + const COMPOSITE_DIVIDEDST = 55; + const COMPOSITE_DIVIDESRC = 64; + const COMPOSITE_MINUSSRC = 65; + const COMPOSITE_DARKENINTENSITY = 66; + const COMPOSITE_LIGHTENINTENSITY = 67; + const MONTAGEMODE_FRAME = 1; + const MONTAGEMODE_UNFRAME = 2; + const MONTAGEMODE_CONCATENATE = 3; + const STYLE_NORMAL = 1; + const STYLE_ITALIC = 2; + const STYLE_OBLIQUE = 3; + const STYLE_ANY = 4; + const FILTER_UNDEFINED = 0; + const FILTER_POINT = 1; + const FILTER_BOX = 2; + const FILTER_TRIANGLE = 3; + const FILTER_HERMITE = 4; + const FILTER_HANNING = 5; + const FILTER_HAMMING = 6; + const FILTER_BLACKMAN = 7; + const FILTER_GAUSSIAN = 8; + const FILTER_QUADRATIC = 9; + const FILTER_CUBIC = 10; + const FILTER_CATROM = 11; + const FILTER_MITCHELL = 12; + const FILTER_LANCZOS = 22; + const FILTER_BESSEL = 13; + const FILTER_SINC = 14; + const FILTER_KAISER = 16; + const FILTER_WELSH = 17; + const FILTER_PARZEN = 18; + const FILTER_LAGRANGE = 21; + const FILTER_SENTINEL = 31; + const FILTER_BOHMAN = 19; + const FILTER_BARTLETT = 20; + const FILTER_JINC = 13; + const FILTER_SINCFAST = 15; + const FILTER_ROBIDOUX = 26; + const FILTER_LANCZOSSHARP = 23; + const FILTER_LANCZOS2 = 24; + const FILTER_LANCZOS2SHARP = 25; + const FILTER_ROBIDOUXSHARP = 27; + const FILTER_COSINE = 28; + const FILTER_SPLINE = 29; + const FILTER_LANCZOSRADIUS = 30; + const IMGTYPE_UNDEFINED = 0; + const IMGTYPE_BILEVEL = 1; + const IMGTYPE_GRAYSCALE = 2; + const IMGTYPE_GRAYSCALEMATTE = 3; + const IMGTYPE_PALETTE = 4; + const IMGTYPE_PALETTEMATTE = 5; + const IMGTYPE_TRUECOLOR = 6; + const IMGTYPE_TRUECOLORMATTE = 7; + const IMGTYPE_COLORSEPARATION = 8; + const IMGTYPE_COLORSEPARATIONMATTE = 9; + const IMGTYPE_OPTIMIZE = 10; + const IMGTYPE_PALETTEBILEVELMATTE = 11; + const RESOLUTION_UNDEFINED = 0; + const RESOLUTION_PIXELSPERINCH = 1; + const RESOLUTION_PIXELSPERCENTIMETER = 2; + const COMPRESSION_UNDEFINED = 0; + const COMPRESSION_NO = 1; + const COMPRESSION_BZIP = 2; + const COMPRESSION_FAX = 6; + const COMPRESSION_GROUP4 = 7; + const COMPRESSION_JPEG = 8; + const COMPRESSION_JPEG2000 = 9; + const COMPRESSION_LOSSLESSJPEG = 10; + const COMPRESSION_LZW = 11; + const COMPRESSION_RLE = 12; + const COMPRESSION_ZIP = 13; + const COMPRESSION_DXT1 = 3; + const COMPRESSION_DXT3 = 4; + const COMPRESSION_DXT5 = 5; + const COMPRESSION_ZIPS = 14; + const COMPRESSION_PIZ = 15; + const COMPRESSION_PXR24 = 16; + const COMPRESSION_B44 = 17; + const COMPRESSION_B44A = 18; + const COMPRESSION_LZMA = 19; + const COMPRESSION_JBIG1 = 20; + const COMPRESSION_JBIG2 = 21; + const PAINT_POINT = 1; + const PAINT_REPLACE = 2; + const PAINT_FLOODFILL = 3; + const PAINT_FILLTOBORDER = 4; + const PAINT_RESET = 5; + const GRAVITY_NORTHWEST = 1; + const GRAVITY_NORTH = 2; + const GRAVITY_NORTHEAST = 3; + const GRAVITY_WEST = 4; + const GRAVITY_CENTER = 5; + const GRAVITY_EAST = 6; + const GRAVITY_SOUTHWEST = 7; + const GRAVITY_SOUTH = 8; + const GRAVITY_SOUTHEAST = 9; + const GRAVITY_FORGET = 0; + const GRAVITY_STATIC = 10; + const STRETCH_NORMAL = 1; + const STRETCH_ULTRACONDENSED = 2; + const STRETCH_EXTRACONDENSED = 3; + const STRETCH_CONDENSED = 4; + const STRETCH_SEMICONDENSED = 5; + const STRETCH_SEMIEXPANDED = 6; + const STRETCH_EXPANDED = 7; + const STRETCH_EXTRAEXPANDED = 8; + const STRETCH_ULTRAEXPANDED = 9; + const STRETCH_ANY = 10; + const ALIGN_UNDEFINED = 0; + const ALIGN_LEFT = 1; + const ALIGN_CENTER = 2; + const ALIGN_RIGHT = 3; + const DECORATION_NO = 1; + const DECORATION_UNDERLINE = 2; + const DECORATION_OVERLINE = 3; + const DECORATION_LINETROUGH = 4; + const DECORATION_LINETHROUGH = 4; + const NOISE_UNIFORM = 1; + const NOISE_GAUSSIAN = 2; + const NOISE_MULTIPLICATIVEGAUSSIAN = 3; + const NOISE_IMPULSE = 4; + const NOISE_LAPLACIAN = 5; + const NOISE_POISSON = 6; + const NOISE_RANDOM = 7; + const CHANNEL_UNDEFINED = 0; + const CHANNEL_RED = 1; + const CHANNEL_GRAY = 1; + const CHANNEL_CYAN = 1; + const CHANNEL_GREEN = 2; + const CHANNEL_MAGENTA = 2; + const CHANNEL_BLUE = 4; + const CHANNEL_YELLOW = 4; + const CHANNEL_ALPHA = 8; + const CHANNEL_OPACITY = 8; + const CHANNEL_MATTE = 8; + const CHANNEL_BLACK = 32; + const CHANNEL_INDEX = 32; + const CHANNEL_ALL = 134217727; + const CHANNEL_DEFAULT = 134217719; + const CHANNEL_RGBA = 15; + const CHANNEL_TRUEALPHA = 64; + const CHANNEL_RGBS = 128; + const CHANNEL_GRAY_CHANNELS = 128; + const CHANNEL_SYNC = 256; + const CHANNEL_COMPOSITES = 47; + const METRIC_UNDEFINED = 0; + const METRIC_ABSOLUTEERRORMETRIC = 1; + const METRIC_MEANABSOLUTEERROR = 2; + const METRIC_MEANERRORPERPIXELMETRIC = 3; + const METRIC_MEANSQUAREERROR = 4; + const METRIC_PEAKABSOLUTEERROR = 5; + const METRIC_PEAKSIGNALTONOISERATIO = 6; + const METRIC_ROOTMEANSQUAREDERROR = 7; + const METRIC_NORMALIZEDCROSSCORRELATIONERRORMETRIC = 8; + const METRIC_FUZZERROR = 9; + const PIXEL_CHAR = 1; + const PIXEL_DOUBLE = 2; + const PIXEL_FLOAT = 3; + const PIXEL_INTEGER = 4; + const PIXEL_LONG = 5; + const PIXEL_QUANTUM = 6; + const PIXEL_SHORT = 7; + const EVALUATE_UNDEFINED = 0; + const EVALUATE_ADD = 1; + const EVALUATE_AND = 2; + const EVALUATE_DIVIDE = 3; + const EVALUATE_LEFTSHIFT = 4; + const EVALUATE_MAX = 5; + const EVALUATE_MIN = 6; + const EVALUATE_MULTIPLY = 7; + const EVALUATE_OR = 8; + const EVALUATE_RIGHTSHIFT = 9; + const EVALUATE_SET = 10; + const EVALUATE_SUBTRACT = 11; + const EVALUATE_XOR = 12; + const EVALUATE_POW = 13; + const EVALUATE_LOG = 14; + const EVALUATE_THRESHOLD = 15; + const EVALUATE_THRESHOLDBLACK = 16; + const EVALUATE_THRESHOLDWHITE = 17; + const EVALUATE_GAUSSIANNOISE = 18; + const EVALUATE_IMPULSENOISE = 19; + const EVALUATE_LAPLACIANNOISE = 20; + const EVALUATE_MULTIPLICATIVENOISE = 21; + const EVALUATE_POISSONNOISE = 22; + const EVALUATE_UNIFORMNOISE = 23; + const EVALUATE_COSINE = 24; + const EVALUATE_SINE = 25; + const EVALUATE_ADDMODULUS = 26; + const EVALUATE_MEAN = 27; + const EVALUATE_ABS = 28; + const EVALUATE_EXPONENTIAL = 29; + const EVALUATE_MEDIAN = 30; + const EVALUATE_SUM = 31; + const COLORSPACE_UNDEFINED = 0; + const COLORSPACE_RGB = 1; + const COLORSPACE_GRAY = 2; + const COLORSPACE_TRANSPARENT = 3; + const COLORSPACE_OHTA = 4; + const COLORSPACE_LAB = 5; + const COLORSPACE_XYZ = 6; + const COLORSPACE_YCBCR = 7; + const COLORSPACE_YCC = 8; + const COLORSPACE_YIQ = 9; + const COLORSPACE_YPBPR = 10; + const COLORSPACE_YUV = 11; + const COLORSPACE_CMYK = 12; + const COLORSPACE_SRGB = 13; + const COLORSPACE_HSB = 14; + const COLORSPACE_HSL = 15; + const COLORSPACE_HWB = 16; + const COLORSPACE_REC601LUMA = 17; + const COLORSPACE_REC709LUMA = 19; + const COLORSPACE_LOG = 21; + const COLORSPACE_CMY = 22; + const COLORSPACE_LUV = 23; + const COLORSPACE_HCL = 24; + const COLORSPACE_LCH = 25; + const COLORSPACE_LMS = 26; + const COLORSPACE_LCHAB = 27; + const COLORSPACE_LCHUV = 28; + const COLORSPACE_SCRGB = 29; + const COLORSPACE_HSI = 30; + const COLORSPACE_HSV = 31; + const COLORSPACE_HCLP = 32; + const COLORSPACE_YDBDR = 33; + const COLORSPACE_REC601YCBCR = 18; + const COLORSPACE_REC709YCBCR = 20; + const VIRTUALPIXELMETHOD_UNDEFINED = 0; + const VIRTUALPIXELMETHOD_BACKGROUND = 1; + const VIRTUALPIXELMETHOD_CONSTANT = 2; + const VIRTUALPIXELMETHOD_EDGE = 4; + const VIRTUALPIXELMETHOD_MIRROR = 5; + const VIRTUALPIXELMETHOD_TILE = 7; + const VIRTUALPIXELMETHOD_TRANSPARENT = 8; + const VIRTUALPIXELMETHOD_MASK = 9; + const VIRTUALPIXELMETHOD_BLACK = 10; + const VIRTUALPIXELMETHOD_GRAY = 11; + const VIRTUALPIXELMETHOD_WHITE = 12; + const VIRTUALPIXELMETHOD_HORIZONTALTILE = 13; + const VIRTUALPIXELMETHOD_VERTICALTILE = 14; + const VIRTUALPIXELMETHOD_HORIZONTALTILEEDGE = 15; + const VIRTUALPIXELMETHOD_VERTICALTILEEDGE = 16; + const VIRTUALPIXELMETHOD_CHECKERTILE = 17; + const PREVIEW_UNDEFINED = 0; + const PREVIEW_ROTATE = 1; + const PREVIEW_SHEAR = 2; + const PREVIEW_ROLL = 3; + const PREVIEW_HUE = 4; + const PREVIEW_SATURATION = 5; + const PREVIEW_BRIGHTNESS = 6; + const PREVIEW_GAMMA = 7; + const PREVIEW_SPIFF = 8; + const PREVIEW_DULL = 9; + const PREVIEW_GRAYSCALE = 10; + const PREVIEW_QUANTIZE = 11; + const PREVIEW_DESPECKLE = 12; + const PREVIEW_REDUCENOISE = 13; + const PREVIEW_ADDNOISE = 14; + const PREVIEW_SHARPEN = 15; + const PREVIEW_BLUR = 16; + const PREVIEW_THRESHOLD = 17; + const PREVIEW_EDGEDETECT = 18; + const PREVIEW_SPREAD = 19; + const PREVIEW_SOLARIZE = 20; + const PREVIEW_SHADE = 21; + const PREVIEW_RAISE = 22; + const PREVIEW_SEGMENT = 23; + const PREVIEW_SWIRL = 24; + const PREVIEW_IMPLODE = 25; + const PREVIEW_WAVE = 26; + const PREVIEW_OILPAINT = 27; + const PREVIEW_CHARCOALDRAWING = 28; + const PREVIEW_JPEG = 29; + const RENDERINGINTENT_UNDEFINED = 0; + const RENDERINGINTENT_SATURATION = 1; + const RENDERINGINTENT_PERCEPTUAL = 2; + const RENDERINGINTENT_ABSOLUTE = 3; + const RENDERINGINTENT_RELATIVE = 4; + const INTERLACE_UNDEFINED = 0; + const INTERLACE_NO = 1; + const INTERLACE_LINE = 2; + const INTERLACE_PLANE = 3; + const INTERLACE_PARTITION = 4; + const INTERLACE_GIF = 5; + const INTERLACE_JPEG = 6; + const INTERLACE_PNG = 7; + const FILLRULE_UNDEFINED = 0; + const FILLRULE_EVENODD = 1; + const FILLRULE_NONZERO = 2; + const PATHUNITS_UNDEFINED = 0; + const PATHUNITS_USERSPACE = 1; + const PATHUNITS_USERSPACEONUSE = 2; + const PATHUNITS_OBJECTBOUNDINGBOX = 3; + const LINECAP_UNDEFINED = 0; + const LINECAP_BUTT = 1; + const LINECAP_ROUND = 2; + const LINECAP_SQUARE = 3; + const LINEJOIN_UNDEFINED = 0; + const LINEJOIN_MITER = 1; + const LINEJOIN_ROUND = 2; + const LINEJOIN_BEVEL = 3; + const RESOURCETYPE_UNDEFINED = 0; + const RESOURCETYPE_AREA = 1; + const RESOURCETYPE_DISK = 2; + const RESOURCETYPE_FILE = 3; + const RESOURCETYPE_MAP = 4; + const RESOURCETYPE_MEMORY = 5; + const RESOURCETYPE_TIME = 7; + const RESOURCETYPE_THROTTLE = 8; + const RESOURCETYPE_THREAD = 6; + const DISPOSE_UNRECOGNIZED = 0; + const DISPOSE_UNDEFINED = 0; + const DISPOSE_NONE = 1; + const DISPOSE_BACKGROUND = 2; + const DISPOSE_PREVIOUS = 3; + const INTERPOLATE_UNDEFINED = 0; + const INTERPOLATE_AVERAGE = 1; + const INTERPOLATE_BICUBIC = 2; + const INTERPOLATE_BILINEAR = 3; + const INTERPOLATE_FILTER = 4; + const INTERPOLATE_INTEGER = 5; + const INTERPOLATE_MESH = 6; + const INTERPOLATE_NEARESTNEIGHBOR = 7; + const INTERPOLATE_SPLINE = 8; + const LAYERMETHOD_UNDEFINED = 0; + const LAYERMETHOD_COALESCE = 1; + const LAYERMETHOD_COMPAREANY = 2; + const LAYERMETHOD_COMPARECLEAR = 3; + const LAYERMETHOD_COMPAREOVERLAY = 4; + const LAYERMETHOD_DISPOSE = 5; + const LAYERMETHOD_OPTIMIZE = 6; + const LAYERMETHOD_OPTIMIZEPLUS = 8; + const LAYERMETHOD_OPTIMIZETRANS = 9; + const LAYERMETHOD_COMPOSITE = 12; + const LAYERMETHOD_OPTIMIZEIMAGE = 7; + const LAYERMETHOD_REMOVEDUPS = 10; + const LAYERMETHOD_REMOVEZERO = 11; + const LAYERMETHOD_TRIMBOUNDS = 16; + const ORIENTATION_UNDEFINED = 0; + const ORIENTATION_TOPLEFT = 1; + const ORIENTATION_TOPRIGHT = 2; + const ORIENTATION_BOTTOMRIGHT = 3; + const ORIENTATION_BOTTOMLEFT = 4; + const ORIENTATION_LEFTTOP = 5; + const ORIENTATION_RIGHTTOP = 6; + const ORIENTATION_RIGHTBOTTOM = 7; + const ORIENTATION_LEFTBOTTOM = 8; + const DISTORTION_UNDEFINED = 0; + const DISTORTION_AFFINE = 1; + const DISTORTION_AFFINEPROJECTION = 2; + const DISTORTION_ARC = 9; + const DISTORTION_BILINEAR = 6; + const DISTORTION_PERSPECTIVE = 4; + const DISTORTION_PERSPECTIVEPROJECTION = 5; + const DISTORTION_SCALEROTATETRANSLATE = 3; + const DISTORTION_POLYNOMIAL = 8; + const DISTORTION_POLAR = 10; + const DISTORTION_DEPOLAR = 11; + const DISTORTION_BARREL = 14; + const DISTORTION_SHEPARDS = 16; + const DISTORTION_SENTINEL = 18; + const DISTORTION_BARRELINVERSE = 15; + const DISTORTION_BILINEARFORWARD = 6; + const DISTORTION_BILINEARREVERSE = 7; + const DISTORTION_RESIZE = 17; + const DISTORTION_CYLINDER2PLANE = 12; + const DISTORTION_PLANE2CYLINDER = 13; + const LAYERMETHOD_MERGE = 13; + const LAYERMETHOD_FLATTEN = 14; + const LAYERMETHOD_MOSAIC = 15; + const ALPHACHANNEL_ACTIVATE = 1; + const ALPHACHANNEL_RESET = 7; + const ALPHACHANNEL_SET = 8; + const ALPHACHANNEL_UNDEFINED = 0; + const ALPHACHANNEL_COPY = 3; + const ALPHACHANNEL_DEACTIVATE = 4; + const ALPHACHANNEL_EXTRACT = 5; + const ALPHACHANNEL_OPAQUE = 6; + const ALPHACHANNEL_SHAPE = 9; + const ALPHACHANNEL_TRANSPARENT = 10; + const SPARSECOLORMETHOD_UNDEFINED = 0; + const SPARSECOLORMETHOD_BARYCENTRIC = 1; + const SPARSECOLORMETHOD_BILINEAR = 7; + const SPARSECOLORMETHOD_POLYNOMIAL = 8; + const SPARSECOLORMETHOD_SPEPARDS = 16; + const SPARSECOLORMETHOD_VORONOI = 18; + const SPARSECOLORMETHOD_INVERSE = 19; + const DITHERMETHOD_UNDEFINED = 0; + const DITHERMETHOD_NO = 1; + const DITHERMETHOD_RIEMERSMA = 2; + const DITHERMETHOD_FLOYDSTEINBERG = 3; + const FUNCTION_UNDEFINED = 0; + const FUNCTION_POLYNOMIAL = 1; + const FUNCTION_SINUSOID = 2; + const ALPHACHANNEL_BACKGROUND = 2; + const FUNCTION_ARCSIN = 3; + const FUNCTION_ARCTAN = 4; + const ALPHACHANNEL_FLATTEN = 11; + const ALPHACHANNEL_REMOVE = 12; + const STATISTIC_GRADIENT = 1; + const STATISTIC_MAXIMUM = 2; + const STATISTIC_MEAN = 3; + const STATISTIC_MEDIAN = 4; + const STATISTIC_MINIMUM = 5; + const STATISTIC_MODE = 6; + const STATISTIC_NONPEAK = 7; + const STATISTIC_STANDARD_DEVIATION = 8; + const MORPHOLOGY_CONVOLVE = 1; + const MORPHOLOGY_CORRELATE = 2; + const MORPHOLOGY_ERODE = 3; + const MORPHOLOGY_DILATE = 4; + const MORPHOLOGY_ERODE_INTENSITY = 5; + const MORPHOLOGY_DILATE_INTENSITY = 6; + const MORPHOLOGY_DISTANCE = 7; + const MORPHOLOGY_OPEN = 8; + const MORPHOLOGY_CLOSE = 9; + const MORPHOLOGY_OPEN_INTENSITY = 10; + const MORPHOLOGY_CLOSE_INTENSITY = 11; + const MORPHOLOGY_SMOOTH = 12; + const MORPHOLOGY_EDGE_IN = 13; + const MORPHOLOGY_EDGE_OUT = 14; + const MORPHOLOGY_EDGE = 15; + const MORPHOLOGY_TOP_HAT = 16; + const MORPHOLOGY_BOTTOM_HAT = 17; + const MORPHOLOGY_HIT_AND_MISS = 18; + const MORPHOLOGY_THINNING = 19; + const MORPHOLOGY_THICKEN = 20; + const MORPHOLOGY_VORONOI = 21; + const MORPHOLOGY_ITERATIVE = 22; + const KERNEL_UNITY = 1; + const KERNEL_GAUSSIAN = 2; + const KERNEL_DIFFERENCE_OF_GAUSSIANS = 3; + const KERNEL_LAPLACIAN_OF_GAUSSIANS = 4; + const KERNEL_BLUR = 5; + const KERNEL_COMET = 6; + const KERNEL_LAPLACIAN = 7; + const KERNEL_SOBEL = 8; + const KERNEL_FREI_CHEN = 9; + const KERNEL_ROBERTS = 10; + const KERNEL_PREWITT = 11; + const KERNEL_COMPASS = 12; + const KERNEL_KIRSCH = 13; + const KERNEL_DIAMOND = 14; + const KERNEL_SQUARE = 15; + const KERNEL_RECTANGLE = 16; + const KERNEL_OCTAGON = 17; + const KERNEL_DISK = 18; + const KERNEL_PLUS = 19; + const KERNEL_CROSS = 20; + const KERNEL_RING = 21; + const KERNEL_PEAKS = 22; + const KERNEL_EDGES = 23; + const KERNEL_CORNERS = 24; + const KERNEL_DIAGONALS = 25; + const KERNEL_LINE_ENDS = 26; + const KERNEL_LINE_JUNCTIONS = 27; + const KERNEL_RIDGES = 28; + const KERNEL_CONVEX_HULL = 29; + const KERNEL_THIN_SE = 30; + const KERNEL_SKELETON = 31; + const KERNEL_CHEBYSHEV = 32; + const KERNEL_MANHATTAN = 33; + const KERNEL_OCTAGONAL = 34; + const KERNEL_EUCLIDEAN = 35; + const KERNEL_USER_DEFINED = 36; + const KERNEL_BINOMIAL = 37; + const DIRECTION_LEFT_TO_RIGHT = 2; + const DIRECTION_RIGHT_TO_LEFT = 1; + const NORMALIZE_KERNEL_NONE = 0; + const NORMALIZE_KERNEL_VALUE = 8192; + const NORMALIZE_KERNEL_CORRELATE = 65536; + const NORMALIZE_KERNEL_PERCENT = 4096; + + /** + * (PECL imagick 2.0.0)
+ * Removes repeated portions of images to optimize + * @link https://php.net/manual/en/imagick.optimizeimagelayers.php + * @return bool TRUE on success. + */ + public function optimizeImageLayers () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the maximum bounding region between images + * @link https://php.net/manual/en/imagick.compareimagelayers.php + * @param int $method

+ * One of the layer method constants. + *

+ * @return Imagick TRUE on success. + */ + public function compareImageLayers ($method) {} + + /** + * (PECL imagick 2.0.0)
+ * Quickly fetch attributes + * @link https://php.net/manual/en/imagick.pingimageblob.php + * @param string $image

+ * A string containing the image. + *

+ * @return bool TRUE on success. + */ + public function pingImageBlob ($image) {} + + /** + * (PECL imagick 2.0.0)
+ * Get basic image attributes in a lightweight manner + * @link https://php.net/manual/en/imagick.pingimagefile.php + * @param resource $filehandle

+ * An open filehandle to the image. + *

+ * @param string $fileName [optional]

+ * Optional filename for this image. + *

+ * @return bool TRUE on success. + */ + public function pingImageFile ($filehandle, $fileName = null) {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a vertical mirror image + * @link https://php.net/manual/en/imagick.transposeimage.php + * @return bool TRUE on success. + */ + public function transposeImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a horizontal mirror image + * @link https://php.net/manual/en/imagick.transverseimage.php + * @return bool TRUE on success. + */ + public function transverseImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Remove edges from the image + * @link https://php.net/manual/en/imagick.trimimage.php + * @param float $fuzz

+ * By default target must match a particular pixel color exactly. + * However, in many cases two colors may differ by a small amount. + * The fuzz member of image defines how much tolerance is acceptable + * to consider two colors as the same. This parameter represents the variation + * on the quantum range. + *

+ * @return bool TRUE on success. + */ + public function trimImage ($fuzz) {} + + /** + * (PECL imagick 2.0.0)
+ * Applies wave filter to the image + * @link https://php.net/manual/en/imagick.waveimage.php + * @param float $amplitude

+ * The amplitude of the wave. + *

+ * @param float $length

+ * The length of the wave. + *

+ * @return bool TRUE on success. + */ + public function waveImage ($amplitude, $length) {} + + /** + * (PECL imagick 2.0.0)
+ * Adds vignette filter to the image + * @link https://php.net/manual/en/imagick.vignetteimage.php + * @param float $blackPoint

+ * The black point. + *

+ * @param float $whitePoint

+ * The white point + *

+ * @param int $x

+ * X offset of the ellipse + *

+ * @param int $y

+ * Y offset of the ellipse + *

+ * @return bool TRUE on success. + */ + public function vignetteImage ($blackPoint, $whitePoint, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Discards all but one of any pixel color + * @link https://php.net/manual/en/imagick.uniqueimagecolors.php + * @return bool TRUE on success. + */ + public function uniqueImageColors () {} + + /** + * (PECL imagick 2.0.0)
+ * Return if the image has a matte channel + * @link https://php.net/manual/en/imagick.getimagematte.php + * @return bool TRUE on success or FALSE on failure. + */ + public function getImageMatte () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image matte channel + * @link https://php.net/manual/en/imagick.setimagematte.php + * @param bool $matte

+ * True activates the matte channel and false disables it. + *

+ * @return bool TRUE on success. + */ + public function setImageMatte ($matte) {} + + /** + * Adaptively resize image with data dependent triangulation + * + * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.
+ * If false, the calculations should produce the same results as ImageMagick CLI does.
+ *
+ * Note: The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. + * In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given. + * @link https://php.net/manual/en/imagick.adaptiveresizeimage.php + * @param int $columns The number of columns in the scaled image. + * @param int $rows The number of rows in the scaled image. + * @param bool $bestfit [optional] Whether to fit the image inside a bounding box.
+ * The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given. + * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on success + * @throws ImagickException Throws ImagickException on error + * @since 2.0.0 + */ + public function adaptiveResizeImage ($columns, $rows, $bestfit = false, $legacy = false) {} + + /** + * (PECL imagick 2.0.0)
+ * Simulates a pencil sketch + * @link https://php.net/manual/en/imagick.sketchimage.php + * @param float $radius

+ * The radius of the Gaussian, in pixels, not counting the center pixel + *

+ * @param float $sigma

+ * The standard deviation of the Gaussian, in pixels. + *

+ * @param float $angle

+ * Apply the effect along this angle. + *

+ * @return bool TRUE on success. + */ + public function sketchImage ($radius, $sigma, $angle) {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a 3D effect + * @link https://php.net/manual/en/imagick.shadeimage.php + * @param bool $gray

+ * A value other than zero shades the intensity of each pixel. + *

+ * @param float $azimuth

+ * Defines the light source direction. + *

+ * @param float $elevation

+ * Defines the light source direction. + *

+ * @return bool TRUE on success. + */ + public function shadeImage ($gray, $azimuth, $elevation) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the size offset + * @link https://php.net/manual/en/imagick.getsizeoffset.php + * @return int the size offset associated with the Imagick object. + */ + public function getSizeOffset () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the size and offset of the Imagick object + * @link https://php.net/manual/en/imagick.setsizeoffset.php + * @param int $columns

+ * The width in pixels. + *

+ * @param int $rows

+ * The height in pixels. + *

+ * @param int $offset

+ * The image offset. + *

+ * @return bool TRUE on success. + */ + public function setSizeOffset ($columns, $rows, $offset) {} + + /** + * (PECL imagick 2.0.0)
+ * Adds adaptive blur filter to image + * @link https://php.net/manual/en/imagick.adaptiveblurimage.php + * @param float $radius

+ * The radius of the Gaussian, in pixels, not counting the center pixel. + * Provide a value of 0 and the radius will be chosen automagically. + *

+ * @param float $sigma

+ * The standard deviation of the Gaussian, in pixels. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return bool TRUE on success. + */ + public function adaptiveBlurImage ($radius, $sigma, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)
+ * Enhances the contrast of a color image + * @link https://php.net/manual/en/imagick.contraststretchimage.php + * @param float $black_point

+ * The black point. + *

+ * @param float $white_point

+ * The white point. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Imagick::CHANNEL_ALL. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function contrastStretchImage ($black_point, $white_point, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Adaptively sharpen the image + * @link https://php.net/manual/en/imagick.adaptivesharpenimage.php + * @param float $radius

+ * The radius of the Gaussian, in pixels, not counting the center pixel. Use 0 for auto-select. + *

+ * @param float $sigma

+ * The standard deviation of the Gaussian, in pixels. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return bool TRUE on success. + */ + public function adaptiveSharpenImage ($radius, $sigma, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a high-contrast, two-color image + * @link https://php.net/manual/en/imagick.randomthresholdimage.php + * @param float $low

+ * The low point + *

+ * @param float $high

+ * The high point + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function randomThresholdImage ($low, $high, $channel = Imagick::CHANNEL_ALL) {} + + /** + * @param $xRounding + * @param $yRounding + * @param $strokeWidth [optional] + * @param $displace [optional] + * @param $sizeCorrection [optional] + */ + public function roundCornersImage ($xRounding, $yRounding, $strokeWidth, $displace, $sizeCorrection) {} + + /** + * (PECL imagick 2.0.0)
+ * Rounds image corners + * @link https://php.net/manual/en/imagick.roundcorners.php + * @param float $x_rounding

+ * x rounding + *

+ * @param float $y_rounding

+ * y rounding + *

+ * @param float $stroke_width [optional]

+ * stroke width + *

+ * @param float $displace [optional]

+ * image displace + *

+ * @param float $size_correction [optional]

+ * size correction + *

+ * @return bool TRUE on success. + */ + public function roundCorners ($x_rounding, $y_rounding, $stroke_width = 10.0, $displace = 5.0, $size_correction = -6.0) {} + + /** + * (PECL imagick 2.0.0)
+ * Set the iterator position + * @link https://php.net/manual/en/imagick.setiteratorindex.php + * @param int $index

+ * The position to set the iterator to + *

+ * @return bool TRUE on success. + */ + public function setIteratorIndex ($index) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the index of the current active image + * @link https://php.net/manual/en/imagick.getiteratorindex.php + * @return int an integer containing the index of the image in the stack. + */ + public function getIteratorIndex () {} + + /** + * (PECL imagick 2.0.0)
+ * Convenience method for setting crop size and the image geometry + * @link https://php.net/manual/en/imagick.transformimage.php + * @param string $crop

+ * A crop geometry string. This geometry defines a subregion of the image to crop. + *

+ * @param string $geometry

+ * An image geometry string. This geometry defines the final size of the image. + *

+ * @return Imagick TRUE on success. + */ + public function transformImage ($crop, $geometry) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image opacity level + * @link https://php.net/manual/en/imagick.setimageopacity.php + * @param float $opacity

+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully + * transparent. + *

+ * @return bool TRUE on success. + */ + public function setImageOpacity ($opacity) {} + + /** + * (PECL imagick 2.2.2)
+ * Performs an ordered dither + * @link https://php.net/manual/en/imagick.orderedposterizeimage.php + * @param string $threshold_map

+ * A string containing the name of the threshold dither map to use + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function orderedPosterizeImage ($threshold_map, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Simulates a Polaroid picture + * @link https://php.net/manual/en/imagick.polaroidimage.php + * @param ImagickDraw $properties

+ * The polaroid properties + *

+ * @param float $angle

+ * The polaroid angle + *

+ * @return bool TRUE on success. + */ + public function polaroidImage (ImagickDraw $properties, $angle) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the named image property + * @link https://php.net/manual/en/imagick.getimageproperty.php + * @param string $name

+ * name of the property (for example Exif:DateTime) + *

+ * @return string|false a string containing the image property, false if a + * property with the given name does not exist. + */ + public function getImageProperty ($name) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets an image property + * @link https://php.net/manual/en/imagick.setimageproperty.php + * @param string $name + * @param string $value + * @return bool TRUE on success. + */ + public function setImageProperty ($name, $value) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image interpolate pixel method + * @link https://php.net/manual/en/imagick.setimageinterpolatemethod.php + * @param int $method

+ * The method is one of the Imagick::INTERPOLATE_* constants + *

+ * @return bool TRUE on success. + */ + public function setImageInterpolateMethod ($method) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the interpolation method + * @link https://php.net/manual/en/imagick.getimageinterpolatemethod.php + * @return int the interpolate method on success. + */ + public function getImageInterpolateMethod () {} + + /** + * (PECL imagick 2.0.0)
+ * Stretches with saturation the image intensity + * @link https://php.net/manual/en/imagick.linearstretchimage.php + * @param float $blackPoint

+ * The image black point + *

+ * @param float $whitePoint

+ * The image white point + *

+ * @return bool TRUE on success. + */ + public function linearStretchImage ($blackPoint, $whitePoint) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image length in bytes + * @link https://php.net/manual/en/imagick.getimagelength.php + * @return int an int containing the current image size. + */ + public function getImageLength () {} + + /** + * (No version information available, might only be in SVN)
+ * Set image size + * @link https://php.net/manual/en/imagick.extentimage.php + * @param int $width

+ * The new width + *

+ * @param int $height

+ * The new height + *

+ * @param int $x

+ * X position for the new size + *

+ * @param int $y

+ * Y position for the new size + *

+ * @return bool TRUE on success. + */ + public function extentImage ($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image orientation + * @link https://php.net/manual/en/imagick.getimageorientation.php + * @return int an int on success. + */ + public function getImageOrientation () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image orientation + * @link https://php.net/manual/en/imagick.setimageorientation.php + * @param int $orientation

+ * One of the orientation constants + *

+ * @return bool TRUE on success. + */ + public function setImageOrientation ($orientation) {} + + /** + * (PECL imagick 2.1.0)
+ * Changes the color value of any pixel that matches target + * @link https://php.net/manual/en/imagick.paintfloodfillimage.php + * @param mixed $fill

+ * ImagickPixel object or a string containing the fill color + *

+ * @param float $fuzz

+ * The amount of fuzz. For example, set fuzz to 10 and the color red at + * intensities of 100 and 102 respectively are now interpreted as the + * same color for the purposes of the floodfill. + *

+ * @param mixed $bordercolor

+ * ImagickPixel object or a string containing the border color + *

+ * @param int $x

+ * X start position of the floodfill + *

+ * @param int $y

+ * Y start position of the floodfill + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return bool TRUE on success. + */ + public function paintFloodfillImage ($fill, $fuzz, $bordercolor, $x, $y, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Replaces colors in the image from a color lookup table. Optional second parameter to replace colors in a specific channel. This method is available if Imagick has been compiled against ImageMagick version 6.3.6 or newer. + * @link https://php.net/manual/en/imagick.clutimage.php + * @param Imagick $lookup_table

+ * Imagick object containing the color lookup table + *

+ * @param int $channel [optional]

+ * The Channeltype + * constant. When not supplied, default channels are replaced. + *

+ * @return bool TRUE on success. + * @since 2.0.0 + */ + public function clutImage (Imagick $lookup_table, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image properties + * @link https://php.net/manual/en/imagick.getimageproperties.php + * @param string $pattern [optional]

+ * The pattern for property names. + *

+ * @param bool $only_names [optional]

+ * Whether to return only property names. If FALSE then also the values are returned + *

+ * @return array an array containing the image properties or property names. + */ + public function getImageProperties ($pattern = "*", $only_names = true) {} + + /** + * (PECL imagick 2.2.0)
+ * Returns the image profiles + * @link https://php.net/manual/en/imagick.getimageprofiles.php + * @param string $pattern [optional]

+ * The pattern for profile names. + *

+ * @param bool $include_values [optional]

+ * Whether to return only profile names. If FALSE then only profile names will be returned. + *

+ * @return array an array containing the image profiles or profile names. + */ + public function getImageProfiles ($pattern = "*", $include_values = true) {} + + /** + * (PECL imagick 2.0.1)
+ * Distorts an image using various distortion methods + * @link https://php.net/manual/en/imagick.distortimage.php + * @param int $method

+ * The method of image distortion. See distortion constants + *

+ * @param array $arguments

+ * The arguments for this distortion method + *

+ * @param bool $bestfit

+ * Attempt to resize destination to fit distorted source + *

+ * @return bool TRUE on success. + */ + public function distortImage ($method, array $arguments, $bestfit) {} + + /** + * (No version information available, might only be in SVN)
+ * Writes an image to a filehandle + * @link https://php.net/manual/en/imagick.writeimagefile.php + * @param resource $filehandle

+ * Filehandle where to write the image + *

+ * @return bool TRUE on success. + */ + public function writeImageFile ($filehandle) {} + + /** + * (No version information available, might only be in SVN)
+ * Writes frames to a filehandle + * @link https://php.net/manual/en/imagick.writeimagesfile.php + * @param resource $filehandle

+ * Filehandle where to write the images + *

+ * @return bool TRUE on success. + */ + public function writeImagesFile ($filehandle) {} + + /** + * (No version information available, might only be in SVN)
+ * Reset image page + * @link https://php.net/manual/en/imagick.resetimagepage.php + * @param string $page

+ * The page definition. For example 7168x5147+0+0 + *

+ * @return bool TRUE on success. + */ + public function resetImagePage ($page) {} + + /** + * (No version information available, might only be in SVN)
+ * Sets image clip mask + * @link https://php.net/manual/en/imagick.setimageclipmask.php + * @param Imagick $clip_mask

+ * The Imagick object containing the clip mask + *

+ * @return bool TRUE on success. + */ + public function setImageClipMask (Imagick $clip_mask) {} + + /** + * (No version information available, might only be in SVN)
+ * Gets image clip mask + * @link https://php.net/manual/en/imagick.getimageclipmask.php + * @return Imagick an Imagick object containing the clip mask. + */ + public function getImageClipMask () {} + + /** + * (No version information available, might only be in SVN)
+ * Animates an image or images + * @link https://php.net/manual/en/imagick.animateimages.php + * @param string $x_server

+ * X server address + *

+ * @return bool TRUE on success. + */ + public function animateImages ($x_server) {} + + /** + * (No version information available, might only be in SVN)
+ * Recolors image + * @link https://php.net/manual/en/imagick.recolorimage.php + * @param array $matrix

+ * The matrix containing the color values + *

+ * @return bool TRUE on success. + */ + public function recolorImage (array $matrix) {} + + /** + * (PECL imagick 2.1.0)
+ * Sets font + * @link https://php.net/manual/en/imagick.setfont.php + * @param string $font

+ * Font name or a filename + *

+ * @return bool TRUE on success. + */ + public function setFont ($font) {} + + /** + * (PECL imagick 2.1.0)
+ * Gets font + * @link https://php.net/manual/en/imagick.getfont.php + * @return string|false the string containing the font name or FALSE if not font is set. + */ + public function getFont () {} + + /** + * (PECL imagick 2.1.0)
+ * Sets point size + * @link https://php.net/manual/en/imagick.setpointsize.php + * @param float $point_size

+ * Point size + *

+ * @return bool TRUE on success. + */ + public function setPointSize ($point_size) {} + + /** + * (No version information available, might only be in SVN)
+ * Gets point size + * @link https://php.net/manual/en/imagick.getpointsize.php + * @return float a float containing the point size. + */ + public function getPointSize () {} + + /** + * (PECL imagick 2.1.0)
+ * Merges image layers + * @link https://php.net/manual/en/imagick.mergeimagelayers.php + * @param int $layer_method

+ * One of the Imagick::LAYERMETHOD_* constants + *

+ * @return Imagick Returns an Imagick object containing the merged image. + * @throws ImagickException + */ + public function mergeImageLayers ($layer_method) {} + + /** + * (No version information available, might only be in SVN)
+ * Sets image alpha channel + * @link https://php.net/manual/en/imagick.setimagealphachannel.php + * @param int $mode

+ * One of the Imagick::ALPHACHANNEL_* constants + *

+ * @return bool TRUE on success. + */ + public function setImageAlphaChannel ($mode) {} + + /** + * (No version information available, might only be in SVN)
+ * Changes the color value of any pixel that matches target + * @link https://php.net/manual/en/imagick.floodfillpaintimage.php + * @param mixed $fill

+ * ImagickPixel object or a string containing the fill color + *

+ * @param float $fuzz

+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color. + *

+ * @param mixed $target

+ * ImagickPixel object or a string containing the target color to paint + *

+ * @param int $x

+ * X start position of the floodfill + *

+ * @param int $y

+ * Y start position of the floodfill + *

+ * @param bool $invert

+ * If TRUE paints any pixel that does not match the target color. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return bool TRUE on success. + */ + public function floodFillPaintImage ($fill, $fuzz, $target, $x, $y, $invert, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)
+ * Changes the color value of any pixel that matches target + * @link https://php.net/manual/en/imagick.opaquepaintimage.php + * @param mixed $target

+ * ImagickPixel object or a string containing the color to change + *

+ * @param mixed $fill

+ * The replacement color + *

+ * @param float $fuzz

+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color. + *

+ * @param bool $invert

+ * If TRUE paints any pixel that does not match the target color. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return bool TRUE on success. + */ + public function opaquePaintImage ($target, $fill, $fuzz, $invert, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)
+ * Paints pixels transparent + * @link https://php.net/manual/en/imagick.transparentpaintimage.php + * @param mixed $target

+ * The target color to paint + *

+ * @param float $alpha

+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent. + *

+ * @param float $fuzz

+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color. + *

+ * @param bool $invert

+ * If TRUE paints any pixel that does not match the target color. + *

+ * @return bool TRUE on success. + */ + public function transparentPaintImage ($target, $alpha, $fuzz, $invert) {} + + /** + * (No version information available, might only be in SVN)
+ * Animates an image or images + * @link https://php.net/manual/en/imagick.liquidrescaleimage.php + * @param int $width

+ * The width of the target size + *

+ * @param int $height

+ * The height of the target size + *

+ * @param float $delta_x

+ * How much the seam can traverse on x-axis. + * Passing 0 causes the seams to be straight. + *

+ * @param float $rigidity

+ * Introduces a bias for non-straight seams. This parameter is + * typically 0. + *

+ * @return bool TRUE on success. + */ + public function liquidRescaleImage ($width, $height, $delta_x, $rigidity) {} + + /** + * (No version information available, might only be in SVN)
+ * Enciphers an image + * @link https://php.net/manual/en/imagick.encipherimage.php + * @param string $passphrase

+ * The passphrase + *

+ * @return bool TRUE on success. + */ + public function encipherImage ($passphrase) {} + + /** + * (No version information available, might only be in SVN)
+ * Deciphers an image + * @link https://php.net/manual/en/imagick.decipherimage.php + * @param string $passphrase

+ * The passphrase + *

+ * @return bool TRUE on success. + */ + public function decipherImage ($passphrase) {} + + /** + * (No version information available, might only be in SVN)
+ * Sets the gravity + * @link https://php.net/manual/en/imagick.setgravity.php + * @param int $gravity

+ * The gravity property. Refer to the list of + * gravity constants. + *

+ * @return bool No value is returned. + */ + public function setGravity ($gravity) {} + + /** + * (No version information available, might only be in SVN)
+ * Gets the gravity + * @link https://php.net/manual/en/imagick.getgravity.php + * @return int the gravity property. Refer to the list of + * gravity constants. + */ + public function getGravity () {} + + /** + * (PECL imagick 2.2.1)
+ * Gets channel range + * @link https://php.net/manual/en/imagick.getimagechannelrange.php + * @param int $channel

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return array an array containing minima and maxima values of the channel(s). + */ + public function getImageChannelRange ($channel) {} + + /** + * (No version information available, might only be in SVN)
+ * Gets the image alpha channel + * @link https://php.net/manual/en/imagick.getimagealphachannel.php + * @return int a constant defining the current alpha channel value. Refer to this + * list of alpha channel constants. + */ + public function getImageAlphaChannel () {} + + /** + * (No version information available, might only be in SVN)
+ * Gets channel distortions + * @link https://php.net/manual/en/imagick.getimagechanneldistortions.php + * @param Imagick $reference

+ * Imagick object containing the reference image + *

+ * @param int $metric

+ * Refer to this list of metric type constants. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return float a float describing the channel distortion. + */ + public function getImageChannelDistortions (Imagick $reference, $metric, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)
+ * Sets the image gravity + * @link https://php.net/manual/en/imagick.setimagegravity.php + * @param int $gravity

+ * The gravity property. Refer to the list of + * gravity constants. + *

+ * @return bool No value is returned. + */ + public function setImageGravity ($gravity) {} + + /** + * (No version information available, might only be in SVN)
+ * Gets the image gravity + * @link https://php.net/manual/en/imagick.getimagegravity.php + * @return int the images gravity property. Refer to the list of + * gravity constants. + */ + public function getImageGravity () {} + + /** + * (No version information available, might only be in SVN)
+ * Imports image pixels + * @link https://php.net/manual/en/imagick.importimagepixels.php + * @param int $x

+ * The image x position + *

+ * @param int $y

+ * The image y position + *

+ * @param int $width

+ * The image width + *

+ * @param int $height

+ * The image height + *

+ * @param string $map

+ * Map of pixel ordering as a string. This can be for example RGB. + * The value can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), + * O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad. + *

+ * @param int $storage

+ * The pixel storage method. + * Refer to this list of pixel constants. + *

+ * @param array $pixels

+ * The array of pixels + *

+ * @return bool TRUE on success. + */ + public function importImagePixels ($x, $y, $width, $height, $map, $storage, array $pixels) {} + + /** + * (No version information available, might only be in SVN)
+ * Removes skew from the image + * @link https://php.net/manual/en/imagick.deskewimage.php + * @param float $threshold

+ * Deskew threshold + *

+ * @return bool + */ + public function deskewImage ($threshold) {} + + /** + * (No version information available, might only be in SVN)
+ * Segments an image + * @link https://php.net/manual/en/imagick.segmentimage.php + * @param int $COLORSPACE

+ * One of the COLORSPACE constants. + *

+ * @param float $cluster_threshold

+ * A percentage describing minimum number of pixels + * contained in hexedra before it is considered valid. + *

+ * @param float $smooth_threshold

+ * Eliminates noise from the histogram. + *

+ * @param bool $verbose [optional]

+ * Whether to output detailed information about recognised classes. + *

+ * @return bool + */ + public function segmentImage ($COLORSPACE, $cluster_threshold, $smooth_threshold, $verbose = false) {} + + /** + * (No version information available, might only be in SVN)
+ * Interpolates colors + * @link https://php.net/manual/en/imagick.sparsecolorimage.php + * @param int $SPARSE_METHOD

+ * Refer to this list of sparse method constants + *

+ * @param array $arguments

+ * An array containing the coordinates. + * The array is in format array(1,1, 2,45) + *

+ * @param int $channel [optional] + * @return bool TRUE on success. + */ + public function sparseColorImage ($SPARSE_METHOD, array $arguments, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)
+ * Remaps image colors + * @link https://php.net/manual/en/imagick.remapimage.php + * @param Imagick $replacement

+ * An Imagick object containing the replacement colors + *

+ * @param int $DITHER

+ * Refer to this list of dither method constants + *

+ * @return bool TRUE on success. + */ + public function remapImage (Imagick $replacement, $DITHER) {} + + /** + * (No version information available, might only be in SVN)
+ * Exports raw image pixels + * @link https://php.net/manual/en/imagick.exportimagepixels.php + * @param int $x

+ * X-coordinate of the exported area + *

+ * @param int $y

+ * Y-coordinate of the exported area + *

+ * @param int $width

+ * Width of the exported aread + *

+ * @param int $height

+ * Height of the exported area + *

+ * @param string $map

+ * Ordering of the exported pixels. For example "RGB". + * Valid characters for the map are R, G, B, A, O, C, Y, M, K, I and P. + *

+ * @param int $STORAGE

+ * Refer to this list of pixel type constants + *

+ * @return array an array containing the pixels values. + */ + public function exportImagePixels ($x, $y, $width, $height, $map, $STORAGE) {} + + /** + * (No version information available, might only be in SVN)
+ * The getImageChannelKurtosis purpose + * @link https://php.net/manual/en/imagick.getimagechannelkurtosis.php + * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return array an array with kurtosis and skewness + * members. + */ + public function getImageChannelKurtosis ($channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)
+ * Applies a function on the image + * @link https://php.net/manual/en/imagick.functionimage.php + * @param int $function

+ * Refer to this list of function constants + *

+ * @param array $arguments

+ * Array of arguments to pass to this function. + *

+ * @param int $channel [optional] + * @return bool TRUE on success. + */ + public function functionImage ($function, array $arguments, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * @param $COLORSPACE + */ + public function transformImageColorspace ($COLORSPACE) {} + + /** + * (No version information available, might only be in SVN)
+ * Replaces colors in the image + * @link https://php.net/manual/en/imagick.haldclutimage.php + * @param Imagick $clut

+ * Imagick object containing the Hald lookup image. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return bool TRUE on success. + */ + public function haldClutImage (Imagick $clut, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * @param $CHANNEL [optional] + */ + public function autoLevelImage ($CHANNEL) {} + + /** + * @param $factor [optional] + */ + public function blueShiftImage ($factor) {} + + /** + * (No version information available, might only be in SVN)
+ * Get image artifact + * @link https://php.net/manual/en/imagick.getimageartifact.php + * @param string $artifact

+ * The name of the artifact + *

+ * @return string the artifact value on success. + */ + public function getImageArtifact ($artifact) {} + + /** + * (No version information available, might only be in SVN)
+ * Set image artifact + * @link https://php.net/manual/en/imagick.setimageartifact.php + * @param string $artifact

+ * The name of the artifact + *

+ * @param string $value

+ * The value of the artifact + *

+ * @return bool TRUE on success. + */ + public function setImageArtifact ($artifact, $value) {} + + /** + * (No version information available, might only be in SVN)
+ * Delete image artifact + * @link https://php.net/manual/en/imagick.deleteimageartifact.php + * @param string $artifact

+ * The name of the artifact to delete + *

+ * @return bool TRUE on success. + */ + public function deleteImageArtifact ($artifact) {} + + /** + * (PECL imagick 0.9.10-0.9.9)
+ * Gets the colorspace + * @link https://php.net/manual/en/imagick.getcolorspace.php + * @return int an integer which can be compared against COLORSPACE constants. + */ + public function getColorspace () {} + + /** + * (No version information available, might only be in SVN)
+ * Set colorspace + * @link https://php.net/manual/en/imagick.setcolorspace.php + * @param int $COLORSPACE

+ * One of the COLORSPACE constants + *

+ * @return bool TRUE on success. + */ + public function setColorspace ($COLORSPACE) {} + + /** + * @param $CHANNEL [optional] + */ + public function clampImage ($CHANNEL) {} + + /** + * @param $stack + * @param $offset + */ + public function smushImages ($stack, $offset) {} + + /** + * (PECL imagick 2.0.0)
+ * The Imagick constructor + * @link https://php.net/manual/en/imagick.construct.php + * @param mixed $files

+ * The path to an image to load or an array of paths. Paths can include + * wildcards for file names, or can be URLs. + *

+ * @throws ImagickException Throws ImagickException on error. + */ + public function __construct ($files = null) {} + + /** + * @return string + */ + public function __toString () {} + + public function count () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns a MagickPixelIterator + * @link https://php.net/manual/en/imagick.getpixeliterator.php + * @return ImagickPixelIterator an ImagickPixelIterator on success. + */ + public function getPixelIterator () {} + + /** + * (PECL imagick 2.0.0)
+ * Get an ImagickPixelIterator for an image section + * @link https://php.net/manual/en/imagick.getpixelregioniterator.php + * @param int $x

+ * The x-coordinate of the region. + *

+ * @param int $y

+ * The y-coordinate of the region. + *

+ * @param int $columns

+ * The width of the region. + *

+ * @param int $rows

+ * The height of the region. + *

+ * @return ImagickPixelIterator an ImagickPixelIterator for an image section. + */ + public function getPixelRegionIterator ($x, $y, $columns, $rows) {} + + /** + * (PECL imagick 0.9.0-0.9.9)
+ * Reads image from filename + * @link https://php.net/manual/en/imagick.readimage.php + * @param string $filename + * @return bool TRUE on success. + * @throws ImagickException Throws ImagickException on error. + */ + public function readImage ($filename) {} + + /** + * @param $filenames + * @throws ImagickException Throws ImagickException on error. + */ + public function readImages ($filenames) {} + + /** + * (PECL imagick 2.0.0)
+ * Reads image from a binary string + * @link https://php.net/manual/en/imagick.readimageblob.php + * @param string $image + * @param string $filename [optional] + * @return bool TRUE on success. + * @throws ImagickException Throws ImagickException on error. + */ + public function readImageBlob ($image, $filename = null) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the format of a particular image + * @link https://php.net/manual/en/imagick.setimageformat.php + * @param string $format

+ * String presentation of the image format. Format support + * depends on the ImageMagick installation. + *

+ * @return bool TRUE on success. + */ + public function setImageFormat ($format) {} + + /** + * Scales the size of an image to the given dimensions. Passing zero as either of the arguments will preserve dimension while scaling.
+ * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.
+ * If false, the calculations should produce the same results as ImageMagick CLI does. + * @link https://php.net/manual/en/imagick.scaleimage.php + * @param int $cols + * @param int $rows + * @param bool $bestfit [optional] The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given. + * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on success. + * @throws ImagickException Throws ImagickException on error + * @since 2.0.0 + */ + public function scaleImage ($cols, $rows, $bestfit = false, $legacy = false) {} + + /** + * (PECL imagick 0.9.0-0.9.9)
+ * Writes an image to the specified filename + * @link https://php.net/manual/en/imagick.writeimage.php + * @param string $filename [optional]

+ * Filename where to write the image. The extension of the filename + * defines the type of the file. + * Format can be forced regardless of file extension using format: prefix, + * for example "jpg:test.png". + *

+ * @return bool TRUE on success. + */ + public function writeImage ($filename = null) {} + + /** + * (PECL imagick 0.9.0-0.9.9)
+ * Writes an image or image sequence + * @link https://php.net/manual/en/imagick.writeimages.php + * @param string $filename + * @param bool $adjoin + * @return bool TRUE on success. + */ + public function writeImages ($filename, $adjoin) {} + + /** + * (PECL imagick 2.0.0)
+ * Adds blur filter to image + * @link https://php.net/manual/en/imagick.blurimage.php + * @param float $radius

+ * Blur radius + *

+ * @param float $sigma

+ * Standard deviation + *

+ * @param int $channel [optional]

+ * The Channeltype + * constant. When not supplied, all channels are blurred. + *

+ * @return bool TRUE on success. + */ + public function blurImage ($radius, $sigma, $channel = null) {} + + /** + * Changes the size of an image to the given dimensions and removes any associated profiles.
+ * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.
+ * If false, the calculations should produce the same results as ImageMagick CLI does.
+ *
+ * Note: The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given. + * @link https://php.net/manual/en/imagick.thumbnailimage.php + * @param int $columns

+ * Image width + *

+ * @param int $rows

+ * Image height + *

+ * @param bool $bestfit [optional]

+ * Whether to force maximum values + *

+ * The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given. + * @param bool $fill [optional] + * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on success. + * @since 2.0.0 + */ + public function thumbnailImage ($columns, $rows, $bestfit = false, $fill = false, $legacy = false) {} + + /** + * Creates a cropped thumbnail at the requested size. + * If legacy is true, uses the incorrect behaviour that was present until Imagick 3.4.0. + * If false it uses the correct behaviour. + * @link https://php.net/manual/en/imagick.cropthumbnailimage.php + * @param int $width The width of the thumbnail + * @param int $height The Height of the thumbnail + * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on succes + * @throws ImagickException Throws ImagickException on error + * @since 2.0.0 + */ + public function cropThumbnailImage ($width, $height, $legacy = false) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the filename of a particular image in a sequence + * @link https://php.net/manual/en/imagick.getimagefilename.php + * @return string a string with the filename of the image. + */ + public function getImageFilename () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the filename of a particular image + * @link https://php.net/manual/en/imagick.setimagefilename.php + * @param string $filename + * @return bool TRUE on success. + */ + public function setImageFilename ($filename) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the format of a particular image in a sequence + * @link https://php.net/manual/en/imagick.getimageformat.php + * @return string a string containing the image format on success. + */ + public function getImageFormat () {} + + /** + * @link https://secure.php.net/manual/en/imagick.getimagemimetype.php + * @return string Returns the image mime-type. + */ + public function getImageMimeType () {} + + /** + * (PECL imagick 2.0.0)
+ * Removes an image from the image list + * @link https://php.net/manual/en/imagick.removeimage.php + * @return bool TRUE on success. + */ + public function removeImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Destroys the Imagick object + * @link https://php.net/manual/en/imagick.destroy.php + * @return bool TRUE on success. + */ + public function destroy () {} + + /** + * (PECL imagick 2.0.0)
+ * Clears all resources associated to Imagick object + * @link https://php.net/manual/en/imagick.clear.php + * @return bool TRUE on success. + */ + public function clear () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image length in bytes + * @link https://php.net/manual/en/imagick.getimagesize.php + * @return int an int containing the current image size. + * @deprecated use {@see Imagick::getImageLength()} instead + */ + public function getImageSize () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image sequence as a blob + * @link https://php.net/manual/en/imagick.getimageblob.php + * @return string a string containing the image. + */ + public function getImageBlob () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns all image sequences as a blob + * @link https://php.net/manual/en/imagick.getimagesblob.php + * @return string a string containing the images. On failure, throws ImagickException on failure + * @throws ImagickException on failure + */ + public function getImagesBlob () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the Imagick iterator to the first image + * @link https://php.net/manual/en/imagick.setfirstiterator.php + * @return bool TRUE on success. + */ + public function setFirstIterator () {} + + /** + * (PECL imagick 2.0.1)
+ * Sets the Imagick iterator to the last image + * @link https://php.net/manual/en/imagick.setlastiterator.php + * @return bool TRUE on success. + */ + public function setLastIterator () {} + + public function resetIterator () {} + + /** + * (PECL imagick 2.0.0)
+ * Move to the previous image in the object + * @link https://php.net/manual/en/imagick.previousimage.php + * @return bool TRUE on success. + */ + public function previousImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Moves to the next image + * @link https://php.net/manual/en/imagick.nextimage.php + * @return bool TRUE on success. + */ + public function nextImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Checks if the object has a previous image + * @link https://php.net/manual/en/imagick.haspreviousimage.php + * @return bool TRUE if the object has more images when traversing the list in the + * reverse direction, returns FALSE if there are none. + */ + public function hasPreviousImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Checks if the object has more images + * @link https://php.net/manual/en/imagick.hasnextimage.php + * @return bool TRUE if the object has more images when traversing the list in the + * forward direction, returns FALSE if there are none. + */ + public function hasNextImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Set the iterator position + * @link https://php.net/manual/en/imagick.setimageindex.php + * @param int $index

+ * The position to set the iterator to + *

+ * @return bool TRUE on success. + */ + public function setImageIndex ($index) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the index of the current active image + * @link https://php.net/manual/en/imagick.getimageindex.php + * @return int an integer containing the index of the image in the stack. + */ + public function getImageIndex () {} + + /** + * (PECL imagick 2.0.0)
+ * Adds a comment to your image + * @link https://php.net/manual/en/imagick.commentimage.php + * @param string $comment

+ * The comment to add + *

+ * @return bool TRUE on success. + */ + public function commentImage ($comment) {} + + /** + * (PECL imagick 2.0.0)
+ * Extracts a region of the image + * @link https://php.net/manual/en/imagick.cropimage.php + * @param int $width

+ * The width of the crop + *

+ * @param int $height

+ * The height of the crop + *

+ * @param int $x

+ * The X coordinate of the cropped region's top left corner + *

+ * @param int $y

+ * The Y coordinate of the cropped region's top left corner + *

+ * @return bool TRUE on success. + */ + public function cropImage ($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Adds a label to an image + * @link https://php.net/manual/en/imagick.labelimage.php + * @param string $label

+ * The label to add + *

+ * @return bool TRUE on success. + */ + public function labelImage ($label) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the width and height as an associative array + * @link https://php.net/manual/en/imagick.getimagegeometry.php + * @return array an array with the width/height of the image. + */ + public function getImageGeometry () {} + + /** + * (PECL imagick 2.0.0)
+ * Renders the ImagickDraw object on the current image + * @link https://php.net/manual/en/imagick.drawimage.php + * @param ImagickDraw $draw

+ * The drawing operations to render on the image. + *

+ * @return bool TRUE on success. + */ + public function drawImage (ImagickDraw $draw) {} + + /** + * (No version information available, might only be in SVN)
+ * Sets the image compression quality + * @link https://php.net/manual/en/imagick.setimagecompressionquality.php + * @param int $quality

+ * The image compression quality as an integer + *

+ * @return bool TRUE on success. + */ + public function setImageCompressionQuality ($quality) {} + + /** + * (PECL imagick 2.2.2)
+ * Gets the current image's compression quality + * @link https://php.net/manual/en/imagick.getimagecompressionquality.php + * @return int integer describing the images compression quality + */ + public function getImageCompressionQuality () {} + + /** + * (PECL imagick 2.0.0)
+ * Annotates an image with text + * @link https://php.net/manual/en/imagick.annotateimage.php + * @param ImagickDraw $draw_settings

+ * The ImagickDraw object that contains settings for drawing the text + *

+ * @param float $x

+ * Horizontal offset in pixels to the left of text + *

+ * @param float $y

+ * Vertical offset in pixels to the baseline of text + *

+ * @param float $angle

+ * The angle at which to write the text + *

+ * @param string $text

+ * The string to draw + *

+ * @return bool TRUE on success. + */ + public function annotateImage (ImagickDraw $draw_settings, $x, $y, $angle, $text) {} + + /** + * (PECL imagick 2.0.0)
+ * Composite one image onto another + * @link https://php.net/manual/en/imagick.compositeimage.php + * @param Imagick $composite_object

+ * Imagick object which holds the composite image + *

+ * @param int $composite Composite operator + * @param int $x

+ * The column offset of the composited image + *

+ * @param int $y

+ * The row offset of the composited image + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function compositeImage (Imagick $composite_object, $composite, $x, $y, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Control the brightness, saturation, and hue + * @link https://php.net/manual/en/imagick.modulateimage.php + * @param float $brightness + * @param float $saturation + * @param float $hue + * @return bool TRUE on success. + */ + public function modulateImage ($brightness, $saturation, $hue) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the number of unique colors in the image + * @link https://php.net/manual/en/imagick.getimagecolors.php + * @return int TRUE on success. + */ + public function getImageColors () {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a composite image + * @link https://php.net/manual/en/imagick.montageimage.php + * @param ImagickDraw $draw

+ * The font name, size, and color are obtained from this object. + *

+ * @param string $tile_geometry

+ * The number of tiles per row and page (e.g. 6x4+0+0). + *

+ * @param string $thumbnail_geometry

+ * Preferred image size and border size of each thumbnail + * (e.g. 120x120+4+3>). + *

+ * @param int $mode

+ * Thumbnail framing mode, see Montage Mode constants. + *

+ * @param string $frame

+ * Surround the image with an ornamental border (e.g. 15x15+3+3). The + * frame color is that of the thumbnail's matte color. + *

+ * @return Imagick TRUE on success. + */ + public function montageImage (ImagickDraw $draw, $tile_geometry, $thumbnail_geometry, $mode, $frame) {} + + /** + * (PECL imagick 2.0.0)
+ * Identifies an image and fetches attributes + * @link https://php.net/manual/en/imagick.identifyimage.php + * @param bool $appendRawOutput [optional] + * @return array Identifies an image and returns the attributes. Attributes include + * the image width, height, size, and others. + */ + public function identifyImage ($appendRawOutput = false) {} + + /** + * (PECL imagick 2.0.0)
+ * Changes the value of individual pixels based on a threshold + * @link https://php.net/manual/en/imagick.thresholdimage.php + * @param float $threshold + * @param int $channel [optional] + * @return bool TRUE on success. + */ + public function thresholdImage ($threshold, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Selects a threshold for each pixel based on a range of intensity + * @link https://php.net/manual/en/imagick.adaptivethresholdimage.php + * @param int $width

+ * Width of the local neighborhood. + *

+ * @param int $height

+ * Height of the local neighborhood. + *

+ * @param int $offset

+ * The mean offset + *

+ * @return bool TRUE on success. + */ + public function adaptiveThresholdImage ($width, $height, $offset) {} + + /** + * (PECL imagick 2.0.0)
+ * Forces all pixels below the threshold into black + * @link https://php.net/manual/en/imagick.blackthresholdimage.php + * @param mixed $threshold

+ * The threshold below which everything turns black + *

+ * @return bool TRUE on success. + */ + public function blackThresholdImage ($threshold) {} + + /** + * (PECL imagick 2.0.0)
+ * Force all pixels above the threshold into white + * @link https://php.net/manual/en/imagick.whitethresholdimage.php + * @param mixed $threshold + * @return bool TRUE on success. + */ + public function whiteThresholdImage ($threshold) {} + + /** + * (PECL imagick 2.0.0)
+ * Append a set of images + * @link https://php.net/manual/en/imagick.appendimages.php + * @param bool $stack [optional]

+ * Whether to stack the images vertically. + * By default (or if FALSE is specified) images are stacked left-to-right. + * If stack is TRUE, images are stacked top-to-bottom. + *

+ * @return Imagick Imagick instance on success. + */ + public function appendImages ($stack = false) {} + + /** + * (PECL imagick 2.0.0)
+ * Simulates a charcoal drawing + * @link https://php.net/manual/en/imagick.charcoalimage.php + * @param float $radius

+ * The radius of the Gaussian, in pixels, not counting the center pixel + *

+ * @param float $sigma

+ * The standard deviation of the Gaussian, in pixels + *

+ * @return bool TRUE on success. + */ + public function charcoalImage ($radius, $sigma) {} + + /** + * (PECL imagick 2.0.0)
+ * Enhances the contrast of a color image + * @link https://php.net/manual/en/imagick.normalizeimage.php + * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function normalizeImage ($channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Simulates an oil painting + * @link https://php.net/manual/en/imagick.oilpaintimage.php + * @param float $radius

+ * The radius of the circular neighborhood. + *

+ * @return bool TRUE on success. + */ + public function oilPaintImage ($radius) {} + + /** + * (PECL imagick 2.0.0)
+ * Reduces the image to a limited number of color level + * @link https://php.net/manual/en/imagick.posterizeimage.php + * @param int $levels + * @param bool $dither + * @return bool TRUE on success. + */ + public function posterizeImage ($levels, $dither) {} + + /** + * (PECL imagick 2.0.0)
+ * Radial blurs an image + * @link https://php.net/manual/en/imagick.radialblurimage.php + * @param float $angle + * @param int $channel [optional] + * @return bool TRUE on success. + */ + public function radialBlurImage ($angle, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a simulated 3d button-like effect + * @link https://php.net/manual/en/imagick.raiseimage.php + * @param int $width + * @param int $height + * @param int $x + * @param int $y + * @param bool $raise + * @return bool TRUE on success. + */ + public function raiseImage ($width, $height, $x, $y, $raise) {} + + /** + * (PECL imagick 2.0.0)
+ * Resample image to desired resolution + * @link https://php.net/manual/en/imagick.resampleimage.php + * @param float $x_resolution + * @param float $y_resolution + * @param int $filter + * @param float $blur + * @return bool TRUE on success. + */ + public function resampleImage ($x_resolution, $y_resolution, $filter, $blur) {} + + /** + * Scales an image to the desired dimensions with one of these filters:
+ * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.
+ * If false, the calculations should produce the same results as ImageMagick CLI does.
+ *
+ * Note: The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched.
+ * In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given. + * @link https://php.net/manual/en/imagick.resizeimage.php + * @param int $columns Width of the image + * @param int $rows Height of the image + * @param int $filter Refer to the list of filter constants. + * @param float $blur The blur factor where > 1 is blurry, < 1 is sharp. + * @param bool $bestfit [optional] Added since 2.1.0. Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling + * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on success + * @since 2.0.0 + */ + public function resizeImage ($columns, $rows, $filter, $blur, $bestfit = false, $legacy = false) {} + + /** + * (PECL imagick 2.0.0)
+ * Offsets an image + * @link https://php.net/manual/en/imagick.rollimage.php + * @param int $x

+ * The X offset. + *

+ * @param int $y

+ * The Y offset. + *

+ * @return bool TRUE on success. + */ + public function rollImage ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Rotates an image + * @link https://php.net/manual/en/imagick.rotateimage.php + * @param mixed $background

+ * The background color + *

+ * @param float $degrees

+ * The number of degrees to rotate the image + *

+ * @return bool TRUE on success. + */ + public function rotateImage ($background, $degrees) {} + + /** + * (PECL imagick 2.0.0)
+ * Scales an image with pixel sampling + * @link https://php.net/manual/en/imagick.sampleimage.php + * @param int $columns + * @param int $rows + * @return bool TRUE on success. + */ + public function sampleImage ($columns, $rows) {} + + /** + * (PECL imagick 2.0.0)
+ * Applies a solarizing effect to the image + * @link https://php.net/manual/en/imagick.solarizeimage.php + * @param int $threshold + * @return bool TRUE on success. + */ + public function solarizeImage ($threshold) {} + + /** + * (PECL imagick 2.0.0)
+ * Simulates an image shadow + * @link https://php.net/manual/en/imagick.shadowimage.php + * @param float $opacity + * @param float $sigma + * @param int $x + * @param int $y + * @return bool TRUE on success. + */ + public function shadowImage ($opacity, $sigma, $x, $y) {} + + /** + * @param $key + * @param $value + */ + public function setImageAttribute ($key, $value) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image background color + * @link https://php.net/manual/en/imagick.setimagebackgroundcolor.php + * @param mixed $background + * @return bool TRUE on success. + */ + public function setImageBackgroundColor ($background) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image composite operator + * @link https://php.net/manual/en/imagick.setimagecompose.php + * @param int $compose + * @return bool TRUE on success. + */ + public function setImageCompose ($compose) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image compression + * @link https://php.net/manual/en/imagick.setimagecompression.php + * @param int $compression

+ * One of the COMPRESSION constants + *

+ * @return bool TRUE on success. + */ + public function setImageCompression ($compression) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image delay + * @link https://php.net/manual/en/imagick.setimagedelay.php + * @param int $delay

+ * The amount of time expressed in 'ticks' that the image should be + * displayed for. For animated GIFs there are 100 ticks per second, so a + * value of 20 would be 20/100 of a second aka 1/5th of a second. + *

+ * @return bool TRUE on success. + */ + public function setImageDelay ($delay) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image depth + * @link https://php.net/manual/en/imagick.setimagedepth.php + * @param int $depth + * @return bool TRUE on success. + */ + public function setImageDepth ($depth) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image gamma + * @link https://php.net/manual/en/imagick.setimagegamma.php + * @param float $gamma + * @return bool TRUE on success. + */ + public function setImageGamma ($gamma) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image iterations + * @link https://php.net/manual/en/imagick.setimageiterations.php + * @param int $iterations

+ * The number of iterations the image should loop over. Set to '0' to loop + * continuously. + *

+ * @return bool TRUE on success. + */ + public function setImageIterations ($iterations) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image matte color + * @link https://php.net/manual/en/imagick.setimagemattecolor.php + * @param mixed $matte + * @return bool TRUE on success. + */ + public function setImageMatteColor ($matte) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the page geometry of the image + * @link https://php.net/manual/en/imagick.setimagepage.php + * @param int $width + * @param int $height + * @param int $x + * @param int $y + * @return bool TRUE on success. + */ + public function setImagePage ($width, $height, $x, $y) {} + + /** + * @param $filename + */ + public function setImageProgressMonitor ($filename) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image resolution + * @link https://php.net/manual/en/imagick.setimageresolution.php + * @param float $x_resolution + * @param float $y_resolution + * @return bool TRUE on success. + */ + public function setImageResolution ($x_resolution, $y_resolution) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image scene + * @link https://php.net/manual/en/imagick.setimagescene.php + * @param int $scene + * @return bool TRUE on success. + */ + public function setImageScene ($scene) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image ticks-per-second + * @link https://php.net/manual/en/imagick.setimagetickspersecond.php + * @param int $ticks_per_second

+ * The duration for which an image should be displayed expressed in ticks + * per second. + *

+ * @return bool TRUE on success. + */ + public function setImageTicksPerSecond ($ticks_per_second) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image type + * @link https://php.net/manual/en/imagick.setimagetype.php + * @param int $image_type + * @return bool TRUE on success. + */ + public function setImageType ($image_type) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image units of resolution + * @link https://php.net/manual/en/imagick.setimageunits.php + * @param int $units + * @return bool TRUE on success. + */ + public function setImageUnits ($units) {} + + /** + * (PECL imagick 2.0.0)
+ * Sharpens an image + * @link https://php.net/manual/en/imagick.sharpenimage.php + * @param float $radius + * @param float $sigma + * @param int $channel [optional] + * @return bool TRUE on success. + */ + public function sharpenImage ($radius, $sigma, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Shaves pixels from the image edges + * @link https://php.net/manual/en/imagick.shaveimage.php + * @param int $columns + * @param int $rows + * @return bool TRUE on success. + */ + public function shaveImage ($columns, $rows) {} + + /** + * (PECL imagick 2.0.0)
+ * Creating a parallelogram + * @link https://php.net/manual/en/imagick.shearimage.php + * @param mixed $background

+ * The background color + *

+ * @param float $x_shear

+ * The number of degrees to shear on the x axis + *

+ * @param float $y_shear

+ * The number of degrees to shear on the y axis + *

+ * @return bool TRUE on success. + */ + public function shearImage ($background, $x_shear, $y_shear) {} + + /** + * (PECL imagick 2.0.0)
+ * Splices a solid color into the image + * @link https://php.net/manual/en/imagick.spliceimage.php + * @param int $width + * @param int $height + * @param int $x + * @param int $y + * @return bool TRUE on success. + */ + public function spliceImage ($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Fetch basic attributes about the image + * @link https://php.net/manual/en/imagick.pingimage.php + * @param string $filename

+ * The filename to read the information from. + *

+ * @return bool TRUE on success. + */ + public function pingImage ($filename) {} + + /** + * (PECL imagick 2.0.0)
+ * Reads image from open filehandle + * @link https://php.net/manual/en/imagick.readimagefile.php + * @param resource $filehandle + * @param string $fileName [optional] + * @return bool TRUE on success. + */ + public function readImageFile ($filehandle, $fileName = null) {} + + /** + * (PECL imagick 2.0.0)
+ * Displays an image + * @link https://php.net/manual/en/imagick.displayimage.php + * @param string $servername

+ * The X server name + *

+ * @return bool TRUE on success. + */ + public function displayImage ($servername) {} + + /** + * (PECL imagick 2.0.0)
+ * Displays an image or image sequence + * @link https://php.net/manual/en/imagick.displayimages.php + * @param string $servername

+ * The X server name + *

+ * @return bool TRUE on success. + */ + public function displayImages ($servername) {} + + /** + * (PECL imagick 2.0.0)
+ * Randomly displaces each pixel in a block + * @link https://php.net/manual/en/imagick.spreadimage.php + * @param float $radius + * @return bool TRUE on success. + */ + public function spreadImage ($radius) {} + + /** + * (PECL imagick 2.0.0)
+ * Swirls the pixels about the center of the image + * @link https://php.net/manual/en/imagick.swirlimage.php + * @param float $degrees + * @return bool TRUE on success. + */ + public function swirlImage ($degrees) {} + + /** + * (PECL imagick 2.0.0)
+ * Strips an image of all profiles and comments + * @link https://php.net/manual/en/imagick.stripimage.php + * @return bool TRUE on success. + */ + public function stripImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns formats supported by Imagick + * @link https://php.net/manual/en/imagick.queryformats.php + * @param string $pattern [optional] + * @return array an array containing the formats supported by Imagick. + */ + public static function queryFormats ($pattern = "*") {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the configured fonts + * @link https://php.net/manual/en/imagick.queryfonts.php + * @param string $pattern [optional]

+ * The query pattern + *

+ * @return array an array containing the configured fonts. + */ + public static function queryFonts ($pattern = "*") {} + + /** + * (PECL imagick 2.0.0)
+ * Returns an array representing the font metrics + * @link https://php.net/manual/en/imagick.queryfontmetrics.php + * @param ImagickDraw $properties

+ * ImagickDraw object containing font properties + *

+ * @param string $text

+ * The text + *

+ * @param bool $multiline [optional]

+ * Multiline parameter. If left empty it is autodetected + *

+ * @return array a multi-dimensional array representing the font metrics. + */ + public function queryFontMetrics (ImagickDraw $properties, $text, $multiline = null) {} + + /** + * (PECL imagick 2.0.0)
+ * Hides a digital watermark within the image + * @link https://php.net/manual/en/imagick.steganoimage.php + * @param Imagick $watermark_wand + * @param int $offset + * @return Imagick TRUE on success. + */ + public function steganoImage (Imagick $watermark_wand, $offset) {} + + /** + * (PECL imagick 2.0.0)
+ * Adds random noise to the image + * @link https://php.net/manual/en/imagick.addnoiseimage.php + * @param int $noise_type

+ * The type of the noise. Refer to this list of + * noise constants. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return bool TRUE on success. + */ + public function addNoiseImage ($noise_type, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)
+ * Simulates motion blur + * @link https://php.net/manual/en/imagick.motionblurimage.php + * @param float $radius

+ * The radius of the Gaussian, in pixels, not counting the center pixel. + *

+ * @param float $sigma

+ * The standard deviation of the Gaussian, in pixels. + *

+ * @param float $angle

+ * Apply the effect along this angle. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + * The channel argument affects only if Imagick is compiled against ImageMagick version + * 6.4.4 or greater. + *

+ * @return bool TRUE on success. + */ + public function motionBlurImage ($radius, $sigma, $angle, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)
+ * Forms a mosaic from images + * @link https://php.net/manual/en/imagick.mosaicimages.php + * @return Imagick TRUE on success. + */ + public function mosaicImages () {} + + /** + * (PECL imagick 2.0.0)
+ * Method morphs a set of images + * @link https://php.net/manual/en/imagick.morphimages.php + * @param int $number_frames

+ * The number of in-between images to generate. + *

+ * @return Imagick This method returns a new Imagick object on success. + * Throw an ImagickException on error. + * @throws ImagickException on error + */ + public function morphImages ($number_frames) {} + + /** + * (PECL imagick 2.0.0)
+ * Scales an image proportionally to half its size + * @link https://php.net/manual/en/imagick.minifyimage.php + * @return bool TRUE on success. + */ + public function minifyImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Transforms an image + * @link https://php.net/manual/en/imagick.affinetransformimage.php + * @param ImagickDraw $matrix

+ * The affine matrix + *

+ * @return bool TRUE on success. + */ + public function affineTransformImage (ImagickDraw $matrix) {} + + /** + * (PECL imagick 2.0.0)
+ * Average a set of images + * @link https://php.net/manual/en/imagick.averageimages.php + * @return Imagick a new Imagick object on success. + */ + public function averageImages () {} + + /** + * (PECL imagick 2.0.0)
+ * Surrounds the image with a border + * @link https://php.net/manual/en/imagick.borderimage.php + * @param mixed $bordercolor

+ * ImagickPixel object or a string containing the border color + *

+ * @param int $width

+ * Border width + *

+ * @param int $height

+ * Border height + *

+ * @return bool TRUE on success. + */ + public function borderImage ($bordercolor, $width, $height) {} + + /** + * (PECL imagick 2.0.0)
+ * Removes a region of an image and trims + * @link https://php.net/manual/en/imagick.chopimage.php + * @param int $width

+ * Width of the chopped area + *

+ * @param int $height

+ * Height of the chopped area + *

+ * @param int $x

+ * X origo of the chopped area + *

+ * @param int $y

+ * Y origo of the chopped area + *

+ * @return bool TRUE on success. + */ + public function chopImage ($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Clips along the first path from the 8BIM profile + * @link https://php.net/manual/en/imagick.clipimage.php + * @return bool TRUE on success. + */ + public function clipImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Clips along the named paths from the 8BIM profile + * @link https://php.net/manual/en/imagick.clippathimage.php + * @param string $pathname

+ * The name of the path + *

+ * @param bool $inside

+ * If TRUE later operations take effect inside clipping path. + * Otherwise later operations take effect outside clipping path. + *

+ * @return bool TRUE on success. + */ + public function clipPathImage ($pathname, $inside) {} + + /** + * @param $pathname + * @param $inside + */ + public function clipImagePath ($pathname, $inside) {} + + /** + * (PECL imagick 2.0.0)
+ * Composites a set of images + * @link https://php.net/manual/en/imagick.coalesceimages.php + * @return Imagick a new Imagick object on success. + */ + public function coalesceImages () {} + + /** + * (PECL imagick 2.0.0)
+ * Changes the color value of any pixel that matches target + * @link https://php.net/manual/en/imagick.colorfloodfillimage.php + * @param mixed $fill

+ * ImagickPixel object containing the fill color + *

+ * @param float $fuzz

+ * The amount of fuzz. For example, set fuzz to 10 and the color red at + * intensities of 100 and 102 respectively are now interpreted as the + * same color for the purposes of the floodfill. + *

+ * @param mixed $bordercolor

+ * ImagickPixel object containing the border color + *

+ * @param int $x

+ * X start position of the floodfill + *

+ * @param int $y

+ * Y start position of the floodfill + *

+ * @return bool TRUE on success. + */ + public function colorFloodfillImage ($fill, $fuzz, $bordercolor, $x, $y) {} + + /** + * Blends the fill color with each pixel in the image. The 'opacity' color is a per channel strength factor for how strongly the color should be applied.
+ * If legacy is true, the behaviour of this function is incorrect, but consistent with how it behaved before Imagick version 3.4.0 + * @link https://php.net/manual/en/imagick.colorizeimage.php + * @param mixed $colorize

+ * ImagickPixel object or a string containing the colorize color + *

+ * @param mixed $opacity

+ * ImagickPixel object or an float containing the opacity value. + * 1.0 is fully opaque and 0.0 is fully transparent. + *

+ * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on success. + * @throws ImagickException Throws ImagickException on error + * @since 2.0.0 + */ + public function colorizeImage ($colorize, $opacity, $legacy = false) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the difference in one or more images + * @link https://php.net/manual/en/imagick.compareimagechannels.php + * @param Imagick $image

+ * Imagick object containing the image to compare. + *

+ * @param int $channelType

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @param int $metricType

+ * One of the metric type constants. + *

+ * @return array Array consisting of new_wand and + * distortion. + */ + public function compareImageChannels (Imagick $image, $channelType, $metricType) {} + + /** + * (PECL imagick 2.0.0)
+ * Compares an image to a reconstructed image + * @link https://php.net/manual/en/imagick.compareimages.php + * @param Imagick $compare

+ * An image to compare to. + *

+ * @param int $metric

+ * Provide a valid metric type constant. Refer to this + * list of metric constants. + *

+ * @return array Array consisting of an Imagick object of the + * reconstructed image and a float representing the difference. + * @throws ImagickException Throws ImagickException on error. + */ + public function compareImages (Imagick $compare, $metric) {} + + /** + * (PECL imagick 2.0.0)
+ * Change the contrast of the image + * @link https://php.net/manual/en/imagick.contrastimage.php + * @param bool $sharpen

+ * The sharpen value + *

+ * @return bool TRUE on success. + */ + public function contrastImage ($sharpen) {} + + /** + * (PECL imagick 2.0.0)
+ * Combines one or more images into a single image + * @link https://php.net/manual/en/imagick.combineimages.php + * @param int $channelType

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return Imagick TRUE on success. + */ + public function combineImages ($channelType) {} + + /** + * (PECL imagick 2.0.0)
+ * Applies a custom convolution kernel to the image + * @link https://php.net/manual/en/imagick.convolveimage.php + * @param array $kernel

+ * The convolution kernel + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function convolveImage (array $kernel, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Displaces an image's colormap + * @link https://php.net/manual/en/imagick.cyclecolormapimage.php + * @param int $displace

+ * The amount to displace the colormap. + *

+ * @return bool TRUE on success. + */ + public function cycleColormapImage ($displace) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns certain pixel differences between images + * @link https://php.net/manual/en/imagick.deconstructimages.php + * @return Imagick a new Imagick object on success. + */ + public function deconstructImages () {} + + /** + * (PECL imagick 2.0.0)
+ * Reduces the speckle noise in an image + * @link https://php.net/manual/en/imagick.despeckleimage.php + * @return bool TRUE on success. + */ + public function despeckleImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Enhance edges within the image + * @link https://php.net/manual/en/imagick.edgeimage.php + * @param float $radius

+ * The radius of the operation. + *

+ * @return bool TRUE on success. + */ + public function edgeImage ($radius) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns a grayscale image with a three-dimensional effect + * @link https://php.net/manual/en/imagick.embossimage.php + * @param float $radius

+ * The radius of the effect + *

+ * @param float $sigma

+ * The sigma of the effect + *

+ * @return bool TRUE on success. + */ + public function embossImage ($radius, $sigma) {} + + /** + * (PECL imagick 2.0.0)
+ * Improves the quality of a noisy image + * @link https://php.net/manual/en/imagick.enhanceimage.php + * @return bool TRUE on success. + */ + public function enhanceImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Equalizes the image histogram + * @link https://php.net/manual/en/imagick.equalizeimage.php + * @return bool TRUE on success. + */ + public function equalizeImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Applies an expression to an image + * @link https://php.net/manual/en/imagick.evaluateimage.php + * @param int $op

+ * The evaluation operator + *

+ * @param float $constant

+ * The value of the operator + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function evaluateImage ($op, $constant, $channel = Imagick::CHANNEL_ALL) {} + + /** + * Merges a sequence of images. This is useful for combining Photoshop layers into a single image. + * This is replaced by: + *
+	 * $im = $im->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN)
+	 * 
+ * @link https://php.net/manual/en/imagick.flattenimages.php + * @return Imagick Returns an Imagick object containing the merged image. + * @throws ImagickException Throws ImagickException on error. + * @since 2.0.0 + */ + public function flattenImages () {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a vertical mirror image + * @link https://php.net/manual/en/imagick.flipimage.php + * @return bool TRUE on success. + */ + public function flipImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a horizontal mirror image + * @link https://php.net/manual/en/imagick.flopimage.php + * @return bool TRUE on success. + */ + public function flopImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Adds a simulated three-dimensional border + * @link https://php.net/manual/en/imagick.frameimage.php + * @param mixed $matte_color

+ * ImagickPixel object or a string representing the matte color + *

+ * @param int $width

+ * The width of the border + *

+ * @param int $height

+ * The height of the border + *

+ * @param int $inner_bevel

+ * The inner bevel width + *

+ * @param int $outer_bevel

+ * The outer bevel width + *

+ * @return bool TRUE on success. + */ + public function frameImage ($matte_color, $width, $height, $inner_bevel, $outer_bevel) {} + + /** + * (PECL imagick 2.0.0)
+ * Evaluate expression for each pixel in the image + * @link https://php.net/manual/en/imagick.fximage.php + * @param string $expression

+ * The expression. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return Imagick TRUE on success. + */ + public function fxImage ($expression, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Gamma-corrects an image + * @link https://php.net/manual/en/imagick.gammaimage.php + * @param float $gamma

+ * The amount of gamma-correction. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function gammaImage ($gamma, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Blurs an image + * @link https://php.net/manual/en/imagick.gaussianblurimage.php + * @param float $radius

+ * The radius of the Gaussian, in pixels, not counting the center pixel. + *

+ * @param float $sigma

+ * The standard deviation of the Gaussian, in pixels. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function gaussianBlurImage ($radius, $sigma, $channel = Imagick::CHANNEL_ALL) {} + + /** + * @param $key + */ + public function getImageAttribute ($key) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image background color + * @link https://php.net/manual/en/imagick.getimagebackgroundcolor.php + * @return ImagickPixel an ImagickPixel set to the background color of the image. + */ + public function getImageBackgroundColor () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the chromaticy blue primary point + * @link https://php.net/manual/en/imagick.getimageblueprimary.php + * @return array Array consisting of "x" and "y" coordinates of point. + */ + public function getImageBluePrimary () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image border color + * @link https://php.net/manual/en/imagick.getimagebordercolor.php + * @return ImagickPixel TRUE on success. + */ + public function getImageBorderColor () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the depth for a particular image channel + * @link https://php.net/manual/en/imagick.getimagechanneldepth.php + * @param int $channel

+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *

+ * @return int TRUE on success. + */ + public function getImageChannelDepth ($channel) {} + + /** + * (PECL imagick 2.0.0)
+ * Compares image channels of an image to a reconstructed image + * @link https://php.net/manual/en/imagick.getimagechanneldistortion.php + * @param Imagick $reference

+ * Imagick object to compare to. + *

+ * @param int $channel

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @param int $metric

+ * One of the metric type constants. + *

+ * @return float TRUE on success. + */ + public function getImageChannelDistortion (Imagick $reference, $channel, $metric) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the extrema for one or more image channels + * @link https://php.net/manual/en/imagick.getimagechannelextrema.php + * @param int $channel

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return array TRUE on success. + */ + public function getImageChannelExtrema ($channel) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the mean and standard deviation + * @link https://php.net/manual/en/imagick.getimagechannelmean.php + * @param int $channel

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return array TRUE on success. + */ + public function getImageChannelMean ($channel) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns statistics for each channel in the image + * @link https://php.net/manual/en/imagick.getimagechannelstatistics.php + * @return array TRUE on success. + */ + public function getImageChannelStatistics () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the color of the specified colormap index + * @link https://php.net/manual/en/imagick.getimagecolormapcolor.php + * @param int $index

+ * The offset into the image colormap. + *

+ * @return ImagickPixel TRUE on success. + */ + public function getImageColormapColor ($index) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image colorspace + * @link https://php.net/manual/en/imagick.getimagecolorspace.php + * @return int TRUE on success. + */ + public function getImageColorspace () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the composite operator associated with the image + * @link https://php.net/manual/en/imagick.getimagecompose.php + * @return int TRUE on success. + */ + public function getImageCompose () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image delay + * @link https://php.net/manual/en/imagick.getimagedelay.php + * @return int the image delay. + */ + public function getImageDelay () {} + + /** + * (PECL imagick 0.9.1-0.9.9)
+ * Gets the image depth + * @link https://php.net/manual/en/imagick.getimagedepth.php + * @return int The image depth. + */ + public function getImageDepth () {} + + /** + * (PECL imagick 2.0.0)
+ * Compares an image to a reconstructed image + * @link https://php.net/manual/en/imagick.getimagedistortion.php + * @param Imagick $reference

+ * Imagick object to compare to. + *

+ * @param int $metric

+ * One of the metric type constants. + *

+ * @return float the distortion metric used on the image (or the best guess + * thereof). + */ + public function getImageDistortion (Imagick $reference, $metric) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the extrema for the image + * @link https://php.net/manual/en/imagick.getimageextrema.php + * @return array an associative array with the keys "min" and "max". + */ + public function getImageExtrema () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image disposal method + * @link https://php.net/manual/en/imagick.getimagedispose.php + * @return int the dispose method on success. + */ + public function getImageDispose () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image gamma + * @link https://php.net/manual/en/imagick.getimagegamma.php + * @return float the image gamma on success. + */ + public function getImageGamma () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the chromaticy green primary point + * @link https://php.net/manual/en/imagick.getimagegreenprimary.php + * @return array an array with the keys "x" and "y" on success, throws an ImagickException on failure. + * @throws ImagickException on failure + */ + public function getImageGreenPrimary () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image height + * @link https://php.net/manual/en/imagick.getimageheight.php + * @return int the image height in pixels. + */ + public function getImageHeight () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image histogram + * @link https://php.net/manual/en/imagick.getimagehistogram.php + * @return array the image histogram as an array of ImagickPixel objects. + */ + public function getImageHistogram () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image interlace scheme + * @link https://php.net/manual/en/imagick.getimageinterlacescheme.php + * @return int the interlace scheme as an integer on success. + * Trhow an ImagickException on error. + * @throws ImagickException on error + */ + public function getImageInterlaceScheme () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image iterations + * @link https://php.net/manual/en/imagick.getimageiterations.php + * @return int the image iterations as an integer. + */ + public function getImageIterations () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image matte color + * @link https://php.net/manual/en/imagick.getimagemattecolor.php + * @return ImagickPixel ImagickPixel object on success. + */ + public function getImageMatteColor () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the page geometry + * @link https://php.net/manual/en/imagick.getimagepage.php + * @return array the page geometry associated with the image in an array with the + * keys "width", "height", "x", and "y". + */ + public function getImagePage () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the color of the specified pixel + * @link https://php.net/manual/en/imagick.getimagepixelcolor.php + * @param int $x

+ * The x-coordinate of the pixel + *

+ * @param int $y

+ * The y-coordinate of the pixel + *

+ * @return ImagickPixel an ImagickPixel instance for the color at the coordinates given. + */ + public function getImagePixelColor ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the named image profile + * @link https://php.net/manual/en/imagick.getimageprofile.php + * @param string $name

+ * The name of the profile to return. + *

+ * @return string a string containing the image profile. + */ + public function getImageProfile ($name) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the chromaticity red primary point + * @link https://php.net/manual/en/imagick.getimageredprimary.php + * @return array the chromaticity red primary point as an array with the keys "x" + * and "y". + * Throw an ImagickException on error. + * @throws ImagickException on error + */ + public function getImageRedPrimary () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image rendering intent + * @link https://php.net/manual/en/imagick.getimagerenderingintent.php + * @return int the image rendering intent. + */ + public function getImageRenderingIntent () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image X and Y resolution + * @link https://php.net/manual/en/imagick.getimageresolution.php + * @return array the resolution as an array. + */ + public function getImageResolution () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image scene + * @link https://php.net/manual/en/imagick.getimagescene.php + * @return int the image scene. + */ + public function getImageScene () {} + + /** + * (PECL imagick 2.0.0)
+ * Generates an SHA-256 message digest + * @link https://php.net/manual/en/imagick.getimagesignature.php + * @return string a string containing the SHA-256 hash of the file. + */ + public function getImageSignature () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image ticks-per-second + * @link https://php.net/manual/en/imagick.getimagetickspersecond.php + * @return int the image ticks-per-second. + */ + public function getImageTicksPerSecond () {} + + /** + * (PECL imagick 0.9.10-0.9.9)
+ * Gets the potential image type + * @link https://php.net/manual/en/imagick.getimagetype.php + * @return int the potential image type. + * imagick::IMGTYPE_UNDEFINED + * imagick::IMGTYPE_BILEVEL + * imagick::IMGTYPE_GRAYSCALE + * imagick::IMGTYPE_GRAYSCALEMATTE + * imagick::IMGTYPE_PALETTE + * imagick::IMGTYPE_PALETTEMATTE + * imagick::IMGTYPE_TRUECOLOR + * imagick::IMGTYPE_TRUECOLORMATTE + * imagick::IMGTYPE_COLORSEPARATION + * imagick::IMGTYPE_COLORSEPARATIONMATTE + * imagick::IMGTYPE_OPTIMIZE + */ + public function getImageType () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image units of resolution + * @link https://php.net/manual/en/imagick.getimageunits.php + * @return int the image units of resolution. + */ + public function getImageUnits () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the virtual pixel method + * @link https://php.net/manual/en/imagick.getimagevirtualpixelmethod.php + * @return int the virtual pixel method on success. + */ + public function getImageVirtualPixelMethod () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the chromaticity white point + * @link https://php.net/manual/en/imagick.getimagewhitepoint.php + * @return array the chromaticity white point as an associative array with the keys + * "x" and "y". + */ + public function getImageWhitePoint () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the image width + * @link https://php.net/manual/en/imagick.getimagewidth.php + * @return int the image width. + */ + public function getImageWidth () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the number of images in the object + * @link https://php.net/manual/en/imagick.getnumberimages.php + * @return int the number of images associated with Imagick object. + */ + public function getNumberImages () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the image total ink density + * @link https://php.net/manual/en/imagick.getimagetotalinkdensity.php + * @return float the image total ink density of the image. + * Throw an ImagickException on error. + * @throws ImagickException on error + */ + public function getImageTotalInkDensity () {} + + /** + * (PECL imagick 2.0.0)
+ * Extracts a region of the image + * @link https://php.net/manual/en/imagick.getimageregion.php + * @param int $width

+ * The width of the extracted region. + *

+ * @param int $height

+ * The height of the extracted region. + *

+ * @param int $x

+ * X-coordinate of the top-left corner of the extracted region. + *

+ * @param int $y

+ * Y-coordinate of the top-left corner of the extracted region. + *

+ * @return Imagick Extracts a region of the image and returns it as a new wand. + */ + public function getImageRegion ($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a new image as a copy + * @link https://php.net/manual/en/imagick.implodeimage.php + * @param float $radius

+ * The radius of the implode + *

+ * @return bool TRUE on success. + */ + public function implodeImage ($radius) {} + + /** + * (PECL imagick 2.0.0)
+ * Adjusts the levels of an image + * @link https://php.net/manual/en/imagick.levelimage.php + * @param float $blackPoint

+ * The image black point + *

+ * @param float $gamma

+ * The gamma value + *

+ * @param float $whitePoint

+ * The image white point + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function levelImage ($blackPoint, $gamma, $whitePoint, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Scales an image proportionally 2x + * @link https://php.net/manual/en/imagick.magnifyimage.php + * @return bool TRUE on success. + */ + public function magnifyImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Replaces the colors of an image with the closest color from a reference image. + * @link https://php.net/manual/en/imagick.mapimage.php + * @param Imagick $map + * @param bool $dither + * @return bool TRUE on success. + */ + public function mapImage (Imagick $map, $dither) {} + + /** + * (PECL imagick 2.0.0)
+ * Changes the transparency value of a color + * @link https://php.net/manual/en/imagick.mattefloodfillimage.php + * @param float $alpha

+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully + * transparent. + *

+ * @param float $fuzz

+ * The fuzz member of image defines how much tolerance is acceptable to + * consider two colors as the same. + *

+ * @param mixed $bordercolor

+ * An ImagickPixel object or string representing the border color. + *

+ * @param int $x

+ * The starting x coordinate of the operation. + *

+ * @param int $y

+ * The starting y coordinate of the operation. + *

+ * @return bool TRUE on success. + */ + public function matteFloodfillImage ($alpha, $fuzz, $bordercolor, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Applies a digital filter + * @link https://php.net/manual/en/imagick.medianfilterimage.php + * @param float $radius

+ * The radius of the pixel neighborhood. + *

+ * @return bool TRUE on success. + */ + public function medianFilterImage ($radius) {} + + /** + * (PECL imagick 2.0.0)
+ * Negates the colors in the reference image + * @link https://php.net/manual/en/imagick.negateimage.php + * @param bool $gray

+ * Whether to only negate grayscale pixels within the image. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function negateImage ($gray, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Change any pixel that matches color + * @link https://php.net/manual/en/imagick.paintopaqueimage.php + * @param mixed $target

+ * Change this target color to the fill color within the image. An + * ImagickPixel object or a string representing the target color. + *

+ * @param mixed $fill

+ * An ImagickPixel object or a string representing the fill color. + *

+ * @param float $fuzz

+ * The fuzz member of image defines how much tolerance is acceptable to + * consider two colors as the same. + *

+ * @param int $channel [optional]

+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *

+ * @return bool TRUE on success. + */ + public function paintOpaqueImage ($target, $fill, $fuzz, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Changes any pixel that matches color with the color defined by fill + * @link https://php.net/manual/en/imagick.painttransparentimage.php + * @param mixed $target

+ * Change this target color to specified opacity value within the image. + *

+ * @param float $alpha

+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully + * transparent. + *

+ * @param float $fuzz

+ * The fuzz member of image defines how much tolerance is acceptable to + * consider two colors as the same. + *

+ * @return bool TRUE on success. + */ + public function paintTransparentImage ($target, $alpha, $fuzz) {} + + /** + * (PECL imagick 2.0.0)
+ * Quickly pin-point appropriate parameters for image processing + * @link https://php.net/manual/en/imagick.previewimages.php + * @param int $preview

+ * Preview type. See Preview type constants + *

+ * @return bool TRUE on success. + */ + public function previewImages ($preview) {} + + /** + * (PECL imagick 2.0.0)
+ * Adds or removes a profile from an image + * @link https://php.net/manual/en/imagick.profileimage.php + * @param string $name + * @param string $profile + * @return bool TRUE on success. + */ + public function profileImage ($name, $profile) {} + + /** + * (PECL imagick 2.0.0)
+ * Analyzes the colors within a reference image + * @link https://php.net/manual/en/imagick.quantizeimage.php + * @param int $numberColors + * @param int $colorspace + * @param int $treedepth + * @param bool $dither + * @param bool $measureError + * @return bool TRUE on success. + */ + public function quantizeImage ($numberColors, $colorspace, $treedepth, $dither, $measureError) {} + + /** + * (PECL imagick 2.0.0)
+ * Analyzes the colors within a sequence of images + * @link https://php.net/manual/en/imagick.quantizeimages.php + * @param int $numberColors + * @param int $colorspace + * @param int $treedepth + * @param bool $dither + * @param bool $measureError + * @return bool TRUE on success. + */ + public function quantizeImages ($numberColors, $colorspace, $treedepth, $dither, $measureError) {} + + /** + * (PECL imagick 2.0.0)
+ * Smooths the contours of an image + * @link https://php.net/manual/en/imagick.reducenoiseimage.php + * @param float $radius + * @return bool TRUE on success. + */ + public function reduceNoiseImage ($radius) {} + + /** + * (PECL imagick 2.0.0)
+ * Removes the named image profile and returns it + * @link https://php.net/manual/en/imagick.removeimageprofile.php + * @param string $name + * @return string a string containing the profile of the image. + */ + public function removeImageProfile ($name) {} + + /** + * (PECL imagick 2.0.0)
+ * Separates a channel from the image + * @link https://php.net/manual/en/imagick.separateimagechannel.php + * @param int $channel + * @return bool TRUE on success. + */ + public function separateImageChannel ($channel) {} + + /** + * (PECL imagick 2.0.0)
+ * Sepia tones an image + * @link https://php.net/manual/en/imagick.sepiatoneimage.php + * @param float $threshold + * @return bool TRUE on success. + */ + public function sepiaToneImage ($threshold) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image bias for any method that convolves an image + * @link https://php.net/manual/en/imagick.setimagebias.php + * @param float $bias + * @return bool TRUE on success. + */ + public function setImageBias ($bias) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image chromaticity blue primary point + * @link https://php.net/manual/en/imagick.setimageblueprimary.php + * @param float $x + * @param float $y + * @return bool TRUE on success. + */ + public function setImageBluePrimary ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image border color + * @link https://php.net/manual/en/imagick.setimagebordercolor.php + * @param mixed $border

+ * The border color + *

+ * @return bool TRUE on success. + */ + public function setImageBorderColor ($border) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the depth of a particular image channel + * @link https://php.net/manual/en/imagick.setimagechanneldepth.php + * @param int $channel + * @param int $depth + * @return bool TRUE on success. + */ + public function setImageChannelDepth ($channel, $depth) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the color of the specified colormap index + * @link https://php.net/manual/en/imagick.setimagecolormapcolor.php + * @param int $index + * @param ImagickPixel $color + * @return bool TRUE on success. + */ + public function setImageColormapColor ($index, ImagickPixel $color) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image colorspace + * @link https://php.net/manual/en/imagick.setimagecolorspace.php + * @param int $colorspace

+ * One of the COLORSPACE constants + *

+ * @return bool TRUE on success. + */ + public function setImageColorspace ($colorspace) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image disposal method + * @link https://php.net/manual/en/imagick.setimagedispose.php + * @param int $dispose + * @return bool TRUE on success. + */ + public function setImageDispose ($dispose) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image size + * @link https://php.net/manual/en/imagick.setimageextent.php + * @param int $columns + * @param int $rows + * @return bool TRUE on success. + */ + public function setImageExtent ($columns, $rows) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image chromaticity green primary point + * @link https://php.net/manual/en/imagick.setimagegreenprimary.php + * @param float $x + * @param float $y + * @return bool TRUE on success. + */ + public function setImageGreenPrimary ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image compression + * @link https://php.net/manual/en/imagick.setimageinterlacescheme.php + * @param int $interlace_scheme + * @return bool TRUE on success. + */ + public function setImageInterlaceScheme ($interlace_scheme) {} + + /** + * (PECL imagick 2.0.0)
+ * Adds a named profile to the Imagick object + * @link https://php.net/manual/en/imagick.setimageprofile.php + * @param string $name + * @param string $profile + * @return bool TRUE on success. + */ + public function setImageProfile ($name, $profile) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image chromaticity red primary point + * @link https://php.net/manual/en/imagick.setimageredprimary.php + * @param float $x + * @param float $y + * @return bool TRUE on success. + */ + public function setImageRedPrimary ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image rendering intent + * @link https://php.net/manual/en/imagick.setimagerenderingintent.php + * @param int $rendering_intent + * @return bool TRUE on success. + */ + public function setImageRenderingIntent ($rendering_intent) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image virtual pixel method + * @link https://php.net/manual/en/imagick.setimagevirtualpixelmethod.php + * @param int $method + * @return bool TRUE on success. + */ + public function setImageVirtualPixelMethod ($method) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image chromaticity white point + * @link https://php.net/manual/en/imagick.setimagewhitepoint.php + * @param float $x + * @param float $y + * @return bool TRUE on success. + */ + public function setImageWhitePoint ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Adjusts the contrast of an image + * @link https://php.net/manual/en/imagick.sigmoidalcontrastimage.php + * @param bool $sharpen + * @param float $alpha + * @param float $beta + * @param int $channel [optional] + * @return bool TRUE on success. + */ + public function sigmoidalContrastImage ($sharpen, $alpha, $beta, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Composites two images + * @link https://php.net/manual/en/imagick.stereoimage.php + * @param Imagick $offset_wand + * @return bool TRUE on success. + */ + public function stereoImage (Imagick $offset_wand) {} + + /** + * (PECL imagick 2.0.0)
+ * Repeatedly tiles the texture image + * @link https://php.net/manual/en/imagick.textureimage.php + * @param Imagick $texture_wand + * @return bool TRUE on success. + */ + public function textureImage (Imagick $texture_wand) {} + + /** + * pplies a color vector to each pixel in the image. The 'opacity' color is a per channel strength factor for how strongly the color should be applied. + * If legacy is true, the behaviour of this function is incorrect, but consistent with how it behaved before Imagick version 3.4.0 + * @link https://php.net/manual/en/imagick.tintimage.php + * @param mixed $tint + * @param mixed $opacity + * @param bool $legacy [optional] + * @return bool TRUE on success. + * @throws ImagickException Throws ImagickException on error + * @since 2.0.0 + */ + public function tintImage ($tint, $opacity, $legacy = false) {} + + /** + * (PECL imagick 2.0.0)
+ * Sharpens an image + * @link https://php.net/manual/en/imagick.unsharpmaskimage.php + * @param float $radius + * @param float $sigma + * @param float $amount + * @param float $threshold + * @param int $channel [optional] + * @return bool TRUE on success. + */ + public function unsharpMaskImage ($radius, $sigma, $amount, $threshold, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns a new Imagick object + * @link https://php.net/manual/en/imagick.getimage.php + * @return Imagick a new Imagick object with the current image sequence. + */ + public function getImage () {} + + /** + * (PECL imagick 2.0.0)
+ * Adds new image to Imagick object image list + * @link https://php.net/manual/en/imagick.addimage.php + * @param Imagick $source

+ * The source Imagick object + *

+ * @return bool TRUE on success. + */ + public function addImage (Imagick $source) {} + + /** + * (PECL imagick 2.0.0)
+ * Replaces image in the object + * @link https://php.net/manual/en/imagick.setimage.php + * @param Imagick $replace

+ * The replace Imagick object + *

+ * @return bool TRUE on success. + */ + public function setImage (Imagick $replace) {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a new image + * @link https://php.net/manual/en/imagick.newimage.php + * @param int $cols

+ * Columns in the new image + *

+ * @param int $rows

+ * Rows in the new image + *

+ * @param mixed $background

+ * The background color used for this image + *

+ * @param string $format [optional]

+ * Image format. This parameter was added in Imagick version 2.0.1. + *

+ * @return bool TRUE on success. + */ + public function newImage ($cols, $rows, $background, $format = null) {} + + /** + * (PECL imagick 2.0.0)
+ * Creates a new image + * @link https://php.net/manual/en/imagick.newpseudoimage.php + * @param int $columns

+ * columns in the new image + *

+ * @param int $rows

+ * rows in the new image + *

+ * @param string $pseudoString

+ * string containing pseudo image definition. + *

+ * @return bool TRUE on success. + */ + public function newPseudoImage ($columns, $rows, $pseudoString) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the object compression type + * @link https://php.net/manual/en/imagick.getcompression.php + * @return int the compression constant + */ + public function getCompression () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the object compression quality + * @link https://php.net/manual/en/imagick.getcompressionquality.php + * @return int integer describing the compression quality + */ + public function getCompressionQuality () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the ImageMagick API copyright as a string + * @link https://php.net/manual/en/imagick.getcopyright.php + * @return string a string containing the copyright notice of Imagemagick and + * Magickwand C API. + */ + public static function getCopyright () {} + + /** + * (PECL imagick 2.0.0)
+ * The filename associated with an image sequence + * @link https://php.net/manual/en/imagick.getfilename.php + * @return string a string on success. + */ + public function getFilename () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the format of the Imagick object + * @link https://php.net/manual/en/imagick.getformat.php + * @return string the format of the image. + */ + public function getFormat () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the ImageMagick home URL + * @link https://php.net/manual/en/imagick.gethomeurl.php + * @return string a link to the imagemagick homepage. + */ + public static function getHomeURL () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the object interlace scheme + * @link https://php.net/manual/en/imagick.getinterlacescheme.php + * @return int Gets the wand interlace + * scheme. + */ + public function getInterlaceScheme () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns a value associated with the specified key + * @link https://php.net/manual/en/imagick.getoption.php + * @param string $key

+ * The name of the option + *

+ * @return string a value associated with a wand and the specified key. + */ + public function getOption ($key) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the ImageMagick package name + * @link https://php.net/manual/en/imagick.getpackagename.php + * @return string the ImageMagick package name as a string. + */ + public static function getPackageName () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the page geometry + * @link https://php.net/manual/en/imagick.getpage.php + * @return array the page geometry associated with the Imagick object in + * an associative array with the keys "width", "height", "x", and "y", + * throwing ImagickException on error. + * @throws ImagickException on error + */ + public function getPage () {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the quantum depth + * @link https://php.net/manual/en/imagick.getquantumdepth.php + * @return array the Imagick quantum depth as a string. + */ + public static function getQuantumDepth () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the Imagick quantum range + * @link https://php.net/manual/en/imagick.getquantumrange.php + * @return array the Imagick quantum range as a string. + */ + public static function getQuantumRange () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the ImageMagick release date + * @link https://php.net/manual/en/imagick.getreleasedate.php + * @return string the ImageMagick release date as a string. + */ + public static function getReleaseDate () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the specified resource's memory usage + * @link https://php.net/manual/en/imagick.getresource.php + * @param int $type

+ * Refer to the list of resourcetype constants. + *

+ * @return int the specified resource's memory usage in megabytes. + */ + public static function getResource ($type) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the specified resource limit + * @link https://php.net/manual/en/imagick.getresourcelimit.php + * @param int $type

+ * Refer to the list of resourcetype constants. + *

+ * @return int the specified resource limit in megabytes. + */ + public static function getResourceLimit ($type) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the horizontal and vertical sampling factor + * @link https://php.net/manual/en/imagick.getsamplingfactors.php + * @return array an associative array with the horizontal and vertical sampling + * factors of the image. + */ + public function getSamplingFactors () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the size associated with the Imagick object + * @link https://php.net/manual/en/imagick.getsize.php + * @return array the size associated with the Imagick object as an array with the + * keys "columns" and "rows". + */ + public function getSize () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the ImageMagick API version + * @link https://php.net/manual/en/imagick.getversion.php + * @return array the ImageMagick API version as a string and as a number. + */ + public static function getVersion () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the object's default background color + * @link https://php.net/manual/en/imagick.setbackgroundcolor.php + * @param mixed $background + * @return bool TRUE on success. + */ + public function setBackgroundColor ($background) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the object's default compression type + * @link https://php.net/manual/en/imagick.setcompression.php + * @param int $compression + * @return bool TRUE on success. + */ + public function setCompression ($compression) {} + + /** + * (PECL imagick 0.9.10-0.9.9)
+ * Sets the object's default compression quality + * @link https://php.net/manual/en/imagick.setcompressionquality.php + * @param int $quality + * @return bool TRUE on success. + */ + public function setCompressionQuality ($quality) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the filename before you read or write the image + * @link https://php.net/manual/en/imagick.setfilename.php + * @param string $filename + * @return bool TRUE on success. + */ + public function setFilename ($filename) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the format of the Imagick object + * @link https://php.net/manual/en/imagick.setformat.php + * @param string $format + * @return bool TRUE on success. + */ + public function setFormat ($format) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image compression + * @link https://php.net/manual/en/imagick.setinterlacescheme.php + * @param int $interlace_scheme + * @return bool TRUE on success. + */ + public function setInterlaceScheme ($interlace_scheme) {} + + /** + * (PECL imagick 2.0.0)
+ * Set an option + * @link https://php.net/manual/en/imagick.setoption.php + * @param string $key + * @param string $value + * @return bool TRUE on success. + */ + public function setOption ($key, $value) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the page geometry of the Imagick object + * @link https://php.net/manual/en/imagick.setpage.php + * @param int $width + * @param int $height + * @param int $x + * @param int $y + * @return bool TRUE on success. + */ + public function setPage ($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the limit for a particular resource in megabytes + * @link https://php.net/manual/en/imagick.setresourcelimit.php + * @param int $type

+ * Refer to the list of resourcetype constants. + *

+ * @param int $limit

+ * The resource limit. The unit depends on the type of the resource being limited. + *

+ * @return bool TRUE on success. + */ + public static function setResourceLimit ($type, $limit) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image resolution + * @link https://php.net/manual/en/imagick.setresolution.php + * @param float $x_resolution

+ * The horizontal resolution. + *

+ * @param float $y_resolution

+ * The vertical resolution. + *

+ * @return bool TRUE on success. + */ + public function setResolution ($x_resolution, $y_resolution) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image sampling factors + * @link https://php.net/manual/en/imagick.setsamplingfactors.php + * @param array $factors + * @return bool TRUE on success. + */ + public function setSamplingFactors (array $factors) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the size of the Imagick object + * @link https://php.net/manual/en/imagick.setsize.php + * @param int $columns + * @param int $rows + * @return bool TRUE on success. + */ + public function setSize ($columns, $rows) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the image type attribute + * @link https://php.net/manual/en/imagick.settype.php + * @param int $image_type + * @return bool TRUE on success. + */ + public function setType ($image_type) {} + + public function key () {} + + public function next () {} + + public function rewind () {} + + /** + * (PECL imagick 2.0.0)
+ * Checks if the current item is valid + * @link https://php.net/manual/en/imagick.valid.php + * @return bool TRUE on success. + */ + public function valid () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns a reference to the current Imagick object + * @link https://php.net/manual/en/imagick.current.php + * @return Imagick self on success. + */ + public function current () {} + + /** + * Change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image. + * @link https://php.net/manual/en/imagick.brightnesscontrastimage.php + * @param string $brightness + * @param string $contrast + * @param int $CHANNEL [optional] + * @return void + * @since 3.3.0 + */ + public function brightnessContrastImage ($brightness, $contrast, $CHANNEL = Imagick::CHANNEL_DEFAULT) { } + + /** + * Applies a user supplied kernel to the image according to the given morphology method. + * @link https://php.net/manual/en/imagick.morphology.php + * @param int $morphologyMethod Which morphology method to use one of the \Imagick::MORPHOLOGY_* constants. + * @param int $iterations The number of iteration to apply the morphology function. A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1. + * @param ImagickKernel $ImagickKernel + * @param int $CHANNEL [optional] + * @return void + * @since 3.3.0 + */ + public function morphology ($morphologyMethod, $iterations, ImagickKernel $ImagickKernel, $CHANNEL = Imagick::CHANNEL_DEFAULT) { } + + /** + * Applies a custom convolution kernel to the image. + * @link https://php.net/manual/en/imagick.filter.php + * @param ImagickKernel $ImagickKernel An instance of ImagickKernel that represents either a single kernel or a linked series of kernels. + * @param int $CHANNEL [optional] Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + * @return void + * @since 3.3.0 + */ + public function filter (ImagickKernel $ImagickKernel , $CHANNEL = Imagick::CHANNEL_DEFAULT) { } + + /** + * Apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). + * The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255) + * @link https://php.net/manual/en/imagick.colormatriximage.php + * @param string $color_matrix + * @return void + * @since 3.3.0 + */ + public function colorMatrixImage ($color_matrix = Imagick::CHANNEL_DEFAULT) { } + + /** + * Deletes an image property. + * @link https://php.net/manual/en/imagick.deleteimageproperty.php + * @param string $name The name of the property to delete. + * @return void + * @since 3.3.0 + */ + public function deleteImageProperty ($name) { } + + /** + * Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair. + * @link https://php.net/manual/en/imagick.forwardfouriertransformimage.php + * @param bool $magnitude If true, return as magnitude / phase pair otherwise a real / imaginary image pair. + * @return void + * @since 3.3.0 + */ + public function forwardFourierTransformimage ($magnitude) { } + + /** + * Gets the current image's compression type. + * @link https://php.net/manual/en/imagick.getimagecompression.php + * @return int + * @since 3.3.0 + */ + public function getImageCompression () { } + + /** + * Get the StringRegistry entry for the named key or false if not set. + * @link https://php.net/manual/en/imagick.getregistry.php + * @param string $key + * @return string|false + * @throws Exception Since version >=3.4.3. Throws an exception if the key does not exist, rather than terminating the program. + * @since 3.3.0 + */ + public static function getRegistry ($key) { } + + /** + * Returns the ImageMagick quantum range as an integer. + * @link https://php.net/manual/en/imagick.getquantum.php + * @return int + * @since 3.3.0 + */ + public static function getQuantum () { } + + /** + * Replaces any embedded formatting characters with the appropriate image property and returns the interpreted text. See https://www.imagemagick.org/script/escape.php for escape sequences. + * @link https://php.net/manual/en/imagick.identifyformat.php + * @see https://www.imagemagick.org/script/escape.php + * @param string $embedText A string containing formatting sequences e.g. "Trim box: %@ number of unique colors: %k". + * @return bool + * @since 3.3.0 + */ + public function identifyFormat ($embedText) { } + + /** + * Implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair. + * @link https://php.net/manual/en/imagick.inversefouriertransformimage.php + * @param Imagick $complement The second image to combine with this one to form either the magnitude / phase or real / imaginary image pair. + * @param bool $magnitude If true, combine as magnitude / phase pair otherwise a real / imaginary image pair. + * @return void + * @since 3.3.0 + */ + public function inverseFourierTransformImage ($complement, $magnitude) { } + + /** + * List all the registry settings. Returns an array of all the key/value pairs in the registry + * @link https://php.net/manual/en/imagick.listregistry.php + * @return array An array containing the key/values from the registry. + * @since 3.3.0 + */ + public static function listRegistry () { } + + /** + * Rotational blurs an image. + * @link https://php.net/manual/en/imagick.rotationalblurimage.php + * @param string $angle + * @param string $CHANNEL + * @return void + * @since 3.3.0 + */ + public function rotationalBlurImage ($angle, $CHANNEL = Imagick::CHANNEL_DEFAULT) { } + + /** + * Selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold. + * @link https://php.net/manual/en/imagick.selectiveblurimage.php + * @param float $radius + * @param float $sigma + * @param float $threshold + * @param int $CHANNEL Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + * @return void + * @since 3.3.0 + */ + public function selectiveBlurImage ($radius, $sigma, $threshold, $CHANNEL = Imagick::CHANNEL_DEFAULT) { } + + /** + * Set whether antialiasing should be used for operations. On by default. + * @param bool $antialias + * @return int + * @since 3.3.0 + */ + public function setAntiAlias ($antialias) { } + + /** + * @link https://php.net/manual/en/imagick.setimagebiasquantum.php + * @param string $bias + * @return void + * @since 3.3.0 + */ + public function setImageBiasQuantum ($bias) { } + + /** + * Set a callback that will be called during the processing of the Imagick image. + * @link https://php.net/manual/en/imagick.setprogressmonitor.php + * @param callable $callback The progress function to call. It should return true if image processing should continue, or false if it should be cancelled. + * The offset parameter indicates the progress and the span parameter indicates the total amount of work needed to be done. + *
 bool callback ( mixed $offset , mixed $span ) 
+ * Caution + * The values passed to the callback function are not consistent. In particular the span parameter can increase during image processing. Because of this calculating the percentage complete of an image operation is not trivial. + * @return void + * @since 3.3.0 + */ + public function setProgressMonitor ($callback) { } + + /** + * Sets the ImageMagick registry entry named key to value. This is most useful for setting "temporary-path" which controls where ImageMagick creates temporary images e.g. while processing PDFs. + * @link https://php.net/manual/en/imagick.setregistry.php + * @param string $key + * @param string $value + * @return void + * @since 3.3.0 + */ + public static function setRegistry ($key, $value) { } + + /** + * Replace each pixel with corresponding statistic from the neighborhood of the specified width and height. + * @link https://php.net/manual/en/imagick.statisticimage.php + * @param int $type + * @param int $width + * @param int $height + * @param int $channel [optional] + * @return void + * @since 3.3.0 + */ + public function statisticImage ($type, $width, $height, $channel = Imagick::CHANNEL_DEFAULT ) { } + + /** + * Searches for a subimage in the current image and returns a similarity image such that an exact match location is + * completely white and if none of the pixels match, black, otherwise some gray level in-between. + * You can also pass in the optional parameters bestMatch and similarity. After calling the function similarity will + * be set to the 'score' of the similarity between the subimage and the matching position in the larger image, + * bestMatch will contain an associative array with elements x, y, width, height that describe the matching region. + * + * @link https://php.net/manual/en/imagick.subimagematch.php + * @param Imagick $imagick + * @param array &$bestMatch [optional] + * @param float &$similarity [optional] A new image that displays the amount of similarity at each pixel. + * @param float $similarity_threshold [optional] Only used if compiled with ImageMagick (library) > 7 + * @param int $metric [optional] Only used if compiled with ImageMagick (library) > 7 + * @return Imagick + * @since 3.3.0 + */ + public function subImageMatch (Imagick $imagick, array &$bestMatch, &$similarity, $similarity_threshold, $metric) { } + + /** + * Is an alias of Imagick::subImageMatch + * + * @param Imagick $imagick + * @param array $bestMatch [optional] + * @param float $similarity [optional] A new image that displays the amount of similarity at each pixel. + * @param float $similarity_threshold [optional] + * @param int $metric [optional] + * @return Imagick + * @see Imagick::subImageMatch() This function is an alias of subImageMatch() + * @since 3.4.0 + */ + public function similarityImage (Imagick $imagick, array &$bestMatch, &$similarity, $similarity_threshold, $metric) { } + + /** + * Returns any ImageMagick configure options that match the specified pattern (e.g. "*" for all). Options include NAME, VERSION, LIB_VERSION, etc. + * @return string + * @since 3.4.0 + */ + public function getConfigureOptions () { } + + /** + * GetFeatures() returns the ImageMagick features that have been compiled into the runtime. + * @return string + * @since 3.4.0 + */ + public function getFeatures () { } + + /** + * @return int + * @since 3.4.0 + */ + public function getHDRIEnabled () { } + + /** + * Sets the image channel mask. Returns the previous set channel mask. + * Only works with Imagick >=7 + * @param int $channel + * @since 3.4.0 + */ + public function setImageChannelMask ($channel) {} + + /** + * Merge multiple images of the same size together with the selected operator. https://www.imagemagick.org/Usage/layers/#evaluate-sequence + * @param int $EVALUATE_CONSTANT + * @return bool + * @see https://www.imagemagick.org/Usage/layers/#evaluate-sequence + * @since 3.4.0 + */ + public function evaluateImages ($EVALUATE_CONSTANT) { } + + /** + * Extracts the 'mean' from the image and adjust the image to try make set its gamma appropriately. + * @param int $channel [optional] Default value Imagick::CHANNEL_ALL + * @return bool + * @since 3.4.1 + */ + public function autoGammaImage ($channel = Imagick::CHANNEL_ALL) { } + + /** + * Adjusts an image so that its orientation is suitable $ for viewing (i.e. top-left orientation). + * @return bool + * @since 3.4.1 + */ + public function autoOrient () { } + + /** + * Composite one image onto another using the specified gravity. + * + * @param Imagick $imagick + * @param int $COMPOSITE_CONSTANT + * @param int $GRAVITY_CONSTANT + * @return bool + * @since 3.4.1 + */ + public function compositeImageGravity(Imagick $imagick, $COMPOSITE_CONSTANT, $GRAVITY_CONSTANT) { } + + /** + * Attempts to increase the appearance of large-scale light-dark transitions. + * + * @param float $radius + * @param float $strength + * @return bool + * @since 3.4.1 + */ + public function localContrastImage($radius, $strength) { } + + /** + * Identifies the potential image type, returns one of the Imagick::IMGTYPE_* constants + * @return int + * @since 3.4.3 + */ + public function identifyImageType() { } + + /** + * Sets the image to the specified alpha level. Will replace ImagickDraw::setOpacity() + * + * @param float $alpha + * @return bool + * @since 3.4.3 + */ + public function setImageAlpha($alpha) { } +} + +/** + * @method ImagickDraw clone() (PECL imagick 2.0.0)
Makes an exact copy of the specified ImagickDraw object + * @link https://php.net/manual/en/class.imagickdraw.php + */ +class ImagickDraw { + + public function resetVectorGraphics () {} + + public function getTextKerning () {} + + /** + * @param $kerning + */ + public function setTextKerning ($kerning) {} + + public function getTextInterWordSpacing () {} + + /** + * @param $spacing + */ + public function setTextInterWordSpacing ($spacing) {} + + public function getTextInterLineSpacing () {} + + /** + * @param $spacing + */ + public function setTextInterLineSpacing ($spacing) {} + + /** + * (PECL imagick 2.0.0)
+ * The ImagickDraw constructor + * @link https://php.net/manual/en/imagickdraw.construct.php + */ + public function __construct () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the fill color to be used for drawing filled objects + * @link https://php.net/manual/en/imagickdraw.setfillcolor.php + * @param ImagickPixel $fill_pixel

+ * ImagickPixel to use to set the color + *

+ * @return bool No value is returned. + */ + public function setFillColor (ImagickPixel $fill_pixel) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the opacity to use when drawing using the fill color or fill texture + * @link https://php.net/manual/en/imagickdraw.setfillalpha.php + * @param float $opacity

+ * fill alpha + *

+ * @return bool No value is returned. + */ + public function setFillAlpha ($opacity) {} + + /** + * @param $x_resolution + * @param $y_resolution + */ + public function setResolution ($x_resolution, $y_resolution) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the color used for stroking object outlines + * @link https://php.net/manual/en/imagickdraw.setstrokecolor.php + * @param ImagickPixel $stroke_pixel

+ * the stroke color + *

+ * @return bool No value is returned. + */ + public function setStrokeColor (ImagickPixel $stroke_pixel) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies the opacity of stroked object outlines + * @link https://php.net/manual/en/imagickdraw.setstrokealpha.php + * @param float $opacity

+ * opacity + *

+ * @return bool No value is returned. + */ + public function setStrokeAlpha ($opacity) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the width of the stroke used to draw object outlines + * @link https://php.net/manual/en/imagickdraw.setstrokewidth.php + * @param float $stroke_width

+ * stroke width + *

+ * @return bool No value is returned. + */ + public function setStrokeWidth ($stroke_width) {} + + /** + * (PECL imagick 2.0.0)
+ * Clears the ImagickDraw + * @link https://php.net/manual/en/imagickdraw.clear.php + * @return bool an ImagickDraw object. + */ + public function clear () {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a circle + * @link https://php.net/manual/en/imagickdraw.circle.php + * @param float $ox

+ * origin x coordinate + *

+ * @param float $oy

+ * origin y coordinate + *

+ * @param float $px

+ * perimeter x coordinate + *

+ * @param float $py

+ * perimeter y coordinate + *

+ * @return bool No value is returned. + */ + public function circle ($ox, $oy, $px, $py) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws text on the image + * @link https://php.net/manual/en/imagickdraw.annotation.php + * @param float $x

+ * The x coordinate where text is drawn + *

+ * @param float $y

+ * The y coordinate where text is drawn + *

+ * @param string $text

+ * The text to draw on the image + *

+ * @return bool No value is returned. + */ + public function annotation ($x, $y, $text) {} + + /** + * (PECL imagick 2.0.0)
+ * Controls whether text is antialiased + * @link https://php.net/manual/en/imagickdraw.settextantialias.php + * @param bool $antiAlias + * @return bool No value is returned. + */ + public function setTextAntialias ($antiAlias) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies specifies the text code set + * @link https://php.net/manual/en/imagickdraw.settextencoding.php + * @param string $encoding

+ * the encoding name + *

+ * @return bool No value is returned. + */ + public function setTextEncoding ($encoding) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the fully-specified font to use when annotating with text + * @link https://php.net/manual/en/imagickdraw.setfont.php + * @param string $font_name + * @return bool TRUE on success. + */ + public function setFont ($font_name) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the font family to use when annotating with text + * @link https://php.net/manual/en/imagickdraw.setfontfamily.php + * @param string $font_family

+ * the font family + *

+ * @return bool TRUE on success. + */ + public function setFontFamily ($font_family) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the font pointsize to use when annotating with text + * @link https://php.net/manual/en/imagickdraw.setfontsize.php + * @param float $pointsize

+ * the point size + *

+ * @return bool No value is returned. + */ + public function setFontSize ($pointsize) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the font style to use when annotating with text + * @link https://php.net/manual/en/imagickdraw.setfontstyle.php + * @param int $style

+ * STYLETYPE_ constant + *

+ * @return bool No value is returned. + */ + public function setFontStyle ($style) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the font weight + * @link https://php.net/manual/en/imagickdraw.setfontweight.php + * @param int $font_weight + * @return bool + */ + public function setFontWeight ($font_weight) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the font + * @link https://php.net/manual/en/imagickdraw.getfont.php + * @return string|false a string on success and false if no font is set. + */ + public function getFont () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the font family + * @link https://php.net/manual/en/imagickdraw.getfontfamily.php + * @return string|false the font family currently selected or false if font family is not set. + */ + public function getFontFamily () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the font pointsize + * @link https://php.net/manual/en/imagickdraw.getfontsize.php + * @return float the font size associated with the current ImagickDraw object. + */ + public function getFontSize () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the font style + * @link https://php.net/manual/en/imagickdraw.getfontstyle.php + * @return int the font style constant (STYLE_) associated with the ImagickDraw object + * or 0 if no style is set. + */ + public function getFontStyle () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the font weight + * @link https://php.net/manual/en/imagickdraw.getfontweight.php + * @return int an int on success and 0 if no weight is set. + */ + public function getFontWeight () {} + + /** + * (PECL imagick 2.0.0)
+ * Frees all associated resources + * @link https://php.net/manual/en/imagickdraw.destroy.php + * @return bool No value is returned. + */ + public function destroy () {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a rectangle + * @link https://php.net/manual/en/imagickdraw.rectangle.php + * @param float $x1

+ * x coordinate of the top left corner + *

+ * @param float $y1

+ * y coordinate of the top left corner + *

+ * @param float $x2

+ * x coordinate of the bottom right corner + *

+ * @param float $y2

+ * y coordinate of the bottom right corner + *

+ * @return bool No value is returned. + */ + public function rectangle ($x1, $y1, $x2, $y2) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a rounded rectangle + * @link https://php.net/manual/en/imagickdraw.roundrectangle.php + * @param float $x1

+ * x coordinate of the top left corner + *

+ * @param float $y1

+ * y coordinate of the top left corner + *

+ * @param float $x2

+ * x coordinate of the bottom right + *

+ * @param float $y2

+ * y coordinate of the bottom right + *

+ * @param float $rx

+ * x rounding + *

+ * @param float $ry

+ * y rounding + *

+ * @return bool No value is returned. + */ + public function roundRectangle ($x1, $y1, $x2, $y2, $rx, $ry) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws an ellipse on the image + * @link https://php.net/manual/en/imagickdraw.ellipse.php + * @param float $ox + * @param float $oy + * @param float $rx + * @param float $ry + * @param float $start + * @param float $end + * @return bool No value is returned. + */ + public function ellipse ($ox, $oy, $rx, $ry, $start, $end) {} + + /** + * (PECL imagick 2.0.0)
+ * Skews the current coordinate system in the horizontal direction + * @link https://php.net/manual/en/imagickdraw.skewx.php + * @param float $degrees

+ * degrees to skew + *

+ * @return bool No value is returned. + */ + public function skewX ($degrees) {} + + /** + * (PECL imagick 2.0.0)
+ * Skews the current coordinate system in the vertical direction + * @link https://php.net/manual/en/imagickdraw.skewy.php + * @param float $degrees

+ * degrees to skew + *

+ * @return bool No value is returned. + */ + public function skewY ($degrees) {} + + /** + * (PECL imagick 2.0.0)
+ * Applies a translation to the current coordinate system + * @link https://php.net/manual/en/imagickdraw.translate.php + * @param float $x

+ * horizontal translation + *

+ * @param float $y

+ * vertical translation + *

+ * @return bool No value is returned. + */ + public function translate ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a line + * @link https://php.net/manual/en/imagickdraw.line.php + * @param float $sx

+ * starting x coordinate + *

+ * @param float $sy

+ * starting y coordinate + *

+ * @param float $ex

+ * ending x coordinate + *

+ * @param float $ey

+ * ending y coordinate + *

+ * @return bool No value is returned. + */ + public function line ($sx, $sy, $ex, $ey) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws an arc + * @link https://php.net/manual/en/imagickdraw.arc.php + * @param float $sx

+ * Starting x ordinate of bounding rectangle + *

+ * @param float $sy

+ * starting y ordinate of bounding rectangle + *

+ * @param float $ex

+ * ending x ordinate of bounding rectangle + *

+ * @param float $ey

+ * ending y ordinate of bounding rectangle + *

+ * @param float $sd

+ * starting degrees of rotation + *

+ * @param float $ed

+ * ending degrees of rotation + *

+ * @return bool No value is returned. + */ + public function arc ($sx, $sy, $ex, $ey, $sd, $ed) {} + + /** + * (PECL imagick 2.0.0)
+ * Paints on the image's opacity channel + * @link https://php.net/manual/en/imagickdraw.matte.php + * @param float $x

+ * x coordinate of the matte + *

+ * @param float $y

+ * y coordinate of the matte + *

+ * @param int $paintMethod

+ * PAINT_ constant + *

+ * @return bool TRUE on success or FALSE on failure. + */ + public function matte ($x, $y, $paintMethod) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a polygon + * @link https://php.net/manual/en/imagickdraw.polygon.php + * @param array $coordinates

+ * multidimensional array like array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) ); + *

+ * @return bool TRUE on success. + */ + public function polygon (array $coordinates) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a point + * @link https://php.net/manual/en/imagickdraw.point.php + * @param float $x

+ * point's x coordinate + *

+ * @param float $y

+ * point's y coordinate + *

+ * @return bool No value is returned. + */ + public function point ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the text decoration + * @link https://php.net/manual/en/imagickdraw.gettextdecoration.php + * @return int one of the DECORATION_ constants + * and 0 if no decoration is set. + */ + public function getTextDecoration () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the code set used for text annotations + * @link https://php.net/manual/en/imagickdraw.gettextencoding.php + * @return string a string specifying the code set + * or false if text encoding is not set. + */ + public function getTextEncoding () {} + + public function getFontStretch () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the font stretch to use when annotating with text + * @link https://php.net/manual/en/imagickdraw.setfontstretch.php + * @param int $fontStretch

+ * STRETCH_ constant + *

+ * @return bool No value is returned. + */ + public function setFontStretch ($fontStretch) {} + + /** + * (PECL imagick 2.0.0)
+ * Controls whether stroked outlines are antialiased + * @link https://php.net/manual/en/imagickdraw.setstrokeantialias.php + * @param bool $stroke_antialias

+ * the antialias setting + *

+ * @return bool No value is returned. + */ + public function setStrokeAntialias ($stroke_antialias) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies a text alignment + * @link https://php.net/manual/en/imagickdraw.settextalignment.php + * @param int $alignment

+ * ALIGN_ constant + *

+ * @return bool No value is returned. + */ + public function setTextAlignment ($alignment) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies a decoration + * @link https://php.net/manual/en/imagickdraw.settextdecoration.php + * @param int $decoration

+ * DECORATION_ constant + *

+ * @return bool No value is returned. + */ + public function setTextDecoration ($decoration) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies the color of a background rectangle + * @link https://php.net/manual/en/imagickdraw.settextundercolor.php + * @param ImagickPixel $under_color

+ * the under color + *

+ * @return bool No value is returned. + */ + public function setTextUnderColor (ImagickPixel $under_color) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the overall canvas size + * @link https://php.net/manual/en/imagickdraw.setviewbox.php + * @param int $x1

+ * left x coordinate + *

+ * @param int $y1

+ * left y coordinate + *

+ * @param int $x2

+ * right x coordinate + *

+ * @param int $y2

+ * right y coordinate + *

+ * @return bool No value is returned. + */ + public function setViewbox ($x1, $y1, $x2, $y2) {} + + /** + * (PECL imagick 2.0.0)
+ * Adjusts the current affine transformation matrix + * @link https://php.net/manual/en/imagickdraw.affine.php + * @param array $affine

+ * Affine matrix parameters + *

+ * @return bool No value is returned. + */ + public function affine (array $affine) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a bezier curve + * @link https://php.net/manual/en/imagickdraw.bezier.php + * @param array $coordinates

+ * Multidimensional array like array( array( 'x' => 1, 'y' => 2 ), + * array( 'x' => 3, 'y' => 4 ) ) + *

+ * @return bool No value is returned. + */ + public function bezier (array $coordinates) {} + + /** + * (PECL imagick 2.0.0)
+ * Composites an image onto the current image + * @link https://php.net/manual/en/imagickdraw.composite.php + * @param int $compose

+ * composition operator. One of COMPOSITE_ constants + *

+ * @param float $x

+ * x coordinate of the top left corner + *

+ * @param float $y

+ * y coordinate of the top left corner + *

+ * @param float $width

+ * width of the composition image + *

+ * @param float $height

+ * height of the composition image + *

+ * @param Imagick $compositeWand

+ * the Imagick object where composition image is taken from + *

+ * @return bool TRUE on success. + */ + public function composite ($compose, $x, $y, $width, $height, Imagick $compositeWand) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws color on image + * @link https://php.net/manual/en/imagickdraw.color.php + * @param float $x

+ * x coordinate of the paint + *

+ * @param float $y

+ * y coordinate of the paint + *

+ * @param int $paintMethod

+ * one of the PAINT_ constants + *

+ * @return bool No value is returned. + */ + public function color ($x, $y, $paintMethod) {} + + /** + * (PECL imagick 2.0.0)
+ * Adds a comment + * @link https://php.net/manual/en/imagickdraw.comment.php + * @param string $comment

+ * The comment string to add to vector output stream + *

+ * @return bool No value is returned. + */ + public function comment ($comment) {} + + /** + * (PECL imagick 2.0.0)
+ * Obtains the current clipping path ID + * @link https://php.net/manual/en/imagickdraw.getclippath.php + * @return string|false a string containing the clip path ID or false if no clip path exists. + */ + public function getClipPath () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the current polygon fill rule + * @link https://php.net/manual/en/imagickdraw.getcliprule.php + * @return int one of the FILLRULE_ constants. + */ + public function getClipRule () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the interpretation of clip path units + * @link https://php.net/manual/en/imagickdraw.getclipunits.php + * @return int an int on success. + */ + public function getClipUnits () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the fill color + * @link https://php.net/manual/en/imagickdraw.getfillcolor.php + * @return ImagickPixel an ImagickPixel object. + */ + public function getFillColor () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the opacity used when drawing + * @link https://php.net/manual/en/imagickdraw.getfillopacity.php + * @return float The opacity. + */ + public function getFillOpacity () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the fill rule + * @link https://php.net/manual/en/imagickdraw.getfillrule.php + * @return int a FILLRULE_ constant + */ + public function getFillRule () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the text placement gravity + * @link https://php.net/manual/en/imagickdraw.getgravity.php + * @return int a GRAVITY_ constant on success and 0 if no gravity is set. + */ + public function getGravity () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the current stroke antialias setting + * @link https://php.net/manual/en/imagickdraw.getstrokeantialias.php + * @return bool TRUE if antialiasing is on and false if it is off. + */ + public function getStrokeAntialias () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the color used for stroking object outlines + * @link https://php.net/manual/en/imagickdraw.getstrokecolor.php + * @return ImagickPixel an ImagickPixel object which describes the color. + */ + public function getStrokeColor () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns an array representing the pattern of dashes and gaps used to stroke paths + * @link https://php.net/manual/en/imagickdraw.getstrokedasharray.php + * @return array an array on success and empty array if not set. + */ + public function getStrokeDashArray () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the offset into the dash pattern to start the dash + * @link https://php.net/manual/en/imagickdraw.getstrokedashoffset.php + * @return float a float representing the offset and 0 if it's not set. + */ + public function getStrokeDashOffset () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the shape to be used at the end of open subpaths when they are stroked + * @link https://php.net/manual/en/imagickdraw.getstrokelinecap.php + * @return int one of the LINECAP_ constants or 0 if stroke linecap is not set. + */ + public function getStrokeLineCap () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the shape to be used at the corners of paths when they are stroked + * @link https://php.net/manual/en/imagickdraw.getstrokelinejoin.php + * @return int one of the LINEJOIN_ constants or 0 if stroke line join is not set. + */ + public function getStrokeLineJoin () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the stroke miter limit + * @link https://php.net/manual/en/imagickdraw.getstrokemiterlimit.php + * @return int an int describing the miter limit + * and 0 if no miter limit is set. + */ + public function getStrokeMiterLimit () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the opacity of stroked object outlines + * @link https://php.net/manual/en/imagickdraw.getstrokeopacity.php + * @return float a float describing the opacity. + */ + public function getStrokeOpacity () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the width of the stroke used to draw object outlines + * @link https://php.net/manual/en/imagickdraw.getstrokewidth.php + * @return float a float describing the stroke width. + */ + public function getStrokeWidth () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the text alignment + * @link https://php.net/manual/en/imagickdraw.gettextalignment.php + * @return int one of the ALIGN_ constants and 0 if no align is set. + */ + public function getTextAlignment () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the current text antialias setting + * @link https://php.net/manual/en/imagickdraw.gettextantialias.php + * @return bool TRUE if text is antialiased and false if not. + */ + public function getTextAntialias () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns a string containing vector graphics + * @link https://php.net/manual/en/imagickdraw.getvectorgraphics.php + * @return string a string containing the vector graphics. + */ + public function getVectorGraphics () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the text under color + * @link https://php.net/manual/en/imagickdraw.gettextundercolor.php + * @return ImagickPixel an ImagickPixel object describing the color. + */ + public function getTextUnderColor () {} + + /** + * (PECL imagick 2.0.0)
+ * Adds a path element to the current path + * @link https://php.net/manual/en/imagickdraw.pathclose.php + * @return bool No value is returned. + */ + public function pathClose () {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a cubic Bezier curve + * @link https://php.net/manual/en/imagickdraw.pathcurvetoabsolute.php + * @param float $x1

+ * x coordinate of the first control point + *

+ * @param float $y1

+ * y coordinate of the first control point + *

+ * @param float $x2

+ * x coordinate of the second control point + *

+ * @param float $y2

+ * y coordinate of the first control point + *

+ * @param float $x

+ * x coordinate of the curve end + *

+ * @param float $y

+ * y coordinate of the curve end + *

+ * @return bool No value is returned. + */ + public function pathCurveToAbsolute ($x1, $y1, $x2, $y2, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a cubic Bezier curve + * @link https://php.net/manual/en/imagickdraw.pathcurvetorelative.php + * @param float $x1

+ * x coordinate of starting control point + *

+ * @param float $y1

+ * y coordinate of starting control point + *

+ * @param float $x2

+ * x coordinate of ending control point + *

+ * @param float $y2

+ * y coordinate of ending control point + *

+ * @param float $x

+ * ending x coordinate + *

+ * @param float $y

+ * ending y coordinate + *

+ * @return bool No value is returned. + */ + public function pathCurveToRelative ($x1, $y1, $x2, $y2, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a quadratic Bezier curve + * @link https://php.net/manual/en/imagickdraw.pathcurvetoquadraticbezierabsolute.php + * @param float $x1

+ * x coordinate of the control point + *

+ * @param float $y1

+ * y coordinate of the control point + *

+ * @param float $x

+ * x coordinate of the end point + *

+ * @param float $y

+ * y coordinate of the end point + *

+ * @return bool No value is returned. + */ + public function pathCurveToQuadraticBezierAbsolute ($x1, $y1, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a quadratic Bezier curve + * @link https://php.net/manual/en/imagickdraw.pathcurvetoquadraticbezierrelative.php + * @param float $x1

+ * starting x coordinate + *

+ * @param float $y1

+ * starting y coordinate + *

+ * @param float $x

+ * ending x coordinate + *

+ * @param float $y

+ * ending y coordinate + *

+ * @return bool No value is returned. + */ + public function pathCurveToQuadraticBezierRelative ($x1, $y1, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a quadratic Bezier curve + * @link https://php.net/manual/en/imagickdraw.pathcurvetoquadraticbeziersmoothabsolute.php + * @param float $x

+ * ending x coordinate + *

+ * @param float $y

+ * ending y coordinate + *

+ * @return bool No value is returned. + */ + public function pathCurveToQuadraticBezierSmoothAbsolute ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a quadratic Bezier curve + * @link https://php.net/manual/en/imagickdraw.pathcurvetoquadraticbeziersmoothrelative.php + * @param float $x

+ * ending x coordinate + *

+ * @param float $y

+ * ending y coordinate + *

+ * @return bool No value is returned. + */ + public function pathCurveToQuadraticBezierSmoothRelative ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a cubic Bezier curve + * @link https://php.net/manual/en/imagickdraw.pathcurvetosmoothabsolute.php + * @param float $x2

+ * x coordinate of the second control point + *

+ * @param float $y2

+ * y coordinate of the second control point + *

+ * @param float $x

+ * x coordinate of the ending point + *

+ * @param float $y

+ * y coordinate of the ending point + *

+ * @return bool No value is returned. + */ + public function pathCurveToSmoothAbsolute ($x2, $y2, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a cubic Bezier curve + * @link https://php.net/manual/en/imagickdraw.pathcurvetosmoothrelative.php + * @param float $x2

+ * x coordinate of the second control point + *

+ * @param float $y2

+ * y coordinate of the second control point + *

+ * @param float $x

+ * x coordinate of the ending point + *

+ * @param float $y

+ * y coordinate of the ending point + *

+ * @return bool No value is returned. + */ + public function pathCurveToSmoothRelative ($x2, $y2, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws an elliptical arc + * @link https://php.net/manual/en/imagickdraw.pathellipticarcabsolute.php + * @param float $rx

+ * x radius + *

+ * @param float $ry

+ * y radius + *

+ * @param float $x_axis_rotation

+ * x axis rotation + *

+ * @param bool $large_arc_flag

+ * large arc flag + *

+ * @param bool $sweep_flag

+ * sweep flag + *

+ * @param float $x

+ * x coordinate + *

+ * @param float $y

+ * y coordinate + *

+ * @return bool No value is returned. + */ + public function pathEllipticArcAbsolute ($rx, $ry, $x_axis_rotation, $large_arc_flag, $sweep_flag, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws an elliptical arc + * @link https://php.net/manual/en/imagickdraw.pathellipticarcrelative.php + * @param float $rx

+ * x radius + *

+ * @param float $ry

+ * y radius + *

+ * @param float $x_axis_rotation

+ * x axis rotation + *

+ * @param bool $large_arc_flag

+ * large arc flag + *

+ * @param bool $sweep_flag

+ * sweep flag + *

+ * @param float $x

+ * x coordinate + *

+ * @param float $y

+ * y coordinate + *

+ * @return bool No value is returned. + */ + public function pathEllipticArcRelative ($rx, $ry, $x_axis_rotation, $large_arc_flag, $sweep_flag, $x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Terminates the current path + * @link https://php.net/manual/en/imagickdraw.pathfinish.php + * @return bool No value is returned. + */ + public function pathFinish () {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a line path + * @link https://php.net/manual/en/imagickdraw.pathlinetoabsolute.php + * @param float $x

+ * starting x coordinate + *

+ * @param float $y

+ * ending x coordinate + *

+ * @return bool No value is returned. + */ + public function pathLineToAbsolute ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a line path + * @link https://php.net/manual/en/imagickdraw.pathlinetorelative.php + * @param float $x

+ * starting x coordinate + *

+ * @param float $y

+ * starting y coordinate + *

+ * @return bool No value is returned. + */ + public function pathLineToRelative ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a horizontal line path + * @link https://php.net/manual/en/imagickdraw.pathlinetohorizontalabsolute.php + * @param float $x

+ * x coordinate + *

+ * @return bool No value is returned. + */ + public function pathLineToHorizontalAbsolute ($x) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a horizontal line + * @link https://php.net/manual/en/imagickdraw.pathlinetohorizontalrelative.php + * @param float $x

+ * x coordinate + *

+ * @return bool No value is returned. + */ + public function pathLineToHorizontalRelative ($x) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a vertical line + * @link https://php.net/manual/en/imagickdraw.pathlinetoverticalabsolute.php + * @param float $y

+ * y coordinate + *

+ * @return bool No value is returned. + */ + public function pathLineToVerticalAbsolute ($y) {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a vertical line path + * @link https://php.net/manual/en/imagickdraw.pathlinetoverticalrelative.php + * @param float $y

+ * y coordinate + *

+ * @return bool No value is returned. + */ + public function pathLineToVerticalRelative ($y) {} + + /** + * (PECL imagick 2.0.0)
+ * Starts a new sub-path + * @link https://php.net/manual/en/imagickdraw.pathmovetoabsolute.php + * @param float $x

+ * x coordinate of the starting point + *

+ * @param float $y

+ * y coordinate of the starting point + *

+ * @return bool No value is returned. + */ + public function pathMoveToAbsolute ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Starts a new sub-path + * @link https://php.net/manual/en/imagickdraw.pathmovetorelative.php + * @param float $x

+ * target x coordinate + *

+ * @param float $y

+ * target y coordinate + *

+ * @return bool No value is returned. + */ + public function pathMoveToRelative ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Declares the start of a path drawing list + * @link https://php.net/manual/en/imagickdraw.pathstart.php + * @return bool No value is returned. + */ + public function pathStart () {} + + /** + * (PECL imagick 2.0.0)
+ * Draws a polyline + * @link https://php.net/manual/en/imagickdraw.polyline.php + * @param array $coordinates

+ * array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) ) + *

+ * @return bool TRUE on success. + */ + public function polyline (array $coordinates) {} + + /** + * (PECL imagick 2.0.0)
+ * Terminates a clip path definition + * @link https://php.net/manual/en/imagickdraw.popclippath.php + * @return bool No value is returned. + */ + public function popClipPath () {} + + /** + * (PECL imagick 2.0.0)
+ * Terminates a definition list + * @link https://php.net/manual/en/imagickdraw.popdefs.php + * @return bool No value is returned. + */ + public function popDefs () {} + + /** + * (PECL imagick 2.0.0)
+ * Terminates a pattern definition + * @link https://php.net/manual/en/imagickdraw.poppattern.php + * @return bool TRUE on success or FALSE on failure. + */ + public function popPattern () {} + + /** + * (PECL imagick 2.0.0)
+ * Starts a clip path definition + * @link https://php.net/manual/en/imagickdraw.pushclippath.php + * @param string $clip_mask_id

+ * Clip mask Id + *

+ * @return bool No value is returned. + */ + public function pushClipPath ($clip_mask_id) {} + + /** + * (PECL imagick 2.0.0)
+ * Indicates that following commands create named elements for early processing + * @link https://php.net/manual/en/imagickdraw.pushdefs.php + * @return bool No value is returned. + */ + public function pushDefs () {} + + /** + * (PECL imagick 2.0.0)
+ * Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern + * @link https://php.net/manual/en/imagickdraw.pushpattern.php + * @param string $pattern_id

+ * the pattern Id + *

+ * @param float $x

+ * x coordinate of the top-left corner + *

+ * @param float $y

+ * y coordinate of the top-left corner + *

+ * @param float $width

+ * width of the pattern + *

+ * @param float $height

+ * height of the pattern + *

+ * @return bool TRUE on success or FALSE on failure. + */ + public function pushPattern ($pattern_id, $x, $y, $width, $height) {} + + /** + * (PECL imagick 2.0.0)
+ * Renders all preceding drawing commands onto the image + * @link https://php.net/manual/en/imagickdraw.render.php + * @return bool TRUE on success or FALSE on failure. + */ + public function render () {} + + /** + * (PECL imagick 2.0.0)
+ * Applies the specified rotation to the current coordinate space + * @link https://php.net/manual/en/imagickdraw.rotate.php + * @param float $degrees

+ * degrees to rotate + *

+ * @return bool No value is returned. + */ + public function rotate ($degrees) {} + + /** + * (PECL imagick 2.0.0)
+ * Adjusts the scaling factor + * @link https://php.net/manual/en/imagickdraw.scale.php + * @param float $x

+ * horizontal factor + *

+ * @param float $y

+ * vertical factor + *

+ * @return bool No value is returned. + */ + public function scale ($x, $y) {} + + /** + * (PECL imagick 2.0.0)
+ * Associates a named clipping path with the image + * @link https://php.net/manual/en/imagickdraw.setclippath.php + * @param string $clip_mask

+ * the clipping path name + *

+ * @return bool No value is returned. + */ + public function setClipPath ($clip_mask) {} + + /** + * (PECL imagick 2.0.0)
+ * Set the polygon fill rule to be used by the clipping path + * @link https://php.net/manual/en/imagickdraw.setcliprule.php + * @param int $fill_rule

+ * FILLRULE_ constant + *

+ * @return bool No value is returned. + */ + public function setClipRule ($fill_rule) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the interpretation of clip path units + * @link https://php.net/manual/en/imagickdraw.setclipunits.php + * @param int $clip_units

+ * the number of clip units + *

+ * @return bool No value is returned. + */ + public function setClipUnits ($clip_units) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the opacity to use when drawing using the fill color or fill texture + * @link https://php.net/manual/en/imagickdraw.setfillopacity.php + * @param float $fillOpacity

+ * the fill opacity + *

+ * @return bool No value is returned. + */ + public function setFillOpacity ($fillOpacity) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the URL to use as a fill pattern for filling objects + * @link https://php.net/manual/en/imagickdraw.setfillpatternurl.php + * @param string $fill_url

+ * URL to use to obtain fill pattern. + *

+ * @return bool TRUE on success or FALSE on failure. + */ + public function setFillPatternURL ($fill_url) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the fill rule to use while drawing polygons + * @link https://php.net/manual/en/imagickdraw.setfillrule.php + * @param int $fill_rule

+ * FILLRULE_ constant + *

+ * @return bool No value is returned. + */ + public function setFillRule ($fill_rule) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the text placement gravity + * @link https://php.net/manual/en/imagickdraw.setgravity.php + * @param int $gravity

+ * GRAVITY_ constant + *

+ * @return bool No value is returned. + */ + public function setGravity ($gravity) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the pattern used for stroking object outlines + * @link https://php.net/manual/en/imagickdraw.setstrokepatternurl.php + * @param string $stroke_url

+ * stroke URL + *

+ * @return bool imagick.imagickdraw.return.success; + */ + public function setStrokePatternURL ($stroke_url) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies the offset into the dash pattern to start the dash + * @link https://php.net/manual/en/imagickdraw.setstrokedashoffset.php + * @param float $dash_offset

+ * dash offset + *

+ * @return bool No value is returned. + */ + public function setStrokeDashOffset ($dash_offset) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies the shape to be used at the end of open subpaths when they are stroked + * @link https://php.net/manual/en/imagickdraw.setstrokelinecap.php + * @param int $linecap

+ * LINECAP_ constant + *

+ * @return bool No value is returned. + */ + public function setStrokeLineCap ($linecap) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies the shape to be used at the corners of paths when they are stroked + * @link https://php.net/manual/en/imagickdraw.setstrokelinejoin.php + * @param int $linejoin

+ * LINEJOIN_ constant + *

+ * @return bool No value is returned. + */ + public function setStrokeLineJoin ($linejoin) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies the miter limit + * @link https://php.net/manual/en/imagickdraw.setstrokemiterlimit.php + * @param int $miterlimit

+ * the miter limit + *

+ * @return bool No value is returned. + */ + public function setStrokeMiterLimit ($miterlimit) {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies the opacity of stroked object outlines + * @link https://php.net/manual/en/imagickdraw.setstrokeopacity.php + * @param float $stroke_opacity

+ * stroke opacity. 1.0 is fully opaque + *

+ * @return bool No value is returned. + */ + public function setStrokeOpacity ($stroke_opacity) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the vector graphics + * @link https://php.net/manual/en/imagickdraw.setvectorgraphics.php + * @param string $xml

+ * xml containing the vector graphics + *

+ * @return bool TRUE on success or FALSE on failure. + */ + public function setVectorGraphics ($xml) {} + + /** + * (PECL imagick 2.0.0)
+ * Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw + * @link https://php.net/manual/en/imagickdraw.pop.php + * @return bool TRUE on success and false on failure. + */ + public function pop () {} + + /** + * (PECL imagick 2.0.0)
+ * Clones the current ImagickDraw and pushes it to the stack + * @link https://php.net/manual/en/imagickdraw.push.php + * @return bool TRUE on success or FALSE on failure. + */ + public function push () {} + + /** + * (PECL imagick 2.0.0)
+ * Specifies the pattern of dashes and gaps used to stroke paths + * @link https://php.net/manual/en/imagickdraw.setstrokedasharray.php + * @param array $dashArray

+ * array of floats + *

+ * @return bool TRUE on success. + */ + public function setStrokeDashArray (array $dashArray) {} + + /** + * Sets the opacity to use when drawing using the fill or stroke color or texture. Fully opaque is 1.0. + * + * @param float $opacity + * @return void + * @since 3.4.1 + */ + public function setOpacity($opacity) { } + + /** + * Returns the opacity used when drawing with the fill or stroke color or texture. Fully opaque is 1.0. + * + * @return float + * @since 3.4.1 + */ + public function getOpacity() { } + + /** + * Sets the image font resolution. + * + * @param float $x + * @param float $y + * @return bool + * @since 3.4.1 + */ + public function setFontResolution($x, $y) { } + + /** + * Gets the image X and Y resolution. + * + * @return array + * @since 3.4.1 + */ + public function getFontResolution() { } + + /** + * Returns the direction that will be used when annotating with text. + * @return bool + * @since 3.4.1 + */ + public function getTextDirection() { } + + /** + * Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option. + * + * @param int $direction + * @return bool + * @since 3.4.1 + */ + public function setTextDirection($direction) { } + + /** + * Returns the border color used for drawing bordered objects. + * + * @return ImagickPixel + * @since 3.4.1 + */ + public function getBorderColor() { } + + /** + * Sets the border color to be used for drawing bordered objects. + * @param ImagickPixel $color + * @return bool + * @since 3.4.1 + */ + public function setBorderColor(ImagickPixel $color) { } + + /** + * Obtains the vertical and horizontal resolution. + * + * @return string|null + * @since 3.4.1 + */ + public function getDensity() { } + + /** + * Sets the vertical and horizontal resolution. + * @param string $density_string + * @return bool + * @since 3.4.1 + */ + public function setDensity($density_string) { } +} + +/** + * @link https://php.net/manual/en/class.imagickpixeliterator.php + */ +class ImagickPixelIterator implements Iterator { + + /** + * (PECL imagick 2.0.0)
+ * The ImagickPixelIterator constructor + * @link https://php.net/manual/en/imagickpixeliterator.construct.php + * @param Imagick $wand + */ + public function __construct (Imagick $wand) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns a new pixel iterator + * @link https://php.net/manual/en/imagickpixeliterator.newpixeliterator.php + * @param Imagick $wand + * @return bool TRUE on success. Throwing ImagickPixelIteratorException. + * @throws ImagickPixelIteratorException + */ + public function newPixelIterator (Imagick $wand) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns a new pixel iterator + * @link https://php.net/manual/en/imagickpixeliterator.newpixelregioniterator.php + * @param Imagick $wand + * @param int $x + * @param int $y + * @param int $columns + * @param int $rows + * @return bool a new ImagickPixelIterator on success; on failure, throws ImagickPixelIteratorException + * @throws ImagickPixelIteratorException + */ + public function newPixelRegionIterator (Imagick $wand, $x, $y, $columns, $rows) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the current pixel iterator row + * @link https://php.net/manual/en/imagickpixeliterator.getiteratorrow.php + * @return int the integer offset of the row, throwing ImagickPixelIteratorException on error. + * @throws ImagickPixelIteratorException on error + */ + public function getIteratorRow () {} + + /** + * (PECL imagick 2.0.0)
+ * Set the pixel iterator row + * @link https://php.net/manual/en/imagickpixeliterator.setiteratorrow.php + * @param int $row + * @return bool TRUE on success. + */ + public function setIteratorRow ($row) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the pixel iterator to the first pixel row + * @link https://php.net/manual/en/imagickpixeliterator.setiteratorfirstrow.php + * @return bool TRUE on success. + */ + public function setIteratorFirstRow () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the pixel iterator to the last pixel row + * @link https://php.net/manual/en/imagickpixeliterator.setiteratorlastrow.php + * @return bool TRUE on success. + */ + public function setIteratorLastRow () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the previous row + * @link https://php.net/manual/en/imagickpixeliterator.getpreviousiteratorrow.php + * @return array the previous row as an array of ImagickPixelWand objects from the + * ImagickPixelIterator, throwing ImagickPixelIteratorException on error. + * @throws ImagickPixelIteratorException on error + */ + public function getPreviousIteratorRow () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the current row of ImagickPixel objects + * @link https://php.net/manual/en/imagickpixeliterator.getcurrentiteratorrow.php + * @return array a row as an array of ImagickPixel objects that can themselves be iterated. + */ + public function getCurrentIteratorRow () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the next row of the pixel iterator + * @link https://php.net/manual/en/imagickpixeliterator.getnextiteratorrow.php + * @return array the next row as an array of ImagickPixel objects, throwing + * ImagickPixelIteratorException on error. + * @throws ImagickPixelIteratorException on error + */ + public function getNextIteratorRow () {} + + /** + * (PECL imagick 2.0.0)
+ * Resets the pixel iterator + * @link https://php.net/manual/en/imagickpixeliterator.resetiterator.php + * @return bool TRUE on success. + */ + public function resetIterator () {} + + /** + * (PECL imagick 2.0.0)
+ * Syncs the pixel iterator + * @link https://php.net/manual/en/imagickpixeliterator.synciterator.php + * @return bool TRUE on success. + */ + public function syncIterator () {} + + /** + * (PECL imagick 2.0.0)
+ * Deallocates resources associated with a PixelIterator + * @link https://php.net/manual/en/imagickpixeliterator.destroy.php + * @return bool TRUE on success. + */ + public function destroy () {} + + /** + * (PECL imagick 2.0.0)
+ * Clear resources associated with a PixelIterator + * @link https://php.net/manual/en/imagickpixeliterator.clear.php + * @return bool TRUE on success. + */ + public function clear () {} + + /** + * @param Imagick $Imagick + */ + public static function getpixeliterator (Imagick $Imagick) {} + + /** + * @param Imagick $Imagick + * @param $x + * @param $y + * @param $columns + * @param $rows + */ + public static function getpixelregioniterator (Imagick $Imagick, $x, $y, $columns, $rows) {} + + public function key () {} + + public function next () {} + + public function rewind () {} + + public function current () {} + + public function valid () {} + +} + +/** + * @method clone() + * @link https://php.net/manual/en/class.imagickpixel.php + */ +class ImagickPixel { + + /** + * (PECL imagick 2.0.0)
+ * Returns the normalized HSL color of the ImagickPixel object + * @link https://php.net/manual/en/imagickpixel.gethsl.php + * @return array the HSL value in an array with the keys "hue", + * "saturation", and "luminosity". Throws ImagickPixelException on failure. + * @throws ImagickPixelException on failure + */ + public function getHSL () {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the normalized HSL color + * @link https://php.net/manual/en/imagickpixel.sethsl.php + * @param float $hue

+ * The normalized value for hue, described as a fractional arc + * (between 0 and 1) of the hue circle, where the zero value is + * red. + *

+ * @param float $saturation

+ * The normalized value for saturation, with 1 as full saturation. + *

+ * @param float $luminosity

+ * The normalized value for luminosity, on a scale from black at + * 0 to white at 1, with the full HS value at 0.5 luminosity. + *

+ * @return bool TRUE on success. + */ + public function setHSL ($hue, $saturation, $luminosity) {} + + public function getColorValueQuantum () {} + + /** + * @param $color_value + */ + public function setColorValueQuantum ($color_value) {} + + public function getIndex () {} + + /** + * @param $index + */ + public function setIndex ($index) {} + + /** + * (PECL imagick 2.0.0)
+ * The ImagickPixel constructor + * @link https://php.net/manual/en/imagickpixel.construct.php + * @param string $color [optional]

+ * The optional color string to use as the initial value of this object. + *

+ */ + public function __construct ($color = null) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the color + * @link https://php.net/manual/en/imagickpixel.setcolor.php + * @param string $color

+ * The color definition to use in order to initialise the + * ImagickPixel object. + *

+ * @return bool TRUE if the specified color was set, FALSE otherwise. + */ + public function setColor ($color) {} + + /** + * (PECL imagick 2.0.0)
+ * Sets the normalized value of one of the channels + * @link https://php.net/manual/en/imagickpixel.setcolorvalue.php + * @param int $color

+ * One of the Imagick color constants e.g. \Imagick::COLOR_GREEN or \Imagick::COLOR_ALPHA. + *

+ * @param float $value

+ * The value to set this channel to, ranging from 0 to 1. + *

+ * @return bool TRUE on success. + */ + public function setColorValue ($color, $value) {} + + /** + * (PECL imagick 2.0.0)
+ * Gets the normalized value of the provided color channel + * @link https://php.net/manual/en/imagickpixel.getcolorvalue.php + * @param int $color

+ * The color to get the value of, specified as one of the Imagick color + * constants. This can be one of the RGB colors, CMYK colors, alpha and + * opacity e.g (Imagick::COLOR_BLUE, Imagick::COLOR_MAGENTA). + *

+ * @return float The value of the channel, as a normalized floating-point number, throwing + * ImagickPixelException on error. + * @throws ImagickPixelException on error + */ + public function getColorValue ($color) {} + + /** + * (PECL imagick 2.0.0)
+ * Clears resources associated with this object + * @link https://php.net/manual/en/imagickpixel.clear.php + * @return bool TRUE on success. + */ + public function clear () {} + + /** + * (PECL imagick 2.0.0)
+ * Deallocates resources associated with this object + * @link https://php.net/manual/en/imagickpixel.destroy.php + * @return bool TRUE on success. + */ + public function destroy () {} + + /** + * (PECL imagick 2.0.0)
+ * Check the distance between this color and another + * @link https://php.net/manual/en/imagickpixel.issimilar.php + * @param ImagickPixel $color

+ * The ImagickPixel object to compare this object against. + *

+ * @param float $fuzz

+ * The maximum distance within which to consider these colors as similar. + * The theoretical maximum for this value is the square root of three + * (1.732). + *

+ * @return bool TRUE on success. + */ + public function isSimilar (ImagickPixel $color, $fuzz) {} + + /** + * (No version information available, might only be in SVN)
+ * Check the distance between this color and another + * @link https://php.net/manual/en/imagickpixel.ispixelsimilar.php + * @param ImagickPixel $color

+ * The ImagickPixel object to compare this object against. + *

+ * @param float $fuzz

+ * The maximum distance within which to consider these colors as similar. + * The theoretical maximum for this value is the square root of three + * (1.732). + *

+ * @return bool TRUE on success. + */ + public function isPixelSimilar (ImagickPixel $color, $fuzz) {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the color + * @link https://php.net/manual/en/imagickpixel.getcolor.php + * @param bool $normalized [optional]

+ * Normalize the color values + *

+ * @return array An array of channel values, each normalized if TRUE is given as param. Throws + * ImagickPixelException on error. + * @throws ImagickPixelException on error. + */ + public function getColor ($normalized = false) {} + + /** + * (PECL imagick 2.1.0)
+ * Returns the color as a string + * @link https://php.net/manual/en/imagickpixel.getcolorasstring.php + * @return string the color of the ImagickPixel object as a string. + */ + public function getColorAsString () {} + + /** + * (PECL imagick 2.0.0)
+ * Returns the color count associated with this color + * @link https://php.net/manual/en/imagickpixel.getcolorcount.php + * @return int the color count as an integer on success, throws + * ImagickPixelException on failure. + * @throws ImagickPixelException on failure. + */ + public function getColorCount () {} + + /** + * @param $colorCount + */ + public function setColorCount ($colorCount) {} + + + /** + * Returns true if the distance between two colors is less than the specified distance. The fuzz value should be in the range 0-QuantumRange.
+ * The maximum value represents the longest possible distance in the colorspace. e.g. from RGB(0, 0, 0) to RGB(255, 255, 255) for the RGB colorspace + * @link https://php.net/manual/en/imagickpixel.ispixelsimilarquantum.php + * @param string $pixel + * @param string $fuzz + * @return bool + * @since 3.3.0 + */ + public function isPixelSimilarQuantum($color, $fuzz) { } + + /** + * Returns the color of the pixel in an array as Quantum values. If ImageMagick was compiled as HDRI these will be floats, otherwise they will be integers. + * @link https://php.net/manual/en/imagickpixel.getcolorquantum.php + * @return mixed The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int. + * @since 3.3.0 + */ + public function getColorQuantum() { } + + /** + * Sets the color count associated with this color from another ImagickPixel object. + * + * @param ImagickPixel $srcPixel + * @return bool + * @since 3.4.1 + */ + public function setColorFromPixel(ImagickPixel $srcPixel) { } +} +// End of imagick v.3.2.0RC1 + +// Start of Imagick v3.3.0RC1 + +/** + * @link https://php.net/manual/en/class.imagickkernel.php + */ +class ImagickKernel { + /** + * Attach another kernel to this kernel to allow them to both be applied in a single morphology or filter function. Returns the new combined kernel. + * @link https://php.net/manual/en/imagickkernel.addkernel.php + * @param ImagickKernel $imagickKernel + * @return void + * @since 3.3.0 + */ + public function addKernel(ImagickKernel $imagickKernel) { } + + /** + * Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels. + * @link https://php.net/manual/en/imagickkernel.addunitykernel.php + * @return void + * @since 3.3.0 + */ + public function addUnityKernel() { } + + /** + * Create a kernel from a builtin in kernel. See https://www.imagemagick.org/Usage/morphology/#kernel for examples.
+ * Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2"); + * @link https://php.net/manual/en/imagickkernel.frombuiltin.php + * @param string $kernelType The type of kernel to build e.g. \Imagick::KERNEL_DIAMOND + * @param string $kernelString A string that describes the parameters e.g. "4,2.5" + * @return void + * @since 3.3.0 + */ + public static function fromBuiltin($kernelType, $kernelString) { } + + /** + * Create a kernel from a builtin in kernel. See https://www.imagemagick.org/Usage/morphology/#kernel for examples.
+ * Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2"); + * @link https://php.net/manual/en/imagickkernel.frombuiltin.php + * @see https://www.imagemagick.org/Usage/morphology/#kernel + * @param array $matrix A matrix (i.e. 2d array) of values that define the kernel. Each element should be either a float value, or FALSE if that element shouldn't be used by the kernel. + * @param array $origin [optional] Which element of the kernel should be used as the origin pixel. e.g. For a 3x3 matrix specifying the origin as [2, 2] would specify that the bottom right element should be the origin pixel. + * @return ImagickKernel + * @since 3.3.0 + */ + public static function fromMatrix($matrix, $origin) { } + + /** + * Get the 2d matrix of values used in this kernel. The elements are either float for elements that are used or 'false' if the element should be skipped. + * @link https://php.net/manual/en/imagickkernel.getmatrix.php + * @return array A matrix (2d array) of the values that represent the kernel. + * @since 3.3.0 + */ + public function getMatrix() { } + + /** + * ScaleKernelInfo() scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags).
+ * The exact behaviour of this function depends on the normalization type being used please see https://www.imagemagick.org/api/morphology.php#ScaleKernelInfo for details.
+ * Flag should be one of Imagick::NORMALIZE_KERNEL_VALUE, Imagick::NORMALIZE_KERNEL_CORRELATE, Imagick::NORMALIZE_KERNEL_PERCENT or not set. + * @link https://php.net/manual/en/imagickkernel.scale.php + * @see https://www.imagemagick.org/api/morphology.php#ScaleKernelInfo + * @return void + * @since 3.3.0 + */ + public function scale() { } + + /** + * Separates a linked set of kernels and returns an array of ImagickKernels. + * @link https://php.net/manual/en/imagickkernel.separate.php + * @return void + * @since 3.3.0 + */ + public function seperate() { } +} diff --git a/.phan/stubs/misc.php b/.phan/stubs/misc.php new file mode 100644 index 000000000..344626701 --- /dev/null +++ b/.phan/stubs/misc.php @@ -0,0 +1,11 @@ + + * @copyright 2021 smiley + * @license MIT + */ + +class GdImage{} diff --git a/.scrutinizer.yml b/.scrutinizer.yml new file mode 100644 index 000000000..2a7e7028b --- /dev/null +++ b/.scrutinizer.yml @@ -0,0 +1,16 @@ +build: + nodes: + analysis: + tests: + override: + - php-scrutinizer-run + environment: + php: 8.0.0 + +filter: + excluded_paths: + - examples/* + - tests/* + - vendor/* + - .github/* + - .phan/* diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..dac852818 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Smiley + +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. diff --git a/NOTICE b/NOTICE new file mode 100644 index 000000000..98764e2ba --- /dev/null +++ b/NOTICE @@ -0,0 +1,13 @@ +Copyright 2007 ZXing authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 000000000..6d7669861 --- /dev/null +++ b/README.md @@ -0,0 +1,109 @@ +# chillerlan/php-qrcode + +A PHP 7.4+ QR Code library based on the [implementation](https://github.com/kazuhikoarase/qrcode-generator) by [Kazuhiko Arase](https://github.com/kazuhikoarase), +namespaced, cleaned up, improved and other stuff. + +[![PHP Version Support][php-badge]][php] +[![Packagist version][packagist-badge]][packagist] +[![License][license-badge]][license] +[![CodeCov][coverage-badge]][coverage] +[![Scrunitizer CI][scrutinizer-badge]][scrutinizer] +[![Packagist downloads][downloads-badge]][downloads]
+[![Continuous Integration][gh-action-badge]][gh-action] +[![phpDocs][gh-docs-badge]][gh-docs] + +[php-badge]: https://img.shields.io/packagist/php-v/chillerlan/php-qrcode?logo=php&color=8892BF +[php]: https://www.php.net/supported-versions.php +[packagist-badge]: https://img.shields.io/packagist/v/chillerlan/php-qrcode.svg?logo=packagist +[packagist]: https://packagist.org/packages/chillerlan/php-qrcode +[license-badge]: https://img.shields.io/github/license/chillerlan/php-qrcode.svg +[license]: https://github.com/chillerlan/php-qrcode/blob/main/LICENSE +[coverage-badge]: https://img.shields.io/codecov/c/github/chillerlan/php-qrcode.svg?logo=codecov +[coverage]: https://codecov.io/github/chillerlan/php-qrcode +[scrutinizer-badge]: https://img.shields.io/scrutinizer/g/chillerlan/php-qrcode.svg?logo=scrutinizer +[scrutinizer]: https://scrutinizer-ci.com/g/chillerlan/php-qrcode +[downloads-badge]: https://img.shields.io/packagist/dt/chillerlan/php-qrcode.svg?logo=packagist +[downloads]: https://packagist.org/packages/chillerlan/php-qrcode/stats +[gh-action-badge]: https://github.com/chillerlan/php-qrcode/workflows/Continuous%20Integration/badge.svg +[gh-action]: https://github.com/chillerlan/php-qrcode/actions?query=workflow%3A%22Continuous+Integration%22 +[gh-docs-badge]: https://github.com/chillerlan/php-qrcode/workflows/Docs/badge.svg +[gh-docs]: https://github.com/chillerlan/php-qrcode/actions?query=workflow%3ADocs + +## Documentation + +See [the wiki](https://github.com/chillerlan/php-qrcode/wiki) for advanced documentation. +An API documentation created with [phpDocumentor](https://www.phpdoc.org/) can be found at https://chillerlan.github.io/php-qrcode/ (WIP). + +### Requirements +- PHP 7.4+ + - `ext-mbstring` + - optional: + - `ext-json`, `ext-gd` + - `ext-imagick` with [ImageMagick](https://imagemagick.org) installed + - [`setasign/fpdf`](https://github.com/setasign/fpdf) for the PDF output module + +### Installation +**requires [composer](https://getcomposer.org)** + +via terminal: `composer require chillerlan/php-qrcode` + +*composer.json* +```json +{ + "require": { + "php": "^7.4", + "chillerlan/php-qrcode": "dev-main" + } +} +``` + +Note: replace `dev-main` with a [version constraint](https://getcomposer.org/doc/articles/versions.md#writing-version-constraints), e.g. `^3.2` - see [releases](https://github.com/chillerlan/php-qrcode/releases) for valid versions. +For PHP version ... + - 7.4+ use `^4.3` + - 7.2+ use `^3.4.1` (PHP 7.2 is EOL and 7.3 soon! v3.4.1 also supports PHP8 - however, it's no longer supported) + - 7.0+ use `^2.0` (PHP 7.0 and 7.1 are EOL!) + - 5.6+ use `^1.0` (please let PHP 5 die!) + +### Quickstart +We want to encode this URI for a mobile authenticator into a QRcode image: +```php +$data = 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net'; + +// quick and simple: +echo 'QR Code'; +``` + +

+ QR codes are awesome! + QR codes are awesome! +

+ +Wait, what was that? Please again, slower! See [Advanced usage](https://github.com/chillerlan/php-qrcode/wiki/Advanced-usage) on the wiki. + +### Framework Integration +- Drupal [Google Authenticator Login `ga_login`](https://www.drupal.org/project/ga_login) +- WordPress [`wp-two-factor-auth`](https://github.com/sjinks/wp-two-factor-auth) +- WordPress [Simple 2FA `simple-2fa`](https://wordpress.org/plugins/simple-2fa/) +- WoltLab Suite [two-step-verification](http://pluginstore.woltlab.com/file/3007-two-step-verification/) +- [Cachet](https://github.com/CachetHQ/Cachet) +- [Appwrite](https://github.com/appwrite/appwrite) +- [twill](https://github.com/area17/twill) +- other uses: [dependents](https://github.com/chillerlan/php-qrcode/network/dependents) / [packages](https://github.com/chillerlan/php-qrcode/network/dependents?dependent_type=PACKAGE) + +### Shameless advertising +Hi, please check out my other projects that are way cooler than qrcodes! + +- [php-oauth-core](https://github.com/chillerlan/php-oauth-core) - an OAuth 1/2 client library along with a bunch of [providers](https://github.com/chillerlan/php-oauth-providers) +- [php-httpinterface](https://github.com/chillerlan/php-httpinterface) - a PSR-7/15/17/18 implemetation +- [php-database](https://github.com/chillerlan/php-database) - a database client & querybuilder for MySQL, Postgres, SQLite, MSSQL, Firebird + +### Disclaimer! +I don't take responsibility for molten CPUs, misled applications, failed log-ins etc.. Use at your own risk! + +#### License notice +Parts of this code are [ported to php](https://github.com/khanamiryan/php-qrcode-detector-decoder) from the [ZXing project](https://github.com/zxing/zxing) and licensed under the Apache License, Version 2.0. + +#### Trademark Notice + +The word "QR Code" is registered trademark of *DENSO WAVE INCORPORATED*
+http://www.denso-wave.com/qrcode/faqpatent-e.html diff --git a/Readme.md b/Readme.md deleted file mode 100644 index 148d036e3..000000000 --- a/Readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# Auto generated API documentation - -The API documentation can be auto generated with [phpDocumentor](https://www.phpdoc.org/). -There is an [online version available](https://chillerlan.github.io/php-qrcode/) via the [gh-pages branch](https://github.com/chillerlan/php-qrcode/tree/gh-pages) that is [automatically deployed](https://github.com/chillerlan/php-qrcode/deployments) on each push to main. - -Locally created docs will appear in this directory. If you'd like to create local docs, please follow these steps: - -- [download phpDocumentor](https://github.com/phpDocumentor/phpDocumentor/releases) v3+ as .phar archive -- run it in the repository root directory: - - on Windows `c:\path\to\php.exe c:\path\to\phpDocumentor.phar --config=phpdoc.xml` - - on Linux just `php /path/to/phpDocumentor.phar --config=phpdoc.xml` -- open [index.html](./index.html) in a browser -- profit! diff --git a/classes/chillerlan-QRCode-Data-AlphaNum.html b/classes/chillerlan-QRCode-Data-AlphaNum.html deleted file mode 100644 index 6aba9cdc5..000000000 --- a/classes/chillerlan-QRCode-Data-AlphaNum.html +++ /dev/null @@ -1,1155 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
-

Documentation

- - - - - -
- -
-
- - - - -
- - -
-

- AlphaNum - - - extends QRDataAbstract - - - - -

- - - -

Alphanumeric mode: 0 to 9, A to Z, space, $ % * + - . / :

- -

ISO/IEC 18004:2000 Section 8.3.3 -ISO/IEC 18004:2000 Section 8.4.3

-
- - - - - - - - -

- Table of Contents - -

- -
-
- $bitBuffer - -  : BitBuffer -
-
a BitBuffer instance
- -
- $datamode - -  : int -
-
the current data mode: Num, Alphanum, Kanji, Byte
- -
- $dcdata - -  : array<string|int, mixed> -
-
ECC temp data
- -
- $ecdata - -  : array<string|int, mixed> -
-
ECC temp data
- -
- $lengthBits - -  : array<string|int, mixed> -
-
mode length bits for the version breakpoints 1-9, 10-26 and 27-40
- -
- $options - -  : SettingsContainerInterface -
-
the options instance
- -
- $strlen - -  : int|null -
-
the string byte count
- -
- $version - -  : int -
-
current QR Code version
- -
- __construct() - -  : mixed -
-
QRDataInterface constructor.
- -
- initMatrix() - -  : QRMatrix -
-
returns a fresh matrix object with the data written for the given $maskPattern
- -
- setData() - -  : QRDataInterface -
-
Sets the data string (internally called by the constructor)
- -
- getCharCode() - -  : int -
-
get the code for the given character
- -
- getLength() - -  : int -
-
returns the byte count of the $data string
- -
- getLengthBits() - -  : int -
-
returns the length bits for the version breakpoints 1-9, 10-26 and 27-40
- -
- getMinimumVersion() - -  : int -
-
returns the minimum version number for the given string
- -
- maskECC() - -  : array<string|int, mixed> -
-
ECC masking
- -
- poly() - -  : array<string|int, mixed> -
-
helper method for the polynomial operations
- -
- write() - -  : void -
-
writes the actual data string to the BitBuffer
- -
- writeBitBuffer() - -  : void -
-
creates a BitBuffer and writes the string data to it
- -
- - - - - - -
-

- Properties - -

-
-

- $bitBuffer - - - -

- - -

a BitBuffer instance

- - - protected - BitBuffer - $bitBuffer - - -
- - - -
-
-

- $datamode - - - -

- - -

the current data mode: Num, Alphanum, Kanji, Byte

- - - protected - int - $datamode - = chillerlanQRCodeQRCode::DATA_ALPHANUM - -
- - - -
-
-

- $dcdata - - - -

- - -

ECC temp data

- - - protected - array<string|int, mixed> - $dcdata - - -
- - - -
-
-

- $ecdata - - - -

- - -

ECC temp data

- - - protected - array<string|int, mixed> - $ecdata - - -
- - - -
-
-

- $lengthBits - - - -

- - -

mode length bits for the version breakpoints 1-9, 10-26 and 27-40

- - - protected - array<string|int, mixed> - $lengthBits - = [9, 11, 13] - -

ISO/IEC 18004:2000 Table 3 - Number of bits in Character Count Indicator

-
- - - -
-
-

- $options - - - -

- - -

the options instance

- - - protected - SettingsContainerInterface - $options - - -
- - - -
-
-

- $strlen - - - -

- - -

the string byte count

- - - protected - int|null - $strlen - = null - -
- - - -
-
-

- $version - - - -

- - -

current QR Code version

- - - protected - int - $version - - -
- - - -
-
- -
-

- Methods - -

-
-

- __construct() - -

- - -

QRDataInterface constructor.

- - - public - __construct(SettingsContainerInterface $options[, string $data = null ]) : mixed - -
- -
Parameters
-
-
- $options - : SettingsContainerInterface -
-
- -
-
- $data - : string - = null
-
- -
-
- - - -
Return values
- mixed - — -
- - -
-
-

- initMatrix() - -

- - -

returns a fresh matrix object with the data written for the given $maskPattern

- - - public - initMatrix(int $maskPattern[, bool $test = null ]) : QRMatrix - -
- -
Parameters
-
-
- $maskPattern - : int -
-
- -
-
- $test - : bool - = null
-
- -
-
- - -
- Tags - -
-
-
- inheritDoc -
-
- -
- -
-
- -
Return values
- QRMatrix - — -
- - -
-
-

- setData() - -

- - -

Sets the data string (internally called by the constructor)

- - - public - setData(string $data) : QRDataInterface - -
- -
Parameters
-
-
- $data - : string -
-
- -
-
- - -
- Tags - -
-
-
- inheritDoc -
-
- -
- -
-
- -
Return values
- QRDataInterface - — -
- - -
-
-

- getCharCode() - -

- - -

get the code for the given character

- - - protected - getCharCode(string $chr) : int - -
- -
Parameters
-
-
- $chr - : string -
-
- -
-
- - -
- Tags - -
-
-
- throws -
-
- QRCodeDataException - -

on an illegal character occurence

-
- -
-
- -
Return values
- int - — -
- - -
-
-

- getLength() - -

- - -

returns the byte count of the $data string

- - - protected - getLength(string $data) : int - -
- -
Parameters
-
-
- $data - : string -
-
- -
-
- - - -
Return values
- int - — -
- - -
-
-

- getLengthBits() - -

- - -

returns the length bits for the version breakpoints 1-9, 10-26 and 27-40

- - - protected - getLengthBits() : int - -
- - - -
- Tags - -
-
-
- throws -
-
- QRCodeDataException - -
- -
-
- codeCoverageIgnore -
-
- -
- -
-
- -
Return values
- int - — -
- - -
-
-

- getMinimumVersion() - -

- - -

returns the minimum version number for the given string

- - - protected - getMinimumVersion() : int - -
- - - -
- Tags - -
-
-
- throws -
-
- QRCodeDataException - -
- -
-
- -
Return values
- int - — -
- - -
- -
-

- poly() - -

- - -

helper method for the polynomial operations

- - - protected - poly(int $key, int $count) : array<string|int, mixed> - -
- -
Parameters
-
-
- $key - : int -
-
- -
-
- $count - : int -
-
- -
-
- - - -
Return values
- array<string|int, mixed> - — -
- - -
-
-

- write() - -

- - -

writes the actual data string to the BitBuffer

- - - protected - write(string $data) : void - -
- -
Parameters
-
-
- $data - : string -
-
- -
-
- - -
- Tags - -
-
-
- inheritdoc -
-
- -
- -
-
- -
Return values
- void - — -
- - -
-
-

- writeBitBuffer() - -

- - -

creates a BitBuffer and writes the string data to it

- - - protected - writeBitBuffer(string $data) : void - -
- -
Parameters
-
-
- $data - : string -
-
- -
-
- - -
- Tags - -
-
-
- throws -
-
- QRCodeException - -

on data overflow

-
- -
-
- -
Return values
- void - — -
- - -
-
- -
-
-
-
-

Search results

- -
-
-
    -
    -
    -
    -
    -
    - - -
    - - - - diff --git a/classes/chillerlan-QRCode-Data-Byte.html b/classes/chillerlan-QRCode-Data-Byte.html deleted file mode 100644 index 0b29cae20..000000000 --- a/classes/chillerlan-QRCode-Data-Byte.html +++ /dev/null @@ -1,1088 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
    -

    Documentation

    - - - - - -
    - -
    -
    - - - - -
    - - -
    -

    - Byte - - - extends QRDataAbstract - - - - -

    - - - -

    Byte mode, ISO-8859-1 or UTF-8

    - -

    ISO/IEC 18004:2000 Section 8.3.4 -ISO/IEC 18004:2000 Section 8.4.4

    -
    - - - - - - - - -

    - Table of Contents - -

    - -
    -
    - $bitBuffer - -  : BitBuffer -
    -
    a BitBuffer instance
    - -
    - $datamode - -  : int -
    -
    the current data mode: Num, Alphanum, Kanji, Byte
    - -
    - $dcdata - -  : array<string|int, mixed> -
    -
    ECC temp data
    - -
    - $ecdata - -  : array<string|int, mixed> -
    -
    ECC temp data
    - -
    - $lengthBits - -  : array<string|int, mixed> -
    -
    mode length bits for the version breakpoints 1-9, 10-26 and 27-40
    - -
    - $options - -  : SettingsContainerInterface -
    -
    the options instance
    - -
    - $strlen - -  : int|null -
    -
    the string byte count
    - -
    - $version - -  : int -
    -
    current QR Code version
    - -
    - __construct() - -  : mixed -
    -
    QRDataInterface constructor.
    - -
    - initMatrix() - -  : QRMatrix -
    -
    returns a fresh matrix object with the data written for the given $maskPattern
    - -
    - setData() - -  : QRDataInterface -
    -
    Sets the data string (internally called by the constructor)
    - -
    - getLength() - -  : int -
    -
    returns the byte count of the $data string
    - -
    - getLengthBits() - -  : int -
    -
    returns the length bits for the version breakpoints 1-9, 10-26 and 27-40
    - -
    - getMinimumVersion() - -  : int -
    -
    returns the minimum version number for the given string
    - -
    - maskECC() - -  : array<string|int, mixed> -
    -
    ECC masking
    - -
    - poly() - -  : array<string|int, mixed> -
    -
    helper method for the polynomial operations
    - -
    - write() - -  : void -
    -
    writes the actual data string to the BitBuffer
    - -
    - writeBitBuffer() - -  : void -
    -
    creates a BitBuffer and writes the string data to it
    - -
    - - - - - - -
    -

    - Properties - -

    -
    -

    - $bitBuffer - - - -

    - - -

    a BitBuffer instance

    - - - protected - BitBuffer - $bitBuffer - - -
    - - - -
    -
    -

    - $datamode - - - -

    - - -

    the current data mode: Num, Alphanum, Kanji, Byte

    - - - protected - int - $datamode - = chillerlanQRCodeQRCode::DATA_BYTE - -
    - - - -
    -
    -

    - $dcdata - - - -

    - - -

    ECC temp data

    - - - protected - array<string|int, mixed> - $dcdata - - -
    - - - -
    -
    -

    - $ecdata - - - -

    - - -

    ECC temp data

    - - - protected - array<string|int, mixed> - $ecdata - - -
    - - - -
    -
    -

    - $lengthBits - - - -

    - - -

    mode length bits for the version breakpoints 1-9, 10-26 and 27-40

    - - - protected - array<string|int, mixed> - $lengthBits - = [8, 16, 16] - -

    ISO/IEC 18004:2000 Table 3 - Number of bits in Character Count Indicator

    -
    - - - -
    -
    -

    - $options - - - -

    - - -

    the options instance

    - - - protected - SettingsContainerInterface - $options - - -
    - - - -
    -
    -

    - $strlen - - - -

    - - -

    the string byte count

    - - - protected - int|null - $strlen - = null - -
    - - - -
    -
    -

    - $version - - - -

    - - -

    current QR Code version

    - - - protected - int - $version - - -
    - - - -
    -
    - -
    -

    - Methods - -

    -
    -

    - __construct() - -

    - - -

    QRDataInterface constructor.

    - - - public - __construct(SettingsContainerInterface $options[, string $data = null ]) : mixed - -
    - -
    Parameters
    -
    -
    - $options - : SettingsContainerInterface -
    -
    - -
    -
    - $data - : string - = null
    -
    - -
    -
    - - - -
    Return values
    - mixed - — -
    - - -
    -
    -

    - initMatrix() - -

    - - -

    returns a fresh matrix object with the data written for the given $maskPattern

    - - - public - initMatrix(int $maskPattern[, bool $test = null ]) : QRMatrix - -
    - -
    Parameters
    -
    -
    - $maskPattern - : int -
    -
    - -
    -
    - $test - : bool - = null
    -
    - -
    -
    - - -
    - Tags - -
    -
    -
    - inheritDoc -
    -
    - -
    - -
    -
    - -
    Return values
    - QRMatrix - — -
    - - -
    -
    -

    - setData() - -

    - - -

    Sets the data string (internally called by the constructor)

    - - - public - setData(string $data) : QRDataInterface - -
    - -
    Parameters
    -
    -
    - $data - : string -
    -
    - -
    -
    - - -
    - Tags - -
    -
    -
    - inheritDoc -
    -
    - -
    - -
    -
    - -
    Return values
    - QRDataInterface - — -
    - - -
    -
    -

    - getLength() - -

    - - -

    returns the byte count of the $data string

    - - - protected - getLength(string $data) : int - -
    - -
    Parameters
    -
    -
    - $data - : string -
    -
    - -
    -
    - - - -
    Return values
    - int - — -
    - - -
    -
    -

    - getLengthBits() - -

    - - -

    returns the length bits for the version breakpoints 1-9, 10-26 and 27-40

    - - - protected - getLengthBits() : int - -
    - - - -
    - Tags - -
    -
    -
    - throws -
    -
    - QRCodeDataException - -
    - -
    -
    - codeCoverageIgnore -
    -
    - -
    - -
    -
    - -
    Return values
    - int - — -
    - - -
    -
    -

    - getMinimumVersion() - -

    - - -

    returns the minimum version number for the given string

    - - - protected - getMinimumVersion() : int - -
    - - - -
    - Tags - -
    -
    -
    - throws -
    -
    - QRCodeDataException - -
    - -
    -
    - -
    Return values
    - int - — -
    - - -
    - -
    -

    - poly() - -

    - - -

    helper method for the polynomial operations

    - - - protected - poly(int $key, int $count) : array<string|int, mixed> - -
    - -
    Parameters
    -
    -
    - $key - : int -
    -
    - -
    -
    - $count - : int -
    -
    - -
    -
    - - - -
    Return values
    - array<string|int, mixed> - — -
    - - -
    -
    -

    - write() - -

    - - -

    writes the actual data string to the BitBuffer

    - - - protected - write(string $data) : void - -
    - -
    Parameters
    -
    -
    - $data - : string -
    -
    - -
    -
    - - -
    - Tags - -
    -
    -
    - inheritdoc -
    -
    - -
    - -
    -
    - -
    Return values
    - void - — -
    - - -
    -
    -

    - writeBitBuffer() - -

    - - -

    creates a BitBuffer and writes the string data to it

    - - - protected - writeBitBuffer(string $data) : void - -
    - -
    Parameters
    -
    -
    - $data - : string -
    -
    - -
    -
    - - -
    - Tags - -
    -
    -
    - throws -
    -
    - QRCodeException - -

    on data overflow

    -
    - -
    -
    - -
    Return values
    - void - — -
    - - -
    -
    - -
    -
    -
    -
    -

    Search results

    - -
    -
    -
      -
      -
      -
      -
      -
      - - -
      - - - - diff --git a/classes/chillerlan-QRCode-Data-Kanji.html b/classes/chillerlan-QRCode-Data-Kanji.html deleted file mode 100644 index be4badfc9..000000000 --- a/classes/chillerlan-QRCode-Data-Kanji.html +++ /dev/null @@ -1,1112 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
      -

      Documentation

      - - - - - -
      - -
      -
      - - - - -
      - - -
      -

      - Kanji - - - extends QRDataAbstract - - - - -

      - - - -

      Kanji mode: double-byte characters from the Shift JIS character set

      - -

      ISO/IEC 18004:2000 Section 8.3.5 -ISO/IEC 18004:2000 Section 8.4.5

      -
      - - - - - - - - -

      - Table of Contents - -

      - -
      -
      - $bitBuffer - -  : BitBuffer -
      -
      a BitBuffer instance
      - -
      - $datamode - -  : int -
      -
      the current data mode: Num, Alphanum, Kanji, Byte
      - -
      - $dcdata - -  : array<string|int, mixed> -
      -
      ECC temp data
      - -
      - $ecdata - -  : array<string|int, mixed> -
      -
      ECC temp data
      - -
      - $lengthBits - -  : array<string|int, mixed> -
      -
      mode length bits for the version breakpoints 1-9, 10-26 and 27-40
      - -
      - $options - -  : SettingsContainerInterface -
      -
      the options instance
      - -
      - $strlen - -  : int|null -
      -
      the string byte count
      - -
      - $version - -  : int -
      -
      current QR Code version
      - -
      - __construct() - -  : mixed -
      -
      QRDataInterface constructor.
      - -
      - initMatrix() - -  : QRMatrix -
      -
      returns a fresh matrix object with the data written for the given $maskPattern
      - -
      - setData() - -  : QRDataInterface -
      -
      Sets the data string (internally called by the constructor)
      - -
      - getLength() - -  : int -
      -
      returns the byte count of the $data string
      - -
      - getLengthBits() - -  : int -
      -
      returns the length bits for the version breakpoints 1-9, 10-26 and 27-40
      - -
      - getMinimumVersion() - -  : int -
      -
      returns the minimum version number for the given string
      - -
      - maskECC() - -  : array<string|int, mixed> -
      -
      ECC masking
      - -
      - poly() - -  : array<string|int, mixed> -
      -
      helper method for the polynomial operations
      - -
      - write() - -  : void -
      -
      writes the actual data string to the BitBuffer
      - -
      - writeBitBuffer() - -  : void -
      -
      creates a BitBuffer and writes the string data to it
      - -
      - - - - - - -
      -

      - Properties - -

      -
      -

      - $bitBuffer - - - -

      - - -

      a BitBuffer instance

      - - - protected - BitBuffer - $bitBuffer - - -
      - - - -
      -
      -

      - $datamode - - - -

      - - -

      the current data mode: Num, Alphanum, Kanji, Byte

      - - - protected - int - $datamode - = chillerlanQRCodeQRCode::DATA_KANJI - -
      - - - -
      -
      -

      - $dcdata - - - -

      - - -

      ECC temp data

      - - - protected - array<string|int, mixed> - $dcdata - - -
      - - - -
      -
      -

      - $ecdata - - - -

      - - -

      ECC temp data

      - - - protected - array<string|int, mixed> - $ecdata - - -
      - - - -
      -
      -

      - $lengthBits - - - -

      - - -

      mode length bits for the version breakpoints 1-9, 10-26 and 27-40

      - - - protected - array<string|int, mixed> - $lengthBits - = [8, 10, 12] - -

      ISO/IEC 18004:2000 Table 3 - Number of bits in Character Count Indicator

      -
      - - - -
      -
      -

      - $options - - - -

      - - -

      the options instance

      - - - protected - SettingsContainerInterface - $options - - -
      - - - -
      -
      -

      - $strlen - - - -

      - - -

      the string byte count

      - - - protected - int|null - $strlen - = null - -
      - - - -
      -
      -

      - $version - - - -

      - - -

      current QR Code version

      - - - protected - int - $version - - -
      - - - -
      -
      - -
      -

      - Methods - -

      -
      -

      - __construct() - -

      - - -

      QRDataInterface constructor.

      - - - public - __construct(SettingsContainerInterface $options[, string $data = null ]) : mixed - -
      - -
      Parameters
      -
      -
      - $options - : SettingsContainerInterface -
      -
      - -
      -
      - $data - : string - = null
      -
      - -
      -
      - - - -
      Return values
      - mixed - — -
      - - -
      -
      -

      - initMatrix() - -

      - - -

      returns a fresh matrix object with the data written for the given $maskPattern

      - - - public - initMatrix(int $maskPattern[, bool $test = null ]) : QRMatrix - -
      - -
      Parameters
      -
      -
      - $maskPattern - : int -
      -
      - -
      -
      - $test - : bool - = null
      -
      - -
      -
      - - -
      - Tags - -
      -
      -
      - inheritDoc -
      -
      - -
      - -
      -
      - -
      Return values
      - QRMatrix - — -
      - - -
      -
      -

      - setData() - -

      - - -

      Sets the data string (internally called by the constructor)

      - - - public - setData(string $data) : QRDataInterface - -
      - -
      Parameters
      -
      -
      - $data - : string -
      -
      - -
      -
      - - -
      - Tags - -
      -
      -
      - inheritDoc -
      -
      - -
      - -
      -
      - -
      Return values
      - QRDataInterface - — -
      - - -
      -
      -

      - getLength() - -

      - - -

      returns the byte count of the $data string

      - - - protected - getLength(string $data) : int - -
      - -
      Parameters
      -
      -
      - $data - : string -
      -
      - -
      -
      - - -
      - Tags - -
      -
      -
      - inheritdoc -
      -
      - -
      - -
      -
      - -
      Return values
      - int - — -
      - - -
      -
      -

      - getLengthBits() - -

      - - -

      returns the length bits for the version breakpoints 1-9, 10-26 and 27-40

      - - - protected - getLengthBits() : int - -
      - - - -
      - Tags - -
      -
      -
      - throws -
      -
      - QRCodeDataException - -
      - -
      -
      - codeCoverageIgnore -
      -
      - -
      - -
      -
      - -
      Return values
      - int - — -
      - - -
      -
      -

      - getMinimumVersion() - -

      - - -

      returns the minimum version number for the given string

      - - - protected - getMinimumVersion() : int - -
      - - - -
      - Tags - -
      -
      -
      - throws -
      -
      - QRCodeDataException - -
      - -
      -
      - -
      Return values
      - int - — -
      - - -
      - -
      -

      - poly() - -

      - - -

      helper method for the polynomial operations

      - - - protected - poly(int $key, int $count) : array<string|int, mixed> - -
      - -
      Parameters
      -
      -
      - $key - : int -
      -
      - -
      -
      - $count - : int -
      -
      - -
      -
      - - - -
      Return values
      - array<string|int, mixed> - — -
      - - -
      -
      -

      - write() - -

      - - -

      writes the actual data string to the BitBuffer

      - - - protected - write(string $data) : void - -
      - -
      Parameters
      -
      -
      - $data - : string -
      -
      - -
      -
      - - -
      - Tags - -
      -
      -
      - inheritdoc -
      -
      - -
      - -
      -
      - throws -
      -
      - QRCodeDataException - -

      on an illegal character occurence

      -
      - -
      -
      - -
      Return values
      - void - — -
      - - -
      -
      -

      - writeBitBuffer() - -

      - - -

      creates a BitBuffer and writes the string data to it

      - - - protected - writeBitBuffer(string $data) : void - -
      - -
      Parameters
      -
      -
      - $data - : string -
      -
      - -
      -
      - - -
      - Tags - -
      -
      -
      - throws -
      -
      - QRCodeException - -

      on data overflow

      -
      - -
      -
      - -
      Return values
      - void - — -
      - - -
      -
      - -
      -
      -
      -
      -

      Search results

      - -
      -
      -
        -
        -
        -
        -
        -
        - - -
        - - - - diff --git a/classes/chillerlan-QRCode-Data-MaskPatternTester.html b/classes/chillerlan-QRCode-Data-MaskPatternTester.html deleted file mode 100644 index 2f80b6d89..000000000 --- a/classes/chillerlan-QRCode-Data-MaskPatternTester.html +++ /dev/null @@ -1,650 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
        -

        Documentation

        - - - - - -
        - -
        -
        - - - - -
        - - -
        -

        - MaskPatternTester - - - - -

        - - - -

        Receives a QRDataInterface object and runs the mask pattern tests on it.

        - -

        ISO/IEC 18004:2000 Section 8.8.2 - Evaluation of masking results

        -
        - - -
        - Tags - -
        -
        -
        - see -
        -
        - http://www.thonky.com/qr-code-tutorial/data-masking - -
        - -
        -
        - - - - - - -

        - Table of Contents - -

        - -
        -
        - $dataInterface - -  : QRDataInterface -
        -
        The data interface that contains the data matrix to test
        - -
        - __construct() - -  : mixed -
        -
        Receives the QRDataInterface
        - -
        - getBestMaskPattern() - -  : int -
        -
        shoves a QRMatrix through the MaskPatternTester to find the lowest penalty mask pattern
        - -
        - testPattern() - -  : int -
        -
        Returns the penalty for the given mask pattern
        - -
        - testLevel1() - -  : int -
        -
        Checks for each group of five or more same-colored modules in a row (or column)
        - -
        - testLevel2() - -  : int -
        -
        Checks for each 2x2 area of same-colored modules in the matrix
        - -
        - testLevel3() - -  : int -
        -
        Checks if there are patterns that look similar to the finder patterns (1:1:3:1:1 ratio)
        - -
        - testLevel4() - -  : float -
        -
        Checks if more than half of the modules are dark or light, with a larger penalty for a larger difference
        - -
        - - - - - - -
        -

        - Properties - -

        -
        -

        - $dataInterface - - - -

        - - -

        The data interface that contains the data matrix to test

        - - - protected - QRDataInterface - $dataInterface - - -
        - - - -
        -
        - -
        -

        - Methods - -

        -
        -

        - __construct() - -

        - - -

        Receives the QRDataInterface

        - - - public - __construct(QRDataInterface $dataInterface) : mixed - -
        - -
        Parameters
        -
        -
        - $dataInterface - : QRDataInterface -
        -
        - -
        -
        - - -
        - Tags - -
        -
        -
        - see -
        -
        - QROptions::$maskPattern - -
        - -
        -
        - see -
        -
        - QRMatrix::$maskPattern - -
        - -
        -
        - -
        Return values
        - mixed - — -
        - - -
        -
        -

        - getBestMaskPattern() - -

        - - -

        shoves a QRMatrix through the MaskPatternTester to find the lowest penalty mask pattern

        - - - public - getBestMaskPattern() : int - -
        - - - -
        - Tags - -
        -
        -
        - see -
        -
        - MaskPatternTester - -
        - -
        -
        - -
        Return values
        - int - — -
        - - -
        -
        -

        - testPattern() - -

        - - -

        Returns the penalty for the given mask pattern

        - - - public - testPattern(int $pattern) : int - -
        - -
        Parameters
        -
        -
        - $pattern - : int -
        -
        - -
        -
        - - -
        - Tags - -
        -
        -
        - see -
        -
        - QROptions::$maskPattern - -
        - -
        -
        - see -
        -
        - QRMatrix::$maskPattern - -
        - -
        -
        - -
        Return values
        - int - — -
        - - -
        -
        -

        - testLevel1() - -

        - - -

        Checks for each group of five or more same-colored modules in a row (or column)

        - - - protected - testLevel1(array<string|int, mixed> $m, int $size) : int - -
        - -
        Parameters
        -
        -
        - $m - : array<string|int, mixed> -
        -
        - -
        -
        - $size - : int -
        -
        - -
        -
        - - - -
        Return values
        - int - — -
        - - -
        -
        -

        - testLevel2() - -

        - - -

        Checks for each 2x2 area of same-colored modules in the matrix

        - - - protected - testLevel2(array<string|int, mixed> $m, int $size) : int - -
        - -
        Parameters
        -
        -
        - $m - : array<string|int, mixed> -
        -
        - -
        -
        - $size - : int -
        -
        - -
        -
        - - - -
        Return values
        - int - — -
        - - -
        -
        -

        - testLevel3() - -

        - - -

        Checks if there are patterns that look similar to the finder patterns (1:1:3:1:1 ratio)

        - - - protected - testLevel3(array<string|int, mixed> $m, int $size) : int - -
        - -
        Parameters
        -
        -
        - $m - : array<string|int, mixed> -
        -
        - -
        -
        - $size - : int -
        -
        - -
        -
        - - - -
        Return values
        - int - — -
        - - -
        -
        -

        - testLevel4() - -

        - - -

        Checks if more than half of the modules are dark or light, with a larger penalty for a larger difference

        - - - protected - testLevel4(array<string|int, mixed> $m, int $size) : float - -
        - -
        Parameters
        -
        -
        - $m - : array<string|int, mixed> -
        -
        - -
        -
        - $size - : int -
        -
        - -
        -
        - - - -
        Return values
        - float - — -
        - - -
        -
        - -
        -
        -
        -
        -

        Search results

        - -
        -
        -
          -
          -
          -
          -
          -
          - - -
          - - - - diff --git a/classes/chillerlan-QRCode-Data-Number.html b/classes/chillerlan-QRCode-Data-Number.html deleted file mode 100644 index 51e624a1d..000000000 --- a/classes/chillerlan-QRCode-Data-Number.html +++ /dev/null @@ -1,1155 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
          -

          Documentation

          - - - - - -
          - -
          -
          - - - - -
          - - -
          -

          - Number - - - extends QRDataAbstract - - - - -

          - - - -

          Numeric mode: decimal digits 0 to 9

          - -

          ISO/IEC 18004:2000 Section 8.3.2 -ISO/IEC 18004:2000 Section 8.4.2

          -
          - - - - - - - - -

          - Table of Contents - -

          - -
          -
          - $bitBuffer - -  : BitBuffer -
          -
          a BitBuffer instance
          - -
          - $datamode - -  : int -
          -
          the current data mode: Num, Alphanum, Kanji, Byte
          - -
          - $dcdata - -  : array<string|int, mixed> -
          -
          ECC temp data
          - -
          - $ecdata - -  : array<string|int, mixed> -
          -
          ECC temp data
          - -
          - $lengthBits - -  : array<string|int, mixed> -
          -
          mode length bits for the version breakpoints 1-9, 10-26 and 27-40
          - -
          - $options - -  : SettingsContainerInterface -
          -
          the options instance
          - -
          - $strlen - -  : int|null -
          -
          the string byte count
          - -
          - $version - -  : int -
          -
          current QR Code version
          - -
          - __construct() - -  : mixed -
          -
          QRDataInterface constructor.
          - -
          - initMatrix() - -  : QRMatrix -
          -
          returns a fresh matrix object with the data written for the given $maskPattern
          - -
          - setData() - -  : QRDataInterface -
          -
          Sets the data string (internally called by the constructor)
          - -
          - getLength() - -  : int -
          -
          returns the byte count of the $data string
          - -
          - getLengthBits() - -  : int -
          -
          returns the length bits for the version breakpoints 1-9, 10-26 and 27-40
          - -
          - getMinimumVersion() - -  : int -
          -
          returns the minimum version number for the given string
          - -
          - maskECC() - -  : array<string|int, mixed> -
          -
          ECC masking
          - -
          - parseInt() - -  : int -
          -
          get the code for the given numeric string
          - -
          - poly() - -  : array<string|int, mixed> -
          -
          helper method for the polynomial operations
          - -
          - write() - -  : void -
          -
          writes the actual data string to the BitBuffer
          - -
          - writeBitBuffer() - -  : void -
          -
          creates a BitBuffer and writes the string data to it
          - -
          - - - - - - -
          -

          - Properties - -

          -
          -

          - $bitBuffer - - - -

          - - -

          a BitBuffer instance

          - - - protected - BitBuffer - $bitBuffer - - -
          - - - -
          -
          -

          - $datamode - - - -

          - - -

          the current data mode: Num, Alphanum, Kanji, Byte

          - - - protected - int - $datamode - = chillerlanQRCodeQRCode::DATA_NUMBER - -
          - - - -
          -
          -

          - $dcdata - - - -

          - - -

          ECC temp data

          - - - protected - array<string|int, mixed> - $dcdata - - -
          - - - -
          -
          -

          - $ecdata - - - -

          - - -

          ECC temp data

          - - - protected - array<string|int, mixed> - $ecdata - - -
          - - - -
          -
          -

          - $lengthBits - - - -

          - - -

          mode length bits for the version breakpoints 1-9, 10-26 and 27-40

          - - - protected - array<string|int, mixed> - $lengthBits - = [10, 12, 14] - -

          ISO/IEC 18004:2000 Table 3 - Number of bits in Character Count Indicator

          -
          - - - -
          -
          -

          - $options - - - -

          - - -

          the options instance

          - - - protected - SettingsContainerInterface - $options - - -
          - - - -
          -
          -

          - $strlen - - - -

          - - -

          the string byte count

          - - - protected - int|null - $strlen - = null - -
          - - - -
          -
          -

          - $version - - - -

          - - -

          current QR Code version

          - - - protected - int - $version - - -
          - - - -
          -
          - -
          -

          - Methods - -

          -
          -

          - __construct() - -

          - - -

          QRDataInterface constructor.

          - - - public - __construct(SettingsContainerInterface $options[, string $data = null ]) : mixed - -
          - -
          Parameters
          -
          -
          - $options - : SettingsContainerInterface -
          -
          - -
          -
          - $data - : string - = null
          -
          - -
          -
          - - - -
          Return values
          - mixed - — -
          - - -
          -
          -

          - initMatrix() - -

          - - -

          returns a fresh matrix object with the data written for the given $maskPattern

          - - - public - initMatrix(int $maskPattern[, bool $test = null ]) : QRMatrix - -
          - -
          Parameters
          -
          -
          - $maskPattern - : int -
          -
          - -
          -
          - $test - : bool - = null
          -
          - -
          -
          - - -
          - Tags - -
          -
          -
          - inheritDoc -
          -
          - -
          - -
          -
          - -
          Return values
          - QRMatrix - — -
          - - -
          -
          -

          - setData() - -

          - - -

          Sets the data string (internally called by the constructor)

          - - - public - setData(string $data) : QRDataInterface - -
          - -
          Parameters
          -
          -
          - $data - : string -
          -
          - -
          -
          - - -
          - Tags - -
          -
          -
          - inheritDoc -
          -
          - -
          - -
          -
          - -
          Return values
          - QRDataInterface - — -
          - - -
          -
          -

          - getLength() - -

          - - -

          returns the byte count of the $data string

          - - - protected - getLength(string $data) : int - -
          - -
          Parameters
          -
          -
          - $data - : string -
          -
          - -
          -
          - - - -
          Return values
          - int - — -
          - - -
          -
          -

          - getLengthBits() - -

          - - -

          returns the length bits for the version breakpoints 1-9, 10-26 and 27-40

          - - - protected - getLengthBits() : int - -
          - - - -
          - Tags - -
          -
          -
          - throws -
          -
          - QRCodeDataException - -
          - -
          -
          - codeCoverageIgnore -
          -
          - -
          - -
          -
          - -
          Return values
          - int - — -
          - - -
          -
          -

          - getMinimumVersion() - -

          - - -

          returns the minimum version number for the given string

          - - - protected - getMinimumVersion() : int - -
          - - - -
          - Tags - -
          -
          -
          - throws -
          -
          - QRCodeDataException - -
          - -
          -
          - -
          Return values
          - int - — -
          - - -
          - -
          -

          - parseInt() - -

          - - -

          get the code for the given numeric string

          - - - protected - parseInt(string $string) : int - -
          - -
          Parameters
          -
          -
          - $string - : string -
          -
          - -
          -
          - - -
          - Tags - -
          -
          -
          - throws -
          -
          - QRCodeDataException - -

          on an illegal character occurence

          -
          - -
          -
          - -
          Return values
          - int - — -
          - - -
          -
          -

          - poly() - -

          - - -

          helper method for the polynomial operations

          - - - protected - poly(int $key, int $count) : array<string|int, mixed> - -
          - -
          Parameters
          -
          -
          - $key - : int -
          -
          - -
          -
          - $count - : int -
          -
          - -
          -
          - - - -
          Return values
          - array<string|int, mixed> - — -
          - - -
          -
          -

          - write() - -

          - - -

          writes the actual data string to the BitBuffer

          - - - protected - write(string $data) : void - -
          - -
          Parameters
          -
          -
          - $data - : string -
          -
          - -
          -
          - - -
          - Tags - -
          -
          -
          - inheritdoc -
          -
          - -
          - -
          -
          - -
          Return values
          - void - — -
          - - -
          -
          -

          - writeBitBuffer() - -

          - - -

          creates a BitBuffer and writes the string data to it

          - - - protected - writeBitBuffer(string $data) : void - -
          - -
          Parameters
          -
          -
          - $data - : string -
          -
          - -
          -
          - - -
          - Tags - -
          -
          -
          - throws -
          -
          - QRCodeException - -

          on data overflow

          -
          - -
          -
          - -
          Return values
          - void - — -
          - - -
          -
          - -
          -
          -
          -
          -

          Search results

          - -
          -
          -
            -
            -
            -
            -
            -
            - - -
            - - - - diff --git a/classes/chillerlan-QRCode-Data-QRCodeDataException.html b/classes/chillerlan-QRCode-Data-QRCodeDataException.html deleted file mode 100644 index d23359727..000000000 --- a/classes/chillerlan-QRCode-Data-QRCodeDataException.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
            -

            Documentation

            - - - - - -
            - -
            -
            - - - - -
            - - - -
            -
            -
            -

            Search results

            - -
            -
            -
              -
              -
              -
              -
              -
              - - -
              - - - - diff --git a/classes/chillerlan-QRCode-Data-QRDataAbstract.html b/classes/chillerlan-QRCode-Data-QRDataAbstract.html deleted file mode 100644 index fe4de6fd6..000000000 --- a/classes/chillerlan-QRCode-Data-QRDataAbstract.html +++ /dev/null @@ -1,1099 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
              -

              Documentation

              - - - - - -
              - -
              -
              - - - - -
              - - -
              -

              - QRDataAbstract - - - - - implements - QRDataInterface - -

              - - - -

              Processes the binary data and maps it on a matrix which is then being returned

              - -
              - - - - - - -

              - Interfaces, Classes and Traits - -

              - -
              -
              QRDataInterface
              -
              Specifies the methods reqired for the data modules (Number, Alphanum, Byte and Kanji) -and holds version information in several constants
              - - -
              - - -

              - Table of Contents - -

              - -
              -
              - $bitBuffer - -  : BitBuffer -
              -
              a BitBuffer instance
              - -
              - $datamode - -  : int -
              -
              the current data mode: Num, Alphanum, Kanji, Byte
              - -
              - $dcdata - -  : array<string|int, mixed> -
              -
              ECC temp data
              - -
              - $ecdata - -  : array<string|int, mixed> -
              -
              ECC temp data
              - -
              - $lengthBits - -  : array<string|int, mixed> -
              -
              mode length bits for the version breakpoints 1-9, 10-26 and 27-40
              - -
              - $options - -  : SettingsContainerInterface -
              -
              the options instance
              - -
              - $strlen - -  : int|null -
              -
              the string byte count
              - -
              - $version - -  : int -
              -
              current QR Code version
              - -
              - __construct() - -  : mixed -
              -
              QRDataInterface constructor.
              - -
              - initMatrix() - -  : QRMatrix -
              -
              returns a fresh matrix object with the data written for the given $maskPattern
              - -
              - setData() - -  : QRDataInterface -
              -
              Sets the data string (internally called by the constructor)
              - -
              - getLength() - -  : int -
              -
              returns the byte count of the $data string
              - -
              - getLengthBits() - -  : int -
              -
              returns the length bits for the version breakpoints 1-9, 10-26 and 27-40
              - -
              - getMinimumVersion() - -  : int -
              -
              returns the minimum version number for the given string
              - -
              - maskECC() - -  : array<string|int, mixed> -
              -
              ECC masking
              - -
              - poly() - -  : array<string|int, mixed> -
              -
              helper method for the polynomial operations
              - -
              - write() - -  : void -
              -
              writes the actual data string to the BitBuffer
              - -
              - writeBitBuffer() - -  : void -
              -
              creates a BitBuffer and writes the string data to it
              - -
              - - - - - - -
              -

              - Properties - -

              -
              -

              - $bitBuffer - - - -

              - - -

              a BitBuffer instance

              - - - protected - BitBuffer - $bitBuffer - - -
              - - - -
              -
              -

              - $datamode - - - -

              - - -

              the current data mode: Num, Alphanum, Kanji, Byte

              - - - protected - int - $datamode - - -
              - - - -
              -
              -

              - $dcdata - - - -

              - - -

              ECC temp data

              - - - protected - array<string|int, mixed> - $dcdata - - -
              - - - -
              -
              -

              - $ecdata - - - -

              - - -

              ECC temp data

              - - - protected - array<string|int, mixed> - $ecdata - - -
              - - - -
              -
              -

              - $lengthBits - - - -

              - - -

              mode length bits for the version breakpoints 1-9, 10-26 and 27-40

              - - - protected - array<string|int, mixed> - $lengthBits - = [0, 0, 0] - -

              ISO/IEC 18004:2000 Table 3 - Number of bits in Character Count Indicator

              -
              - - - -
              -
              -

              - $options - - - -

              - - -

              the options instance

              - - - protected - SettingsContainerInterface - $options - - -
              - - - -
              -
              -

              - $strlen - - - -

              - - -

              the string byte count

              - - - protected - int|null - $strlen - = null - -
              - - - -
              -
              -

              - $version - - - -

              - - -

              current QR Code version

              - - - protected - int - $version - - -
              - - - -
              -
              - -
              -

              - Methods - -

              -
              -

              - __construct() - -

              - - -

              QRDataInterface constructor.

              - - - public - __construct(SettingsContainerInterface $options[, string $data = null ]) : mixed - -
              - -
              Parameters
              -
              -
              - $options - : SettingsContainerInterface -
              -
              - -
              -
              - $data - : string - = null
              -
              - -
              -
              - - - -
              Return values
              - mixed - — -
              - - -
              -
              -

              - initMatrix() - -

              - - -

              returns a fresh matrix object with the data written for the given $maskPattern

              - - - public - initMatrix(int $maskPattern[, bool $test = null ]) : QRMatrix - -
              - -
              Parameters
              -
              -
              - $maskPattern - : int -
              -
              - -
              -
              - $test - : bool - = null
              -
              - -
              -
              - - -
              - Tags - -
              -
              -
              - inheritDoc -
              -
              - -
              - -
              -
              - -
              Return values
              - QRMatrix - — -
              - - -
              -
              -

              - setData() - -

              - - -

              Sets the data string (internally called by the constructor)

              - - - public - setData(string $data) : QRDataInterface - -
              - -
              Parameters
              -
              -
              - $data - : string -
              -
              - -
              -
              - - -
              - Tags - -
              -
              -
              - inheritDoc -
              -
              - -
              - -
              -
              - -
              Return values
              - QRDataInterface - — -
              - - -
              -
              -

              - getLength() - -

              - - -

              returns the byte count of the $data string

              - - - protected - getLength(string $data) : int - -
              - -
              Parameters
              -
              -
              - $data - : string -
              -
              - -
              -
              - - - -
              Return values
              - int - — -
              - - -
              -
              -

              - getLengthBits() - -

              - - -

              returns the length bits for the version breakpoints 1-9, 10-26 and 27-40

              - - - protected - getLengthBits() : int - -
              - - - -
              - Tags - -
              -
              -
              - throws -
              -
              - QRCodeDataException - -
              - -
              -
              - codeCoverageIgnore -
              -
              - -
              - -
              -
              - -
              Return values
              - int - — -
              - - -
              -
              -

              - getMinimumVersion() - -

              - - -

              returns the minimum version number for the given string

              - - - protected - getMinimumVersion() : int - -
              - - - -
              - Tags - -
              -
              -
              - throws -
              -
              - QRCodeDataException - -
              - -
              -
              - -
              Return values
              - int - — -
              - - -
              - -
              -

              - poly() - -

              - - -

              helper method for the polynomial operations

              - - - protected - poly(int $key, int $count) : array<string|int, mixed> - -
              - -
              Parameters
              -
              -
              - $key - : int -
              -
              - -
              -
              - $count - : int -
              -
              - -
              -
              - - - -
              Return values
              - array<string|int, mixed> - — -
              - - -
              -
              -

              - write() - -

              - - -

              writes the actual data string to the BitBuffer

              - - - protected - abstract write(string $data) : void - -
              - -
              Parameters
              -
              -
              - $data - : string -
              -
              - -
              -
              - - -
              - Tags - -
              -
              -
              - see -
              -
              - QRDataAbstract::writeBitBuffer() - -
              - -
              -
              - -
              Return values
              - void - — -
              - - -
              -
              -

              - writeBitBuffer() - -

              - - -

              creates a BitBuffer and writes the string data to it

              - - - protected - writeBitBuffer(string $data) : void - -
              - -
              Parameters
              -
              -
              - $data - : string -
              -
              - -
              -
              - - -
              - Tags - -
              -
              -
              - throws -
              -
              - QRCodeException - -

              on data overflow

              -
              - -
              -
              - -
              Return values
              - void - — -
              - - -
              -
              - -
              -
              -
              -
              -

              Search results

              - -
              -
              -
                -
                -
                -
                -
                -
                - - -
                - - - - diff --git a/classes/chillerlan-QRCode-Data-QRDataInterface.html b/classes/chillerlan-QRCode-Data-QRDataInterface.html deleted file mode 100644 index 196236ba7..000000000 --- a/classes/chillerlan-QRCode-Data-QRDataInterface.html +++ /dev/null @@ -1,705 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                -

                Documentation

                - - - - - -
                - -
                -
                - - - - -
                - - -
                -

                - QRDataInterface -

                - - - -

                Specifies the methods reqired for the data modules (Number, Alphanum, Byte and Kanji) -and holds version information in several constants

                - -
                - - - - - - - - -

                - Table of Contents - -

                - -
                -
                - CHAR_MAP_ALPHANUM - -  = ['0' => 0, '1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5, '6' => 6, '7' => 7, '8' => 8, '9' => 9, 'A' => 10, 'B' => 11, 'C' => 12, 'D' => 13, 'E' => 14, 'F' => 15, 'G' => 16, 'H' => 17, 'I' => 18, 'J' => 19, 'K' => 20, 'L' => 21, 'M' => 22, 'N' => 23, 'O' => 24, 'P' => 25, 'Q' => 26, 'R' => 27, 'S' => 28, 'T' => 29, 'U' => 30, 'V' => 31, 'W' => 32, 'X' => 33, 'Y' => 34, 'Z' => 35, ' ' => 36, '$' => 37, '%' => 38, '*' => 39, '+' => 40, '-' => 41, '.' => 42, '/' => 43, ':' => 44] -
                -
                ISO/IEC 18004:2000 Table 5
                - -
                - CHAR_MAP_NUMBER - -  = ['0' => 0, '1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5, '6' => 6, '7' => 7, '8' => 8, '9' => 9] -
                -
                - -
                - MAX_BITS - -  = [ - // version => [L, M, Q, H ] - 1 => [152, 128, 104, 72], - 2 => [272, 224, 176, 128], - 3 => [440, 352, 272, 208], - 4 => [640, 512, 384, 288], - 5 => [864, 688, 496, 368], - 6 => [1088, 864, 608, 480], - 7 => [1248, 992, 704, 528], - 8 => [1552, 1232, 880, 688], - 9 => [1856, 1456, 1056, 800], - 10 => [2192, 1728, 1232, 976], - 11 => [2592, 2032, 1440, 1120], - 12 => [2960, 2320, 1648, 1264], - 13 => [3424, 2672, 1952, 1440], - 14 => [3688, 2920, 2088, 1576], - 15 => [4184, 3320, 2360, 1784], - 16 => [4712, 3624, 2600, 2024], - 17 => [5176, 4056, 2936, 2264], - 18 => [5768, 4504, 3176, 2504], - 19 => [6360, 5016, 3560, 2728], - 20 => [6888, 5352, 3880, 3080], - 21 => [7456, 5712, 4096, 3248], - 22 => [8048, 6256, 4544, 3536], - 23 => [8752, 6880, 4912, 3712], - 24 => [9392, 7312, 5312, 4112], - 25 => [10208, 8000, 5744, 4304], - 26 => [10960, 8496, 6032, 4768], - 27 => [11744, 9024, 6464, 5024], - 28 => [12248, 9544, 6968, 5288], - 29 => [13048, 10136, 7288, 5608], - 30 => [13880, 10984, 7880, 5960], - 31 => [14744, 11640, 8264, 6344], - 32 => [15640, 12328, 8920, 6760], - 33 => [16568, 13048, 9368, 7208], - 34 => [17528, 13800, 9848, 7688], - 35 => [18448, 14496, 10288, 7888], - 36 => [19472, 15312, 10832, 8432], - 37 => [20528, 15936, 11408, 8768], - 38 => [21616, 16816, 12016, 9136], - 39 => [22496, 17728, 12656, 9776], - 40 => [23648, 18672, 13328, 10208], -] -
                -
                ISO/IEC 18004:2000 Tables 7-11 - Number of symbol characters and input data capacity for versions 1 to 40
                - -
                - MAX_LENGTH - -  = [ - // v => [NUMERIC => [L, M, Q, H ], ALPHANUM => [L, M, Q, H], BINARY => [L, M, Q, H ], KANJI => [L, M, Q, H ]] // modules - 1 => [[41, 34, 27, 17], [25, 20, 16, 10], [17, 14, 11, 7], [10, 8, 7, 4]], - // 21 - 2 => [[77, 63, 48, 34], [47, 38, 29, 20], [32, 26, 20, 14], [20, 16, 12, 8]], - // 25 - 3 => [[127, 101, 77, 58], [77, 61, 47, 35], [53, 42, 32, 24], [32, 26, 20, 15]], - // 29 - 4 => [[187, 149, 111, 82], [114, 90, 67, 50], [78, 62, 46, 34], [48, 38, 28, 21]], - // 33 - 5 => [[255, 202, 144, 106], [154, 122, 87, 64], [106, 84, 60, 44], [65, 52, 37, 27]], - // 37 - 6 => [[322, 255, 178, 139], [195, 154, 108, 84], [134, 106, 74, 58], [82, 65, 45, 36]], - // 41 - 7 => [[370, 293, 207, 154], [224, 178, 125, 93], [154, 122, 86, 64], [95, 75, 53, 39]], - // 45 - 8 => [[461, 365, 259, 202], [279, 221, 157, 122], [192, 152, 108, 84], [118, 93, 66, 52]], - // 49 - 9 => [[552, 432, 312, 235], [335, 262, 189, 143], [230, 180, 130, 98], [141, 111, 80, 60]], - // 53 - 10 => [[652, 513, 364, 288], [395, 311, 221, 174], [271, 213, 151, 119], [167, 131, 93, 74]], - // 57 - 11 => [[772, 604, 427, 331], [468, 366, 259, 200], [321, 251, 177, 137], [198, 155, 109, 85]], - // 61 - 12 => [[883, 691, 489, 374], [535, 419, 296, 227], [367, 287, 203, 155], [226, 177, 125, 96]], - // 65 - 13 => [[1022, 796, 580, 427], [619, 483, 352, 259], [425, 331, 241, 177], [262, 204, 149, 109]], - // 69 NICE! - 14 => [[1101, 871, 621, 468], [667, 528, 376, 283], [458, 362, 258, 194], [282, 223, 159, 120]], - // 73 - 15 => [[1250, 991, 703, 530], [758, 600, 426, 321], [520, 412, 292, 220], [320, 254, 180, 136]], - // 77 - 16 => [[1408, 1082, 775, 602], [854, 656, 470, 365], [586, 450, 322, 250], [361, 277, 198, 154]], - // 81 - 17 => [[1548, 1212, 876, 674], [938, 734, 531, 408], [644, 504, 364, 280], [397, 310, 224, 173]], - // 85 - 18 => [[1725, 1346, 948, 746], [1046, 816, 574, 452], [718, 560, 394, 310], [442, 345, 243, 191]], - // 89 - 19 => [[1903, 1500, 1063, 813], [1153, 909, 644, 493], [792, 624, 442, 338], [488, 384, 272, 208]], - // 93 - 20 => [[2061, 1600, 1159, 919], [1249, 970, 702, 557], [858, 666, 482, 382], [528, 410, 297, 235]], - // 97 - 21 => [[2232, 1708, 1224, 969], [1352, 1035, 742, 587], [929, 711, 509, 403], [572, 438, 314, 248]], - // 101 - 22 => [[2409, 1872, 1358, 1056], [1460, 1134, 823, 640], [1003, 779, 565, 439], [618, 480, 348, 270]], - // 105 - 23 => [[2620, 2059, 1468, 1108], [1588, 1248, 890, 672], [1091, 857, 611, 461], [672, 528, 376, 284]], - // 109 - 24 => [[2812, 2188, 1588, 1228], [1704, 1326, 963, 744], [1171, 911, 661, 511], [721, 561, 407, 315]], - // 113 - 25 => [[3057, 2395, 1718, 1286], [1853, 1451, 1041, 779], [1273, 997, 715, 535], [784, 614, 440, 330]], - // 117 - 26 => [[3283, 2544, 1804, 1425], [1990, 1542, 1094, 864], [1367, 1059, 751, 593], [842, 652, 462, 365]], - // 121 - 27 => [[3517, 2701, 1933, 1501], [2132, 1637, 1172, 910], [1465, 1125, 805, 625], [902, 692, 496, 385]], - // 125 - 28 => [[3669, 2857, 2085, 1581], [2223, 1732, 1263, 958], [1528, 1190, 868, 658], [940, 732, 534, 405]], - // 129 - 29 => [[3909, 3035, 2181, 1677], [2369, 1839, 1322, 1016], [1628, 1264, 908, 698], [1002, 778, 559, 430]], - // 133 - 30 => [[4158, 3289, 2358, 1782], [2520, 1994, 1429, 1080], [1732, 1370, 982, 742], [1066, 843, 604, 457]], - // 137 - 31 => [[4417, 3486, 2473, 1897], [2677, 2113, 1499, 1150], [1840, 1452, 1030, 790], [1132, 894, 634, 486]], - // 141 - 32 => [[4686, 3693, 2670, 2022], [2840, 2238, 1618, 1226], [1952, 1538, 1112, 842], [1201, 947, 684, 518]], - // 145 - 33 => [[4965, 3909, 2805, 2157], [3009, 2369, 1700, 1307], [2068, 1628, 1168, 898], [1273, 1002, 719, 553]], - // 149 - 34 => [[5253, 4134, 2949, 2301], [3183, 2506, 1787, 1394], [2188, 1722, 1228, 958], [1347, 1060, 756, 590]], - // 153 - 35 => [[5529, 4343, 3081, 2361], [3351, 2632, 1867, 1431], [2303, 1809, 1283, 983], [1417, 1113, 790, 605]], - // 157 - 36 => [[5836, 4588, 3244, 2524], [3537, 2780, 1966, 1530], [2431, 1911, 1351, 1051], [1496, 1176, 832, 647]], - // 161 - 37 => [[6153, 4775, 3417, 2625], [3729, 2894, 2071, 1591], [2563, 1989, 1423, 1093], [1577, 1224, 876, 673]], - // 165 - 38 => [[6479, 5039, 3599, 2735], [3927, 3054, 2181, 1658], [2699, 2099, 1499, 1139], [1661, 1292, 923, 701]], - // 169 - 39 => [[6743, 5313, 3791, 2927], [4087, 3220, 2298, 1774], [2809, 2213, 1579, 1219], [1729, 1362, 972, 750]], - // 173 - 40 => [[7089, 5596, 3993, 3057], [4296, 3391, 2420, 1852], [2953, 2331, 1663, 1273], [1817, 1435, 1024, 784]], -] -
                -
                ISO/IEC 18004:2000 Tables 7-11 - Number of symbol characters and input data capacity for versions 1 to 40
                - -
                - RSBLOCKS - -  = [1 => [[1, 0, 26, 19], [1, 0, 26, 16], [1, 0, 26, 13], [1, 0, 26, 9]], 2 => [[1, 0, 44, 34], [1, 0, 44, 28], [1, 0, 44, 22], [1, 0, 44, 16]], 3 => [[1, 0, 70, 55], [1, 0, 70, 44], [2, 0, 35, 17], [2, 0, 35, 13]], 4 => [[1, 0, 100, 80], [2, 0, 50, 32], [2, 0, 50, 24], [4, 0, 25, 9]], 5 => [[1, 0, 134, 108], [2, 0, 67, 43], [2, 2, 33, 15], [2, 2, 33, 11]], 6 => [[2, 0, 86, 68], [4, 0, 43, 27], [4, 0, 43, 19], [4, 0, 43, 15]], 7 => [[2, 0, 98, 78], [4, 0, 49, 31], [2, 4, 32, 14], [4, 1, 39, 13]], 8 => [[2, 0, 121, 97], [2, 2, 60, 38], [4, 2, 40, 18], [4, 2, 40, 14]], 9 => [[2, 0, 146, 116], [3, 2, 58, 36], [4, 4, 36, 16], [4, 4, 36, 12]], 10 => [[2, 2, 86, 68], [4, 1, 69, 43], [6, 2, 43, 19], [6, 2, 43, 15]], 11 => [[4, 0, 101, 81], [1, 4, 80, 50], [4, 4, 50, 22], [3, 8, 36, 12]], 12 => [[2, 2, 116, 92], [6, 2, 58, 36], [4, 6, 46, 20], [7, 4, 42, 14]], 13 => [[4, 0, 133, 107], [8, 1, 59, 37], [8, 4, 44, 20], [12, 4, 33, 11]], 14 => [[3, 1, 145, 115], [4, 5, 64, 40], [11, 5, 36, 16], [11, 5, 36, 12]], 15 => [[5, 1, 109, 87], [5, 5, 65, 41], [5, 7, 54, 24], [11, 7, 36, 12]], 16 => [[5, 1, 122, 98], [7, 3, 73, 45], [15, 2, 43, 19], [3, 13, 45, 15]], 17 => [[1, 5, 135, 107], [10, 1, 74, 46], [1, 15, 50, 22], [2, 17, 42, 14]], 18 => [[5, 1, 150, 120], [9, 4, 69, 43], [17, 1, 50, 22], [2, 19, 42, 14]], 19 => [[3, 4, 141, 113], [3, 11, 70, 44], [17, 4, 47, 21], [9, 16, 39, 13]], 20 => [[3, 5, 135, 107], [3, 13, 67, 41], [15, 5, 54, 24], [15, 10, 43, 15]], 21 => [[4, 4, 144, 116], [17, 0, 68, 42], [17, 6, 50, 22], [19, 6, 46, 16]], 22 => [[2, 7, 139, 111], [17, 0, 74, 46], [7, 16, 54, 24], [34, 0, 37, 13]], 23 => [[4, 5, 151, 121], [4, 14, 75, 47], [11, 14, 54, 24], [16, 14, 45, 15]], 24 => [[6, 4, 147, 117], [6, 14, 73, 45], [11, 16, 54, 24], [30, 2, 46, 16]], 25 => [[8, 4, 132, 106], [8, 13, 75, 47], [7, 22, 54, 24], [22, 13, 45, 15]], 26 => [[10, 2, 142, 114], [19, 4, 74, 46], [28, 6, 50, 22], [33, 4, 46, 16]], 27 => [[8, 4, 152, 122], [22, 3, 73, 45], [8, 26, 53, 23], [12, 28, 45, 15]], 28 => [[3, 10, 147, 117], [3, 23, 73, 45], [4, 31, 54, 24], [11, 31, 45, 15]], 29 => [[7, 7, 146, 116], [21, 7, 73, 45], [1, 37, 53, 23], [19, 26, 45, 15]], 30 => [[5, 10, 145, 115], [19, 10, 75, 47], [15, 25, 54, 24], [23, 25, 45, 15]], 31 => [[13, 3, 145, 115], [2, 29, 74, 46], [42, 1, 54, 24], [23, 28, 45, 15]], 32 => [[17, 0, 145, 115], [10, 23, 74, 46], [10, 35, 54, 24], [19, 35, 45, 15]], 33 => [[17, 1, 145, 115], [14, 21, 74, 46], [29, 19, 54, 24], [11, 46, 45, 15]], 34 => [[13, 6, 145, 115], [14, 23, 74, 46], [44, 7, 54, 24], [59, 1, 46, 16]], 35 => [[12, 7, 151, 121], [12, 26, 75, 47], [39, 14, 54, 24], [22, 41, 45, 15]], 36 => [[6, 14, 151, 121], [6, 34, 75, 47], [46, 10, 54, 24], [2, 64, 45, 15]], 37 => [[17, 4, 152, 122], [29, 14, 74, 46], [49, 10, 54, 24], [24, 46, 45, 15]], 38 => [[4, 18, 152, 122], [13, 32, 74, 46], [48, 14, 54, 24], [42, 32, 45, 15]], 39 => [[20, 4, 147, 117], [40, 7, 75, 47], [43, 22, 54, 24], [10, 67, 45, 15]], 40 => [[19, 6, 148, 118], [18, 31, 75, 47], [34, 34, 54, 24], [20, 61, 45, 15]]] -
                -
                - -
                - initMatrix() - -  : QRMatrix -
                -
                returns a fresh matrix object with the data written for the given $maskPattern
                - -
                - setData() - -  : QRDataInterface -
                -
                Sets the data string (internally called by the constructor)
                - -
                - - - - -
                -

                - Constants - -

                -
                -

                - CHAR_MAP_ALPHANUM - -

                - - - -

                ISO/IEC 18004:2000 Table 5

                - - - public - array<string|int, int> - CHAR_MAP_ALPHANUM - = ['0' => 0, '1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5, '6' => 6, '7' => 7, '8' => 8, '9' => 9, 'A' => 10, 'B' => 11, 'C' => 12, 'D' => 13, 'E' => 14, 'F' => 15, 'G' => 16, 'H' => 17, 'I' => 18, 'J' => 19, 'K' => 20, 'L' => 21, 'M' => 22, 'N' => 23, 'O' => 24, 'P' => 25, 'Q' => 26, 'R' => 27, 'S' => 28, 'T' => 29, 'U' => 30, 'V' => 31, 'W' => 32, 'X' => 33, 'Y' => 34, 'Z' => 35, ' ' => 36, '$' => 37, '%' => 38, '*' => 39, '+' => 40, '-' => 41, '.' => 42, '/' => 43, ':' => 44] - - - -
                - - - -
                -
                -

                - CHAR_MAP_NUMBER - -

                - - - - - - public - array<string|int, int> - CHAR_MAP_NUMBER - = ['0' => 0, '1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5, '6' => 6, '7' => 7, '8' => 8, '9' => 9] - - - -
                - - - -
                -
                -

                - MAX_BITS - -

                - - - -

                ISO/IEC 18004:2000 Tables 7-11 - Number of symbol characters and input data capacity for versions 1 to 40

                - - - public - int - MAX_BITS - = [ - // version => [L, M, Q, H ] - 1 => [152, 128, 104, 72], - 2 => [272, 224, 176, 128], - 3 => [440, 352, 272, 208], - 4 => [640, 512, 384, 288], - 5 => [864, 688, 496, 368], - 6 => [1088, 864, 608, 480], - 7 => [1248, 992, 704, 528], - 8 => [1552, 1232, 880, 688], - 9 => [1856, 1456, 1056, 800], - 10 => [2192, 1728, 1232, 976], - 11 => [2592, 2032, 1440, 1120], - 12 => [2960, 2320, 1648, 1264], - 13 => [3424, 2672, 1952, 1440], - 14 => [3688, 2920, 2088, 1576], - 15 => [4184, 3320, 2360, 1784], - 16 => [4712, 3624, 2600, 2024], - 17 => [5176, 4056, 2936, 2264], - 18 => [5768, 4504, 3176, 2504], - 19 => [6360, 5016, 3560, 2728], - 20 => [6888, 5352, 3880, 3080], - 21 => [7456, 5712, 4096, 3248], - 22 => [8048, 6256, 4544, 3536], - 23 => [8752, 6880, 4912, 3712], - 24 => [9392, 7312, 5312, 4112], - 25 => [10208, 8000, 5744, 4304], - 26 => [10960, 8496, 6032, 4768], - 27 => [11744, 9024, 6464, 5024], - 28 => [12248, 9544, 6968, 5288], - 29 => [13048, 10136, 7288, 5608], - 30 => [13880, 10984, 7880, 5960], - 31 => [14744, 11640, 8264, 6344], - 32 => [15640, 12328, 8920, 6760], - 33 => [16568, 13048, 9368, 7208], - 34 => [17528, 13800, 9848, 7688], - 35 => [18448, 14496, 10288, 7888], - 36 => [19472, 15312, 10832, 8432], - 37 => [20528, 15936, 11408, 8768], - 38 => [21616, 16816, 12016, 9136], - 39 => [22496, 17728, 12656, 9776], - 40 => [23648, 18672, 13328, 10208], -] - - - -
                - - - -
                -
                -

                - MAX_LENGTH - -

                - - - -

                ISO/IEC 18004:2000 Tables 7-11 - Number of symbol characters and input data capacity for versions 1 to 40

                - - - public - int - MAX_LENGTH - = [ - // v => [NUMERIC => [L, M, Q, H ], ALPHANUM => [L, M, Q, H], BINARY => [L, M, Q, H ], KANJI => [L, M, Q, H ]] // modules - 1 => [[41, 34, 27, 17], [25, 20, 16, 10], [17, 14, 11, 7], [10, 8, 7, 4]], - // 21 - 2 => [[77, 63, 48, 34], [47, 38, 29, 20], [32, 26, 20, 14], [20, 16, 12, 8]], - // 25 - 3 => [[127, 101, 77, 58], [77, 61, 47, 35], [53, 42, 32, 24], [32, 26, 20, 15]], - // 29 - 4 => [[187, 149, 111, 82], [114, 90, 67, 50], [78, 62, 46, 34], [48, 38, 28, 21]], - // 33 - 5 => [[255, 202, 144, 106], [154, 122, 87, 64], [106, 84, 60, 44], [65, 52, 37, 27]], - // 37 - 6 => [[322, 255, 178, 139], [195, 154, 108, 84], [134, 106, 74, 58], [82, 65, 45, 36]], - // 41 - 7 => [[370, 293, 207, 154], [224, 178, 125, 93], [154, 122, 86, 64], [95, 75, 53, 39]], - // 45 - 8 => [[461, 365, 259, 202], [279, 221, 157, 122], [192, 152, 108, 84], [118, 93, 66, 52]], - // 49 - 9 => [[552, 432, 312, 235], [335, 262, 189, 143], [230, 180, 130, 98], [141, 111, 80, 60]], - // 53 - 10 => [[652, 513, 364, 288], [395, 311, 221, 174], [271, 213, 151, 119], [167, 131, 93, 74]], - // 57 - 11 => [[772, 604, 427, 331], [468, 366, 259, 200], [321, 251, 177, 137], [198, 155, 109, 85]], - // 61 - 12 => [[883, 691, 489, 374], [535, 419, 296, 227], [367, 287, 203, 155], [226, 177, 125, 96]], - // 65 - 13 => [[1022, 796, 580, 427], [619, 483, 352, 259], [425, 331, 241, 177], [262, 204, 149, 109]], - // 69 NICE! - 14 => [[1101, 871, 621, 468], [667, 528, 376, 283], [458, 362, 258, 194], [282, 223, 159, 120]], - // 73 - 15 => [[1250, 991, 703, 530], [758, 600, 426, 321], [520, 412, 292, 220], [320, 254, 180, 136]], - // 77 - 16 => [[1408, 1082, 775, 602], [854, 656, 470, 365], [586, 450, 322, 250], [361, 277, 198, 154]], - // 81 - 17 => [[1548, 1212, 876, 674], [938, 734, 531, 408], [644, 504, 364, 280], [397, 310, 224, 173]], - // 85 - 18 => [[1725, 1346, 948, 746], [1046, 816, 574, 452], [718, 560, 394, 310], [442, 345, 243, 191]], - // 89 - 19 => [[1903, 1500, 1063, 813], [1153, 909, 644, 493], [792, 624, 442, 338], [488, 384, 272, 208]], - // 93 - 20 => [[2061, 1600, 1159, 919], [1249, 970, 702, 557], [858, 666, 482, 382], [528, 410, 297, 235]], - // 97 - 21 => [[2232, 1708, 1224, 969], [1352, 1035, 742, 587], [929, 711, 509, 403], [572, 438, 314, 248]], - // 101 - 22 => [[2409, 1872, 1358, 1056], [1460, 1134, 823, 640], [1003, 779, 565, 439], [618, 480, 348, 270]], - // 105 - 23 => [[2620, 2059, 1468, 1108], [1588, 1248, 890, 672], [1091, 857, 611, 461], [672, 528, 376, 284]], - // 109 - 24 => [[2812, 2188, 1588, 1228], [1704, 1326, 963, 744], [1171, 911, 661, 511], [721, 561, 407, 315]], - // 113 - 25 => [[3057, 2395, 1718, 1286], [1853, 1451, 1041, 779], [1273, 997, 715, 535], [784, 614, 440, 330]], - // 117 - 26 => [[3283, 2544, 1804, 1425], [1990, 1542, 1094, 864], [1367, 1059, 751, 593], [842, 652, 462, 365]], - // 121 - 27 => [[3517, 2701, 1933, 1501], [2132, 1637, 1172, 910], [1465, 1125, 805, 625], [902, 692, 496, 385]], - // 125 - 28 => [[3669, 2857, 2085, 1581], [2223, 1732, 1263, 958], [1528, 1190, 868, 658], [940, 732, 534, 405]], - // 129 - 29 => [[3909, 3035, 2181, 1677], [2369, 1839, 1322, 1016], [1628, 1264, 908, 698], [1002, 778, 559, 430]], - // 133 - 30 => [[4158, 3289, 2358, 1782], [2520, 1994, 1429, 1080], [1732, 1370, 982, 742], [1066, 843, 604, 457]], - // 137 - 31 => [[4417, 3486, 2473, 1897], [2677, 2113, 1499, 1150], [1840, 1452, 1030, 790], [1132, 894, 634, 486]], - // 141 - 32 => [[4686, 3693, 2670, 2022], [2840, 2238, 1618, 1226], [1952, 1538, 1112, 842], [1201, 947, 684, 518]], - // 145 - 33 => [[4965, 3909, 2805, 2157], [3009, 2369, 1700, 1307], [2068, 1628, 1168, 898], [1273, 1002, 719, 553]], - // 149 - 34 => [[5253, 4134, 2949, 2301], [3183, 2506, 1787, 1394], [2188, 1722, 1228, 958], [1347, 1060, 756, 590]], - // 153 - 35 => [[5529, 4343, 3081, 2361], [3351, 2632, 1867, 1431], [2303, 1809, 1283, 983], [1417, 1113, 790, 605]], - // 157 - 36 => [[5836, 4588, 3244, 2524], [3537, 2780, 1966, 1530], [2431, 1911, 1351, 1051], [1496, 1176, 832, 647]], - // 161 - 37 => [[6153, 4775, 3417, 2625], [3729, 2894, 2071, 1591], [2563, 1989, 1423, 1093], [1577, 1224, 876, 673]], - // 165 - 38 => [[6479, 5039, 3599, 2735], [3927, 3054, 2181, 1658], [2699, 2099, 1499, 1139], [1661, 1292, 923, 701]], - // 169 - 39 => [[6743, 5313, 3791, 2927], [4087, 3220, 2298, 1774], [2809, 2213, 1579, 1219], [1729, 1362, 972, 750]], - // 173 - 40 => [[7089, 5596, 3993, 3057], [4296, 3391, 2420, 1852], [2953, 2331, 1663, 1273], [1817, 1435, 1024, 784]], -] - - - -
                - - -
                - Tags - -
                -
                -
                - see -
                -
                - http://www.qrcode.com/en/about/version.html - -
                - -
                -
                - -
                -
                -

                - RSBLOCKS - -

                - - - - - - public - int - RSBLOCKS - = [1 => [[1, 0, 26, 19], [1, 0, 26, 16], [1, 0, 26, 13], [1, 0, 26, 9]], 2 => [[1, 0, 44, 34], [1, 0, 44, 28], [1, 0, 44, 22], [1, 0, 44, 16]], 3 => [[1, 0, 70, 55], [1, 0, 70, 44], [2, 0, 35, 17], [2, 0, 35, 13]], 4 => [[1, 0, 100, 80], [2, 0, 50, 32], [2, 0, 50, 24], [4, 0, 25, 9]], 5 => [[1, 0, 134, 108], [2, 0, 67, 43], [2, 2, 33, 15], [2, 2, 33, 11]], 6 => [[2, 0, 86, 68], [4, 0, 43, 27], [4, 0, 43, 19], [4, 0, 43, 15]], 7 => [[2, 0, 98, 78], [4, 0, 49, 31], [2, 4, 32, 14], [4, 1, 39, 13]], 8 => [[2, 0, 121, 97], [2, 2, 60, 38], [4, 2, 40, 18], [4, 2, 40, 14]], 9 => [[2, 0, 146, 116], [3, 2, 58, 36], [4, 4, 36, 16], [4, 4, 36, 12]], 10 => [[2, 2, 86, 68], [4, 1, 69, 43], [6, 2, 43, 19], [6, 2, 43, 15]], 11 => [[4, 0, 101, 81], [1, 4, 80, 50], [4, 4, 50, 22], [3, 8, 36, 12]], 12 => [[2, 2, 116, 92], [6, 2, 58, 36], [4, 6, 46, 20], [7, 4, 42, 14]], 13 => [[4, 0, 133, 107], [8, 1, 59, 37], [8, 4, 44, 20], [12, 4, 33, 11]], 14 => [[3, 1, 145, 115], [4, 5, 64, 40], [11, 5, 36, 16], [11, 5, 36, 12]], 15 => [[5, 1, 109, 87], [5, 5, 65, 41], [5, 7, 54, 24], [11, 7, 36, 12]], 16 => [[5, 1, 122, 98], [7, 3, 73, 45], [15, 2, 43, 19], [3, 13, 45, 15]], 17 => [[1, 5, 135, 107], [10, 1, 74, 46], [1, 15, 50, 22], [2, 17, 42, 14]], 18 => [[5, 1, 150, 120], [9, 4, 69, 43], [17, 1, 50, 22], [2, 19, 42, 14]], 19 => [[3, 4, 141, 113], [3, 11, 70, 44], [17, 4, 47, 21], [9, 16, 39, 13]], 20 => [[3, 5, 135, 107], [3, 13, 67, 41], [15, 5, 54, 24], [15, 10, 43, 15]], 21 => [[4, 4, 144, 116], [17, 0, 68, 42], [17, 6, 50, 22], [19, 6, 46, 16]], 22 => [[2, 7, 139, 111], [17, 0, 74, 46], [7, 16, 54, 24], [34, 0, 37, 13]], 23 => [[4, 5, 151, 121], [4, 14, 75, 47], [11, 14, 54, 24], [16, 14, 45, 15]], 24 => [[6, 4, 147, 117], [6, 14, 73, 45], [11, 16, 54, 24], [30, 2, 46, 16]], 25 => [[8, 4, 132, 106], [8, 13, 75, 47], [7, 22, 54, 24], [22, 13, 45, 15]], 26 => [[10, 2, 142, 114], [19, 4, 74, 46], [28, 6, 50, 22], [33, 4, 46, 16]], 27 => [[8, 4, 152, 122], [22, 3, 73, 45], [8, 26, 53, 23], [12, 28, 45, 15]], 28 => [[3, 10, 147, 117], [3, 23, 73, 45], [4, 31, 54, 24], [11, 31, 45, 15]], 29 => [[7, 7, 146, 116], [21, 7, 73, 45], [1, 37, 53, 23], [19, 26, 45, 15]], 30 => [[5, 10, 145, 115], [19, 10, 75, 47], [15, 25, 54, 24], [23, 25, 45, 15]], 31 => [[13, 3, 145, 115], [2, 29, 74, 46], [42, 1, 54, 24], [23, 28, 45, 15]], 32 => [[17, 0, 145, 115], [10, 23, 74, 46], [10, 35, 54, 24], [19, 35, 45, 15]], 33 => [[17, 1, 145, 115], [14, 21, 74, 46], [29, 19, 54, 24], [11, 46, 45, 15]], 34 => [[13, 6, 145, 115], [14, 23, 74, 46], [44, 7, 54, 24], [59, 1, 46, 16]], 35 => [[12, 7, 151, 121], [12, 26, 75, 47], [39, 14, 54, 24], [22, 41, 45, 15]], 36 => [[6, 14, 151, 121], [6, 34, 75, 47], [46, 10, 54, 24], [2, 64, 45, 15]], 37 => [[17, 4, 152, 122], [29, 14, 74, 46], [49, 10, 54, 24], [24, 46, 45, 15]], 38 => [[4, 18, 152, 122], [13, 32, 74, 46], [48, 14, 54, 24], [42, 32, 45, 15]], 39 => [[20, 4, 147, 117], [40, 7, 75, 47], [43, 22, 54, 24], [10, 67, 45, 15]], 40 => [[19, 6, 148, 118], [18, 31, 75, 47], [34, 34, 54, 24], [20, 61, 45, 15]]] - - - -
                - - -
                - Tags - -
                -
                -
                - see -
                -
                - http://www.thonky.com/qr-code-tutorial/error-correction-table - -
                - -
                -
                - -
                -
                - -
                -

                - Methods - -

                -
                -

                - initMatrix() - -

                - - -

                returns a fresh matrix object with the data written for the given $maskPattern

                - - - public - initMatrix(int $maskPattern[, bool $test = null ]) : QRMatrix - -
                - -
                Parameters
                -
                -
                - $maskPattern - : int -
                -
                - -
                -
                - $test - : bool - = null
                -
                - -
                -
                - - - -
                Return values
                - QRMatrix - — -
                - - -
                -
                -

                - setData() - -

                - - -

                Sets the data string (internally called by the constructor)

                - - - public - setData(string $data) : QRDataInterface - -
                - -
                Parameters
                -
                -
                - $data - : string -
                -
                - -
                -
                - - - -
                Return values
                - QRDataInterface - — -
                - - -
                -
                - -
                -
                -
                -
                -

                Search results

                - -
                -
                -
                  -
                  -
                  -
                  -
                  -
                  - - -
                  - - - - diff --git a/classes/chillerlan-QRCode-Data-QRMatrix.html b/classes/chillerlan-QRCode-Data-QRMatrix.html deleted file mode 100644 index cd043a4ae..000000000 --- a/classes/chillerlan-QRCode-Data-QRMatrix.html +++ /dev/null @@ -1,2095 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                  -

                  Documentation

                  - - - - - -
                  - -
                  -
                  - - - - -
                  - - -
                  -

                  - QRMatrix - - - - -

                  - - - -

                  Holds a numerical representation of the final QR Code; -maps the ECC coded binary data and applies the mask pattern

                  - -
                  - - -
                  - Tags - -
                  -
                  -
                  - see -
                  -
                  - http://www.thonky.com/qr-code-tutorial/format-version-information - -
                  - -
                  -
                  - - - - - - -

                  - Table of Contents - -

                  - -
                  -
                  - M_ALIGNMENT - -  = 0xa -
                  -
                  - -
                  - M_DARKMODULE - -  = 0x2 -
                  -
                  - -
                  - M_DATA - -  = 0x4 -
                  -
                  - -
                  - M_FINDER - -  = 0x6 -
                  -
                  - -
                  - M_FINDER_DOT - -  = 0x16 -
                  -
                  - -
                  - M_FORMAT - -  = 0xe -
                  -
                  - -
                  - M_LOGO - -  = 0x14 -
                  -
                  - -
                  - M_NULL - -  = 0x0 -
                  -
                  - -
                  - M_QUIETZONE - -  = 0x12 -
                  -
                  - -
                  - M_SEPARATOR - -  = 0x8 -
                  -
                  - -
                  - M_TEST - -  = 0xff -
                  -
                  - -
                  - M_TIMING - -  = 0xc -
                  -
                  - -
                  - M_VERSION - -  = 0x10 -
                  -
                  - -
                  - alignmentPattern - -  = [1 => [], 2 => [6, 18], 3 => [6, 22], 4 => [6, 26], 5 => [6, 30], 6 => [6, 34], 7 => [6, 22, 38], 8 => [6, 24, 42], 9 => [6, 26, 46], 10 => [6, 28, 50], 11 => [6, 30, 54], 12 => [6, 32, 58], 13 => [6, 34, 62], 14 => [6, 26, 46, 66], 15 => [6, 26, 48, 70], 16 => [6, 26, 50, 74], 17 => [6, 30, 54, 78], 18 => [6, 30, 56, 82], 19 => [6, 30, 58, 86], 20 => [6, 34, 62, 90], 21 => [6, 28, 50, 72, 94], 22 => [6, 26, 50, 74, 98], 23 => [6, 30, 54, 78, 102], 24 => [6, 28, 54, 80, 106], 25 => [6, 32, 58, 84, 110], 26 => [6, 30, 58, 86, 114], 27 => [6, 34, 62, 90, 118], 28 => [6, 26, 50, 74, 98, 122], 29 => [6, 30, 54, 78, 102, 126], 30 => [6, 26, 52, 78, 104, 130], 31 => [6, 30, 56, 82, 108, 134], 32 => [6, 34, 60, 86, 112, 138], 33 => [6, 30, 58, 86, 114, 142], 34 => [6, 34, 62, 90, 118, 146], 35 => [6, 30, 54, 78, 102, 126, 150], 36 => [6, 24, 50, 76, 102, 128, 154], 37 => [6, 28, 54, 80, 106, 132, 158], 38 => [6, 32, 58, 84, 110, 136, 162], 39 => [6, 26, 54, 82, 110, 138, 166], 40 => [6, 30, 58, 86, 114, 142, 170]] -
                  -
                  ISO/IEC 18004:2000 Annex E, Table E.1 - Row/column coordinates of center module of Alignment Patterns
                  - -
                  - formatPattern - -  = [[ - // L - 0b111011111000100, - 0b111001011110011, - 0b111110110101010, - 0b111100010011101, - 0b110011000101111, - 0b110001100011000, - 0b110110001000001, - 0b110100101110110, -], [ - // M - 0b101010000010010, - 0b101000100100101, - 0b101111001111100, - 0b101101101001011, - 0b100010111111001, - 0b100000011001110, - 0b100111110010111, - 0b100101010100000, -], [ - // Q - 0b11010101011111, - 0b11000001101000, - 0b11111100110001, - 0b11101000000110, - 0b10010010110100, - 0b10000110000011, - 0b10111011011010, - 0b10101111101101, -], [ - // H - 0b1011010001001, - 0b1001110111110, - 0b1110011100111, - 0b1100111010000, - 0b11101100010, - 0b1001010101, - 0b110100001100, - 0b100000111011, -]] -
                  -
                  ISO/IEC 18004:2000 Section 8.9 - Format Information
                  - -
                  - versionPattern - -  = [7 => 0b111110010010100, 8 => 0b1000010110111100, 9 => 0b1001101010011001, 10 => 0b1010010011010011, 11 => 0b1011101111110110, 12 => 0b1100011101100010, 13 => 0b1101100001000111, 14 => 0b1110011000001101, 15 => 0b1111100100101000, 16 => 0b10000101101111000, 17 => 0b10001010001011101, 18 => 0b10010101000010111, 19 => 0b10011010100110010, 20 => 0b10100100110100110, 21 => 0b10101011010000011, 22 => 0b10110100011001001, 23 => 0b10111011111101100, 24 => 0b11000111011000100, 25 => 0b11001000111100001, 26 => 0b11010111110101011, 27 => 0b11011000010001110, 28 => 0b11100110000011010, 29 => 0b11101001100111111, 30 => 0b11110110101110101, 31 => 0b11111001001010000, 32 => 0b100000100111010101, 33 => 0b100001011011110000, 34 => 0b100010100010111010, 35 => 0b100011011110011111, 36 => 0b100100101100001011, 37 => 0b100101010000101110, 38 => 0b100110101001100100, 39 => 0b100111010101000001, 40 => 0b101000110001101001] -
                  -
                  ISO/IEC 18004:2000 Annex D, Table D.1 - Version information bit stream for each version
                  - -
                  - $eclevel - -  : int -
                  -
                  the current ECC level
                  - -
                  - $maskPattern - -  : int -
                  -
                  the used mask pattern, set via QRMatrix::mapData()
                  - -
                  - $matrix - -  : array<string|int, mixed> -
                  -
                  the actual matrix data array
                  - -
                  - $moduleCount - -  : int -
                  -
                  the size (side length) of the matrix
                  - -
                  - $version - -  : int -
                  -
                  the current QR Code version number
                  - -
                  - __construct() - -  : mixed -
                  -
                  QRMatrix constructor.
                  - -
                  - check() - -  : bool -
                  -
                  Checks whether a module is true (dark) or false (light)
                  - -
                  - eccLevel() - -  : int -
                  -
                  Returns the current ECC level
                  - -
                  - get() - -  : int -
                  -
                  Returns the value of the module at position [$x, $y]
                  - -
                  - init() - -  : QRMatrix -
                  -
                  shortcut to initialize the matrix
                  - -
                  - mapData() - -  : QRMatrix -
                  -
                  Maps the binary $data array from QRDataInterface::maskECC() on the matrix, -masking the data using $maskPattern (ISO/IEC 18004:2000 Section 8.8)
                  - -
                  - maskPattern() - -  : int -
                  -
                  Returns the current mask pattern
                  - -
                  - matrix() - -  : array<string|int, array<string|int, int>>|array<string|int, array<string|int, bool>> -
                  -
                  Returns the data matrix, returns a pure boolean representation if $boolean is set to true
                  - -
                  - set() - -  : QRMatrix -
                  -
                  Sets the $M_TYPE value for the module at position [$x, $y]
                  - -
                  - setAlignmentPattern() - -  : QRMatrix -
                  -
                  Draws the 5x5 alignment patterns
                  - -
                  - setDarkModule() - -  : QRMatrix -
                  -
                  Sets the "dark module", that is always on the same position 1x1px away from the bottom left finder
                  - -
                  - setFinderPattern() - -  : QRMatrix -
                  -
                  Draws the 7x7 finder patterns in the corners top left/right and bottom left
                  - -
                  - setFormatInfo() - -  : QRMatrix -
                  -
                  Draws the format info along the finder patterns
                  - -
                  - setLogoSpace() - -  : QRMatrix -
                  -
                  Clears a space of $width * $height in order to add a logo or text.
                  - -
                  - setQuietZone() - -  : QRMatrix -
                  -
                  Draws the "quiet zone" of $size around the matrix
                  - -
                  - setSeparators() - -  : QRMatrix -
                  -
                  Draws the separator lines around the finder patterns
                  - -
                  - setTimingPattern() - -  : QRMatrix -
                  -
                  Draws the timing pattern (h/v checkered line between the finder patterns)
                  - -
                  - setVersionNumber() - -  : QRMatrix -
                  -
                  Draws the version information, 2x 3x6 pixel
                  - -
                  - size() - -  : int -
                  -
                  Returns the absoulute size of the matrix, including quiet zone (after setting it).
                  - -
                  - version() - -  : int -
                  -
                  Returns the current version number
                  - -
                  - - - - -
                  -

                  - Constants - -

                  -
                  -

                  - M_ALIGNMENT - -

                  - - - - - - public - int - M_ALIGNMENT - = 0xa - - - -
                  - - - -
                  -
                  -

                  - M_DARKMODULE - -

                  - - - - - - public - int - M_DARKMODULE - = 0x2 - - - -
                  - - - -
                  -
                  -

                  - M_DATA - -

                  - - - - - - public - int - M_DATA - = 0x4 - - - -
                  - - - -
                  -
                  -

                  - M_FINDER - -

                  - - - - - - public - int - M_FINDER - = 0x6 - - - -
                  - - - -
                  -
                  -

                  - M_FINDER_DOT - -

                  - - - - - - public - int - M_FINDER_DOT - = 0x16 - - - -
                  - - - -
                  -
                  -

                  - M_FORMAT - -

                  - - - - - - public - int - M_FORMAT - = 0xe - - - -
                  - - - -
                  -
                  - - - - - - - public - int - M_LOGO - = 0x14 - - - -
                  - - - -
                  -
                  -

                  - M_NULL - -

                  - - - - - - public - int - M_NULL - = 0x0 - - - -
                  - - - -
                  -
                  -

                  - M_QUIETZONE - -

                  - - - - - - public - int - M_QUIETZONE - = 0x12 - - - -
                  - - - -
                  -
                  -

                  - M_SEPARATOR - -

                  - - - - - - public - int - M_SEPARATOR - = 0x8 - - - -
                  - - - -
                  -
                  -

                  - M_TEST - -

                  - - - - - - public - int - M_TEST - = 0xff - - - -
                  - - - -
                  -
                  -

                  - M_TIMING - -

                  - - - - - - public - int - M_TIMING - = 0xc - - - -
                  - - - -
                  -
                  -

                  - M_VERSION - -

                  - - - - - - public - int - M_VERSION - = 0x10 - - - -
                  - - - -
                  -
                  -

                  - alignmentPattern - -

                  - - - -

                  ISO/IEC 18004:2000 Annex E, Table E.1 - Row/column coordinates of center module of Alignment Patterns

                  - - - protected - array<string|int, array<string|int, int>> - alignmentPattern - = [1 => [], 2 => [6, 18], 3 => [6, 22], 4 => [6, 26], 5 => [6, 30], 6 => [6, 34], 7 => [6, 22, 38], 8 => [6, 24, 42], 9 => [6, 26, 46], 10 => [6, 28, 50], 11 => [6, 30, 54], 12 => [6, 32, 58], 13 => [6, 34, 62], 14 => [6, 26, 46, 66], 15 => [6, 26, 48, 70], 16 => [6, 26, 50, 74], 17 => [6, 30, 54, 78], 18 => [6, 30, 56, 82], 19 => [6, 30, 58, 86], 20 => [6, 34, 62, 90], 21 => [6, 28, 50, 72, 94], 22 => [6, 26, 50, 74, 98], 23 => [6, 30, 54, 78, 102], 24 => [6, 28, 54, 80, 106], 25 => [6, 32, 58, 84, 110], 26 => [6, 30, 58, 86, 114], 27 => [6, 34, 62, 90, 118], 28 => [6, 26, 50, 74, 98, 122], 29 => [6, 30, 54, 78, 102, 126], 30 => [6, 26, 52, 78, 104, 130], 31 => [6, 30, 56, 82, 108, 134], 32 => [6, 34, 60, 86, 112, 138], 33 => [6, 30, 58, 86, 114, 142], 34 => [6, 34, 62, 90, 118, 146], 35 => [6, 30, 54, 78, 102, 126, 150], 36 => [6, 24, 50, 76, 102, 128, 154], 37 => [6, 28, 54, 80, 106, 132, 158], 38 => [6, 32, 58, 84, 110, 136, 162], 39 => [6, 26, 54, 82, 110, 138, 166], 40 => [6, 30, 58, 86, 114, 142, 170]] - - - -

                  version -> pattern

                  -
                  - - - -
                  -
                  -

                  - formatPattern - -

                  - - - -

                  ISO/IEC 18004:2000 Section 8.9 - Format Information

                  - - - protected - array<string|int, array<string|int, int>> - formatPattern - = [[ - // L - 0b111011111000100, - 0b111001011110011, - 0b111110110101010, - 0b111100010011101, - 0b110011000101111, - 0b110001100011000, - 0b110110001000001, - 0b110100101110110, -], [ - // M - 0b101010000010010, - 0b101000100100101, - 0b101111001111100, - 0b101101101001011, - 0b100010111111001, - 0b100000011001110, - 0b100111110010111, - 0b100101010100000, -], [ - // Q - 0b11010101011111, - 0b11000001101000, - 0b11111100110001, - 0b11101000000110, - 0b10010010110100, - 0b10000110000011, - 0b10111011011010, - 0b10101111101101, -], [ - // H - 0b1011010001001, - 0b1001110111110, - 0b1110011100111, - 0b1100111010000, - 0b11101100010, - 0b1001010101, - 0b110100001100, - 0b100000111011, -]] - - - -

                  ECC level -> mask pattern

                  -
                  - - - -
                  -
                  -

                  - versionPattern - -

                  - - - -

                  ISO/IEC 18004:2000 Annex D, Table D.1 - Version information bit stream for each version

                  - - - protected - array<string|int, int> - versionPattern - = [7 => 0b111110010010100, 8 => 0b1000010110111100, 9 => 0b1001101010011001, 10 => 0b1010010011010011, 11 => 0b1011101111110110, 12 => 0b1100011101100010, 13 => 0b1101100001000111, 14 => 0b1110011000001101, 15 => 0b1111100100101000, 16 => 0b10000101101111000, 17 => 0b10001010001011101, 18 => 0b10010101000010111, 19 => 0b10011010100110010, 20 => 0b10100100110100110, 21 => 0b10101011010000011, 22 => 0b10110100011001001, 23 => 0b10111011111101100, 24 => 0b11000111011000100, 25 => 0b11001000111100001, 26 => 0b11010111110101011, 27 => 0b11011000010001110, 28 => 0b11100110000011010, 29 => 0b11101001100111111, 30 => 0b11110110101110101, 31 => 0b11111001001010000, 32 => 0b100000100111010101, 33 => 0b100001011011110000, 34 => 0b100010100010111010, 35 => 0b100011011110011111, 36 => 0b100100101100001011, 37 => 0b100101010000101110, 38 => 0b100110101001100100, 39 => 0b100111010101000001, 40 => 0b101000110001101001] - - - -

                  no version pattern for QR Codes < 7

                  -
                  - - - -
                  -
                  - - -
                  -

                  - Properties - -

                  -
                  -

                  - $eclevel - - - -

                  - - -

                  the current ECC level

                  - - - protected - int - $eclevel - - -
                  - - - -
                  -
                  -

                  - $maskPattern - - - -

                  - - -

                  the used mask pattern, set via QRMatrix::mapData()

                  - - - protected - int - $maskPattern - = chillerlanQRCodeQRCode::MASK_PATTERN_AUTO - -
                  - - - -
                  -
                  -

                  - $matrix - - - -

                  - - -

                  the actual matrix data array

                  - - - protected - array<string|int, mixed> - $matrix - - -
                  - - - -
                  -
                  -

                  - $moduleCount - - - -

                  - - -

                  the size (side length) of the matrix

                  - - - protected - int - $moduleCount - - -
                  - - - -
                  -
                  -

                  - $version - - - -

                  - - -

                  the current QR Code version number

                  - - - protected - int - $version - - -
                  - - - -
                  -
                  - -
                  -

                  - Methods - -

                  -
                  -

                  - __construct() - -

                  - - -

                  QRMatrix constructor.

                  - - - public - __construct(int $version, int $eclevel) : mixed - -
                  - -
                  Parameters
                  -
                  -
                  - $version - : int -
                  -
                  - -
                  -
                  - $eclevel - : int -
                  -
                  - -
                  -
                  - - -
                  - Tags - -
                  -
                  -
                  - throws -
                  -
                  - QRCodeDataException - -
                  - -
                  -
                  - -
                  Return values
                  - mixed - — -
                  - - -
                  -
                  -

                  - check() - -

                  - - -

                  Checks whether a module is true (dark) or false (light)

                  - - - public - check(int $x, int $y) : bool - -

                  true => $value >> 8 === $M_TYPE -$value >> 8 > 0

                  -

                  false => $value === $M_TYPE -$value >> 8 === 0

                  -
                  - -
                  Parameters
                  -
                  -
                  - $x - : int -
                  -
                  - -
                  -
                  - $y - : int -
                  -
                  - -
                  -
                  - - - -
                  Return values
                  - bool - — -
                  - - -
                  -
                  -

                  - eccLevel() - -

                  - - -

                  Returns the current ECC level

                  - - - public - eccLevel() : int - -
                  - - - - -
                  Return values
                  - int - — -
                  - - -
                  -
                  -

                  - get() - -

                  - - -

                  Returns the value of the module at position [$x, $y]

                  - - - public - get(int $x, int $y) : int - -
                  - -
                  Parameters
                  -
                  -
                  - $x - : int -
                  -
                  - -
                  -
                  - $y - : int -
                  -
                  - -
                  -
                  - - - -
                  Return values
                  - int - — -
                  - - -
                  -
                  -

                  - init() - -

                  - - -

                  shortcut to initialize the matrix

                  - - - public - init(int $maskPattern[, bool $test = null ]) : QRMatrix - -
                  - -
                  Parameters
                  -
                  -
                  - $maskPattern - : int -
                  -
                  - -
                  -
                  - $test - : bool - = null
                  -
                  - -
                  -
                  - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - mapData() - -

                  - - -

                  Maps the binary $data array from QRDataInterface::maskECC() on the matrix, -masking the data using $maskPattern (ISO/IEC 18004:2000 Section 8.8)

                  - - - public - mapData(array<string|int, int> $data, int $maskPattern) : QRMatrix - -
                  - -
                  Parameters
                  -
                  -
                  - $data - : array<string|int, int> -
                  -
                  -
                  - -
                  -
                  - $maskPattern - : int -
                  -
                  -
                  - -
                  -
                  - - -
                  - Tags - -
                  -
                  -
                  - see -
                  -
                  - QRDataAbstract::maskECC() - -
                  - -
                  -
                  - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - maskPattern() - -

                  - - -

                  Returns the current mask pattern

                  - - - public - maskPattern() : int - -
                  - - - - -
                  Return values
                  - int - — -
                  - - -
                  -
                  -

                  - matrix() - -

                  - - -

                  Returns the data matrix, returns a pure boolean representation if $boolean is set to true

                  - - - public - matrix([bool $boolean = false ]) : array<string|int, array<string|int, int>>|array<string|int, array<string|int, bool>> - -
                  - -
                  Parameters
                  -
                  -
                  - $boolean - : bool - = false
                  -
                  - -
                  -
                  - - - -
                  Return values
                  - array<string|int, array<string|int, int>>|array<string|int, array<string|int, bool>> - — -
                  - - -
                  -
                  -

                  - set() - -

                  - - -

                  Sets the $M_TYPE value for the module at position [$x, $y]

                  - - - public - set(int $x, int $y, bool $value, int $M_TYPE) : QRMatrix - -

                  true => $M_TYPE << 8 -false => $M_TYPE

                  -
                  - -
                  Parameters
                  -
                  -
                  - $x - : int -
                  -
                  - -
                  -
                  - $y - : int -
                  -
                  - -
                  -
                  - $value - : bool -
                  -
                  - -
                  -
                  - $M_TYPE - : int -
                  -
                  - -
                  -
                  - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setAlignmentPattern() - -

                  - - -

                  Draws the 5x5 alignment patterns

                  - - - public - setAlignmentPattern() : QRMatrix - -

                  ISO/IEC 18004:2000 Section 7.3.5

                  -
                  - - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setDarkModule() - -

                  - - -

                  Sets the "dark module", that is always on the same position 1x1px away from the bottom left finder

                  - - - public - setDarkModule() : QRMatrix - -
                  - - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setFinderPattern() - -

                  - - -

                  Draws the 7x7 finder patterns in the corners top left/right and bottom left

                  - - - public - setFinderPattern() : QRMatrix - -

                  ISO/IEC 18004:2000 Section 7.3.2

                  -
                  - - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setFormatInfo() - -

                  - - -

                  Draws the format info along the finder patterns

                  - - - public - setFormatInfo(int $maskPattern[, bool $test = null ]) : QRMatrix - -

                  ISO/IEC 18004:2000 Section 8.9

                  -
                  - -
                  Parameters
                  -
                  -
                  - $maskPattern - : int -
                  -
                  - -
                  -
                  - $test - : bool - = null
                  -
                  - -
                  -
                  - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setLogoSpace() - -

                  - - -

                  Clears a space of $width * $height in order to add a logo or text.

                  - - - public - setLogoSpace(int $width, int $height[, int $startX = null ][, int $startY = null ]) : QRMatrix - -

                  Additionally, the logo space can be positioned within the QR Code - respecting the main functional patterns - -using $startX and $startY. If either of these are null, the logo space will be centered in that direction. -ECC level "H" (30%) is required.

                  -

                  Please note that adding a logo space minimizes the error correction capacity of the QR Code and -created images may become unreadable, especially when printed with a chance to receive damage. -Please test thoroughly before using this feature in production.

                  -

                  This method should be called from within an output module (after the matrix has been filled with data). -Note that there is no restiction on how many times this method could be called on the same matrix instance.

                  -
                  - -
                  Parameters
                  -
                  -
                  - $width - : int -
                  -
                  - -
                  -
                  - $height - : int -
                  -
                  - -
                  -
                  - $startX - : int - = null
                  -
                  - -
                  -
                  - $startY - : int - = null
                  -
                  - -
                  -
                  - - -
                  - Tags - -
                  -
                  -
                  - link -
                  -
                  - https://github.com/chillerlan/php-qrcode/issues/52 - -
                  -
                  - throws -
                  -
                  - QRCodeDataException - -
                  - -
                  -
                  - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setQuietZone() - -

                  - - -

                  Draws the "quiet zone" of $size around the matrix

                  - - - public - setQuietZone([int $size = null ]) : QRMatrix - -

                  ISO/IEC 18004:2000 Section 7.3.7

                  -
                  - -
                  Parameters
                  -
                  -
                  - $size - : int - = null
                  -
                  - -
                  -
                  - - -
                  - Tags - -
                  -
                  -
                  - throws -
                  -
                  - QRCodeDataException - -
                  - -
                  -
                  - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setSeparators() - -

                  - - -

                  Draws the separator lines around the finder patterns

                  - - - public - setSeparators() : QRMatrix - -

                  ISO/IEC 18004:2000 Section 7.3.3

                  -
                  - - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setTimingPattern() - -

                  - - -

                  Draws the timing pattern (h/v checkered line between the finder patterns)

                  - - - public - setTimingPattern() : QRMatrix - -

                  ISO/IEC 18004:2000 Section 7.3.4

                  -
                  - - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - setVersionNumber() - -

                  - - -

                  Draws the version information, 2x 3x6 pixel

                  - - - public - setVersionNumber([bool $test = null ]) : QRMatrix - -

                  ISO/IEC 18004:2000 Section 8.10

                  -
                  - -
                  Parameters
                  -
                  -
                  - $test - : bool - = null
                  -
                  - -
                  -
                  - - - -
                  Return values
                  - QRMatrix - — -
                  - - -
                  -
                  -

                  - size() - -

                  - - -

                  Returns the absoulute size of the matrix, including quiet zone (after setting it).

                  - - - public - size() : int - -

                  size = version * 4 + 17 [ + 2 * quietzone size]

                  -
                  - - - - -
                  Return values
                  - int - — -
                  - - -
                  -
                  -

                  - version() - -

                  - - -

                  Returns the current version number

                  - - - public - version() : int - -
                  - - - - -
                  Return values
                  - int - — -
                  - - -
                  -
                  - -
                  -
                  -
                  -
                  -

                  Search results

                  - -
                  -
                  -
                    -
                    -
                    -
                    -
                    -
                    - - -
                    - - - - diff --git a/classes/chillerlan-QRCode-Helpers-BitBuffer.html b/classes/chillerlan-QRCode-Helpers-BitBuffer.html deleted file mode 100644 index 9bb67ab3d..000000000 --- a/classes/chillerlan-QRCode-Helpers-BitBuffer.html +++ /dev/null @@ -1,467 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                    -

                    Documentation

                    - - - - - -
                    - -
                    -
                    - - - - -
                    - - -
                    -

                    - BitBuffer - - - - -

                    - - - -

                    Holds the raw binary data

                    - -
                    - - - - - - - - -

                    - Table of Contents - -

                    - -
                    -
                    - $buffer - -  : array<string|int, mixed> -
                    -
                    The buffer content
                    - -
                    - $length - -  : int -
                    -
                    Length of the content (bits)
                    - -
                    - clear() - -  : BitBuffer -
                    -
                    clears the buffer
                    - -
                    - getBuffer() - -  : array<string|int, mixed> -
                    -
                    returns the buffer content
                    - -
                    - getLength() - -  : int -
                    -
                    returns the current buffer length
                    - -
                    - put() - -  : BitBuffer -
                    -
                    appends a sequence of bits
                    - -
                    - putBit() - -  : BitBuffer -
                    -
                    appends a single bit
                    - -
                    - - - - - - -
                    -

                    - Properties - -

                    -
                    -

                    - $buffer - - - -

                    - - -

                    The buffer content

                    - - - protected - array<string|int, mixed> - $buffer - = [] - -
                    - - - -
                    -
                    -

                    - $length - - - -

                    - - -

                    Length of the content (bits)

                    - - - protected - int - $length - = 0 - -
                    - - - -
                    -
                    - -
                    -

                    - Methods - -

                    -
                    -

                    - clear() - -

                    - - -

                    clears the buffer

                    - - - public - clear() : BitBuffer - -
                    - - - - -
                    Return values
                    - BitBuffer - — -
                    - - -
                    -
                    -

                    - getBuffer() - -

                    - - -

                    returns the buffer content

                    - - - public - getBuffer() : array<string|int, mixed> - -
                    - - - - -
                    Return values
                    - array<string|int, mixed> - — -
                    - - -
                    -
                    -

                    - getLength() - -

                    - - -

                    returns the current buffer length

                    - - - public - getLength() : int - -
                    - - - - -
                    Return values
                    - int - — -
                    - - -
                    -
                    -

                    - put() - -

                    - - -

                    appends a sequence of bits

                    - - - public - put(int $num, int $length) : BitBuffer - -
                    - -
                    Parameters
                    -
                    -
                    - $num - : int -
                    -
                    - -
                    -
                    - $length - : int -
                    -
                    - -
                    -
                    - - - -
                    Return values
                    - BitBuffer - — -
                    - - -
                    -
                    -

                    - putBit() - -

                    - - -

                    appends a single bit

                    - - - public - putBit(bool $bit) : BitBuffer - -
                    - -
                    Parameters
                    -
                    -
                    - $bit - : bool -
                    -
                    - -
                    -
                    - - - -
                    Return values
                    - BitBuffer - — -
                    - - -
                    -
                    - -
                    -
                    -
                    -
                    -

                    Search results

                    - -
                    -
                    -
                      -
                      -
                      -
                      -
                      -
                      - - -
                      - - - - diff --git a/classes/chillerlan-QRCode-Helpers-Polynomial.html b/classes/chillerlan-QRCode-Helpers-Polynomial.html deleted file mode 100644 index c0222bcce..000000000 --- a/classes/chillerlan-QRCode-Helpers-Polynomial.html +++ /dev/null @@ -1,638 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                      -

                      Documentation

                      - - - - - -
                      - -
                      -
                      - - - - -
                      - - -
                      -

                      - Polynomial - - - - -

                      - - - -

                      Polynomial long division helpers

                      - -
                      - - -
                      - Tags - -
                      -
                      -
                      - see -
                      -
                      - http://www.thonky.com/qr-code-tutorial/error-correction-coding - -
                      - -
                      -
                      - - - - - - -

                      - Table of Contents - -

                      - -
                      -
                      - table - -  = [[1, 0], [2, 0], [4, 1], [8, 25], [16, 2], [32, 50], [64, 26], [128, 198], [29, 3], [58, 223], [116, 51], [232, 238], [205, 27], [135, 104], [19, 199], [38, 75], [76, 4], [152, 100], [45, 224], [90, 14], [180, 52], [117, 141], [234, 239], [201, 129], [143, 28], [3, 193], [6, 105], [12, 248], [24, 200], [48, 8], [96, 76], [192, 113], [157, 5], [39, 138], [78, 101], [156, 47], [37, 225], [74, 36], [148, 15], [53, 33], [106, 53], [212, 147], [181, 142], [119, 218], [238, 240], [193, 18], [159, 130], [35, 69], [70, 29], [140, 181], [5, 194], [10, 125], [20, 106], [40, 39], [80, 249], [160, 185], [93, 201], [186, 154], [105, 9], [210, 120], [185, 77], [111, 228], [222, 114], [161, 166], [95, 6], [190, 191], [97, 139], [194, 98], [153, 102], [47, 221], [94, 48], [188, 253], [101, 226], [202, 152], [137, 37], [15, 179], [30, 16], [60, 145], [120, 34], [240, 136], [253, 54], [231, 208], [211, 148], [187, 206], [107, 143], [214, 150], [177, 219], [127, 189], [254, 241], [225, 210], [223, 19], [163, 92], [91, 131], [182, 56], [113, 70], [226, 64], [217, 30], [175, 66], [67, 182], [134, 163], [17, 195], [34, 72], [68, 126], [136, 110], [13, 107], [26, 58], [52, 40], [104, 84], [208, 250], [189, 133], [103, 186], [206, 61], [129, 202], [31, 94], [62, 155], [124, 159], [248, 10], [237, 21], [199, 121], [147, 43], [59, 78], [118, 212], [236, 229], [197, 172], [151, 115], [51, 243], [102, 167], [204, 87], [133, 7], [23, 112], [46, 192], [92, 247], [184, 140], [109, 128], [218, 99], [169, 13], [79, 103], [158, 74], [33, 222], [66, 237], [132, 49], [21, 197], [42, 254], [84, 24], [168, 227], [77, 165], [154, 153], [41, 119], [82, 38], [164, 184], [85, 180], [170, 124], [73, 17], [146, 68], [57, 146], [114, 217], [228, 35], [213, 32], [183, 137], [115, 46], [230, 55], [209, 63], [191, 209], [99, 91], [198, 149], [145, 188], [63, 207], [126, 205], [252, 144], [229, 135], [215, 151], [179, 178], [123, 220], [246, 252], [241, 190], [255, 97], [227, 242], [219, 86], [171, 211], [75, 171], [150, 20], [49, 42], [98, 93], [196, 158], [149, 132], [55, 60], [110, 57], [220, 83], [165, 71], [87, 109], [174, 65], [65, 162], [130, 31], [25, 45], [50, 67], [100, 216], [200, 183], [141, 123], [7, 164], [14, 118], [28, 196], [56, 23], [112, 73], [224, 236], [221, 127], [167, 12], [83, 111], [166, 246], [81, 108], [162, 161], [89, 59], [178, 82], [121, 41], [242, 157], [249, 85], [239, 170], [195, 251], [155, 96], [43, 134], [86, 177], [172, 187], [69, 204], [138, 62], [9, 90], [18, 203], [36, 89], [72, 95], [144, 176], [61, 156], [122, 169], [244, 160], [245, 81], [247, 11], [243, 245], [251, 22], [235, 235], [203, 122], [139, 117], [11, 44], [22, 215], [44, 79], [88, 174], [176, 213], [125, 233], [250, 230], [233, 231], [207, 173], [131, 232], [27, 116], [54, 214], [108, 244], [216, 234], [173, 168], [71, 80], [142, 88], [1, 175]] -
                      -
                      - -
                      - $num - -  : array<string|int, mixed> -
                      -
                      - -
                      - __construct() - -  : mixed -
                      -
                      Polynomial constructor.
                      - -
                      - getNum() - -  : array<string|int, mixed> -
                      -
                      - -
                      - gexp() - -  : int -
                      -
                      - -
                      - glog() - -  : int -
                      -
                      - -
                      - mod() - -  : Polynomial -
                      -
                      - -
                      - multiply() - -  : Polynomial -
                      -
                      - -
                      - setNum() - -  : Polynomial -
                      -
                      - -
                      - - - - -
                      -

                      - Constants - -

                      -
                      -

                      - table - -

                      - - - - - - protected - mixed - table - = [[1, 0], [2, 0], [4, 1], [8, 25], [16, 2], [32, 50], [64, 26], [128, 198], [29, 3], [58, 223], [116, 51], [232, 238], [205, 27], [135, 104], [19, 199], [38, 75], [76, 4], [152, 100], [45, 224], [90, 14], [180, 52], [117, 141], [234, 239], [201, 129], [143, 28], [3, 193], [6, 105], [12, 248], [24, 200], [48, 8], [96, 76], [192, 113], [157, 5], [39, 138], [78, 101], [156, 47], [37, 225], [74, 36], [148, 15], [53, 33], [106, 53], [212, 147], [181, 142], [119, 218], [238, 240], [193, 18], [159, 130], [35, 69], [70, 29], [140, 181], [5, 194], [10, 125], [20, 106], [40, 39], [80, 249], [160, 185], [93, 201], [186, 154], [105, 9], [210, 120], [185, 77], [111, 228], [222, 114], [161, 166], [95, 6], [190, 191], [97, 139], [194, 98], [153, 102], [47, 221], [94, 48], [188, 253], [101, 226], [202, 152], [137, 37], [15, 179], [30, 16], [60, 145], [120, 34], [240, 136], [253, 54], [231, 208], [211, 148], [187, 206], [107, 143], [214, 150], [177, 219], [127, 189], [254, 241], [225, 210], [223, 19], [163, 92], [91, 131], [182, 56], [113, 70], [226, 64], [217, 30], [175, 66], [67, 182], [134, 163], [17, 195], [34, 72], [68, 126], [136, 110], [13, 107], [26, 58], [52, 40], [104, 84], [208, 250], [189, 133], [103, 186], [206, 61], [129, 202], [31, 94], [62, 155], [124, 159], [248, 10], [237, 21], [199, 121], [147, 43], [59, 78], [118, 212], [236, 229], [197, 172], [151, 115], [51, 243], [102, 167], [204, 87], [133, 7], [23, 112], [46, 192], [92, 247], [184, 140], [109, 128], [218, 99], [169, 13], [79, 103], [158, 74], [33, 222], [66, 237], [132, 49], [21, 197], [42, 254], [84, 24], [168, 227], [77, 165], [154, 153], [41, 119], [82, 38], [164, 184], [85, 180], [170, 124], [73, 17], [146, 68], [57, 146], [114, 217], [228, 35], [213, 32], [183, 137], [115, 46], [230, 55], [209, 63], [191, 209], [99, 91], [198, 149], [145, 188], [63, 207], [126, 205], [252, 144], [229, 135], [215, 151], [179, 178], [123, 220], [246, 252], [241, 190], [255, 97], [227, 242], [219, 86], [171, 211], [75, 171], [150, 20], [49, 42], [98, 93], [196, 158], [149, 132], [55, 60], [110, 57], [220, 83], [165, 71], [87, 109], [174, 65], [65, 162], [130, 31], [25, 45], [50, 67], [100, 216], [200, 183], [141, 123], [7, 164], [14, 118], [28, 196], [56, 23], [112, 73], [224, 236], [221, 127], [167, 12], [83, 111], [166, 246], [81, 108], [162, 161], [89, 59], [178, 82], [121, 41], [242, 157], [249, 85], [239, 170], [195, 251], [155, 96], [43, 134], [86, 177], [172, 187], [69, 204], [138, 62], [9, 90], [18, 203], [36, 89], [72, 95], [144, 176], [61, 156], [122, 169], [244, 160], [245, 81], [247, 11], [243, 245], [251, 22], [235, 235], [203, 122], [139, 117], [11, 44], [22, 215], [44, 79], [88, 174], [176, 213], [125, 233], [250, 230], [233, 231], [207, 173], [131, 232], [27, 116], [54, 214], [108, 244], [216, 234], [173, 168], [71, 80], [142, 88], [1, 175]] - - - -
                      - - -
                      - Tags - -
                      -
                      -
                      - see -
                      -
                      - http://www.thonky.com/qr-code-tutorial/log-antilog-table - -
                      - -
                      -
                      - -
                      -
                      - - -
                      -

                      - Properties - -

                      -
                      -

                      - $num - - - -

                      - - - - - protected - array<string|int, mixed> - $num - = [] - -
                      - - - -
                      -
                      - -
                      -

                      - Methods - -

                      -
                      -

                      - __construct() - -

                      - - -

                      Polynomial constructor.

                      - - - public - __construct([array<string|int, mixed> $num = null ][, int $shift = null ]) : mixed - -
                      - -
                      Parameters
                      -
                      -
                      - $num - : array<string|int, mixed> - = null
                      -
                      - -
                      -
                      - $shift - : int - = null
                      -
                      - -
                      -
                      - - - -
                      Return values
                      - mixed - — -
                      - - -
                      -
                      -

                      - getNum() - -

                      - - - - - public - getNum() : array<string|int, mixed> - -
                      - - - - -
                      Return values
                      - array<string|int, mixed> - — -
                      - - -
                      -
                      -

                      - gexp() - -

                      - - - - - public - gexp(int $n) : int - -
                      - -
                      Parameters
                      -
                      -
                      - $n - : int -
                      -
                      - -
                      -
                      - - - -
                      Return values
                      - int - — -
                      - - -
                      -
                      -

                      - glog() - -

                      - - - - - public - glog(int $n) : int - -
                      - -
                      Parameters
                      -
                      -
                      - $n - : int -
                      -
                      - -
                      -
                      - - -
                      - Tags - -
                      -
                      -
                      - throws -
                      -
                      - QRCodeException - -
                      - -
                      -
                      - -
                      Return values
                      - int - — -
                      - - -
                      -
                      -

                      - mod() - -

                      - - - - - public - mod(array<string|int, int> $e) : Polynomial - -
                      - -
                      Parameters
                      -
                      -
                      - $e - : array<string|int, int> -
                      -
                      -
                      - -
                      -
                      - - - -
                      Return values
                      - Polynomial - — -
                      - - -
                      -
                      -

                      - multiply() - -

                      - - - - - public - multiply(array<string|int, int> $e) : Polynomial - -
                      - -
                      Parameters
                      -
                      -
                      - $e - : array<string|int, int> -
                      -
                      -
                      - -
                      -
                      - - - -
                      Return values
                      - Polynomial - — -
                      - - -
                      -
                      -

                      - setNum() - -

                      - - - - - public - setNum(array<string|int, int> $num[, int|null $shift = null ]) : Polynomial - -
                      - -
                      Parameters
                      -
                      -
                      - $num - : array<string|int, int> -
                      -
                      -
                      - -
                      -
                      - $shift - : int|null - = null
                      -
                      -
                      - -
                      -
                      - - - -
                      Return values
                      - Polynomial - — -
                      - - -
                      -
                      - -
                      -
                      -
                      -
                      -

                      Search results

                      - -
                      -
                      -
                        -
                        -
                        -
                        -
                        -
                        - - -
                        - - - - diff --git a/classes/chillerlan-QRCode-Output-QRCodeOutputException.html b/classes/chillerlan-QRCode-Output-QRCodeOutputException.html deleted file mode 100644 index 96d5195f4..000000000 --- a/classes/chillerlan-QRCode-Output-QRCodeOutputException.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                        -

                        Documentation

                        - - - - - -
                        - -
                        -
                        - - - - -
                        - - - -
                        -
                        -
                        -

                        Search results

                        - -
                        -
                        -
                          -
                          -
                          -
                          -
                          -
                          - - -
                          - - - - diff --git a/classes/chillerlan-QRCode-Output-QRFpdf.html b/classes/chillerlan-QRCode-Output-QRFpdf.html deleted file mode 100644 index ce7338eea..000000000 --- a/classes/chillerlan-QRCode-Output-QRFpdf.html +++ /dev/null @@ -1,809 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                          -

                          Documentation

                          - - - - - -
                          - -
                          -
                          - - - - -
                          - - -
                          -

                          - QRFpdf - - - extends QROutputAbstract - - - - -

                          - - - -

                          QRFpdf output module (requires fpdf)

                          - -
                          - - -
                          - Tags - -
                          -
                          -
                          - see -
                          -
                          - https://github.com/Setasign/FPDF - -
                          - -
                          -
                          - see -
                          -
                          - http://www.fpdf.org/ - -
                          - -
                          -
                          - - - - - - -

                          - Table of Contents - -

                          - -
                          -
                          - $defaultMode - -  : string -
                          -
                          the default output mode of the current output module
                          - -
                          - $length - -  : int -
                          -
                          the side length of the QR image (modules * scale)
                          - -
                          - $matrix - -  : QRMatrix -
                          -
                          the (filled) data matrix object
                          - -
                          - $moduleCount - -  : int -
                          -
                          the current size of the QR matrix
                          - -
                          - $moduleValues - -  : array<string|int, mixed> -
                          -
                          an (optional) array of color values for the several QR matrix parts
                          - -
                          - $options - -  : SettingsContainerInterface -
                          -
                          - -
                          - $outputMode - -  : string -
                          -
                          the current output mode
                          - -
                          - $scale - -  : int -
                          -
                          the current scaling for a QR pixel
                          - -
                          - __construct() - -  : mixed -
                          -
                          QROutputAbstract constructor.
                          - -
                          - dump() - -  : string|FPDF -
                          -
                          generates the output, optionally dumps it to a file, and returns it
                          - -
                          - saveToFile() - -  : bool -
                          -
                          saves the qr data to a file
                          - -
                          - setModuleValues() - -  : void -
                          -
                          Sets the initial module values (clean-up & defaults)
                          - -
                          - - - - - - -
                          -

                          - Properties - -

                          -
                          -

                          - $defaultMode - - - -

                          - - -

                          the default output mode of the current output module

                          - - - protected - string - $defaultMode - - -
                          - - - -
                          -
                          -

                          - $length - - - -

                          - - -

                          the side length of the QR image (modules * scale)

                          - - - protected - int - $length - - -
                          - - - -
                          -
                          -

                          - $matrix - - - -

                          - - -

                          the (filled) data matrix object

                          - - - protected - QRMatrix - $matrix - - -
                          - - - -
                          -
                          -

                          - $moduleCount - - - -

                          - - -

                          the current size of the QR matrix

                          - - - protected - int - $moduleCount - - -
                          - - -
                          - Tags - -
                          -
                          -
                          - see -
                          -
                          - QRMatrix::size() - -
                          - -
                          -
                          - -
                          -
                          -

                          - $moduleValues - - - -

                          - - -

                          an (optional) array of color values for the several QR matrix parts

                          - - - protected - array<string|int, mixed> - $moduleValues - - -
                          - - - -
                          -
                          -

                          - $options - - - -

                          - - - - - protected - SettingsContainerInterface - $options - - -
                          - - - -
                          -
                          -

                          - $outputMode - - - -

                          - - -

                          the current output mode

                          - - - protected - string - $outputMode - - -
                          - - -
                          - Tags - -
                          -
                          -
                          - see -
                          -
                          - QROptions::$outputType - -
                          - -
                          -
                          - -
                          -
                          -

                          - $scale - - - -

                          - - -

                          the current scaling for a QR pixel

                          - - - protected - int - $scale - - -
                          - - -
                          - Tags - -
                          -
                          -
                          - see -
                          -
                          - QROptions::$scale - -
                          - -
                          -
                          - -
                          -
                          - -
                          -

                          - Methods - -

                          -
                          -

                          - __construct() - -

                          - - -

                          QROutputAbstract constructor.

                          - - - public - __construct(SettingsContainerInterface $options, QRMatrix $matrix) : mixed - -
                          - -
                          Parameters
                          -
                          -
                          - $options - : SettingsContainerInterface -
                          -
                          - -
                          -
                          - $matrix - : QRMatrix -
                          -
                          - -
                          -
                          - - - -
                          Return values
                          - mixed - — -
                          - - -
                          -
                          -

                          - dump() - -

                          - - -

                          generates the output, optionally dumps it to a file, and returns it

                          - - - public - dump([string $file = null ]) : string|FPDF - -
                          - -
                          Parameters
                          -
                          -
                          - $file - : string - = null
                          -
                          - -
                          -
                          - - -
                          - Tags - -
                          -
                          -
                          - inheritDoc -
                          -
                          - -
                          - -
                          -
                          - -
                          Return values
                          - string|FPDF - — -
                          - - -
                          -
                          -

                          - saveToFile() - -

                          - - -

                          saves the qr data to a file

                          - - - protected - saveToFile(string $data, string $file) : bool - -
                          - -
                          Parameters
                          -
                          -
                          - $data - : string -
                          -
                          - -
                          -
                          - $file - : string -
                          -
                          - -
                          -
                          - - -
                          - Tags - -
                          -
                          -
                          - see -
                          -
                          - file_put_contents() - -
                          - -
                          -
                          - see -
                          -
                          - QROptions::cachefile - -
                          - -
                          -
                          - throws -
                          -
                          - QRCodeOutputException - -
                          - -
                          -
                          - -
                          Return values
                          - bool - — -
                          - - -
                          -
                          -

                          - setModuleValues() - -

                          - - -

                          Sets the initial module values (clean-up & defaults)

                          - - - protected - setModuleValues() : void - -
                          - - - -
                          - Tags - -
                          -
                          -
                          - inheritDoc -
                          -
                          - -
                          - -
                          -
                          - -
                          Return values
                          - void - — -
                          - - -
                          -
                          - -
                          -
                          -
                          -
                          -

                          Search results

                          - -
                          -
                          -
                            -
                            -
                            -
                            -
                            -
                            - - -
                            - - - - diff --git a/classes/chillerlan-QRCode-Output-QRImage.html b/classes/chillerlan-QRCode-Output-QRImage.html deleted file mode 100644 index a932caa15..000000000 --- a/classes/chillerlan-QRCode-Output-QRImage.html +++ /dev/null @@ -1,1179 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                            -

                            Documentation

                            - - - - - -
                            - -
                            -
                            - - - - -
                            - - -
                            -

                            - QRImage - - - extends QROutputAbstract - - - - -

                            - - - -

                            Converts the matrix into GD images, raw or base64 output (requires ext-gd)

                            - -
                            - - -
                            - Tags - -
                            -
                            -
                            - see -
                            -
                            - http://php.net/manual/book.image.php - -
                            - -
                            -
                            - - - - - - -

                            - Table of Contents - -

                            - -
                            -
                            - TRANSPARENCY_TYPES - -  = [chillerlanQRCodeQRCode::OUTPUT_IMAGE_PNG, chillerlanQRCodeQRCode::OUTPUT_IMAGE_GIF] -
                            -
                            GD image types that support transparency
                            - -
                            - $defaultMode - -  : string -
                            -
                            the default output mode of the current output module
                            - -
                            - $image - -  : resource|GdImage -
                            -
                            The GD image resource
                            - -
                            - $length - -  : int -
                            -
                            the side length of the QR image (modules * scale)
                            - -
                            - $matrix - -  : QRMatrix -
                            -
                            the (filled) data matrix object
                            - -
                            - $moduleCount - -  : int -
                            -
                            the current size of the QR matrix
                            - -
                            - $moduleValues - -  : array<string|int, mixed> -
                            -
                            an (optional) array of color values for the several QR matrix parts
                            - -
                            - $options - -  : SettingsContainerInterface -
                            -
                            - -
                            - $outputMode - -  : string -
                            -
                            the current output mode
                            - -
                            - $scale - -  : int -
                            -
                            the current scaling for a QR pixel
                            - -
                            - __construct() - -  : mixed -
                            -
                            QROutputAbstract constructor.
                            - -
                            - dump() - -  : string|resource|GdImage -
                            -
                            generates the output, optionally dumps it to a file, and returns it
                            - -
                            - dumpImage() - -  : string -
                            -
                            Creates the final image by calling the desired GD output function
                            - -
                            - gif() - -  : void -
                            -
                            Jiff - like... JitHub!
                            - -
                            - jpg() - -  : void -
                            -
                            JPG output
                            - -
                            - png() - -  : void -
                            -
                            PNG output
                            - -
                            - saveToFile() - -  : bool -
                            -
                            saves the qr data to a file
                            - -
                            - setModuleValues() - -  : void -
                            -
                            Sets the initial module values (clean-up & defaults)
                            - -
                            - setPixel() - -  : void -
                            -
                            Creates a single QR pixel with the given settings
                            - -
                            - - - - -
                            -

                            - Constants - -

                            -
                            -

                            - TRANSPARENCY_TYPES - -

                            - - - -

                            GD image types that support transparency

                            - - - protected - array<string|int, string> - TRANSPARENCY_TYPES - = [chillerlanQRCodeQRCode::OUTPUT_IMAGE_PNG, chillerlanQRCodeQRCode::OUTPUT_IMAGE_GIF] - - - -
                            - - - -
                            -
                            - - -
                            -

                            - Properties - -

                            -
                            -

                            - $defaultMode - - - -

                            - - -

                            the default output mode of the current output module

                            - - - protected - string - $defaultMode - = chillerlanQRCodeQRCode::OUTPUT_IMAGE_PNG - -
                            - - - -
                            -
                            -

                            - $image - - - -

                            - - -

                            The GD image resource

                            - - - protected - resource|GdImage - $image - - -
                            - - -
                            - Tags - -
                            -
                            -
                            - see -
                            -
                            - imagecreatetruecolor() - -
                            - -
                            -
                            - phan-suppress -
                            -
                            - -

                            PhanUndeclaredTypeProperty

                            -
                            - -
                            -
                            - -
                            -
                            -

                            - $length - - - -

                            - - -

                            the side length of the QR image (modules * scale)

                            - - - protected - int - $length - - -
                            - - - -
                            -
                            -

                            - $matrix - - - -

                            - - -

                            the (filled) data matrix object

                            - - - protected - QRMatrix - $matrix - - -
                            - - - -
                            -
                            -

                            - $moduleCount - - - -

                            - - -

                            the current size of the QR matrix

                            - - - protected - int - $moduleCount - - -
                            - - -
                            - Tags - -
                            -
                            -
                            - see -
                            -
                            - QRMatrix::size() - -
                            - -
                            -
                            - -
                            -
                            -

                            - $moduleValues - - - -

                            - - -

                            an (optional) array of color values for the several QR matrix parts

                            - - - protected - array<string|int, mixed> - $moduleValues - - -
                            - - - -
                            -
                            -

                            - $options - - - -

                            - - - - - protected - SettingsContainerInterface - $options - - -
                            - - - -
                            -
                            -

                            - $outputMode - - - -

                            - - -

                            the current output mode

                            - - - protected - string - $outputMode - - -
                            - - -
                            - Tags - -
                            -
                            -
                            - see -
                            -
                            - QROptions::$outputType - -
                            - -
                            -
                            - -
                            -
                            -

                            - $scale - - - -

                            - - -

                            the current scaling for a QR pixel

                            - - - protected - int - $scale - - -
                            - - -
                            - Tags - -
                            -
                            -
                            - see -
                            -
                            - QROptions::$scale - -
                            - -
                            -
                            - -
                            -
                            - -
                            -

                            - Methods - -

                            -
                            -

                            - __construct() - -

                            - - -

                            QROutputAbstract constructor.

                            - - - public - __construct(SettingsContainerInterface $options, QRMatrix $matrix) : mixed - -
                            - -
                            Parameters
                            -
                            -
                            - $options - : SettingsContainerInterface -
                            -
                            - -
                            -
                            - $matrix - : QRMatrix -
                            -
                            - -
                            -
                            - - -
                            - Tags - -
                            -
                            -
                            - inheritDoc -
                            -
                            - -
                            - -
                            -
                            - throws -
                            -
                            - QRCodeException - -
                            - -
                            -
                            - -
                            Return values
                            - mixed - — -
                            - - -
                            -
                            -

                            - dump() - -

                            - - -

                            generates the output, optionally dumps it to a file, and returns it

                            - - - public - dump([string $file = null ]) : string|resource|GdImage - -
                            - -
                            Parameters
                            -
                            -
                            - $file - : string - = null
                            -
                            - -
                            -
                            - - -
                            - Tags - -
                            -
                            -
                            - inheritDoc -
                            -
                            - -
                            - -
                            -
                            - phan-suppress -
                            -
                            - -

                            PhanUndeclaredTypeReturnType, PhanTypeMismatchReturn

                            -
                            - -
                            -
                            - -
                            Return values
                            - string|resource|GdImage - — -
                            - - -
                            -
                            -

                            - dumpImage() - -

                            - - -

                            Creates the final image by calling the desired GD output function

                            - - - protected - dumpImage() : string - -
                            - - - -
                            - Tags - -
                            -
                            -
                            - throws -
                            -
                            - QRCodeOutputException - -
                            - -
                            -
                            - -
                            Return values
                            - string - — -
                            - - -
                            -
                            -

                            - gif() - -

                            - - -

                            Jiff - like... JitHub!

                            - - - protected - gif() : void - -
                            - - - - -
                            Return values
                            - void - — -
                            - - -
                            -
                            -

                            - jpg() - -

                            - - -

                            JPG output

                            - - - protected - jpg() : void - -
                            - - - - -
                            Return values
                            - void - — -
                            - - -
                            -
                            -

                            - png() - -

                            - - -

                            PNG output

                            - - - protected - png() : void - -
                            - - - - -
                            Return values
                            - void - — -
                            - - -
                            -
                            -

                            - saveToFile() - -

                            - - -

                            saves the qr data to a file

                            - - - protected - saveToFile(string $data, string $file) : bool - -
                            - -
                            Parameters
                            -
                            -
                            - $data - : string -
                            -
                            - -
                            -
                            - $file - : string -
                            -
                            - -
                            -
                            - - -
                            - Tags - -
                            -
                            -
                            - see -
                            -
                            - file_put_contents() - -
                            - -
                            -
                            - see -
                            -
                            - QROptions::cachefile - -
                            - -
                            -
                            - throws -
                            -
                            - QRCodeOutputException - -
                            - -
                            -
                            - -
                            Return values
                            - bool - — -
                            - - -
                            -
                            -

                            - setModuleValues() - -

                            - - -

                            Sets the initial module values (clean-up & defaults)

                            - - - protected - setModuleValues() : void - -
                            - - - -
                            - Tags - -
                            -
                            -
                            - inheritDoc -
                            -
                            - -
                            - -
                            -
                            - -
                            Return values
                            - void - — -
                            - - -
                            -
                            -

                            - setPixel() - -

                            - - -

                            Creates a single QR pixel with the given settings

                            - - - protected - setPixel(int $x, int $y, array<string|int, mixed> $rgb) : void - -
                            - -
                            Parameters
                            -
                            -
                            - $x - : int -
                            -
                            - -
                            -
                            - $y - : int -
                            -
                            - -
                            -
                            - $rgb - : array<string|int, mixed> -
                            -
                            - -
                            -
                            - - - -
                            Return values
                            - void - — -
                            - - -
                            -
                            - -
                            -
                            -
                            -
                            -

                            Search results

                            - -
                            -
                            -
                              -
                              -
                              -
                              -
                              -
                              - - -
                              - - - - diff --git a/classes/chillerlan-QRCode-Output-QRImagick.html b/classes/chillerlan-QRCode-Output-QRImagick.html deleted file mode 100644 index c07d4cb04..000000000 --- a/classes/chillerlan-QRCode-Output-QRImagick.html +++ /dev/null @@ -1,901 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                              -

                              Documentation

                              - - - - - -
                              - -
                              -
                              - - - - -
                              - - -
                              -

                              - QRImagick - - - extends QROutputAbstract - - - - -

                              - - - -

                              ImageMagick output module (requires ext-imagick)

                              - -
                              - - -
                              - Tags - -
                              -
                              -
                              - see -
                              -
                              - http://php.net/manual/book.imagick.php - -
                              - -
                              -
                              - see -
                              -
                              - http://phpimagick.com - -
                              - -
                              -
                              - - - - - - -

                              - Table of Contents - -

                              - -
                              -
                              - $defaultMode - -  : string -
                              -
                              the default output mode of the current output module
                              - -
                              - $imagick - -  : Imagick -
                              -
                              - -
                              - $length - -  : int -
                              -
                              the side length of the QR image (modules * scale)
                              - -
                              - $matrix - -  : QRMatrix -
                              -
                              the (filled) data matrix object
                              - -
                              - $moduleCount - -  : int -
                              -
                              the current size of the QR matrix
                              - -
                              - $moduleValues - -  : array<string|int, mixed> -
                              -
                              an (optional) array of color values for the several QR matrix parts
                              - -
                              - $options - -  : SettingsContainerInterface -
                              -
                              - -
                              - $outputMode - -  : string -
                              -
                              the current output mode
                              - -
                              - $scale - -  : int -
                              -
                              the current scaling for a QR pixel
                              - -
                              - __construct() - -  : mixed -
                              -
                              QROutputAbstract constructor.
                              - -
                              - dump() - -  : string|Imagick -
                              -
                              generates the output, optionally dumps it to a file, and returns it
                              - -
                              - drawImage() - -  : void -
                              -
                              Creates the QR image via ImagickDraw
                              - -
                              - saveToFile() - -  : bool -
                              -
                              saves the qr data to a file
                              - -
                              - setModuleValues() - -  : void -
                              -
                              Sets the initial module values (clean-up & defaults)
                              - -
                              - - - - - - -
                              -

                              - Properties - -

                              -
                              -

                              - $defaultMode - - - -

                              - - -

                              the default output mode of the current output module

                              - - - protected - string - $defaultMode - - -
                              - - - -
                              -
                              -

                              - $imagick - - - -

                              - - - - - protected - Imagick - $imagick - - - - - -
                              -
                              -

                              - $length - - - -

                              - - -

                              the side length of the QR image (modules * scale)

                              - - - protected - int - $length - - -
                              - - - -
                              -
                              -

                              - $matrix - - - -

                              - - -

                              the (filled) data matrix object

                              - - - protected - QRMatrix - $matrix - - -
                              - - - -
                              -
                              -

                              - $moduleCount - - - -

                              - - -

                              the current size of the QR matrix

                              - - - protected - int - $moduleCount - - -
                              - - -
                              - Tags - -
                              -
                              -
                              - see -
                              -
                              - QRMatrix::size() - -
                              - -
                              -
                              - -
                              -
                              -

                              - $moduleValues - - - -

                              - - -

                              an (optional) array of color values for the several QR matrix parts

                              - - - protected - array<string|int, mixed> - $moduleValues - - -
                              - - - -
                              -
                              -

                              - $options - - - -

                              - - - - - protected - SettingsContainerInterface - $options - - -
                              - - - -
                              -
                              -

                              - $outputMode - - - -

                              - - -

                              the current output mode

                              - - - protected - string - $outputMode - - -
                              - - -
                              - Tags - -
                              -
                              -
                              - see -
                              -
                              - QROptions::$outputType - -
                              - -
                              -
                              - -
                              -
                              -

                              - $scale - - - -

                              - - -

                              the current scaling for a QR pixel

                              - - - protected - int - $scale - - -
                              - - -
                              - Tags - -
                              -
                              -
                              - see -
                              -
                              - QROptions::$scale - -
                              - -
                              -
                              - -
                              -
                              - -
                              -

                              - Methods - -

                              -
                              -

                              - __construct() - -

                              - - -

                              QROutputAbstract constructor.

                              - - - public - __construct(SettingsContainerInterface $options, QRMatrix $matrix) : mixed - -
                              - -
                              Parameters
                              -
                              -
                              - $options - : SettingsContainerInterface -
                              -
                              - -
                              -
                              - $matrix - : QRMatrix -
                              -
                              - -
                              -
                              - - -
                              - Tags - -
                              -
                              -
                              - inheritDoc -
                              -
                              - -
                              - -
                              -
                              - -
                              Return values
                              - mixed - — -
                              - - -
                              -
                              -

                              - dump() - -

                              - - -

                              generates the output, optionally dumps it to a file, and returns it

                              - - - public - dump([string $file = null ]) : string|Imagick - -
                              - -
                              Parameters
                              -
                              -
                              - $file - : string - = null
                              -
                              - -
                              -
                              - - -
                              - Tags - -
                              -
                              -
                              - inheritDoc -
                              -
                              - -
                              - -
                              -
                              - -
                              Return values
                              - string|Imagick - — -
                              - - -
                              -
                              -

                              - drawImage() - -

                              - - -

                              Creates the QR image via ImagickDraw

                              - - - protected - drawImage() : void - -
                              - - - - -
                              Return values
                              - void - — -
                              - - -
                              -
                              -

                              - saveToFile() - -

                              - - -

                              saves the qr data to a file

                              - - - protected - saveToFile(string $data, string $file) : bool - -
                              - -
                              Parameters
                              -
                              -
                              - $data - : string -
                              -
                              - -
                              -
                              - $file - : string -
                              -
                              - -
                              -
                              - - -
                              - Tags - -
                              -
                              -
                              - see -
                              -
                              - file_put_contents() - -
                              - -
                              -
                              - see -
                              -
                              - QROptions::cachefile - -
                              - -
                              -
                              - throws -
                              -
                              - QRCodeOutputException - -
                              - -
                              -
                              - -
                              Return values
                              - bool - — -
                              - - -
                              -
                              -

                              - setModuleValues() - -

                              - - -

                              Sets the initial module values (clean-up & defaults)

                              - - - protected - setModuleValues() : void - -
                              - - - -
                              - Tags - -
                              -
                              -
                              - inheritDoc -
                              -
                              - -
                              - -
                              -
                              - -
                              Return values
                              - void - — -
                              - - -
                              -
                              - -
                              -
                              -
                              -
                              -

                              Search results

                              - -
                              -
                              -
                                -
                                -
                                -
                                -
                                -
                                - - -
                                - - - - diff --git a/classes/chillerlan-QRCode-Output-QRMarkup.html b/classes/chillerlan-QRCode-Output-QRMarkup.html deleted file mode 100644 index eebda31a7..000000000 --- a/classes/chillerlan-QRCode-Output-QRMarkup.html +++ /dev/null @@ -1,956 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                -

                                Documentation

                                - - - - - -
                                - -
                                -
                                - - - - -
                                - - -
                                -

                                - QRMarkup - - - extends QROutputAbstract - - - - -

                                - - - -

                                Converts the matrix into markup types: HTML, SVG, .

                                - -

                                ..

                                -
                                - - - - - - - - -

                                - Table of Contents - -

                                - -
                                -
                                - $defaultMode - -  : string -
                                -
                                the default output mode of the current output module
                                - -
                                - $length - -  : int -
                                -
                                the side length of the QR image (modules * scale)
                                - -
                                - $matrix - -  : QRMatrix -
                                -
                                the (filled) data matrix object
                                - -
                                - $moduleCount - -  : int -
                                -
                                the current size of the QR matrix
                                - -
                                - $moduleValues - -  : array<string|int, mixed> -
                                -
                                an (optional) array of color values for the several QR matrix parts
                                - -
                                - $options - -  : SettingsContainerInterface -
                                -
                                - -
                                - $outputMode - -  : string -
                                -
                                the current output mode
                                - -
                                - $scale - -  : int -
                                -
                                the current scaling for a QR pixel
                                - -
                                - $svgHeader - -  : string -
                                -
                                - -
                                - __construct() - -  : mixed -
                                -
                                QROutputAbstract constructor.
                                - -
                                - dump() - -  : mixed -
                                -
                                generates the output, optionally dumps it to a file, and returns it
                                - -
                                - html() - -  : string -
                                -
                                HTML output
                                - -
                                - saveToFile() - -  : bool -
                                -
                                saves the qr data to a file
                                - -
                                - setModuleValues() - -  : void -
                                -
                                Sets the initial module values (clean-up & defaults)
                                - -
                                - svg() - -  : string -
                                -
                                SVG output
                                - -
                                - - - - - - -
                                -

                                - Properties - -

                                -
                                -

                                - $defaultMode - - - -

                                - - -

                                the default output mode of the current output module

                                - - - protected - string - $defaultMode - = chillerlanQRCodeQRCode::OUTPUT_MARKUP_SVG - -
                                - - - -
                                -
                                -

                                - $length - - - -

                                - - -

                                the side length of the QR image (modules * scale)

                                - - - protected - int - $length - - -
                                - - - -
                                -
                                -

                                - $matrix - - - -

                                - - -

                                the (filled) data matrix object

                                - - - protected - QRMatrix - $matrix - - -
                                - - - -
                                -
                                -

                                - $moduleCount - - - -

                                - - -

                                the current size of the QR matrix

                                - - - protected - int - $moduleCount - - -
                                - - -
                                - Tags - -
                                -
                                -
                                - see -
                                -
                                - QRMatrix::size() - -
                                - -
                                -
                                - -
                                -
                                -

                                - $moduleValues - - - -

                                - - -

                                an (optional) array of color values for the several QR matrix parts

                                - - - protected - array<string|int, mixed> - $moduleValues - - -
                                - - - -
                                -
                                -

                                - $options - - - -

                                - - - - - protected - SettingsContainerInterface - $options - - -
                                - - - -
                                -
                                -

                                - $outputMode - - - -

                                - - -

                                the current output mode

                                - - - protected - string - $outputMode - - -
                                - - -
                                - Tags - -
                                -
                                -
                                - see -
                                -
                                - QROptions::$outputType - -
                                - -
                                -
                                - -
                                -
                                -

                                - $scale - - - -

                                - - -

                                the current scaling for a QR pixel

                                - - - protected - int - $scale - - -
                                - - -
                                - Tags - -
                                -
                                -
                                - see -
                                -
                                - QROptions::$scale - -
                                - -
                                -
                                - -
                                -
                                -

                                - $svgHeader - - - -

                                - - - - - protected - string - $svgHeader - = '<svg xmlns="http://www.w3.org/2000/svg" class="qr-svg %1$s" ' . 'style="width: 100%%; height: auto;" viewBox="0 0 %2$d %2$d">' - -
                                - - -
                                - Tags - -
                                -
                                -
                                - see -
                                -
                                - sprintf() - -
                                - -
                                -
                                - -
                                -
                                - -
                                -

                                - Methods - -

                                -
                                -

                                - __construct() - -

                                - - -

                                QROutputAbstract constructor.

                                - - - public - __construct(SettingsContainerInterface $options, QRMatrix $matrix) : mixed - -
                                - -
                                Parameters
                                -
                                -
                                - $options - : SettingsContainerInterface -
                                -
                                - -
                                -
                                - $matrix - : QRMatrix -
                                -
                                - -
                                -
                                - - - -
                                Return values
                                - mixed - — -
                                - - -
                                -
                                -

                                - dump() - -

                                - - -

                                generates the output, optionally dumps it to a file, and returns it

                                - - - public - dump([string $file = null ]) : mixed - -
                                - -
                                Parameters
                                -
                                -
                                - $file - : string - = null
                                -
                                - -
                                -
                                - - -
                                - Tags - -
                                -
                                -
                                - inheritDoc -
                                -
                                - -
                                - -
                                -
                                - -
                                Return values
                                - mixed - — -
                                - - -
                                -
                                -

                                - html() - -

                                - - -

                                HTML output

                                - - - protected - html([string $file = null ]) : string - -
                                - -
                                Parameters
                                -
                                -
                                - $file - : string - = null
                                -
                                - -
                                -
                                - - - -
                                Return values
                                - string - — -
                                - - -
                                -
                                -

                                - saveToFile() - -

                                - - -

                                saves the qr data to a file

                                - - - protected - saveToFile(string $data, string $file) : bool - -
                                - -
                                Parameters
                                -
                                -
                                - $data - : string -
                                -
                                - -
                                -
                                - $file - : string -
                                -
                                - -
                                -
                                - - -
                                - Tags - -
                                -
                                -
                                - see -
                                -
                                - file_put_contents() - -
                                - -
                                -
                                - see -
                                -
                                - QROptions::cachefile - -
                                - -
                                -
                                - throws -
                                -
                                - QRCodeOutputException - -
                                - -
                                -
                                - -
                                Return values
                                - bool - — -
                                - - -
                                -
                                -

                                - setModuleValues() - -

                                - - -

                                Sets the initial module values (clean-up & defaults)

                                - - - protected - setModuleValues() : void - -
                                - - - -
                                - Tags - -
                                -
                                -
                                - inheritDoc -
                                -
                                - -
                                - -
                                -
                                - -
                                Return values
                                - void - — -
                                - - -
                                -
                                -

                                - svg() - -

                                - - -

                                SVG output

                                - - - protected - svg([string $file = null ]) : string - -
                                - -
                                Parameters
                                -
                                -
                                - $file - : string - = null
                                -
                                - -
                                -
                                - - -
                                - Tags - -
                                -
                                -
                                - see -
                                -
                                - https://github.com/codemasher/php-qrcode/pull/5 - -
                                - -
                                -
                                - -
                                Return values
                                - string - — -
                                - - -
                                -
                                - -
                                -
                                -
                                -
                                -

                                Search results

                                - -
                                -
                                -
                                  -
                                  -
                                  -
                                  -
                                  -
                                  - - -
                                  - - - - diff --git a/classes/chillerlan-QRCode-Output-QROutputAbstract.html b/classes/chillerlan-QRCode-Output-QROutputAbstract.html deleted file mode 100644 index ad96f9a41..000000000 --- a/classes/chillerlan-QRCode-Output-QROutputAbstract.html +++ /dev/null @@ -1,782 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                  -

                                  Documentation

                                  - - - - - -
                                  - -
                                  -
                                  - - - - -
                                  - - -
                                  -

                                  - QROutputAbstract - - - - - implements - QROutputInterface - -

                                  - - - -

                                  common output abstract

                                  - -
                                  - - - - - - -

                                  - Interfaces, Classes and Traits - -

                                  - -
                                  -
                                  QROutputInterface
                                  -
                                  Converts the data matrix into readable output
                                  - - -
                                  - - -

                                  - Table of Contents - -

                                  - -
                                  -
                                  - $defaultMode - -  : string -
                                  -
                                  the default output mode of the current output module
                                  - -
                                  - $length - -  : int -
                                  -
                                  the side length of the QR image (modules * scale)
                                  - -
                                  - $matrix - -  : QRMatrix -
                                  -
                                  the (filled) data matrix object
                                  - -
                                  - $moduleCount - -  : int -
                                  -
                                  the current size of the QR matrix
                                  - -
                                  - $moduleValues - -  : array<string|int, mixed> -
                                  -
                                  an (optional) array of color values for the several QR matrix parts
                                  - -
                                  - $options - -  : SettingsContainerInterface -
                                  -
                                  - -
                                  - $outputMode - -  : string -
                                  -
                                  the current output mode
                                  - -
                                  - $scale - -  : int -
                                  -
                                  the current scaling for a QR pixel
                                  - -
                                  - __construct() - -  : mixed -
                                  -
                                  QROutputAbstract constructor.
                                  - -
                                  - dump() - -  : mixed -
                                  -
                                  generates the output, optionally dumps it to a file, and returns it
                                  - -
                                  - saveToFile() - -  : bool -
                                  -
                                  saves the qr data to a file
                                  - -
                                  - setModuleValues() - -  : void -
                                  -
                                  Sets the initial module values (clean-up & defaults)
                                  - -
                                  - - - - - - -
                                  -

                                  - Properties - -

                                  -
                                  -

                                  - $defaultMode - - - -

                                  - - -

                                  the default output mode of the current output module

                                  - - - protected - string - $defaultMode - - -
                                  - - - -
                                  -
                                  -

                                  - $length - - - -

                                  - - -

                                  the side length of the QR image (modules * scale)

                                  - - - protected - int - $length - - -
                                  - - - -
                                  -
                                  -

                                  - $matrix - - - -

                                  - - -

                                  the (filled) data matrix object

                                  - - - protected - QRMatrix - $matrix - - -
                                  - - - -
                                  -
                                  -

                                  - $moduleCount - - - -

                                  - - -

                                  the current size of the QR matrix

                                  - - - protected - int - $moduleCount - - -
                                  - - -
                                  - Tags - -
                                  -
                                  -
                                  - see -
                                  -
                                  - QRMatrix::size() - -
                                  - -
                                  -
                                  - -
                                  -
                                  -

                                  - $moduleValues - - - -

                                  - - -

                                  an (optional) array of color values for the several QR matrix parts

                                  - - - protected - array<string|int, mixed> - $moduleValues - - -
                                  - - - -
                                  -
                                  -

                                  - $options - - - -

                                  - - - - - protected - SettingsContainerInterface - $options - - -
                                  - - - -
                                  -
                                  -

                                  - $outputMode - - - -

                                  - - -

                                  the current output mode

                                  - - - protected - string - $outputMode - - -
                                  - - -
                                  - Tags - -
                                  -
                                  -
                                  - see -
                                  -
                                  - QROptions::$outputType - -
                                  - -
                                  -
                                  - -
                                  -
                                  -

                                  - $scale - - - -

                                  - - -

                                  the current scaling for a QR pixel

                                  - - - protected - int - $scale - - -
                                  - - -
                                  - Tags - -
                                  -
                                  -
                                  - see -
                                  -
                                  - QROptions::$scale - -
                                  - -
                                  -
                                  - -
                                  -
                                  - -
                                  -

                                  - Methods - -

                                  -
                                  -

                                  - __construct() - -

                                  - - -

                                  QROutputAbstract constructor.

                                  - - - public - __construct(SettingsContainerInterface $options, QRMatrix $matrix) : mixed - -
                                  - -
                                  Parameters
                                  -
                                  -
                                  - $options - : SettingsContainerInterface -
                                  -
                                  - -
                                  -
                                  - $matrix - : QRMatrix -
                                  -
                                  - -
                                  -
                                  - - - -
                                  Return values
                                  - mixed - — -
                                  - - -
                                  -
                                  -

                                  - dump() - -

                                  - - -

                                  generates the output, optionally dumps it to a file, and returns it

                                  - - - public - dump([string $file = null ]) : mixed - -
                                  - -
                                  Parameters
                                  -
                                  -
                                  - $file - : string - = null
                                  -
                                  - -
                                  -
                                  - - -
                                  - Tags - -
                                  -
                                  -
                                  - inheritDoc -
                                  -
                                  - -
                                  - -
                                  -
                                  - -
                                  Return values
                                  - mixed - — -
                                  - - -
                                  -
                                  -

                                  - saveToFile() - -

                                  - - -

                                  saves the qr data to a file

                                  - - - protected - saveToFile(string $data, string $file) : bool - -
                                  - -
                                  Parameters
                                  -
                                  -
                                  - $data - : string -
                                  -
                                  - -
                                  -
                                  - $file - : string -
                                  -
                                  - -
                                  -
                                  - - -
                                  - Tags - -
                                  -
                                  -
                                  - see -
                                  -
                                  - file_put_contents() - -
                                  - -
                                  -
                                  - see -
                                  -
                                  - QROptions::cachefile - -
                                  - -
                                  -
                                  - throws -
                                  -
                                  - QRCodeOutputException - -
                                  - -
                                  -
                                  - -
                                  Return values
                                  - bool - — -
                                  - - -
                                  -
                                  -

                                  - setModuleValues() - -

                                  - - -

                                  Sets the initial module values (clean-up & defaults)

                                  - - - protected - abstract setModuleValues() : void - -
                                  - - - - -
                                  Return values
                                  - void - — -
                                  - - -
                                  -
                                  - -
                                  -
                                  -
                                  -
                                  -

                                  Search results

                                  - -
                                  -
                                  -
                                    -
                                    -
                                    -
                                    -
                                    -
                                    - - -
                                    - - - - diff --git a/classes/chillerlan-QRCode-Output-QROutputInterface.html b/classes/chillerlan-QRCode-Output-QROutputInterface.html deleted file mode 100644 index 93e7041e7..000000000 --- a/classes/chillerlan-QRCode-Output-QROutputInterface.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                    -

                                    Documentation

                                    - - - - - -
                                    - -
                                    -
                                    - - - - -
                                    - - -
                                    -

                                    - QROutputInterface -

                                    - - - -

                                    Converts the data matrix into readable output

                                    - -
                                    - - - - - - - - -

                                    - Table of Contents - -

                                    - -
                                    -
                                    - DEFAULT_MODULE_VALUES - -  = [ - // light - chillerlanQRCodeDataQRMatrix::M_NULL => false, - // 0 - chillerlanQRCodeDataQRMatrix::M_DATA => false, - // 4 - chillerlanQRCodeDataQRMatrix::M_FINDER => false, - // 6 - chillerlanQRCodeDataQRMatrix::M_SEPARATOR => false, - // 8 - chillerlanQRCodeDataQRMatrix::M_ALIGNMENT => false, - // 10 - chillerlanQRCodeDataQRMatrix::M_TIMING => false, - // 12 - chillerlanQRCodeDataQRMatrix::M_FORMAT => false, - // 14 - chillerlanQRCodeDataQRMatrix::M_VERSION => false, - // 16 - chillerlanQRCodeDataQRMatrix::M_QUIETZONE => false, - // 18 - chillerlanQRCodeDataQRMatrix::M_LOGO => false, - // 20 - chillerlanQRCodeDataQRMatrix::M_TEST => false, - // 255 - // dark - chillerlanQRCodeDataQRMatrix::M_DARKMODULE << 8 => true, - // 512 - chillerlanQRCodeDataQRMatrix::M_DATA << 8 => true, - // 1024 - chillerlanQRCodeDataQRMatrix::M_FINDER << 8 => true, - // 1536 - chillerlanQRCodeDataQRMatrix::M_ALIGNMENT << 8 => true, - // 2560 - chillerlanQRCodeDataQRMatrix::M_TIMING << 8 => true, - // 3072 - chillerlanQRCodeDataQRMatrix::M_FORMAT << 8 => true, - // 3584 - chillerlanQRCodeDataQRMatrix::M_VERSION << 8 => true, - // 4096 - chillerlanQRCodeDataQRMatrix::M_FINDER_DOT << 8 => true, - // 5632 - chillerlanQRCodeDataQRMatrix::M_TEST << 8 => true, -] -
                                    -
                                    - -
                                    - dump() - -  : mixed -
                                    -
                                    generates the output, optionally dumps it to a file, and returns it
                                    - -
                                    - - - - -
                                    -

                                    - Constants - -

                                    -
                                    -

                                    - DEFAULT_MODULE_VALUES - -

                                    - - - - - - public - mixed - DEFAULT_MODULE_VALUES - = [ - // light - chillerlanQRCodeDataQRMatrix::M_NULL => false, - // 0 - chillerlanQRCodeDataQRMatrix::M_DATA => false, - // 4 - chillerlanQRCodeDataQRMatrix::M_FINDER => false, - // 6 - chillerlanQRCodeDataQRMatrix::M_SEPARATOR => false, - // 8 - chillerlanQRCodeDataQRMatrix::M_ALIGNMENT => false, - // 10 - chillerlanQRCodeDataQRMatrix::M_TIMING => false, - // 12 - chillerlanQRCodeDataQRMatrix::M_FORMAT => false, - // 14 - chillerlanQRCodeDataQRMatrix::M_VERSION => false, - // 16 - chillerlanQRCodeDataQRMatrix::M_QUIETZONE => false, - // 18 - chillerlanQRCodeDataQRMatrix::M_LOGO => false, - // 20 - chillerlanQRCodeDataQRMatrix::M_TEST => false, - // 255 - // dark - chillerlanQRCodeDataQRMatrix::M_DARKMODULE << 8 => true, - // 512 - chillerlanQRCodeDataQRMatrix::M_DATA << 8 => true, - // 1024 - chillerlanQRCodeDataQRMatrix::M_FINDER << 8 => true, - // 1536 - chillerlanQRCodeDataQRMatrix::M_ALIGNMENT << 8 => true, - // 2560 - chillerlanQRCodeDataQRMatrix::M_TIMING << 8 => true, - // 3072 - chillerlanQRCodeDataQRMatrix::M_FORMAT << 8 => true, - // 3584 - chillerlanQRCodeDataQRMatrix::M_VERSION << 8 => true, - // 4096 - chillerlanQRCodeDataQRMatrix::M_FINDER_DOT << 8 => true, - // 5632 - chillerlanQRCodeDataQRMatrix::M_TEST << 8 => true, -] - - - - - - -
                                    -
                                    - -
                                    -

                                    - Methods - -

                                    -
                                    -

                                    - dump() - -

                                    - - -

                                    generates the output, optionally dumps it to a file, and returns it

                                    - - - public - dump([string $file = null ]) : mixed - -
                                    - -
                                    Parameters
                                    -
                                    -
                                    - $file - : string - = null
                                    -
                                    - -
                                    -
                                    - - - -
                                    Return values
                                    - mixed - — -
                                    - - -
                                    -
                                    - -
                                    -
                                    -
                                    -
                                    -

                                    Search results

                                    - -
                                    -
                                    -
                                      -
                                      -
                                      -
                                      -
                                      -
                                      - - -
                                      - - - - diff --git a/classes/chillerlan-QRCode-Output-QRString.html b/classes/chillerlan-QRCode-Output-QRString.html deleted file mode 100644 index 2b17ae17b..000000000 --- a/classes/chillerlan-QRCode-Output-QRString.html +++ /dev/null @@ -1,887 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                      -

                                      Documentation

                                      - - - - - -
                                      - -
                                      -
                                      - - - - -
                                      - - -
                                      -

                                      - QRString - - - extends QROutputAbstract - - - - -

                                      - - - -

                                      Converts the matrix data into string types

                                      - -
                                      - - - - - - - - -

                                      - Table of Contents - -

                                      - -
                                      -
                                      - $defaultMode - -  : string -
                                      -
                                      the default output mode of the current output module
                                      - -
                                      - $length - -  : int -
                                      -
                                      the side length of the QR image (modules * scale)
                                      - -
                                      - $matrix - -  : QRMatrix -
                                      -
                                      the (filled) data matrix object
                                      - -
                                      - $moduleCount - -  : int -
                                      -
                                      the current size of the QR matrix
                                      - -
                                      - $moduleValues - -  : array<string|int, mixed> -
                                      -
                                      an (optional) array of color values for the several QR matrix parts
                                      - -
                                      - $options - -  : SettingsContainerInterface -
                                      -
                                      - -
                                      - $outputMode - -  : string -
                                      -
                                      the current output mode
                                      - -
                                      - $scale - -  : int -
                                      -
                                      the current scaling for a QR pixel
                                      - -
                                      - __construct() - -  : mixed -
                                      -
                                      QROutputAbstract constructor.
                                      - -
                                      - dump() - -  : mixed -
                                      -
                                      generates the output, optionally dumps it to a file, and returns it
                                      - -
                                      - json() - -  : string -
                                      -
                                      JSON output
                                      - -
                                      - saveToFile() - -  : bool -
                                      -
                                      saves the qr data to a file
                                      - -
                                      - setModuleValues() - -  : void -
                                      -
                                      Sets the initial module values (clean-up & defaults)
                                      - -
                                      - text() - -  : string -
                                      -
                                      string output
                                      - -
                                      - - - - - - -
                                      -

                                      - Properties - -

                                      -
                                      -

                                      - $defaultMode - - - -

                                      - - -

                                      the default output mode of the current output module

                                      - - - protected - string - $defaultMode - = chillerlanQRCodeQRCode::OUTPUT_STRING_TEXT - -
                                      - - - -
                                      -
                                      -

                                      - $length - - - -

                                      - - -

                                      the side length of the QR image (modules * scale)

                                      - - - protected - int - $length - - -
                                      - - - -
                                      -
                                      -

                                      - $matrix - - - -

                                      - - -

                                      the (filled) data matrix object

                                      - - - protected - QRMatrix - $matrix - - -
                                      - - - -
                                      -
                                      -

                                      - $moduleCount - - - -

                                      - - -

                                      the current size of the QR matrix

                                      - - - protected - int - $moduleCount - - -
                                      - - -
                                      - Tags - -
                                      -
                                      -
                                      - see -
                                      -
                                      - QRMatrix::size() - -
                                      - -
                                      -
                                      - -
                                      -
                                      -

                                      - $moduleValues - - - -

                                      - - -

                                      an (optional) array of color values for the several QR matrix parts

                                      - - - protected - array<string|int, mixed> - $moduleValues - - -
                                      - - - -
                                      -
                                      -

                                      - $options - - - -

                                      - - - - - protected - SettingsContainerInterface - $options - - -
                                      - - - -
                                      -
                                      -

                                      - $outputMode - - - -

                                      - - -

                                      the current output mode

                                      - - - protected - string - $outputMode - - -
                                      - - -
                                      - Tags - -
                                      -
                                      -
                                      - see -
                                      -
                                      - QROptions::$outputType - -
                                      - -
                                      -
                                      - -
                                      -
                                      -

                                      - $scale - - - -

                                      - - -

                                      the current scaling for a QR pixel

                                      - - - protected - int - $scale - - -
                                      - - -
                                      - Tags - -
                                      -
                                      -
                                      - see -
                                      -
                                      - QROptions::$scale - -
                                      - -
                                      -
                                      - -
                                      -
                                      - -
                                      -

                                      - Methods - -

                                      -
                                      -

                                      - __construct() - -

                                      - - -

                                      QROutputAbstract constructor.

                                      - - - public - __construct(SettingsContainerInterface $options, QRMatrix $matrix) : mixed - -
                                      - -
                                      Parameters
                                      -
                                      -
                                      - $options - : SettingsContainerInterface -
                                      -
                                      - -
                                      -
                                      - $matrix - : QRMatrix -
                                      -
                                      - -
                                      -
                                      - - - -
                                      Return values
                                      - mixed - — -
                                      - - -
                                      -
                                      -

                                      - dump() - -

                                      - - -

                                      generates the output, optionally dumps it to a file, and returns it

                                      - - - public - dump([string $file = null ]) : mixed - -
                                      - -
                                      Parameters
                                      -
                                      -
                                      - $file - : string - = null
                                      -
                                      - -
                                      -
                                      - - -
                                      - Tags - -
                                      -
                                      -
                                      - inheritDoc -
                                      -
                                      - -
                                      - -
                                      -
                                      - -
                                      Return values
                                      - mixed - — -
                                      - - -
                                      -
                                      -

                                      - json() - -

                                      - - -

                                      JSON output

                                      - - - protected - json([string $file = null ]) : string - -
                                      - -
                                      Parameters
                                      -
                                      -
                                      - $file - : string - = null
                                      -
                                      - -
                                      -
                                      - - - -
                                      Return values
                                      - string - — -
                                      - - -
                                      -
                                      -

                                      - saveToFile() - -

                                      - - -

                                      saves the qr data to a file

                                      - - - protected - saveToFile(string $data, string $file) : bool - -
                                      - -
                                      Parameters
                                      -
                                      -
                                      - $data - : string -
                                      -
                                      - -
                                      -
                                      - $file - : string -
                                      -
                                      - -
                                      -
                                      - - -
                                      - Tags - -
                                      -
                                      -
                                      - see -
                                      -
                                      - file_put_contents() - -
                                      - -
                                      -
                                      - see -
                                      -
                                      - QROptions::cachefile - -
                                      - -
                                      -
                                      - throws -
                                      -
                                      - QRCodeOutputException - -
                                      - -
                                      -
                                      - -
                                      Return values
                                      - bool - — -
                                      - - -
                                      -
                                      -

                                      - setModuleValues() - -

                                      - - -

                                      Sets the initial module values (clean-up & defaults)

                                      - - - protected - setModuleValues() : void - -
                                      - - - -
                                      - Tags - -
                                      -
                                      -
                                      - inheritDoc -
                                      -
                                      - -
                                      - -
                                      -
                                      - -
                                      Return values
                                      - void - — -
                                      - - -
                                      -
                                      -

                                      - text() - -

                                      - - -

                                      string output

                                      - - - protected - text([string $file = null ]) : string - -
                                      - -
                                      Parameters
                                      -
                                      -
                                      - $file - : string - = null
                                      -
                                      - -
                                      -
                                      - - - -
                                      Return values
                                      - string - — -
                                      - - -
                                      -
                                      - -
                                      -
                                      -
                                      -
                                      -

                                      Search results

                                      - -
                                      -
                                      -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - - -
                                        - - - - diff --git a/classes/chillerlan-QRCode-QRCode.html b/classes/chillerlan-QRCode-QRCode.html deleted file mode 100644 index 26f39e132..000000000 --- a/classes/chillerlan-QRCode-QRCode.html +++ /dev/null @@ -1,1705 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                        -

                                        Documentation

                                        - - - - - -
                                        - -
                                        -
                                        - - - - -
                                        - - -
                                        -

                                        - QRCode - - - - -

                                        - - - -

                                        Turns a text string into a Model 2 QR Code

                                        - -
                                        - - -
                                        - Tags - -
                                        -
                                        -
                                        - see -
                                        -
                                        - https://github.com/kazuhikoarase/qrcode-generator/tree/master/php - -
                                        - -
                                        -
                                        - see -
                                        -
                                        - http://www.qrcode.com/en/codes/model12.html - -
                                        - -
                                        -
                                        - see -
                                        -
                                        - https://www.swisseduc.ch/informatik/theoretische_informatik/qr_codes/docs/qr_standard.pdf - -
                                        - -
                                        -
                                        - see -
                                        -
                                        - https://en.wikipedia.org/wiki/QR_code - -
                                        - -
                                        -
                                        - see -
                                        -
                                        - http://www.thonky.com/qr-code-tutorial/ - -
                                        - -
                                        -
                                        - - - - - - -

                                        - Table of Contents - -

                                        - -
                                        -
                                        - DATA_ALPHANUM - -  = 0b10 -
                                        -
                                        - -
                                        - DATA_BYTE - -  = 0b100 -
                                        -
                                        - -
                                        - DATA_KANJI - -  = 0b1000 -
                                        -
                                        - -
                                        - DATA_MODES - -  = [self::DATA_NUMBER => 0, self::DATA_ALPHANUM => 1, self::DATA_BYTE => 2, self::DATA_KANJI => 3] -
                                        -
                                        References to the keys of the following tables:
                                        - -
                                        - DATA_NUMBER - -  = 0b1 -
                                        -
                                        - -
                                        - ECC_H - -  = 0b10 -
                                        -
                                        - -
                                        - ECC_L - -  = 0b1 -
                                        -
                                        - -
                                        - ECC_M - -  = 0b0 -
                                        -
                                        - -
                                        - ECC_MODES - -  = [self::ECC_L => 0, self::ECC_M => 1, self::ECC_Q => 2, self::ECC_H => 3] -
                                        -
                                        References to the keys of the following tables:
                                        - -
                                        - ECC_Q - -  = 0b11 -
                                        -
                                        - -
                                        - MASK_PATTERN_AUTO - -  = -1 -
                                        -
                                        - -
                                        - OUTPUT_CUSTOM - -  = 'custom' -
                                        -
                                        - -
                                        - OUTPUT_FPDF - -  = 'fpdf' -
                                        -
                                        - -
                                        - OUTPUT_IMAGE_GIF - -  = 'gif' -
                                        -
                                        - -
                                        - OUTPUT_IMAGE_JPG - -  = 'jpg' -
                                        -
                                        - -
                                        - OUTPUT_IMAGE_PNG - -  = 'png' -
                                        -
                                        - -
                                        - OUTPUT_IMAGICK - -  = 'imagick' -
                                        -
                                        - -
                                        - OUTPUT_MARKUP_HTML - -  = 'html' -
                                        -
                                        - -
                                        - OUTPUT_MARKUP_SVG - -  = 'svg' -
                                        -
                                        - -
                                        - OUTPUT_MODES - -  = [chillerlanQRCodeOutputQRMarkup::class => [self::OUTPUT_MARKUP_SVG, self::OUTPUT_MARKUP_HTML], chillerlanQRCodeOutputQRImage::class => [self::OUTPUT_IMAGE_PNG, self::OUTPUT_IMAGE_GIF, self::OUTPUT_IMAGE_JPG], chillerlanQRCodeOutputQRString::class => [self::OUTPUT_STRING_JSON, self::OUTPUT_STRING_TEXT], chillerlanQRCodeOutputQRImagick::class => [self::OUTPUT_IMAGICK], chillerlanQRCodeOutputQRFpdf::class => [self::OUTPUT_FPDF]] -
                                        -
                                        Map of built-in output modules => capabilities
                                        - -
                                        - OUTPUT_STRING_JSON - -  = 'json' -
                                        -
                                        - -
                                        - OUTPUT_STRING_TEXT - -  = 'text' -
                                        -
                                        - -
                                        - VERSION_AUTO - -  = -1 -
                                        -
                                        - -
                                        - DATA_INTERFACES - -  = ['number' => chillerlanQRCodeDataNumber::class, 'alphanum' => chillerlanQRCodeDataAlphaNum::class, 'kanji' => chillerlanQRCodeDataKanji::class, 'byte' => chillerlanQRCodeDataByte::class] -
                                        -
                                        Map of data mode => interface
                                        - -
                                        - $dataInterface - -  : QRDataInterface -
                                        -
                                        The selected data interface (Number, AlphaNum, Kanji, Byte)
                                        - -
                                        - $options - -  : SettingsContainerInterface -
                                        -
                                        The settings container
                                        - -
                                        - __construct() - -  : mixed -
                                        -
                                        QRCode constructor.
                                        - -
                                        - getMatrix() - -  : QRMatrix -
                                        -
                                        Returns a QRMatrix object for the given $data and current QROptions
                                        - -
                                        - initDataInterface() - -  : QRDataInterface -
                                        -
                                        returns a fresh QRDataInterface for the given $data
                                        - -
                                        - isAlphaNum() - -  : bool -
                                        -
                                        checks if a string qualifies as alphanumeric
                                        - -
                                        - isByte() - -  : bool -
                                        -
                                        a dummy
                                        - -
                                        - isKanji() - -  : bool -
                                        -
                                        checks if a string qualifies as Kanji
                                        - -
                                        - isNumber() - -  : bool -
                                        -
                                        checks if a string qualifies as numeric
                                        - -
                                        - render() - -  : mixed -
                                        -
                                        Renders a QR Code for the given $data and QROptions
                                        - -
                                        - checkString() - -  : bool -
                                        -
                                        checks is a given $string matches the characters of a given $charmap, returns false on the first invalid occurence.
                                        - -
                                        - initOutputInterface() - -  : QROutputInterface -
                                        -
                                        returns a fresh (built-in) QROutputInterface
                                        - -
                                        - - - - -
                                        -

                                        - Constants - -

                                        -
                                        -

                                        - DATA_ALPHANUM - -

                                        - - - - - - public - int - DATA_ALPHANUM - = 0b10 - - - -
                                        - - - -
                                        -
                                        -

                                        - DATA_BYTE - -

                                        - - - - - - public - int - DATA_BYTE - = 0b100 - - - -
                                        - - - -
                                        -
                                        -

                                        - DATA_KANJI - -

                                        - - - - - - public - int - DATA_KANJI - = 0b1000 - - - -
                                        - - - -
                                        -
                                        -

                                        - DATA_MODES - -

                                        - - - -

                                        References to the keys of the following tables:

                                        - - - public - array<string|int, int> - DATA_MODES - = [self::DATA_NUMBER => 0, self::DATA_ALPHANUM => 1, self::DATA_BYTE => 2, self::DATA_KANJI => 3] - - - -
                                        - - -
                                        - Tags - -
                                        -
                                        -
                                        - see -
                                        -
                                        - QRDataInterface::MAX_LENGTH - -
                                        - -
                                        -
                                        - -
                                        -
                                        -

                                        - DATA_NUMBER - -

                                        - - - - - - public - int - DATA_NUMBER - = 0b1 - - - -
                                        - - - -
                                        -
                                        -

                                        - ECC_H - -

                                        - - - - - - public - int - ECC_H - = 0b10 - - - -
                                        - - - -
                                        -
                                        -

                                        - ECC_L - -

                                        - - - - - - public - int - ECC_L - = 0b1 - - - -
                                        - - - -
                                        -
                                        -

                                        - ECC_M - -

                                        - - - - - - public - int - ECC_M - = 0b0 - - - -
                                        - - - -
                                        - -
                                        -

                                        - ECC_Q - -

                                        - - - - - - public - int - ECC_Q - = 0b11 - - - -
                                        - - - -
                                        -
                                        -

                                        - MASK_PATTERN_AUTO - -

                                        - - - - - - public - int - MASK_PATTERN_AUTO - = -1 - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_CUSTOM - -

                                        - - - - - - public - string - OUTPUT_CUSTOM - = 'custom' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_FPDF - -

                                        - - - - - - public - string - OUTPUT_FPDF - = 'fpdf' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_IMAGE_GIF - -

                                        - - - - - - public - string - OUTPUT_IMAGE_GIF - = 'gif' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_IMAGE_JPG - -

                                        - - - - - - public - string - OUTPUT_IMAGE_JPG - = 'jpg' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_IMAGE_PNG - -

                                        - - - - - - public - string - OUTPUT_IMAGE_PNG - = 'png' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_IMAGICK - -

                                        - - - - - - public - string - OUTPUT_IMAGICK - = 'imagick' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_MARKUP_HTML - -

                                        - - - - - - public - string - OUTPUT_MARKUP_HTML - = 'html' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_MARKUP_SVG - -

                                        - - - - - - public - string - OUTPUT_MARKUP_SVG - = 'svg' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_MODES - -

                                        - - - -

                                        Map of built-in output modules => capabilities

                                        - - - public - array<string|int, array<string|int, string>> - OUTPUT_MODES - = [chillerlanQRCodeOutputQRMarkup::class => [self::OUTPUT_MARKUP_SVG, self::OUTPUT_MARKUP_HTML], chillerlanQRCodeOutputQRImage::class => [self::OUTPUT_IMAGE_PNG, self::OUTPUT_IMAGE_GIF, self::OUTPUT_IMAGE_JPG], chillerlanQRCodeOutputQRString::class => [self::OUTPUT_STRING_JSON, self::OUTPUT_STRING_TEXT], chillerlanQRCodeOutputQRImagick::class => [self::OUTPUT_IMAGICK], chillerlanQRCodeOutputQRFpdf::class => [self::OUTPUT_FPDF]] - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_STRING_JSON - -

                                        - - - - - - public - string - OUTPUT_STRING_JSON - = 'json' - - - -
                                        - - - -
                                        -
                                        -

                                        - OUTPUT_STRING_TEXT - -

                                        - - - - - - public - string - OUTPUT_STRING_TEXT - = 'text' - - - -
                                        - - - -
                                        -
                                        -

                                        - VERSION_AUTO - -

                                        - - - - - - public - int - VERSION_AUTO - = -1 - - - -
                                        - - - -
                                        -
                                        -

                                        - DATA_INTERFACES - -

                                        - - - -

                                        Map of data mode => interface

                                        - - - protected - array<string|int, string> - DATA_INTERFACES - = ['number' => chillerlanQRCodeDataNumber::class, 'alphanum' => chillerlanQRCodeDataAlphaNum::class, 'kanji' => chillerlanQRCodeDataKanji::class, 'byte' => chillerlanQRCodeDataByte::class] - - - -
                                        - - - -
                                        -
                                        - - -
                                        -

                                        - Properties - -

                                        -
                                        -

                                        - $dataInterface - - - -

                                        - - -

                                        The selected data interface (Number, AlphaNum, Kanji, Byte)

                                        - - - protected - QRDataInterface - $dataInterface - - -
                                        - - - -
                                        -
                                        -

                                        - $options - - - -

                                        - - -

                                        The settings container

                                        - - - protected - SettingsContainerInterface - $options - - -
                                        - - - -
                                        -
                                        - -
                                        -

                                        - Methods - -

                                        -
                                        -

                                        - __construct() - -

                                        - - -

                                        QRCode constructor.

                                        - - - public - __construct([SettingsContainerInterface $options = null ]) : mixed - -

                                        Sets the options instance, determines the current mb-encoding and sets it to UTF-8

                                        -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $options - : SettingsContainerInterface - = null
                                        -
                                        - -
                                        -
                                        - - - -
                                        Return values
                                        - mixed - — -
                                        - - -
                                        -
                                        -

                                        - getMatrix() - -

                                        - - -

                                        Returns a QRMatrix object for the given $data and current QROptions

                                        - - - public - getMatrix(string $data) : QRMatrix - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $data - : string -
                                        -
                                        - -
                                        -
                                        - - -
                                        - Tags - -
                                        -
                                        -
                                        - throws -
                                        -
                                        - QRCodeDataException - -
                                        - -
                                        -
                                        - -
                                        Return values
                                        - QRMatrix - — -
                                        - - -
                                        -
                                        -

                                        - initDataInterface() - -

                                        - - -

                                        returns a fresh QRDataInterface for the given $data

                                        - - - public - initDataInterface(string $data) : QRDataInterface - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $data - : string -
                                        -
                                        - -
                                        -
                                        - - -
                                        - Tags - -
                                        -
                                        -
                                        - throws -
                                        -
                                        - QRCodeDataException - -
                                        - -
                                        -
                                        - -
                                        Return values
                                        - QRDataInterface - — -
                                        - - -
                                        -
                                        -

                                        - isAlphaNum() - -

                                        - - -

                                        checks if a string qualifies as alphanumeric

                                        - - - public - isAlphaNum(string $string) : bool - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $string - : string -
                                        -
                                        - -
                                        -
                                        - - - -
                                        Return values
                                        - bool - — -
                                        - - -
                                        -
                                        -

                                        - isByte() - -

                                        - - -

                                        a dummy

                                        - - - public - isByte(string $data) : bool - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $data - : string -
                                        -
                                        - -
                                        -
                                        - - - -
                                        Return values
                                        - bool - — -
                                        - - -
                                        -
                                        -

                                        - isKanji() - -

                                        - - -

                                        checks if a string qualifies as Kanji

                                        - - - public - isKanji(string $string) : bool - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $string - : string -
                                        -
                                        - -
                                        -
                                        - - - -
                                        Return values
                                        - bool - — -
                                        - - -
                                        -
                                        -

                                        - isNumber() - -

                                        - - -

                                        checks if a string qualifies as numeric

                                        - - - public - isNumber(string $string) : bool - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $string - : string -
                                        -
                                        - -
                                        -
                                        - - - -
                                        Return values
                                        - bool - — -
                                        - - -
                                        -
                                        -

                                        - render() - -

                                        - - -

                                        Renders a QR Code for the given $data and QROptions

                                        - - - public - render(string $data[, string $file = null ]) : mixed - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $data - : string -
                                        -
                                        - -
                                        -
                                        - $file - : string - = null
                                        -
                                        - -
                                        -
                                        - - - -
                                        Return values
                                        - mixed - — -
                                        - - -
                                        -
                                        -

                                        - checkString() - -

                                        - - -

                                        checks is a given $string matches the characters of a given $charmap, returns false on the first invalid occurence.

                                        - - - protected - checkString(string $string, array<string|int, mixed> $charmap) : bool - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $string - : string -
                                        -
                                        - -
                                        -
                                        - $charmap - : array<string|int, mixed> -
                                        -
                                        - -
                                        -
                                        - - - -
                                        Return values
                                        - bool - — -
                                        - - -
                                        -
                                        -

                                        - initOutputInterface() - -

                                        - - -

                                        returns a fresh (built-in) QROutputInterface

                                        - - - protected - initOutputInterface(string $data) : QROutputInterface - -
                                        - -
                                        Parameters
                                        -
                                        -
                                        - $data - : string -
                                        -
                                        - -
                                        -
                                        - - -
                                        - Tags - -
                                        -
                                        -
                                        - throws -
                                        -
                                        - QRCodeOutputException - -
                                        - -
                                        -
                                        - -
                                        Return values
                                        - QROutputInterface - — -
                                        - - -
                                        -
                                        - -
                                        -
                                        -
                                        -
                                        -

                                        Search results

                                        - -
                                        -
                                        -
                                          -
                                          -
                                          -
                                          -
                                          -
                                          - - -
                                          - - - - diff --git a/classes/chillerlan-QRCode-QRCodeException.html b/classes/chillerlan-QRCode-QRCodeException.html deleted file mode 100644 index 9b1b77223..000000000 --- a/classes/chillerlan-QRCode-QRCodeException.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                          -

                                          Documentation

                                          - - - - - -
                                          - -
                                          -
                                          - - - - -
                                          - - -
                                          -

                                          - QRCodeException - - - extends Exception - - - - -

                                          - - - -

                                          An exception container

                                          - -
                                          - - - - - - - - - - - - - - - - -
                                          -
                                          -
                                          -
                                          -

                                          Search results

                                          - -
                                          -
                                          -
                                            -
                                            -
                                            -
                                            -
                                            -
                                            - - -
                                            - - - - diff --git a/classes/chillerlan-QRCode-QROptions.html b/classes/chillerlan-QRCode-QROptions.html deleted file mode 100644 index 403314252..000000000 --- a/classes/chillerlan-QRCode-QROptions.html +++ /dev/null @@ -1,3186 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                            -

                                            Documentation

                                            - - - - - -
                                            - -
                                            -
                                            - - - - -
                                            - - -
                                            -

                                            - QROptions - - - extends SettingsContainerAbstract - - - - - - Uses - QROptionsTrait -

                                            - - - -

                                            The QRCode settings container

                                            - -
                                            - - - - - - - - -

                                            - Table of Contents - -

                                            - -
                                            -
                                            - $addQuietzone - -  : bool -
                                            -
                                            - -
                                            - $cachefile - -  : string|null -
                                            -
                                            - -
                                            - $cssClass - -  : string -
                                            -
                                            - -
                                            - $dataModeOverride - -  : string|null -
                                            -
                                            - -
                                            - $eccLevel - -  : int -
                                            -
                                            - -
                                            - $eol - -  : string -
                                            -
                                            - -
                                            - $fpdfMeasureUnit - -  : string -
                                            -
                                            - -
                                            - $imageBase64 - -  : bool -
                                            -
                                            - -
                                            - $imageTransparencyBG - -  : array<string|int, mixed> -
                                            -
                                            - -
                                            - $imageTransparent - -  : bool -
                                            -
                                            - -
                                            - $imagickBG - -  : string|null -
                                            -
                                            - -
                                            - $imagickFormat - -  : string -
                                            -
                                            - -
                                            - $jpegQuality - -  : int -
                                            -
                                            - -
                                            - $markupDark - -  : string -
                                            -
                                            - -
                                            - $markupLight - -  : string -
                                            -
                                            - -
                                            - $maskPattern - -  : int -
                                            -
                                            - -
                                            - $moduleValues - -  : array<string|int, mixed>|null -
                                            -
                                            - -
                                            - $outputInterface - -  : string|null -
                                            -
                                            - -
                                            - $outputType - -  : string -
                                            -
                                            - -
                                            - $pngCompression - -  : int -
                                            -
                                            - -
                                            - $quietzoneSize - -  : int -
                                            -
                                            - -
                                            - $returnResource - -  : bool -
                                            -
                                            - -
                                            - $scale - -  : int -
                                            -
                                            - -
                                            - $svgDefs - -  : string -
                                            -
                                            - -
                                            - $svgOpacity - -  : float -
                                            -
                                            - -
                                            - $svgViewBoxSize - -  : int -
                                            -
                                            - -
                                            - $textDark - -  : string -
                                            -
                                            - -
                                            - $textLight - -  : string -
                                            -
                                            - -
                                            - $version - -  : int -
                                            -
                                            - -
                                            - $versionMax - -  : int -
                                            -
                                            - -
                                            - $versionMin - -  : int -
                                            -
                                            - -
                                            - $addQuietzone - -  : bool -
                                            -
                                            Add a "quiet zone" (margin) according to the QR code spec
                                            - -
                                            - $cachefile - -  : string|null -
                                            -
                                            /path/to/cache.file
                                            - -
                                            - $cssClass - -  : string -
                                            -
                                            a common css class
                                            - -
                                            - $dataModeOverride - -  : string|null -
                                            -
                                            Use this to circumvent the data mode detection and force the usage of the given mode.
                                            - -
                                            - $eccLevel - -  : int -
                                            -
                                            Error correct level
                                            - -
                                            - $eol - -  : string -
                                            -
                                            newline string [HTML, SVG, TEXT]
                                            - -
                                            - $fpdfMeasureUnit - -  : string -
                                            -
                                            Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")
                                            - -
                                            - $imageBase64 - -  : bool -
                                            -
                                            toggle base64 or raw image data
                                            - -
                                            - $imageTransparencyBG - -  : array<string|int, mixed> -
                                            -
                                            - -
                                            - $imageTransparent - -  : bool -
                                            -
                                            toggle transparency, not supported by jpg
                                            - -
                                            - $imagickBG - -  : string|null -
                                            -
                                            Imagick background color (defaults to "transparent")
                                            - -
                                            - $imagickFormat - -  : string -
                                            -
                                            Imagick output format
                                            - -
                                            - $jpegQuality - -  : int -
                                            -
                                            - -
                                            - $markupDark - -  : string -
                                            -
                                            markup substitute for dark (CSS value)
                                            - -
                                            - $markupLight - -  : string -
                                            -
                                            markup substitute for light (CSS value)
                                            - -
                                            - $maskPattern - -  : int -
                                            -
                                            Mask Pattern to use
                                            - -
                                            - $moduleValues - -  : array<string|int, mixed>|null -
                                            -
                                            Module values map
                                            - -
                                            - $outputInterface - -  : string|null -
                                            -
                                            the FQCN of the custom QROutputInterface if $outputType is set to QRCode::OUTPUT_CUSTOM
                                            - -
                                            - $outputType - -  : string -
                                            -
                                            The output type
                                            - -
                                            - $pngCompression - -  : int -
                                            -
                                            - -
                                            - $quietzoneSize - -  : int -
                                            -
                                            Size of the quiet zone
                                            - -
                                            - $returnResource - -  : bool -
                                            -
                                            Return the image resource instead of a render if applicable.
                                            - -
                                            - $scale - -  : int -
                                            -
                                            size of a QR code pixel [SVG, IMAGE_*], HTML via CSS
                                            - -
                                            - $svgDefs - -  : string -
                                            -
                                            anything between <defs>
                                            - -
                                            - $svgOpacity - -  : float -
                                            -
                                            SVG opacity
                                            - -
                                            - $svgViewBoxSize - -  : int|null -
                                            -
                                            SVG viewBox size. a single integer number which defines width/height of the viewBox attribute.
                                            - -
                                            - $textDark - -  : string -
                                            -
                                            string substitute for dark
                                            - -
                                            - $textLight - -  : string -
                                            -
                                            string substitute for light
                                            - -
                                            - $version - -  : int -
                                            -
                                            QR Code version number
                                            - -
                                            - $versionMax - -  : int -
                                            -
                                            Maximum QR version
                                            - -
                                            - $versionMin - -  : int -
                                            -
                                            Minimum QR version
                                            - -
                                            - set_eccLevel() - -  : void -
                                            -
                                            sets the error correction level
                                            - -
                                            - set_fpdfMeasureUnit() - -  : void -
                                            -
                                            sets the FPDF measurement unit
                                            - -
                                            - set_imageTransparencyBG() - -  : void -
                                            -
                                            sets the transparency background color
                                            - -
                                            - set_maskPattern() - -  : void -
                                            -
                                            sets/clamps the mask pattern
                                            - -
                                            - set_version() - -  : void -
                                            -
                                            sets/clamps the version number
                                            - -
                                            - set_versionMax() - -  : void -
                                            -
                                            sets the maximum version number
                                            - -
                                            - set_versionMin() - -  : void -
                                            -
                                            sets the minimum version number
                                            - -
                                            - setMinMaxVersion() - -  : void -
                                            -
                                            clamp min/max version number
                                            - -
                                            - - - - - - -
                                            -

                                            - Properties - -

                                            -
                                            -

                                            - $addQuietzone - - - -

                                            - - - - - public - bool - $addQuietzone - - -
                                            - - - -
                                            -
                                            -

                                            - $cachefile - - - -

                                            - - - - - public - string|null - $cachefile - - -
                                            - - - -
                                            -
                                            -

                                            - $cssClass - - - -

                                            - - - - - public - string - $cssClass - - -
                                            - - - -
                                            -
                                            -

                                            - $dataModeOverride - - - -

                                            - - - - - public - string|null - $dataModeOverride - - -
                                            - - - -
                                            -
                                            -

                                            - $eccLevel - - - -

                                            - - - - - public - int - $eccLevel - - -
                                            - - - -
                                            -
                                            -

                                            - $eol - - - -

                                            - - - - - public - string - $eol - - -
                                            - - - -
                                            -
                                            -

                                            - $fpdfMeasureUnit - - - -

                                            - - - - - public - string - $fpdfMeasureUnit - - -
                                            - - - -
                                            -
                                            -

                                            - $imageBase64 - - - -

                                            - - - - - public - bool - $imageBase64 - - -
                                            - - - -
                                            -
                                            -

                                            - $imageTransparencyBG - - - -

                                            - - - - - public - array<string|int, mixed> - $imageTransparencyBG - - -
                                            - - - -
                                            -
                                            -

                                            - $imageTransparent - - - -

                                            - - - - - public - bool - $imageTransparent - - -
                                            - - - -
                                            -
                                            -

                                            - $imagickBG - - - -

                                            - - - - - public - string|null - $imagickBG - - -
                                            - - - -
                                            -
                                            -

                                            - $imagickFormat - - - -

                                            - - - - - public - string - $imagickFormat - - -
                                            - - - -
                                            -
                                            -

                                            - $jpegQuality - - - -

                                            - - - - - public - int - $jpegQuality - - -
                                            - - - -
                                            -
                                            -

                                            - $markupDark - - - -

                                            - - - - - public - string - $markupDark - - -
                                            - - - -
                                            -
                                            -

                                            - $markupLight - - - -

                                            - - - - - public - string - $markupLight - - -
                                            - - - -
                                            -
                                            -

                                            - $maskPattern - - - -

                                            - - - - - public - int - $maskPattern - - -
                                            - - - -
                                            -
                                            -

                                            - $moduleValues - - - -

                                            - - - - - public - array<string|int, mixed>|null - $moduleValues - - -
                                            - - - -
                                            -
                                            -

                                            - $outputInterface - - - -

                                            - - - - - public - string|null - $outputInterface - - -
                                            - - - -
                                            -
                                            -

                                            - $outputType - - - -

                                            - - - - - public - string - $outputType - - -
                                            - - - -
                                            -
                                            -

                                            - $pngCompression - - - -

                                            - - - - - public - int - $pngCompression - - -
                                            - - - -
                                            -
                                            -

                                            - $quietzoneSize - - - -

                                            - - - - - public - int - $quietzoneSize - - -
                                            - - - -
                                            -
                                            -

                                            - $returnResource - - - -

                                            - - - - - public - bool - $returnResource - - -
                                            - - - -
                                            -
                                            -

                                            - $scale - - - -

                                            - - - - - public - int - $scale - - -
                                            - - - -
                                            -
                                            -

                                            - $svgDefs - - - -

                                            - - - - - public - string - $svgDefs - - -
                                            - - - -
                                            -
                                            -

                                            - $svgOpacity - - - -

                                            - - - - - public - float - $svgOpacity - - -
                                            - - - -
                                            -
                                            -

                                            - $svgViewBoxSize - - - -

                                            - - - - - public - int - $svgViewBoxSize - - -
                                            - - - -
                                            -
                                            -

                                            - $textDark - - - -

                                            - - - - - public - string - $textDark - - -
                                            - - - -
                                            -
                                            -

                                            - $textLight - - - -

                                            - - - - - public - string - $textLight - - -
                                            - - - -
                                            -
                                            -

                                            - $version - - - -

                                            - - - - - public - int - $version - - -
                                            - - - -
                                            -
                                            -

                                            - $versionMax - - - -

                                            - - - - - public - int - $versionMax - - -
                                            - - - -
                                            -
                                            -

                                            - $versionMin - - - -

                                            - - - - - public - int - $versionMin - - -
                                            - - - -
                                            -
                                            -

                                            - $addQuietzone - - - -

                                            - - -

                                            Add a "quiet zone" (margin) according to the QR code spec

                                            - - - protected - bool - $addQuietzone - = true - -
                                            - - - -
                                            -
                                            -

                                            - $cachefile - - - -

                                            - - -

                                            /path/to/cache.file

                                            - - - protected - string|null - $cachefile - = null - -
                                            - - - -
                                            -
                                            -

                                            - $cssClass - - - -

                                            - - -

                                            a common css class

                                            - - - protected - string - $cssClass - = '' - -
                                            - - - -
                                            -
                                            -

                                            - $dataModeOverride - - - -

                                            - - -

                                            Use this to circumvent the data mode detection and force the usage of the given mode.

                                            - - - protected - string|null - $dataModeOverride - = null - -

                                            valid modes are: Number, AlphaNum, Kanji, Byte (case insensitive)

                                            -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - see -
                                            -
                                            - https://github.com/chillerlan/php-qrcode/issues/39 - -
                                            - -
                                            -
                                            - -
                                            -
                                            -

                                            - $eccLevel - - - -

                                            - - -

                                            Error correct level

                                            - - - protected - int - $eccLevel - = chillerlanQRCodeQRCode::ECC_L - -

                                            QRCode::ECC_X where X is:

                                            -
                                              -
                                            • L => 7%
                                            • -
                                            • M => 15%
                                            • -
                                            • Q => 25%
                                            • -
                                            • H => 30%
                                            • -
                                            -
                                            - - - -
                                            -
                                            -

                                            - $eol - - - -

                                            - - -

                                            newline string [HTML, SVG, TEXT]

                                            - - - protected - string - $eol - = PHP_EOL - -
                                            - - - -
                                            -
                                            -

                                            - $fpdfMeasureUnit - - - -

                                            - - -

                                            Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")

                                            - - - protected - string - $fpdfMeasureUnit - = 'pt' - -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - see -
                                            -
                                            - FPDF::__construct() - -
                                            - -
                                            -
                                            - -
                                            -
                                            -

                                            - $imageBase64 - - - -

                                            - - -

                                            toggle base64 or raw image data

                                            - - - protected - bool - $imageBase64 - = true - -
                                            - - - -
                                            -
                                            -

                                            - $imageTransparencyBG - - - -

                                            - - - - - protected - array<string|int, mixed> - $imageTransparencyBG - = [255, 255, 255] - -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - see -
                                            -
                                            - imagecolortransparent() - -

                                            [R, G, B]

                                            -
                                            - -
                                            -
                                            - -
                                            -
                                            -

                                            - $imageTransparent - - - -

                                            - - -

                                            toggle transparency, not supported by jpg

                                            - - - protected - bool - $imageTransparent - = true - -
                                            - - - -
                                            -
                                            -

                                            - $imagickBG - - - -

                                            - - -

                                            Imagick background color (defaults to "transparent")

                                            - - - protected - string|null - $imagickBG - = null - -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - see -
                                            -
                                            - ImagickPixel::__construct() - -
                                            - -
                                            -
                                            - -
                                            -
                                            -

                                            - $imagickFormat - - - -

                                            - - -

                                            Imagick output format

                                            - - - protected - string - $imagickFormat - = 'png' - -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - see -
                                            -
                                            - Imagick::setType() - -
                                            - -
                                            -
                                            - -
                                            -
                                            -

                                            - $jpegQuality - - - -

                                            - - - - - protected - int - $jpegQuality - = 85 - -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - see -
                                            -
                                            - imagejpeg() - -
                                            - -
                                            -
                                            - -
                                            -
                                            -

                                            - $markupDark - - - -

                                            - - -

                                            markup substitute for dark (CSS value)

                                            - - - protected - string - $markupDark - = '#000' - -
                                            - - - -
                                            -
                                            -

                                            - $markupLight - - - -

                                            - - -

                                            markup substitute for light (CSS value)

                                            - - - protected - string - $markupLight - = '#fff' - -
                                            - - - -
                                            -
                                            -

                                            - $maskPattern - - - -

                                            - - -

                                            Mask Pattern to use

                                            - - - protected - int - $maskPattern - = chillerlanQRCodeQRCode::MASK_PATTERN_AUTO - -

                                            [0...7] or QRCode::MASK_PATTERN_AUTO

                                            -
                                            - - - -
                                            -
                                            -

                                            - $moduleValues - - - -

                                            - - -

                                            Module values map

                                            - - - protected - array<string|int, mixed>|null - $moduleValues - = null - -
                                              -
                                            • HTML, IMAGICK: #ABCDEF, cssname, rgb(), rgba()...
                                            • -
                                            • IMAGE: [63, 127, 255] // R, G, B
                                            • -
                                            -
                                            - - - -
                                            -
                                            -

                                            - $outputInterface - - - -

                                            - - -

                                            the FQCN of the custom QROutputInterface if $outputType is set to QRCode::OUTPUT_CUSTOM

                                            - - - protected - string|null - $outputInterface - = null - -
                                            - - - -
                                            -
                                            -

                                            - $outputType - - - -

                                            - - -

                                            The output type

                                            - - - protected - string - $outputType - = chillerlanQRCodeQRCode::OUTPUT_IMAGE_PNG - -
                                              -
                                            • QRCode::OUTPUT_MARKUP_XXXX where XXXX = HTML, SVG
                                            • -
                                            • QRCode::OUTPUT_IMAGE_XXX where XXX = PNG, GIF, JPG
                                            • -
                                            • QRCode::OUTPUT_STRING_XXXX where XXXX = TEXT, JSON
                                            • -
                                            • QRCode::OUTPUT_CUSTOM
                                            • -
                                            -
                                            - - - -
                                            -
                                            -

                                            - $pngCompression - - - -

                                            - - - - - protected - int - $pngCompression - = -1 - -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - see -
                                            -
                                            - imagepng() - -
                                            - -
                                            -
                                            - -
                                            -
                                            -

                                            - $quietzoneSize - - - -

                                            - - -

                                            Size of the quiet zone

                                            - - - protected - int - $quietzoneSize - = 4 - -

                                            internally clamped to [0 ... $moduleCount / 2], defaults to 4 modules

                                            -
                                            - - - -
                                            -
                                            -

                                            - $returnResource - - - -

                                            - - -

                                            Return the image resource instead of a render if applicable.

                                            - - - protected - bool - $returnResource - = false - -

                                            This option overrides other output options, such as $cachefile and $imageBase64.

                                            -

                                            Supported by the following modules:

                                            -
                                              -
                                            • QRImage: resource (PHP < 8), GdImage
                                            • -
                                            • QRImagick: Imagick
                                            • -
                                            • QRFpdf: FPDF
                                            • -
                                            -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - see -
                                            -
                                            - QROutputInterface::dump() - -
                                            - -
                                            -
                                            - -
                                            -
                                            -

                                            - $scale - - - -

                                            - - -

                                            size of a QR code pixel [SVG, IMAGE_*], HTML via CSS

                                            - - - protected - int - $scale - = 5 - -
                                            - - - -
                                            - -
                                            -

                                            - $svgOpacity - - - -

                                            - - -

                                            SVG opacity

                                            - - - protected - float - $svgOpacity - = 1.0 - -
                                            - - - -
                                            - -
                                            -

                                            - $textDark - - - -

                                            - - -

                                            string substitute for dark

                                            - - - protected - string - $textDark - = '🔴' - -
                                            - - - -
                                            -
                                            -

                                            - $textLight - - - -

                                            - - -

                                            string substitute for light

                                            - - - protected - string - $textLight - = '⭕' - -
                                            - - - -
                                            -
                                            -

                                            - $version - - - -

                                            - - -

                                            QR Code version number

                                            - - - protected - int - $version - = chillerlanQRCodeQRCode::VERSION_AUTO - -

                                            [1 ... 40] or QRCode::VERSION_AUTO

                                            -
                                            - - - -
                                            -
                                            -

                                            - $versionMax - - - -

                                            - - -

                                            Maximum QR version

                                            - - - protected - int - $versionMax - = 40 - -
                                            - - - -
                                            -
                                            -

                                            - $versionMin - - - -

                                            - - -

                                            Minimum QR version

                                            - - - protected - int - $versionMin - = 1 - -

                                            if $version = QRCode::VERSION_AUTO

                                            -
                                            - - - -
                                            -
                                            - -
                                            -

                                            - Methods - -

                                            -
                                            -

                                            - set_eccLevel() - -

                                            - - -

                                            sets the error correction level

                                            - - - protected - set_eccLevel(int $eccLevel) : void - -
                                            - -
                                            Parameters
                                            -
                                            -
                                            - $eccLevel - : int -
                                            -
                                            - -
                                            -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - throws -
                                            -
                                            - QRCodeException - -
                                            - -
                                            -
                                            - -
                                            Return values
                                            - void - — -
                                            - - -
                                            -
                                            -

                                            - set_fpdfMeasureUnit() - -

                                            - - -

                                            sets the FPDF measurement unit

                                            - - - protected - set_fpdfMeasureUnit(string $unit) : void - -
                                            - -
                                            Parameters
                                            -
                                            -
                                            - $unit - : string -
                                            -
                                            - -
                                            -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - codeCoverageIgnore -
                                            -
                                            - -
                                            - -
                                            -
                                            - -
                                            Return values
                                            - void - — -
                                            - - -
                                            -
                                            -

                                            - set_imageTransparencyBG() - -

                                            - - -

                                            sets the transparency background color

                                            - - - protected - set_imageTransparencyBG(array<string|int, mixed> $imageTransparencyBG) : void - -
                                            - -
                                            Parameters
                                            -
                                            -
                                            - $imageTransparencyBG - : array<string|int, mixed> -
                                            -
                                            - -
                                            -
                                            - - -
                                            - Tags - -
                                            -
                                            -
                                            - throws -
                                            -
                                            - QRCodeException - -
                                            - -
                                            -
                                            - -
                                            Return values
                                            - void - — -
                                            - - -
                                            -
                                            -

                                            - set_maskPattern() - -

                                            - - -

                                            sets/clamps the mask pattern

                                            - - - protected - set_maskPattern(int $maskPattern) : void - -
                                            - -
                                            Parameters
                                            -
                                            -
                                            - $maskPattern - : int -
                                            -
                                            - -
                                            -
                                            - - - -
                                            Return values
                                            - void - — -
                                            - - -
                                            -
                                            -

                                            - set_version() - -

                                            - - -

                                            sets/clamps the version number

                                            - - - protected - set_version(int $version) : void - -
                                            - -
                                            Parameters
                                            -
                                            -
                                            - $version - : int -
                                            -
                                            - -
                                            -
                                            - - - -
                                            Return values
                                            - void - — -
                                            - - -
                                            -
                                            -

                                            - set_versionMax() - -

                                            - - -

                                            sets the maximum version number

                                            - - - protected - set_versionMax(int $version) : void - -
                                            - -
                                            Parameters
                                            -
                                            -
                                            - $version - : int -
                                            -
                                            - -
                                            -
                                            - - - -
                                            Return values
                                            - void - — -
                                            - - -
                                            -
                                            -

                                            - set_versionMin() - -

                                            - - -

                                            sets the minimum version number

                                            - - - protected - set_versionMin(int $version) : void - -
                                            - -
                                            Parameters
                                            -
                                            -
                                            - $version - : int -
                                            -
                                            - -
                                            -
                                            - - - -
                                            Return values
                                            - void - — -
                                            - - -
                                            -
                                            -

                                            - setMinMaxVersion() - -

                                            - - -

                                            clamp min/max version number

                                            - - - protected - setMinMaxVersion(int $versionMin, int $versionMax) : void - -
                                            - -
                                            Parameters
                                            -
                                            -
                                            - $versionMin - : int -
                                            -
                                            - -
                                            -
                                            - $versionMax - : int -
                                            -
                                            - -
                                            -
                                            - - - -
                                            Return values
                                            - void - — -
                                            - - -
                                            -
                                            - -
                                            -
                                            -
                                            -
                                            -

                                            Search results

                                            - -
                                            -
                                            -
                                              -
                                              -
                                              -
                                              -
                                              -
                                              - - -
                                              - - - - diff --git a/classes/chillerlan-QRCode-QROptionsTrait.html b/classes/chillerlan-QRCode-QROptionsTrait.html deleted file mode 100644 index 8a5f9da04..000000000 --- a/classes/chillerlan-QRCode-QROptionsTrait.html +++ /dev/null @@ -1,1996 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                              -

                                              Documentation

                                              - - - - - -
                                              - -
                                              -
                                              - - - - -
                                              - - -
                                              -

                                              - QROptionsTrait -

                                              - - - -

                                              The QRCode plug-in settings & setter functionality

                                              - -
                                              - - - - - - - - -

                                              - Table of Contents - -

                                              - -
                                              -
                                              - $addQuietzone - -  : bool -
                                              -
                                              Add a "quiet zone" (margin) according to the QR code spec
                                              - -
                                              - $cachefile - -  : string|null -
                                              -
                                              /path/to/cache.file
                                              - -
                                              - $cssClass - -  : string -
                                              -
                                              a common css class
                                              - -
                                              - $dataModeOverride - -  : string|null -
                                              -
                                              Use this to circumvent the data mode detection and force the usage of the given mode.
                                              - -
                                              - $eccLevel - -  : int -
                                              -
                                              Error correct level
                                              - -
                                              - $eol - -  : string -
                                              -
                                              newline string [HTML, SVG, TEXT]
                                              - -
                                              - $fpdfMeasureUnit - -  : string -
                                              -
                                              Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")
                                              - -
                                              - $imageBase64 - -  : bool -
                                              -
                                              toggle base64 or raw image data
                                              - -
                                              - $imageTransparencyBG - -  : array<string|int, mixed> -
                                              -
                                              - -
                                              - $imageTransparent - -  : bool -
                                              -
                                              toggle transparency, not supported by jpg
                                              - -
                                              - $imagickBG - -  : string|null -
                                              -
                                              Imagick background color (defaults to "transparent")
                                              - -
                                              - $imagickFormat - -  : string -
                                              -
                                              Imagick output format
                                              - -
                                              - $jpegQuality - -  : int -
                                              -
                                              - -
                                              - $markupDark - -  : string -
                                              -
                                              markup substitute for dark (CSS value)
                                              - -
                                              - $markupLight - -  : string -
                                              -
                                              markup substitute for light (CSS value)
                                              - -
                                              - $maskPattern - -  : int -
                                              -
                                              Mask Pattern to use
                                              - -
                                              - $moduleValues - -  : array<string|int, mixed>|null -
                                              -
                                              Module values map
                                              - -
                                              - $outputInterface - -  : string|null -
                                              -
                                              the FQCN of the custom QROutputInterface if $outputType is set to QRCode::OUTPUT_CUSTOM
                                              - -
                                              - $outputType - -  : string -
                                              -
                                              The output type
                                              - -
                                              - $pngCompression - -  : int -
                                              -
                                              - -
                                              - $quietzoneSize - -  : int -
                                              -
                                              Size of the quiet zone
                                              - -
                                              - $returnResource - -  : bool -
                                              -
                                              Return the image resource instead of a render if applicable.
                                              - -
                                              - $scale - -  : int -
                                              -
                                              size of a QR code pixel [SVG, IMAGE_*], HTML via CSS
                                              - -
                                              - $svgDefs - -  : string -
                                              -
                                              anything between <defs>
                                              - -
                                              - $svgOpacity - -  : float -
                                              -
                                              SVG opacity
                                              - -
                                              - $svgViewBoxSize - -  : int|null -
                                              -
                                              SVG viewBox size. a single integer number which defines width/height of the viewBox attribute.
                                              - -
                                              - $textDark - -  : string -
                                              -
                                              string substitute for dark
                                              - -
                                              - $textLight - -  : string -
                                              -
                                              string substitute for light
                                              - -
                                              - $version - -  : int -
                                              -
                                              QR Code version number
                                              - -
                                              - $versionMax - -  : int -
                                              -
                                              Maximum QR version
                                              - -
                                              - $versionMin - -  : int -
                                              -
                                              Minimum QR version
                                              - -
                                              - set_eccLevel() - -  : void -
                                              -
                                              sets the error correction level
                                              - -
                                              - set_fpdfMeasureUnit() - -  : void -
                                              -
                                              sets the FPDF measurement unit
                                              - -
                                              - set_imageTransparencyBG() - -  : void -
                                              -
                                              sets the transparency background color
                                              - -
                                              - set_maskPattern() - -  : void -
                                              -
                                              sets/clamps the mask pattern
                                              - -
                                              - set_version() - -  : void -
                                              -
                                              sets/clamps the version number
                                              - -
                                              - set_versionMax() - -  : void -
                                              -
                                              sets the maximum version number
                                              - -
                                              - set_versionMin() - -  : void -
                                              -
                                              sets the minimum version number
                                              - -
                                              - setMinMaxVersion() - -  : void -
                                              -
                                              clamp min/max version number
                                              - -
                                              - - - - -
                                              -

                                              - Properties - -

                                              -
                                              -

                                              - $addQuietzone - - - -

                                              - - -

                                              Add a "quiet zone" (margin) according to the QR code spec

                                              - - - protected - bool - $addQuietzone - = true - -
                                              - - - -
                                              -
                                              -

                                              - $cachefile - - - -

                                              - - -

                                              /path/to/cache.file

                                              - - - protected - string|null - $cachefile - = null - -
                                              - - - -
                                              -
                                              -

                                              - $cssClass - - - -

                                              - - -

                                              a common css class

                                              - - - protected - string - $cssClass - = '' - -
                                              - - - -
                                              -
                                              -

                                              - $dataModeOverride - - - -

                                              - - -

                                              Use this to circumvent the data mode detection and force the usage of the given mode.

                                              - - - protected - string|null - $dataModeOverride - = null - -

                                              valid modes are: Number, AlphaNum, Kanji, Byte (case insensitive)

                                              -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - see -
                                              -
                                              - https://github.com/chillerlan/php-qrcode/issues/39 - -
                                              - -
                                              -
                                              - -
                                              -
                                              -

                                              - $eccLevel - - - -

                                              - - -

                                              Error correct level

                                              - - - protected - int - $eccLevel - = chillerlanQRCodeQRCode::ECC_L - -

                                              QRCode::ECC_X where X is:

                                              -
                                                -
                                              • L => 7%
                                              • -
                                              • M => 15%
                                              • -
                                              • Q => 25%
                                              • -
                                              • H => 30%
                                              • -
                                              -
                                              - - - -
                                              -
                                              -

                                              - $eol - - - -

                                              - - -

                                              newline string [HTML, SVG, TEXT]

                                              - - - protected - string - $eol - = PHP_EOL - -
                                              - - - -
                                              -
                                              -

                                              - $fpdfMeasureUnit - - - -

                                              - - -

                                              Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")

                                              - - - protected - string - $fpdfMeasureUnit - = 'pt' - -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - see -
                                              -
                                              - FPDF::__construct() - -
                                              - -
                                              -
                                              - -
                                              -
                                              -

                                              - $imageBase64 - - - -

                                              - - -

                                              toggle base64 or raw image data

                                              - - - protected - bool - $imageBase64 - = true - -
                                              - - - -
                                              -
                                              -

                                              - $imageTransparencyBG - - - -

                                              - - - - - protected - array<string|int, mixed> - $imageTransparencyBG - = [255, 255, 255] - -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - see -
                                              -
                                              - imagecolortransparent() - -

                                              [R, G, B]

                                              -
                                              - -
                                              -
                                              - -
                                              -
                                              -

                                              - $imageTransparent - - - -

                                              - - -

                                              toggle transparency, not supported by jpg

                                              - - - protected - bool - $imageTransparent - = true - -
                                              - - - -
                                              -
                                              -

                                              - $imagickBG - - - -

                                              - - -

                                              Imagick background color (defaults to "transparent")

                                              - - - protected - string|null - $imagickBG - = null - -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - see -
                                              -
                                              - ImagickPixel::__construct() - -
                                              - -
                                              -
                                              - -
                                              -
                                              -

                                              - $imagickFormat - - - -

                                              - - -

                                              Imagick output format

                                              - - - protected - string - $imagickFormat - = 'png' - -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - see -
                                              -
                                              - Imagick::setType() - -
                                              - -
                                              -
                                              - -
                                              -
                                              -

                                              - $jpegQuality - - - -

                                              - - - - - protected - int - $jpegQuality - = 85 - -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - see -
                                              -
                                              - imagejpeg() - -
                                              - -
                                              -
                                              - -
                                              -
                                              -

                                              - $markupDark - - - -

                                              - - -

                                              markup substitute for dark (CSS value)

                                              - - - protected - string - $markupDark - = '#000' - -
                                              - - - -
                                              -
                                              -

                                              - $markupLight - - - -

                                              - - -

                                              markup substitute for light (CSS value)

                                              - - - protected - string - $markupLight - = '#fff' - -
                                              - - - -
                                              -
                                              -

                                              - $maskPattern - - - -

                                              - - -

                                              Mask Pattern to use

                                              - - - protected - int - $maskPattern - = chillerlanQRCodeQRCode::MASK_PATTERN_AUTO - -

                                              [0...7] or QRCode::MASK_PATTERN_AUTO

                                              -
                                              - - - -
                                              -
                                              -

                                              - $moduleValues - - - -

                                              - - -

                                              Module values map

                                              - - - protected - array<string|int, mixed>|null - $moduleValues - = null - -
                                                -
                                              • HTML, IMAGICK: #ABCDEF, cssname, rgb(), rgba()...
                                              • -
                                              • IMAGE: [63, 127, 255] // R, G, B
                                              • -
                                              -
                                              - - - -
                                              -
                                              -

                                              - $outputInterface - - - -

                                              - - -

                                              the FQCN of the custom QROutputInterface if $outputType is set to QRCode::OUTPUT_CUSTOM

                                              - - - protected - string|null - $outputInterface - = null - -
                                              - - - -
                                              -
                                              -

                                              - $outputType - - - -

                                              - - -

                                              The output type

                                              - - - protected - string - $outputType - = chillerlanQRCodeQRCode::OUTPUT_IMAGE_PNG - -
                                                -
                                              • QRCode::OUTPUT_MARKUP_XXXX where XXXX = HTML, SVG
                                              • -
                                              • QRCode::OUTPUT_IMAGE_XXX where XXX = PNG, GIF, JPG
                                              • -
                                              • QRCode::OUTPUT_STRING_XXXX where XXXX = TEXT, JSON
                                              • -
                                              • QRCode::OUTPUT_CUSTOM
                                              • -
                                              -
                                              - - - -
                                              -
                                              -

                                              - $pngCompression - - - -

                                              - - - - - protected - int - $pngCompression - = -1 - -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - see -
                                              -
                                              - imagepng() - -
                                              - -
                                              -
                                              - -
                                              -
                                              -

                                              - $quietzoneSize - - - -

                                              - - -

                                              Size of the quiet zone

                                              - - - protected - int - $quietzoneSize - = 4 - -

                                              internally clamped to [0 ... $moduleCount / 2], defaults to 4 modules

                                              -
                                              - - - -
                                              -
                                              -

                                              - $returnResource - - - -

                                              - - -

                                              Return the image resource instead of a render if applicable.

                                              - - - protected - bool - $returnResource - = false - -

                                              This option overrides other output options, such as $cachefile and $imageBase64.

                                              -

                                              Supported by the following modules:

                                              -
                                                -
                                              • QRImage: resource (PHP < 8), GdImage
                                              • -
                                              • QRImagick: Imagick
                                              • -
                                              • QRFpdf: FPDF
                                              • -
                                              -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - see -
                                              -
                                              - QROutputInterface::dump() - -
                                              - -
                                              -
                                              - -
                                              -
                                              -

                                              - $scale - - - -

                                              - - -

                                              size of a QR code pixel [SVG, IMAGE_*], HTML via CSS

                                              - - - protected - int - $scale - = 5 - -
                                              - - - -
                                              - -
                                              -

                                              - $svgOpacity - - - -

                                              - - -

                                              SVG opacity

                                              - - - protected - float - $svgOpacity - = 1.0 - -
                                              - - - -
                                              - -
                                              -

                                              - $textDark - - - -

                                              - - -

                                              string substitute for dark

                                              - - - protected - string - $textDark - = '🔴' - -
                                              - - - -
                                              -
                                              -

                                              - $textLight - - - -

                                              - - -

                                              string substitute for light

                                              - - - protected - string - $textLight - = '⭕' - -
                                              - - - -
                                              -
                                              -

                                              - $version - - - -

                                              - - -

                                              QR Code version number

                                              - - - protected - int - $version - = chillerlanQRCodeQRCode::VERSION_AUTO - -

                                              [1 ... 40] or QRCode::VERSION_AUTO

                                              -
                                              - - - -
                                              -
                                              -

                                              - $versionMax - - - -

                                              - - -

                                              Maximum QR version

                                              - - - protected - int - $versionMax - = 40 - -
                                              - - - -
                                              -
                                              -

                                              - $versionMin - - - -

                                              - - -

                                              Minimum QR version

                                              - - - protected - int - $versionMin - = 1 - -

                                              if $version = QRCode::VERSION_AUTO

                                              -
                                              - - - -
                                              -
                                              - -
                                              -

                                              - Methods - -

                                              -
                                              -

                                              - set_eccLevel() - -

                                              - - -

                                              sets the error correction level

                                              - - - protected - set_eccLevel(int $eccLevel) : void - -
                                              - -
                                              Parameters
                                              -
                                              -
                                              - $eccLevel - : int -
                                              -
                                              - -
                                              -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - throws -
                                              -
                                              - QRCodeException - -
                                              - -
                                              -
                                              - -
                                              Return values
                                              - void - — -
                                              - - -
                                              -
                                              -

                                              - set_fpdfMeasureUnit() - -

                                              - - -

                                              sets the FPDF measurement unit

                                              - - - protected - set_fpdfMeasureUnit(string $unit) : void - -
                                              - -
                                              Parameters
                                              -
                                              -
                                              - $unit - : string -
                                              -
                                              - -
                                              -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - codeCoverageIgnore -
                                              -
                                              - -
                                              - -
                                              -
                                              - -
                                              Return values
                                              - void - — -
                                              - - -
                                              -
                                              -

                                              - set_imageTransparencyBG() - -

                                              - - -

                                              sets the transparency background color

                                              - - - protected - set_imageTransparencyBG(array<string|int, mixed> $imageTransparencyBG) : void - -
                                              - -
                                              Parameters
                                              -
                                              -
                                              - $imageTransparencyBG - : array<string|int, mixed> -
                                              -
                                              - -
                                              -
                                              - - -
                                              - Tags - -
                                              -
                                              -
                                              - throws -
                                              -
                                              - QRCodeException - -
                                              - -
                                              -
                                              - -
                                              Return values
                                              - void - — -
                                              - - -
                                              -
                                              -

                                              - set_maskPattern() - -

                                              - - -

                                              sets/clamps the mask pattern

                                              - - - protected - set_maskPattern(int $maskPattern) : void - -
                                              - -
                                              Parameters
                                              -
                                              -
                                              - $maskPattern - : int -
                                              -
                                              - -
                                              -
                                              - - - -
                                              Return values
                                              - void - — -
                                              - - -
                                              -
                                              -

                                              - set_version() - -

                                              - - -

                                              sets/clamps the version number

                                              - - - protected - set_version(int $version) : void - -
                                              - -
                                              Parameters
                                              -
                                              -
                                              - $version - : int -
                                              -
                                              - -
                                              -
                                              - - - -
                                              Return values
                                              - void - — -
                                              - - -
                                              -
                                              -

                                              - set_versionMax() - -

                                              - - -

                                              sets the maximum version number

                                              - - - protected - set_versionMax(int $version) : void - -
                                              - -
                                              Parameters
                                              -
                                              -
                                              - $version - : int -
                                              -
                                              - -
                                              -
                                              - - - -
                                              Return values
                                              - void - — -
                                              - - -
                                              -
                                              -

                                              - set_versionMin() - -

                                              - - -

                                              sets the minimum version number

                                              - - - protected - set_versionMin(int $version) : void - -
                                              - -
                                              Parameters
                                              -
                                              -
                                              - $version - : int -
                                              -
                                              - -
                                              -
                                              - - - -
                                              Return values
                                              - void - — -
                                              - - -
                                              -
                                              -

                                              - setMinMaxVersion() - -

                                              - - -

                                              clamp min/max version number

                                              - - - protected - setMinMaxVersion(int $versionMin, int $versionMax) : void - -
                                              - -
                                              Parameters
                                              -
                                              -
                                              - $versionMin - : int -
                                              -
                                              - -
                                              -
                                              - $versionMax - : int -
                                              -
                                              - -
                                              -
                                              - - - -
                                              Return values
                                              - void - — -
                                              - - -
                                              -
                                              - -
                                              -
                                              -
                                              -
                                              -

                                              Search results

                                              - -
                                              -
                                              -
                                                -
                                                -
                                                -
                                                -
                                                -
                                                - - -
                                                - - - - diff --git a/classes/chillerlan-QRCodeTest-Data-AlphaNumTest.html b/classes/chillerlan-QRCodeTest-Data-AlphaNumTest.html deleted file mode 100644 index 5dc5b13d5..000000000 --- a/classes/chillerlan-QRCodeTest-Data-AlphaNumTest.html +++ /dev/null @@ -1,466 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                -

                                                Documentation

                                                - - - - - -
                                                - -
                                                -
                                                - - - - -
                                                - - -
                                                -

                                                - AlphaNumTest - - - extends DatainterfaceTestAbstract - - - - -

                                                - - - -

                                                Tests the AlphaNum class

                                                - -
                                                - - - - - - - - -

                                                - Table of Contents - -

                                                - -
                                                -
                                                - testCodeLengthOverflowException() - -  : void -
                                                -
                                                Tests if an exception is thrown on data overflow
                                                - -
                                                - testGetCharCodeException() - -  : void -
                                                -
                                                Tests if an exception is thrown when an invalid character is encountered
                                                - -
                                                - testGetMinimumVersion() - -  : void -
                                                -
                                                Tests getting the minimum QR version for the given data
                                                - -
                                                - testGetMinimumVersionException() - -  : void -
                                                -
                                                Tests if an exception is thrown when the data exceeds the maximum version while auto detecting
                                                - -
                                                - testInitMatrix() - -  : void -
                                                -
                                                Tests initializing the data matrix
                                                - -
                                                - testInstance() - -  : void -
                                                -
                                                Verifies the data interface instance
                                                - -
                                                - testMaskEcc() - -  : void -
                                                -
                                                Tests ecc masking and verifies against a sample
                                                - -
                                                - - - - - - - -
                                                -

                                                - Methods - -

                                                -
                                                -

                                                - testCodeLengthOverflowException() - -

                                                - - -

                                                Tests if an exception is thrown on data overflow

                                                - - - public - testCodeLengthOverflowException() : void - -
                                                - - - - -
                                                Return values
                                                - void - — -
                                                - - -
                                                -
                                                -

                                                - testGetCharCodeException() - -

                                                - - -

                                                Tests if an exception is thrown when an invalid character is encountered

                                                - - - public - testGetCharCodeException() : void - -
                                                - - - - -
                                                Return values
                                                - void - — -
                                                - - -
                                                -
                                                -

                                                - testGetMinimumVersion() - -

                                                - - -

                                                Tests getting the minimum QR version for the given data

                                                - - - public - testGetMinimumVersion() : void - -
                                                - - - - -
                                                Return values
                                                - void - — -
                                                - - -
                                                -
                                                -

                                                - testGetMinimumVersionException() - -

                                                - - -

                                                Tests if an exception is thrown when the data exceeds the maximum version while auto detecting

                                                - - - public - testGetMinimumVersionException() : void - -
                                                - - - - -
                                                Return values
                                                - void - — -
                                                - - -
                                                -
                                                -

                                                - testInitMatrix() - -

                                                - - -

                                                Tests initializing the data matrix

                                                - - - public - testInitMatrix(int $maskPattern) : void - -
                                                - -
                                                Parameters
                                                -
                                                -
                                                - $maskPattern - : int -
                                                -
                                                - -
                                                -
                                                - - -
                                                - Tags - -
                                                -
                                                -
                                                - dataProvider -
                                                -
                                                - -

                                                MaskPatternProvider

                                                -
                                                - -
                                                -
                                                - -
                                                Return values
                                                - void - — -
                                                - - -
                                                -
                                                -

                                                - testInstance() - -

                                                - - -

                                                Verifies the data interface instance

                                                - - - public - testInstance() : void - -
                                                - - - - -
                                                Return values
                                                - void - — -
                                                - - -
                                                -
                                                -

                                                - testMaskEcc() - -

                                                - - -

                                                Tests ecc masking and verifies against a sample

                                                - - - public - testMaskEcc() : void - -
                                                - - - - -
                                                Return values
                                                - void - — -
                                                - - -
                                                -
                                                - -
                                                -
                                                -
                                                -
                                                -

                                                Search results

                                                - -
                                                -
                                                -
                                                  -
                                                  -
                                                  -
                                                  -
                                                  -
                                                  - - -
                                                  - - - - diff --git a/classes/chillerlan-QRCodeTest-Data-ByteTest.html b/classes/chillerlan-QRCodeTest-Data-ByteTest.html deleted file mode 100644 index f605d65e1..000000000 --- a/classes/chillerlan-QRCodeTest-Data-ByteTest.html +++ /dev/null @@ -1,425 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                  -

                                                  Documentation

                                                  - - - - - -
                                                  - -
                                                  -
                                                  - - - - -
                                                  - - -
                                                  -

                                                  - ByteTest - - - extends DatainterfaceTestAbstract - - - - -

                                                  - - - -

                                                  Tests the Byte class

                                                  - -
                                                  - - - - - - - - -

                                                  - Table of Contents - -

                                                  - -
                                                  -
                                                  - testCodeLengthOverflowException() - -  : void -
                                                  -
                                                  Tests if an exception is thrown on data overflow
                                                  - -
                                                  - testGetMinimumVersion() - -  : void -
                                                  -
                                                  Tests getting the minimum QR version for the given data
                                                  - -
                                                  - testGetMinimumVersionException() - -  : void -
                                                  -
                                                  Tests if an exception is thrown when the data exceeds the maximum version while auto detecting
                                                  - -
                                                  - testInitMatrix() - -  : void -
                                                  -
                                                  Tests initializing the data matrix
                                                  - -
                                                  - testInstance() - -  : void -
                                                  -
                                                  Verifies the data interface instance
                                                  - -
                                                  - testMaskEcc() - -  : void -
                                                  -
                                                  Tests ecc masking and verifies against a sample
                                                  - -
                                                  - - - - - - - -
                                                  -

                                                  - Methods - -

                                                  -
                                                  -

                                                  - testCodeLengthOverflowException() - -

                                                  - - -

                                                  Tests if an exception is thrown on data overflow

                                                  - - - public - testCodeLengthOverflowException() : void - -
                                                  - - - - -
                                                  Return values
                                                  - void - — -
                                                  - - -
                                                  -
                                                  -

                                                  - testGetMinimumVersion() - -

                                                  - - -

                                                  Tests getting the minimum QR version for the given data

                                                  - - - public - testGetMinimumVersion() : void - -
                                                  - - - - -
                                                  Return values
                                                  - void - — -
                                                  - - -
                                                  -
                                                  -

                                                  - testGetMinimumVersionException() - -

                                                  - - -

                                                  Tests if an exception is thrown when the data exceeds the maximum version while auto detecting

                                                  - - - public - testGetMinimumVersionException() : void - -
                                                  - - - - -
                                                  Return values
                                                  - void - — -
                                                  - - -
                                                  -
                                                  -

                                                  - testInitMatrix() - -

                                                  - - -

                                                  Tests initializing the data matrix

                                                  - - - public - testInitMatrix(int $maskPattern) : void - -
                                                  - -
                                                  Parameters
                                                  -
                                                  -
                                                  - $maskPattern - : int -
                                                  -
                                                  - -
                                                  -
                                                  - - -
                                                  - Tags - -
                                                  -
                                                  -
                                                  - dataProvider -
                                                  -
                                                  - -

                                                  MaskPatternProvider

                                                  -
                                                  - -
                                                  -
                                                  - -
                                                  Return values
                                                  - void - — -
                                                  - - -
                                                  -
                                                  -

                                                  - testInstance() - -

                                                  - - -

                                                  Verifies the data interface instance

                                                  - - - public - testInstance() : void - -
                                                  - - - - -
                                                  Return values
                                                  - void - — -
                                                  - - -
                                                  -
                                                  -

                                                  - testMaskEcc() - -

                                                  - - -

                                                  Tests ecc masking and verifies against a sample

                                                  - - - public - testMaskEcc() : void - -
                                                  - - - - -
                                                  Return values
                                                  - void - — -
                                                  - - -
                                                  -
                                                  - -
                                                  -
                                                  -
                                                  -
                                                  -

                                                  Search results

                                                  - -
                                                  -
                                                  -
                                                    -
                                                    -
                                                    -
                                                    -
                                                    -
                                                    - - -
                                                    - - - - diff --git a/classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html b/classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html deleted file mode 100644 index 933e03146..000000000 --- a/classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html +++ /dev/null @@ -1,425 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                    -

                                                    Documentation

                                                    - - - - - -
                                                    - -
                                                    -
                                                    - - - - -
                                                    - - -
                                                    -

                                                    - DatainterfaceTestAbstract - - - extends TestCase - - - - -

                                                    - - - -

                                                    The data interface test abstract

                                                    - -
                                                    - - - - - - - - -

                                                    - Table of Contents - -

                                                    - -
                                                    -
                                                    - testCodeLengthOverflowException() - -  : void -
                                                    -
                                                    Tests if an exception is thrown on data overflow
                                                    - -
                                                    - testGetMinimumVersion() - -  : void -
                                                    -
                                                    Tests getting the minimum QR version for the given data
                                                    - -
                                                    - testGetMinimumVersionException() - -  : void -
                                                    -
                                                    Tests if an exception is thrown when the data exceeds the maximum version while auto detecting
                                                    - -
                                                    - testInitMatrix() - -  : void -
                                                    -
                                                    Tests initializing the data matrix
                                                    - -
                                                    - testInstance() - -  : void -
                                                    -
                                                    Verifies the data interface instance
                                                    - -
                                                    - testMaskEcc() - -  : void -
                                                    -
                                                    Tests ecc masking and verifies against a sample
                                                    - -
                                                    - - - - - - - -
                                                    -

                                                    - Methods - -

                                                    -
                                                    -

                                                    - testCodeLengthOverflowException() - -

                                                    - - -

                                                    Tests if an exception is thrown on data overflow

                                                    - - - public - testCodeLengthOverflowException() : void - -
                                                    - - - - -
                                                    Return values
                                                    - void - — -
                                                    - - -
                                                    -
                                                    -

                                                    - testGetMinimumVersion() - -

                                                    - - -

                                                    Tests getting the minimum QR version for the given data

                                                    - - - public - testGetMinimumVersion() : void - -
                                                    - - - - -
                                                    Return values
                                                    - void - — -
                                                    - - -
                                                    -
                                                    -

                                                    - testGetMinimumVersionException() - -

                                                    - - -

                                                    Tests if an exception is thrown when the data exceeds the maximum version while auto detecting

                                                    - - - public - testGetMinimumVersionException() : void - -
                                                    - - - - -
                                                    Return values
                                                    - void - — -
                                                    - - -
                                                    -
                                                    -

                                                    - testInitMatrix() - -

                                                    - - -

                                                    Tests initializing the data matrix

                                                    - - - public - testInitMatrix(int $maskPattern) : void - -
                                                    - -
                                                    Parameters
                                                    -
                                                    -
                                                    - $maskPattern - : int -
                                                    -
                                                    - -
                                                    -
                                                    - - -
                                                    - Tags - -
                                                    -
                                                    -
                                                    - dataProvider -
                                                    -
                                                    - -

                                                    MaskPatternProvider

                                                    -
                                                    - -
                                                    -
                                                    - -
                                                    Return values
                                                    - void - — -
                                                    - - -
                                                    -
                                                    -

                                                    - testInstance() - -

                                                    - - -

                                                    Verifies the data interface instance

                                                    - - - public - testInstance() : void - -
                                                    - - - - -
                                                    Return values
                                                    - void - — -
                                                    - - -
                                                    -
                                                    -

                                                    - testMaskEcc() - -

                                                    - - -

                                                    Tests ecc masking and verifies against a sample

                                                    - - - public - testMaskEcc() : void - -
                                                    - - - - -
                                                    Return values
                                                    - void - — -
                                                    - - -
                                                    -
                                                    - -
                                                    -
                                                    -
                                                    -
                                                    -

                                                    Search results

                                                    - -
                                                    -
                                                    -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      - - -
                                                      - - - - diff --git a/classes/chillerlan-QRCodeTest-Data-KanjiTest.html b/classes/chillerlan-QRCodeTest-Data-KanjiTest.html deleted file mode 100644 index 618a90e17..000000000 --- a/classes/chillerlan-QRCodeTest-Data-KanjiTest.html +++ /dev/null @@ -1,507 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                      -

                                                      Documentation

                                                      - - - - - -
                                                      - -
                                                      -
                                                      - - - - -
                                                      - - -
                                                      -

                                                      - KanjiTest - - - extends DatainterfaceTestAbstract - - - - -

                                                      - - - -

                                                      Tests the Kanji class

                                                      - -
                                                      - - - - - - - - -

                                                      - Table of Contents - -

                                                      - -
                                                      -
                                                      - testCodeLengthOverflowException() - -  : void -
                                                      -
                                                      Tests if an exception is thrown on data overflow
                                                      - -
                                                      - testGetMinimumVersion() - -  : void -
                                                      -
                                                      Tests getting the minimum QR version for the given data
                                                      - -
                                                      - testGetMinimumVersionException() - -  : void -
                                                      -
                                                      Tests if an exception is thrown when the data exceeds the maximum version while auto detecting
                                                      - -
                                                      - testIllegalCharException1() - -  : void -
                                                      -
                                                      Tests if an exception is thrown when an invalid character is encountered
                                                      - -
                                                      - testIllegalCharException2() - -  : void -
                                                      -
                                                      Tests if an exception is thrown when an invalid character is encountered
                                                      - -
                                                      - testInitMatrix() - -  : void -
                                                      -
                                                      Tests initializing the data matrix
                                                      - -
                                                      - testInstance() - -  : void -
                                                      -
                                                      Verifies the data interface instance
                                                      - -
                                                      - testMaskEcc() - -  : void -
                                                      -
                                                      Tests ecc masking and verifies against a sample
                                                      - -
                                                      - - - - - - - -
                                                      -

                                                      - Methods - -

                                                      -
                                                      -

                                                      - testCodeLengthOverflowException() - -

                                                      - - -

                                                      Tests if an exception is thrown on data overflow

                                                      - - - public - testCodeLengthOverflowException() : void - -
                                                      - - - - -
                                                      Return values
                                                      - void - — -
                                                      - - -
                                                      -
                                                      -

                                                      - testGetMinimumVersion() - -

                                                      - - -

                                                      Tests getting the minimum QR version for the given data

                                                      - - - public - testGetMinimumVersion() : void - -
                                                      - - - - -
                                                      Return values
                                                      - void - — -
                                                      - - -
                                                      -
                                                      -

                                                      - testGetMinimumVersionException() - -

                                                      - - -

                                                      Tests if an exception is thrown when the data exceeds the maximum version while auto detecting

                                                      - - - public - testGetMinimumVersionException() : void - -
                                                      - - - - -
                                                      Return values
                                                      - void - — -
                                                      - - -
                                                      -
                                                      -

                                                      - testIllegalCharException1() - -

                                                      - - -

                                                      Tests if an exception is thrown when an invalid character is encountered

                                                      - - - public - testIllegalCharException1() : void - -
                                                      - - - - -
                                                      Return values
                                                      - void - — -
                                                      - - -
                                                      -
                                                      -

                                                      - testIllegalCharException2() - -

                                                      - - -

                                                      Tests if an exception is thrown when an invalid character is encountered

                                                      - - - public - testIllegalCharException2() : void - -
                                                      - - - - -
                                                      Return values
                                                      - void - — -
                                                      - - -
                                                      -
                                                      -

                                                      - testInitMatrix() - -

                                                      - - -

                                                      Tests initializing the data matrix

                                                      - - - public - testInitMatrix(int $maskPattern) : void - -
                                                      - -
                                                      Parameters
                                                      -
                                                      -
                                                      - $maskPattern - : int -
                                                      -
                                                      - -
                                                      -
                                                      - - -
                                                      - Tags - -
                                                      -
                                                      -
                                                      - dataProvider -
                                                      -
                                                      - -

                                                      MaskPatternProvider

                                                      -
                                                      - -
                                                      -
                                                      - -
                                                      Return values
                                                      - void - — -
                                                      - - -
                                                      -
                                                      -

                                                      - testInstance() - -

                                                      - - -

                                                      Verifies the data interface instance

                                                      - - - public - testInstance() : void - -
                                                      - - - - -
                                                      Return values
                                                      - void - — -
                                                      - - -
                                                      -
                                                      -

                                                      - testMaskEcc() - -

                                                      - - -

                                                      Tests ecc masking and verifies against a sample

                                                      - - - public - testMaskEcc() : void - -
                                                      - - - - -
                                                      Return values
                                                      - void - — -
                                                      - - -
                                                      -
                                                      - -
                                                      -
                                                      -
                                                      -
                                                      -

                                                      Search results

                                                      - -
                                                      -
                                                      -
                                                        -
                                                        -
                                                        -
                                                        -
                                                        -
                                                        - - -
                                                        - - - - diff --git a/classes/chillerlan-QRCodeTest-Data-MaskPatternTesterTest.html b/classes/chillerlan-QRCodeTest-Data-MaskPatternTesterTest.html deleted file mode 100644 index b71f09313..000000000 --- a/classes/chillerlan-QRCodeTest-Data-MaskPatternTesterTest.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                        -

                                                        Documentation

                                                        - - - - - -
                                                        - -
                                                        -
                                                        - - - - -
                                                        - - -
                                                        -

                                                        - MaskPatternTesterTest - - - extends TestCase - - - - -

                                                        - - - -

                                                        MaskPatternTester coverage test

                                                        - -
                                                        - - - - - - - - -

                                                        - Table of Contents - -

                                                        - -
                                                        -
                                                        - testMaskpattern() - -  : void -
                                                        -
                                                        Tests getting the best mask pattern
                                                        - -
                                                        - testMaskpatternID() - -  : void -
                                                        -
                                                        Tests getting the penalty value for a given mask pattern
                                                        - -
                                                        - - - - - - - -
                                                        -

                                                        - Methods - -

                                                        -
                                                        -

                                                        - testMaskpattern() - -

                                                        - - -

                                                        Tests getting the best mask pattern

                                                        - - - public - testMaskpattern() : void - -
                                                        - - - - -
                                                        Return values
                                                        - void - — -
                                                        - - -
                                                        -
                                                        -

                                                        - testMaskpatternID() - -

                                                        - - -

                                                        Tests getting the penalty value for a given mask pattern

                                                        - - - public - testMaskpatternID() : void - -
                                                        - - - - -
                                                        Return values
                                                        - void - — -
                                                        - - -
                                                        -
                                                        - -
                                                        -
                                                        -
                                                        -
                                                        -

                                                        Search results

                                                        - -
                                                        -
                                                        -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - - -
                                                          - - - - diff --git a/classes/chillerlan-QRCodeTest-Data-NumberTest.html b/classes/chillerlan-QRCodeTest-Data-NumberTest.html deleted file mode 100644 index 51d662fca..000000000 --- a/classes/chillerlan-QRCodeTest-Data-NumberTest.html +++ /dev/null @@ -1,466 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                          -

                                                          Documentation

                                                          - - - - - -
                                                          - -
                                                          -
                                                          - - - - -
                                                          - - -
                                                          -

                                                          - NumberTest - - - extends DatainterfaceTestAbstract - - - - -

                                                          - - - -

                                                          Tests the Number class

                                                          - -
                                                          - - - - - - - - -

                                                          - Table of Contents - -

                                                          - -
                                                          -
                                                          - testCodeLengthOverflowException() - -  : void -
                                                          -
                                                          Tests if an exception is thrown on data overflow
                                                          - -
                                                          - testGetCharCodeException() - -  : void -
                                                          -
                                                          Tests if an exception is thrown when an invalid character is encountered
                                                          - -
                                                          - testGetMinimumVersion() - -  : void -
                                                          -
                                                          Tests getting the minimum QR version for the given data
                                                          - -
                                                          - testGetMinimumVersionException() - -  : void -
                                                          -
                                                          Tests if an exception is thrown when the data exceeds the maximum version while auto detecting
                                                          - -
                                                          - testInitMatrix() - -  : void -
                                                          -
                                                          Tests initializing the data matrix
                                                          - -
                                                          - testInstance() - -  : void -
                                                          -
                                                          Verifies the data interface instance
                                                          - -
                                                          - testMaskEcc() - -  : void -
                                                          -
                                                          Tests ecc masking and verifies against a sample
                                                          - -
                                                          - - - - - - - -
                                                          -

                                                          - Methods - -

                                                          -
                                                          -

                                                          - testCodeLengthOverflowException() - -

                                                          - - -

                                                          Tests if an exception is thrown on data overflow

                                                          - - - public - testCodeLengthOverflowException() : void - -
                                                          - - - - -
                                                          Return values
                                                          - void - — -
                                                          - - -
                                                          -
                                                          -

                                                          - testGetCharCodeException() - -

                                                          - - -

                                                          Tests if an exception is thrown when an invalid character is encountered

                                                          - - - public - testGetCharCodeException() : void - -
                                                          - - - - -
                                                          Return values
                                                          - void - — -
                                                          - - -
                                                          -
                                                          -

                                                          - testGetMinimumVersion() - -

                                                          - - -

                                                          Tests getting the minimum QR version for the given data

                                                          - - - public - testGetMinimumVersion() : void - -
                                                          - - - - -
                                                          Return values
                                                          - void - — -
                                                          - - -
                                                          -
                                                          -

                                                          - testGetMinimumVersionException() - -

                                                          - - -

                                                          Tests if an exception is thrown when the data exceeds the maximum version while auto detecting

                                                          - - - public - testGetMinimumVersionException() : void - -
                                                          - - - - -
                                                          Return values
                                                          - void - — -
                                                          - - -
                                                          -
                                                          -

                                                          - testInitMatrix() - -

                                                          - - -

                                                          Tests initializing the data matrix

                                                          - - - public - testInitMatrix(int $maskPattern) : void - -
                                                          - -
                                                          Parameters
                                                          -
                                                          -
                                                          - $maskPattern - : int -
                                                          -
                                                          - -
                                                          -
                                                          - - -
                                                          - Tags - -
                                                          -
                                                          -
                                                          - dataProvider -
                                                          -
                                                          - -

                                                          MaskPatternProvider

                                                          -
                                                          - -
                                                          -
                                                          - -
                                                          Return values
                                                          - void - — -
                                                          - - -
                                                          -
                                                          -

                                                          - testInstance() - -

                                                          - - -

                                                          Verifies the data interface instance

                                                          - - - public - testInstance() : void - -
                                                          - - - - -
                                                          Return values
                                                          - void - — -
                                                          - - -
                                                          -
                                                          -

                                                          - testMaskEcc() - -

                                                          - - -

                                                          Tests ecc masking and verifies against a sample

                                                          - - - public - testMaskEcc() : void - -
                                                          - - - - -
                                                          Return values
                                                          - void - — -
                                                          - - -
                                                          -
                                                          - -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Search results

                                                          - -
                                                          -
                                                          -
                                                            -
                                                            -
                                                            -
                                                            -
                                                            -
                                                            - - -
                                                            - - - - diff --git a/classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html b/classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html deleted file mode 100644 index 348dea2d1..000000000 --- a/classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html +++ /dev/null @@ -1,1207 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                            -

                                                            Documentation

                                                            - - - - - -
                                                            - -
                                                            -
                                                            - - - - -
                                                            - - -
                                                            -

                                                            - QRMatrixTest - - - extends TestCase - - - - -

                                                            - - - -

                                                            Tests the QRMatix class

                                                            - -
                                                            - - - - - - - - -

                                                            - Table of Contents - -

                                                            - -
                                                            -
                                                            - testECC() - -  : void -
                                                            -
                                                            Tests if eccLevel() returns the current (given) ECC level
                                                            - -
                                                            - testGetSetCheck() - -  : void -
                                                            -
                                                            Tests the set(), get() and check() methods
                                                            - -
                                                            - testInstance() - -  : void -
                                                            -
                                                            Validates the QRMatrix instance
                                                            - -
                                                            - testInvalidEccException() - -  : void -
                                                            -
                                                            Tests if an exception is thrown when an invalid ECC level was given
                                                            - -
                                                            - testInvalidVersionException() - -  : void -
                                                            -
                                                            Tests if an exception is thrown when an invalid QR version was given
                                                            - -
                                                            - testMaskPattern() - -  : void -
                                                            -
                                                            Tests if maskPattern() returns the current (or default) mask pattern
                                                            - -
                                                            - testSetAlignmentPattern() - -  : void -
                                                            -
                                                            Tests the alignment patterns and verifies their positions - version 1 (no pattern) skipped
                                                            - -
                                                            - testSetDarkModule() - -  : void -
                                                            -
                                                            Tests setting the dark module and verifies its position
                                                            - -
                                                            - testSetFinderPattern() - -  : void -
                                                            -
                                                            Tests setting the finder patterns and verifies their positions
                                                            - -
                                                            - testSetFormatInfo() - -  : void -
                                                            -
                                                            Tests the format patterns and verifies their positions
                                                            - -
                                                            - testSetLogoSpaceInvalidEccException() - -  : void -
                                                            -
                                                            - -
                                                            - testSetLogoSpaceMaxSizeException() - -  : void -
                                                            -
                                                            - -
                                                            - testSetLogoSpaceOrientation() - -  : void -
                                                            -
                                                            - -
                                                            - testSetLogoSpacePosition() - -  : void -
                                                            -
                                                            - -
                                                            - testSetQuietZone() - -  : void -
                                                            -
                                                            Tests the quiet zone pattern and verifies its position
                                                            - -
                                                            - testSetQuietZoneException() - -  : void -
                                                            -
                                                            Tests if an exception is thrown in an attempt to create it before data was written
                                                            - -
                                                            - testSetSeparators() - -  : void -
                                                            -
                                                            Tests the separator patterns and verifies their positions
                                                            - -
                                                            - testSetTimingPattern() - -  : void -
                                                            -
                                                            Tests the timing patterns and verifies their positions
                                                            - -
                                                            - testSetVersionNumber() - -  : void -
                                                            -
                                                            Tests the version patterns and verifies their positions - version < 7 skipped
                                                            - -
                                                            - testSize() - -  : void -
                                                            -
                                                            Tests if size() returns the actual matrix size/count
                                                            - -
                                                            - testVersion() - -  : void -
                                                            -
                                                            Tests if version() returns the current (given) version
                                                            - -
                                                            - - - - - - - -
                                                            -

                                                            - Methods - -

                                                            -
                                                            -

                                                            - testECC() - -

                                                            - - -

                                                            Tests if eccLevel() returns the current (given) ECC level

                                                            - - - public - testECC() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testGetSetCheck() - -

                                                            - - -

                                                            Tests the set(), get() and check() methods

                                                            - - - public - testGetSetCheck() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testInstance() - -

                                                            - - -

                                                            Validates the QRMatrix instance

                                                            - - - public - testInstance() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testInvalidEccException() - -

                                                            - - -

                                                            Tests if an exception is thrown when an invalid ECC level was given

                                                            - - - public - testInvalidEccException() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testInvalidVersionException() - -

                                                            - - -

                                                            Tests if an exception is thrown when an invalid QR version was given

                                                            - - - public - testInvalidVersionException() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testMaskPattern() - -

                                                            - - -

                                                            Tests if maskPattern() returns the current (or default) mask pattern

                                                            - - - public - testMaskPattern() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetAlignmentPattern() - -

                                                            - - -

                                                            Tests the alignment patterns and verifies their positions - version 1 (no pattern) skipped

                                                            - - - public - testSetAlignmentPattern(int $version) : void - -
                                                            - -
                                                            Parameters
                                                            -
                                                            -
                                                            - $version - : int -
                                                            -
                                                            - -
                                                            -
                                                            - - -
                                                            - Tags - -
                                                            -
                                                            -
                                                            - dataProvider -
                                                            -
                                                            - -

                                                            versionProvider

                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetDarkModule() - -

                                                            - - -

                                                            Tests setting the dark module and verifies its position

                                                            - - - public - testSetDarkModule(int $version) : void - -
                                                            - -
                                                            Parameters
                                                            -
                                                            -
                                                            - $version - : int -
                                                            -
                                                            - -
                                                            -
                                                            - - -
                                                            - Tags - -
                                                            -
                                                            -
                                                            - dataProvider -
                                                            -
                                                            - -

                                                            versionProvider

                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetFinderPattern() - -

                                                            - - -

                                                            Tests setting the finder patterns and verifies their positions

                                                            - - - public - testSetFinderPattern(int $version) : void - -
                                                            - -
                                                            Parameters
                                                            -
                                                            -
                                                            - $version - : int -
                                                            -
                                                            - -
                                                            -
                                                            - - -
                                                            - Tags - -
                                                            -
                                                            -
                                                            - dataProvider -
                                                            -
                                                            - -

                                                            versionProvider

                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetFormatInfo() - -

                                                            - - -

                                                            Tests the format patterns and verifies their positions

                                                            - - - public - testSetFormatInfo(int $version) : void - -
                                                            - -
                                                            Parameters
                                                            -
                                                            -
                                                            - $version - : int -
                                                            -
                                                            - -
                                                            -
                                                            - - -
                                                            - Tags - -
                                                            -
                                                            -
                                                            - dataProvider -
                                                            -
                                                            - -

                                                            versionProvider

                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetLogoSpaceInvalidEccException() - -

                                                            - - - - - public - testSetLogoSpaceInvalidEccException() : void - - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetLogoSpaceMaxSizeException() - -

                                                            - - - - - public - testSetLogoSpaceMaxSizeException() : void - - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetLogoSpaceOrientation() - -

                                                            - - - - - public - testSetLogoSpaceOrientation() : void - - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetLogoSpacePosition() - -

                                                            - - - - - public - testSetLogoSpacePosition() : void - - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetQuietZone() - -

                                                            - - -

                                                            Tests the quiet zone pattern and verifies its position

                                                            - - - public - testSetQuietZone(int $version) : void - -
                                                            - -
                                                            Parameters
                                                            -
                                                            -
                                                            - $version - : int -
                                                            -
                                                            - -
                                                            -
                                                            - - -
                                                            - Tags - -
                                                            -
                                                            -
                                                            - dataProvider -
                                                            -
                                                            - -

                                                            versionProvider

                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetQuietZoneException() - -

                                                            - - -

                                                            Tests if an exception is thrown in an attempt to create it before data was written

                                                            - - - public - testSetQuietZoneException() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetSeparators() - -

                                                            - - -

                                                            Tests the separator patterns and verifies their positions

                                                            - - - public - testSetSeparators(int $version) : void - -
                                                            - -
                                                            Parameters
                                                            -
                                                            -
                                                            - $version - : int -
                                                            -
                                                            - -
                                                            -
                                                            - - -
                                                            - Tags - -
                                                            -
                                                            -
                                                            - dataProvider -
                                                            -
                                                            - -

                                                            versionProvider

                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetTimingPattern() - -

                                                            - - -

                                                            Tests the timing patterns and verifies their positions

                                                            - - - public - testSetTimingPattern(int $version) : void - -
                                                            - -
                                                            Parameters
                                                            -
                                                            -
                                                            - $version - : int -
                                                            -
                                                            - -
                                                            -
                                                            - - -
                                                            - Tags - -
                                                            -
                                                            -
                                                            - dataProvider -
                                                            -
                                                            - -

                                                            versionProvider

                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSetVersionNumber() - -

                                                            - - -

                                                            Tests the version patterns and verifies their positions - version < 7 skipped

                                                            - - - public - testSetVersionNumber(int $version) : void - -
                                                            - -
                                                            Parameters
                                                            -
                                                            -
                                                            - $version - : int -
                                                            -
                                                            - -
                                                            -
                                                            - - -
                                                            - Tags - -
                                                            -
                                                            -
                                                            - dataProvider -
                                                            -
                                                            - -

                                                            versionProvider

                                                            -
                                                            - -
                                                            -
                                                            - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testSize() - -

                                                            - - -

                                                            Tests if size() returns the actual matrix size/count

                                                            - - - public - testSize() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            -

                                                            - testVersion() - -

                                                            - - -

                                                            Tests if version() returns the current (given) version

                                                            - - - public - testVersion() : void - -
                                                            - - - - -
                                                            Return values
                                                            - void - — -
                                                            - - -
                                                            -
                                                            - -
                                                            -
                                                            -
                                                            -
                                                            -

                                                            Search results

                                                            - -
                                                            -
                                                            -
                                                              -
                                                              -
                                                              -
                                                              -
                                                              -
                                                              - - -
                                                              - - - - diff --git a/classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html b/classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html deleted file mode 100644 index 434266b99..000000000 --- a/classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html +++ /dev/null @@ -1,386 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                              -

                                                              Documentation

                                                              - - - - - -
                                                              - -
                                                              -
                                                              - - - - -
                                                              - - -
                                                              -

                                                              - BitBufferTest - - - extends TestCase - - - - -

                                                              - - - -

                                                              BitBuffer coverage test

                                                              - -
                                                              - - - - - - - - -

                                                              - Table of Contents - -

                                                              - -
                                                              -
                                                              - $bitBuffer - -  : BitBuffer -
                                                              -
                                                              - -
                                                              - bitProvider() - -  : array<string|int, mixed> -
                                                              -
                                                              - -
                                                              - testClear() - -  : void -
                                                              -
                                                              - -
                                                              - testPut() - -  : void -
                                                              -
                                                              - -
                                                              - setUp() - -  : void -
                                                              -
                                                              - -
                                                              - - - - - - -
                                                              -

                                                              - Properties - -

                                                              - -
                                                              - -
                                                              -

                                                              - Methods - -

                                                              -
                                                              -

                                                              - bitProvider() - -

                                                              - - - - - public - bitProvider() : array<string|int, mixed> - - - - - -
                                                              Return values
                                                              - array<string|int, mixed> - — -
                                                              - - -
                                                              -
                                                              -

                                                              - testClear() - -

                                                              - - - - - public - testClear() : void - - - - - -
                                                              Return values
                                                              - void - — -
                                                              - - -
                                                              -
                                                              -

                                                              - testPut() - -

                                                              - - - - - public - testPut(int $data, int $value) : void - -
                                                              - -
                                                              Parameters
                                                              -
                                                              -
                                                              - $data - : int -
                                                              -
                                                              - -
                                                              -
                                                              - $value - : int -
                                                              -
                                                              - -
                                                              -
                                                              - - -
                                                              - Tags - -
                                                              -
                                                              -
                                                              - dataProvider -
                                                              -
                                                              - -

                                                              bitProvider

                                                              -
                                                              - -
                                                              -
                                                              - -
                                                              Return values
                                                              - void - — -
                                                              - - -
                                                              -
                                                              -

                                                              - setUp() - -

                                                              - - - - - protected - setUp() : void - - - - - -
                                                              Return values
                                                              - void - — -
                                                              - - -
                                                              -
                                                              - -
                                                              -
                                                              -
                                                              -
                                                              -

                                                              Search results

                                                              - -
                                                              -
                                                              -
                                                                -
                                                                -
                                                                -
                                                                -
                                                                -
                                                                - - -
                                                                - - - - diff --git a/classes/chillerlan-QRCodeTest-Helpers-PolynomialTest.html b/classes/chillerlan-QRCodeTest-Helpers-PolynomialTest.html deleted file mode 100644 index ad587a29e..000000000 --- a/classes/chillerlan-QRCodeTest-Helpers-PolynomialTest.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                -

                                                                Documentation

                                                                - - - - - -
                                                                - -
                                                                -
                                                                - - - - -
                                                                - - -
                                                                -

                                                                - PolynomialTest - - - extends TestCase - - - - -

                                                                - - - -

                                                                Polynomial coverage test

                                                                - -
                                                                - - - - - - - - -

                                                                - Table of Contents - -

                                                                - -
                                                                -
                                                                - $polynomial - -  : Polynomial -
                                                                -
                                                                - -
                                                                - testGexp() - -  : void -
                                                                -
                                                                - -
                                                                - testGlogException() - -  : void -
                                                                -
                                                                - -
                                                                - setUp() - -  : void -
                                                                -
                                                                - -
                                                                - - - - - - -
                                                                -

                                                                - Properties - -

                                                                - -
                                                                - -
                                                                -

                                                                - Methods - -

                                                                -
                                                                -

                                                                - testGexp() - -

                                                                - - - - - public - testGexp() : void - - - - - -
                                                                Return values
                                                                - void - — -
                                                                - - -
                                                                -
                                                                -

                                                                - testGlogException() - -

                                                                - - - - - public - testGlogException() : void - - - - - -
                                                                Return values
                                                                - void - — -
                                                                - - -
                                                                -
                                                                -

                                                                - setUp() - -

                                                                - - - - - protected - setUp() : void - - - - - -
                                                                Return values
                                                                - void - — -
                                                                - - -
                                                                -
                                                                - -
                                                                -
                                                                -
                                                                -
                                                                -

                                                                Search results

                                                                - -
                                                                -
                                                                -
                                                                  -
                                                                  -
                                                                  -
                                                                  -
                                                                  -
                                                                  - - -
                                                                  - - - - diff --git a/classes/chillerlan-QRCodeTest-Output-QRFpdfTest.html b/classes/chillerlan-QRCodeTest-Output-QRFpdfTest.html deleted file mode 100644 index 24279ac9a..000000000 --- a/classes/chillerlan-QRCodeTest-Output-QRFpdfTest.html +++ /dev/null @@ -1,470 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                  -

                                                                  Documentation

                                                                  - - - - - -
                                                                  - -
                                                                  -
                                                                  - - - - -
                                                                  - - -
                                                                  -

                                                                  - QRFpdfTest - - - extends QROutputTestAbstract - - - - -

                                                                  - - - -

                                                                  Tests the QRFpdf output module

                                                                  - -
                                                                  - - - - - - - - -

                                                                  - Table of Contents - -

                                                                  - -
                                                                  -
                                                                  - testInstance() - -  : void -
                                                                  -
                                                                  Validate the instance of the interface
                                                                  - -
                                                                  - testOutputGetResource() - -  : void -
                                                                  -
                                                                  - -
                                                                  - testRenderImage() - -  : void -
                                                                  -
                                                                  covers the built-in output modules, tests against pre-rendered data
                                                                  - -
                                                                  - testSaveException() - -  : void -
                                                                  -
                                                                  Tests if an exception is thrown when trying to write a cache file to an invalid destination
                                                                  - -
                                                                  - testSetModuleValues() - -  : void -
                                                                  -
                                                                  covers the module values settings
                                                                  - -
                                                                  - testStringOutput() - -  : void -
                                                                  -
                                                                  coverage of the built-in output modules
                                                                  - -
                                                                  - - - - - - - -
                                                                  -

                                                                  - Methods - -

                                                                  -
                                                                  -

                                                                  - testInstance() - -

                                                                  - - -

                                                                  Validate the instance of the interface

                                                                  - - - public - testInstance() : void - -
                                                                  - - - - -
                                                                  Return values
                                                                  - void - — -
                                                                  - - -
                                                                  -
                                                                  -

                                                                  - testOutputGetResource() - -

                                                                  - - - - - public - testOutputGetResource() : void - - - - - -
                                                                  Return values
                                                                  - void - — -
                                                                  - - -
                                                                  -
                                                                  -

                                                                  - testRenderImage() - -

                                                                  - - -

                                                                  covers the built-in output modules, tests against pre-rendered data

                                                                  - - - public - testRenderImage(string $type) : void - -
                                                                  - -
                                                                  Parameters
                                                                  -
                                                                  -
                                                                  - $type - : string -
                                                                  -
                                                                  - -
                                                                  -
                                                                  - - -
                                                                  - Tags - -
                                                                  -
                                                                  -
                                                                  - inheritDoc -
                                                                  -
                                                                  - -
                                                                  - -
                                                                  -
                                                                  - dataProvider -
                                                                  -
                                                                  - -

                                                                  types

                                                                  -
                                                                  - -
                                                                  -
                                                                  - -
                                                                  Return values
                                                                  - void - — -
                                                                  - - -
                                                                  -
                                                                  -

                                                                  - testSaveException() - -

                                                                  - - -

                                                                  Tests if an exception is thrown when trying to write a cache file to an invalid destination

                                                                  - - - public - testSaveException() : void - -
                                                                  - - - - -
                                                                  Return values
                                                                  - void - — -
                                                                  - - -
                                                                  -
                                                                  -

                                                                  - testSetModuleValues() - -

                                                                  - - -

                                                                  covers the module values settings

                                                                  - - - public - testSetModuleValues() : void - -
                                                                  - - - -
                                                                  - Tags - -
                                                                  -
                                                                  -
                                                                  - inheritDoc -
                                                                  -
                                                                  - -
                                                                  - -
                                                                  -
                                                                  - -
                                                                  Return values
                                                                  - void - — -
                                                                  - - -
                                                                  -
                                                                  -

                                                                  - testStringOutput() - -

                                                                  - - -

                                                                  coverage of the built-in output modules

                                                                  - - - public - testStringOutput(string $type) : void - -
                                                                  - -
                                                                  Parameters
                                                                  -
                                                                  -
                                                                  - $type - : string -
                                                                  -
                                                                  - -
                                                                  -
                                                                  - - -
                                                                  - Tags - -
                                                                  -
                                                                  -
                                                                  - dataProvider -
                                                                  -
                                                                  - -

                                                                  types

                                                                  -
                                                                  - -
                                                                  -
                                                                  - -
                                                                  Return values
                                                                  - void - — -
                                                                  - - -
                                                                  -
                                                                  - -
                                                                  -
                                                                  -
                                                                  -
                                                                  -

                                                                  Search results

                                                                  - -
                                                                  -
                                                                  -
                                                                    -
                                                                    -
                                                                    -
                                                                    -
                                                                    -
                                                                    - - -
                                                                    - - - - diff --git a/classes/chillerlan-QRCodeTest-Output-QRImageTest.html b/classes/chillerlan-QRCodeTest-Output-QRImageTest.html deleted file mode 100644 index 7b8ebaf9a..000000000 --- a/classes/chillerlan-QRCodeTest-Output-QRImageTest.html +++ /dev/null @@ -1,478 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                    -

                                                                    Documentation

                                                                    - - - - - -
                                                                    - -
                                                                    -
                                                                    - - - - -
                                                                    - - -
                                                                    -

                                                                    - QRImageTest - - - extends QROutputTestAbstract - - - - -

                                                                    - - - -

                                                                    Tests the QRImage output module

                                                                    - -
                                                                    - - - - - - - - -

                                                                    - Table of Contents - -

                                                                    - -
                                                                    -
                                                                    - testInstance() - -  : void -
                                                                    -
                                                                    Validate the instance of the interface
                                                                    - -
                                                                    - testOutputGetResource() - -  : void -
                                                                    -
                                                                    - -
                                                                    - testRenderImage() - -  : void -
                                                                    -
                                                                    covers the built-in output modules, tests against pre-rendered data
                                                                    - -
                                                                    - testSaveException() - -  : void -
                                                                    -
                                                                    Tests if an exception is thrown when trying to write a cache file to an invalid destination
                                                                    - -
                                                                    - testSetModuleValues() - -  : void -
                                                                    -
                                                                    covers the module values settings
                                                                    - -
                                                                    - testStringOutput() - -  : void -
                                                                    -
                                                                    coverage of the built-in output modules
                                                                    - -
                                                                    - - - - - - - -
                                                                    -

                                                                    - Methods - -

                                                                    -
                                                                    -

                                                                    - testInstance() - -

                                                                    - - -

                                                                    Validate the instance of the interface

                                                                    - - - public - testInstance() : void - -
                                                                    - - - - -
                                                                    Return values
                                                                    - void - — -
                                                                    - - -
                                                                    -
                                                                    -

                                                                    - testOutputGetResource() - -

                                                                    - - - - - public - testOutputGetResource() : void - -
                                                                    - - - -
                                                                    - Tags - -
                                                                    -
                                                                    -
                                                                    - phan-suppress -
                                                                    -
                                                                    - -

                                                                    PhanUndeclaredClassReference

                                                                    -
                                                                    - -
                                                                    -
                                                                    - -
                                                                    Return values
                                                                    - void - — -
                                                                    - - -
                                                                    -
                                                                    -

                                                                    - testRenderImage() - -

                                                                    - - -

                                                                    covers the built-in output modules, tests against pre-rendered data

                                                                    - - - public - testRenderImage(string $type) : void - -
                                                                    - -
                                                                    Parameters
                                                                    -
                                                                    -
                                                                    - $type - : string -
                                                                    -
                                                                    - -
                                                                    -
                                                                    - - -
                                                                    - Tags - -
                                                                    -
                                                                    -
                                                                    - dataProvider -
                                                                    -
                                                                    - -

                                                                    types

                                                                    -
                                                                    - -
                                                                    -
                                                                    - -
                                                                    Return values
                                                                    - void - — -
                                                                    - - -
                                                                    -
                                                                    -

                                                                    - testSaveException() - -

                                                                    - - -

                                                                    Tests if an exception is thrown when trying to write a cache file to an invalid destination

                                                                    - - - public - testSaveException() : void - -
                                                                    - - - - -
                                                                    Return values
                                                                    - void - — -
                                                                    - - -
                                                                    -
                                                                    -

                                                                    - testSetModuleValues() - -

                                                                    - - -

                                                                    covers the module values settings

                                                                    - - - public - testSetModuleValues() : void - -
                                                                    - - - -
                                                                    - Tags - -
                                                                    -
                                                                    -
                                                                    - inheritDoc -
                                                                    -
                                                                    - -
                                                                    - -
                                                                    -
                                                                    - -
                                                                    Return values
                                                                    - void - — -
                                                                    - - -
                                                                    -
                                                                    -

                                                                    - testStringOutput() - -

                                                                    - - -

                                                                    coverage of the built-in output modules

                                                                    - - - public - testStringOutput(string $type) : void - -
                                                                    - -
                                                                    Parameters
                                                                    -
                                                                    -
                                                                    - $type - : string -
                                                                    -
                                                                    - -
                                                                    -
                                                                    - - -
                                                                    - Tags - -
                                                                    -
                                                                    -
                                                                    - dataProvider -
                                                                    -
                                                                    - -

                                                                    types

                                                                    -
                                                                    - -
                                                                    -
                                                                    - -
                                                                    Return values
                                                                    - void - — -
                                                                    - - -
                                                                    -
                                                                    - -
                                                                    -
                                                                    -
                                                                    -
                                                                    -

                                                                    Search results

                                                                    - -
                                                                    -
                                                                    -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - - -
                                                                      - - - - diff --git a/classes/chillerlan-QRCodeTest-Output-QRImagickTest.html b/classes/chillerlan-QRCodeTest-Output-QRImagickTest.html deleted file mode 100644 index 2453d359b..000000000 --- a/classes/chillerlan-QRCodeTest-Output-QRImagickTest.html +++ /dev/null @@ -1,462 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                      -

                                                                      Documentation

                                                                      - - - - - -
                                                                      - -
                                                                      -
                                                                      - - - - -
                                                                      - - -
                                                                      -

                                                                      - QRImagickTest - - - extends QROutputTestAbstract - - - - -

                                                                      - - - -

                                                                      Tests the QRImagick output module

                                                                      - -
                                                                      - - - - - - - - -

                                                                      - Table of Contents - -

                                                                      - -
                                                                      -
                                                                      - testInstance() - -  : void -
                                                                      -
                                                                      Validate the instance of the interface
                                                                      - -
                                                                      - testOutputGetResource() - -  : void -
                                                                      -
                                                                      - -
                                                                      - testRenderImage() - -  : void -
                                                                      -
                                                                      covers the built-in output modules, tests against pre-rendered data
                                                                      - -
                                                                      - testSaveException() - -  : void -
                                                                      -
                                                                      Tests if an exception is thrown when trying to write a cache file to an invalid destination
                                                                      - -
                                                                      - testSetModuleValues() - -  : void -
                                                                      -
                                                                      covers the module values settings
                                                                      - -
                                                                      - testStringOutput() - -  : void -
                                                                      -
                                                                      coverage of the built-in output modules
                                                                      - -
                                                                      - - - - - - - -
                                                                      -

                                                                      - Methods - -

                                                                      -
                                                                      -

                                                                      - testInstance() - -

                                                                      - - -

                                                                      Validate the instance of the interface

                                                                      - - - public - testInstance() : void - -
                                                                      - - - - -
                                                                      Return values
                                                                      - void - — -
                                                                      - - -
                                                                      -
                                                                      -

                                                                      - testOutputGetResource() - -

                                                                      - - - - - public - testOutputGetResource() : void - - - - - -
                                                                      Return values
                                                                      - void - — -
                                                                      - - -
                                                                      -
                                                                      -

                                                                      - testRenderImage() - -

                                                                      - - -

                                                                      covers the built-in output modules, tests against pre-rendered data

                                                                      - - - public - testRenderImage(string $type) : void - -
                                                                      - -
                                                                      Parameters
                                                                      -
                                                                      -
                                                                      - $type - : string -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - Tags - -
                                                                      -
                                                                      -
                                                                      - dataProvider -
                                                                      -
                                                                      - -

                                                                      types

                                                                      -
                                                                      - -
                                                                      -
                                                                      - -
                                                                      Return values
                                                                      - void - — -
                                                                      - - -
                                                                      -
                                                                      -

                                                                      - testSaveException() - -

                                                                      - - -

                                                                      Tests if an exception is thrown when trying to write a cache file to an invalid destination

                                                                      - - - public - testSaveException() : void - -
                                                                      - - - - -
                                                                      Return values
                                                                      - void - — -
                                                                      - - -
                                                                      -
                                                                      -

                                                                      - testSetModuleValues() - -

                                                                      - - -

                                                                      covers the module values settings

                                                                      - - - public - testSetModuleValues() : void - -
                                                                      - - - -
                                                                      - Tags - -
                                                                      -
                                                                      -
                                                                      - inheritDoc -
                                                                      -
                                                                      - -
                                                                      - -
                                                                      -
                                                                      - -
                                                                      Return values
                                                                      - void - — -
                                                                      - - -
                                                                      -
                                                                      -

                                                                      - testStringOutput() - -

                                                                      - - -

                                                                      coverage of the built-in output modules

                                                                      - - - public - testStringOutput(string $type) : void - -
                                                                      - -
                                                                      Parameters
                                                                      -
                                                                      -
                                                                      - $type - : string -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - - -
                                                                      - Tags - -
                                                                      -
                                                                      -
                                                                      - dataProvider -
                                                                      -
                                                                      - -

                                                                      types

                                                                      -
                                                                      - -
                                                                      -
                                                                      - -
                                                                      Return values
                                                                      - void - — -
                                                                      - - -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Search results

                                                                      - -
                                                                      -
                                                                      -
                                                                        -
                                                                        -
                                                                        -
                                                                        -
                                                                        -
                                                                        - - -
                                                                        - - - - diff --git a/classes/chillerlan-QRCodeTest-Output-QRMarkupTest.html b/classes/chillerlan-QRCodeTest-Output-QRMarkupTest.html deleted file mode 100644 index 093b52fea..000000000 --- a/classes/chillerlan-QRCodeTest-Output-QRMarkupTest.html +++ /dev/null @@ -1,423 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                        -

                                                                        Documentation

                                                                        - - - - - -
                                                                        - -
                                                                        -
                                                                        - - - - -
                                                                        - - -
                                                                        -

                                                                        - QRMarkupTest - - - extends QROutputTestAbstract - - - - -

                                                                        - - - -

                                                                        Tests the QRMarkup output module

                                                                        - -
                                                                        - - - - - - - - -

                                                                        - Table of Contents - -

                                                                        - -
                                                                        -
                                                                        - testInstance() - -  : void -
                                                                        -
                                                                        Validate the instance of the interface
                                                                        - -
                                                                        - testRenderImage() - -  : void -
                                                                        -
                                                                        covers the built-in output modules, tests against pre-rendered data
                                                                        - -
                                                                        - testSaveException() - -  : void -
                                                                        -
                                                                        Tests if an exception is thrown when trying to write a cache file to an invalid destination
                                                                        - -
                                                                        - testSetModuleValues() - -  : void -
                                                                        -
                                                                        covers the module values settings
                                                                        - -
                                                                        - testStringOutput() - -  : void -
                                                                        -
                                                                        coverage of the built-in output modules
                                                                        - -
                                                                        - - - - - - - -
                                                                        -

                                                                        - Methods - -

                                                                        -
                                                                        -

                                                                        - testInstance() - -

                                                                        - - -

                                                                        Validate the instance of the interface

                                                                        - - - public - testInstance() : void - -
                                                                        - - - - -
                                                                        Return values
                                                                        - void - — -
                                                                        - - -
                                                                        -
                                                                        -

                                                                        - testRenderImage() - -

                                                                        - - -

                                                                        covers the built-in output modules, tests against pre-rendered data

                                                                        - - - public - testRenderImage(string $type) : void - -
                                                                        - -
                                                                        Parameters
                                                                        -
                                                                        -
                                                                        - $type - : string -
                                                                        -
                                                                        - -
                                                                        -
                                                                        - - -
                                                                        - Tags - -
                                                                        -
                                                                        -
                                                                        - dataProvider -
                                                                        -
                                                                        - -

                                                                        types

                                                                        -
                                                                        - -
                                                                        -
                                                                        - -
                                                                        Return values
                                                                        - void - — -
                                                                        - - -
                                                                        -
                                                                        -

                                                                        - testSaveException() - -

                                                                        - - -

                                                                        Tests if an exception is thrown when trying to write a cache file to an invalid destination

                                                                        - - - public - testSaveException() : void - -
                                                                        - - - - -
                                                                        Return values
                                                                        - void - — -
                                                                        - - -
                                                                        -
                                                                        -

                                                                        - testSetModuleValues() - -

                                                                        - - -

                                                                        covers the module values settings

                                                                        - - - public - testSetModuleValues() : void - -
                                                                        - - - -
                                                                        - Tags - -
                                                                        -
                                                                        -
                                                                        - inheritDoc -
                                                                        -
                                                                        - -
                                                                        - -
                                                                        -
                                                                        - -
                                                                        Return values
                                                                        - void - — -
                                                                        - - -
                                                                        -
                                                                        -

                                                                        - testStringOutput() - -

                                                                        - - -

                                                                        coverage of the built-in output modules

                                                                        - - - public - testStringOutput(string $type) : void - -
                                                                        - -
                                                                        Parameters
                                                                        -
                                                                        -
                                                                        - $type - : string -
                                                                        -
                                                                        - -
                                                                        -
                                                                        - - -
                                                                        - Tags - -
                                                                        -
                                                                        -
                                                                        - dataProvider -
                                                                        -
                                                                        - -

                                                                        types

                                                                        -
                                                                        - -
                                                                        -
                                                                        - -
                                                                        Return values
                                                                        - void - — -
                                                                        - - -
                                                                        -
                                                                        - -
                                                                        -
                                                                        -
                                                                        -
                                                                        -

                                                                        Search results

                                                                        - -
                                                                        -
                                                                        -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          - - -
                                                                          - - - - diff --git a/classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html b/classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html deleted file mode 100644 index b9701b5c6..000000000 --- a/classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                          -

                                                                          Documentation

                                                                          - - - - - -
                                                                          - -
                                                                          -
                                                                          - - - - -
                                                                          - - -
                                                                          -

                                                                          - QROutputTestAbstract - - - extends TestCase - - - - -

                                                                          - - - -

                                                                          Test abstract for the several (built-in) output modules, -should also be used to test custom output modules

                                                                          - -
                                                                          - - - - - - - - -

                                                                          - Table of Contents - -

                                                                          - -
                                                                          -
                                                                          - testInstance() - -  : void -
                                                                          -
                                                                          Validate the instance of the interface
                                                                          - -
                                                                          - testRenderImage() - -  : void -
                                                                          -
                                                                          covers the built-in output modules, tests against pre-rendered data
                                                                          - -
                                                                          - testSaveException() - -  : void -
                                                                          -
                                                                          Tests if an exception is thrown when trying to write a cache file to an invalid destination
                                                                          - -
                                                                          - testSetModuleValues() - -  : void -
                                                                          -
                                                                          covers the module values settings
                                                                          - -
                                                                          - testStringOutput() - -  : void -
                                                                          -
                                                                          coverage of the built-in output modules
                                                                          - -
                                                                          - - - - - - - -
                                                                          -

                                                                          - Methods - -

                                                                          -
                                                                          -

                                                                          - testInstance() - -

                                                                          - - -

                                                                          Validate the instance of the interface

                                                                          - - - public - testInstance() : void - -
                                                                          - - - - -
                                                                          Return values
                                                                          - void - — -
                                                                          - - -
                                                                          -
                                                                          -

                                                                          - testRenderImage() - -

                                                                          - - -

                                                                          covers the built-in output modules, tests against pre-rendered data

                                                                          - - - public - testRenderImage(string $type) : void - -
                                                                          - -
                                                                          Parameters
                                                                          -
                                                                          -
                                                                          - $type - : string -
                                                                          -
                                                                          - -
                                                                          -
                                                                          - - -
                                                                          - Tags - -
                                                                          -
                                                                          -
                                                                          - dataProvider -
                                                                          -
                                                                          - -

                                                                          types

                                                                          -
                                                                          - -
                                                                          -
                                                                          - -
                                                                          Return values
                                                                          - void - — -
                                                                          - - -
                                                                          -
                                                                          -

                                                                          - testSaveException() - -

                                                                          - - -

                                                                          Tests if an exception is thrown when trying to write a cache file to an invalid destination

                                                                          - - - public - testSaveException() : void - -
                                                                          - - - - -
                                                                          Return values
                                                                          - void - — -
                                                                          - - -
                                                                          -
                                                                          -

                                                                          - testSetModuleValues() - -

                                                                          - - -

                                                                          covers the module values settings

                                                                          - - - public - abstract testSetModuleValues() : void - -
                                                                          - - - - -
                                                                          Return values
                                                                          - void - — -
                                                                          - - -
                                                                          -
                                                                          -

                                                                          - testStringOutput() - -

                                                                          - - -

                                                                          coverage of the built-in output modules

                                                                          - - - public - testStringOutput(string $type) : void - -
                                                                          - -
                                                                          Parameters
                                                                          -
                                                                          -
                                                                          - $type - : string -
                                                                          -
                                                                          - -
                                                                          -
                                                                          - - -
                                                                          - Tags - -
                                                                          -
                                                                          -
                                                                          - dataProvider -
                                                                          -
                                                                          - -

                                                                          types

                                                                          -
                                                                          - -
                                                                          -
                                                                          - -
                                                                          Return values
                                                                          - void - — -
                                                                          - - -
                                                                          -
                                                                          - -
                                                                          -
                                                                          -
                                                                          -
                                                                          -

                                                                          Search results

                                                                          - -
                                                                          -
                                                                          -
                                                                            -
                                                                            -
                                                                            -
                                                                            -
                                                                            -
                                                                            - - -
                                                                            - - - - diff --git a/classes/chillerlan-QRCodeTest-Output-QRStringTest.html b/classes/chillerlan-QRCodeTest-Output-QRStringTest.html deleted file mode 100644 index f68491fd5..000000000 --- a/classes/chillerlan-QRCodeTest-Output-QRStringTest.html +++ /dev/null @@ -1,464 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                            -

                                                                            Documentation

                                                                            - - - - - -
                                                                            - -
                                                                            -
                                                                            - - - - -
                                                                            - - -
                                                                            -

                                                                            - QRStringTest - - - extends QROutputTestAbstract - - - - -

                                                                            - - - -

                                                                            Tests the QRString output module

                                                                            - -
                                                                            - - - - - - - - -

                                                                            - Table of Contents - -

                                                                            - -
                                                                            -
                                                                            - testCustomOutput() - -  : void -
                                                                            -
                                                                            covers the custom output functionality via an example
                                                                            - -
                                                                            - testInstance() - -  : void -
                                                                            -
                                                                            Validate the instance of the interface
                                                                            - -
                                                                            - testRenderImage() - -  : void -
                                                                            -
                                                                            covers the built-in output modules, tests against pre-rendered data
                                                                            - -
                                                                            - testSaveException() - -  : void -
                                                                            -
                                                                            Tests if an exception is thrown when trying to write a cache file to an invalid destination
                                                                            - -
                                                                            - testSetModuleValues() - -  : void -
                                                                            -
                                                                            covers the module values settings
                                                                            - -
                                                                            - testStringOutput() - -  : void -
                                                                            -
                                                                            coverage of the built-in output modules
                                                                            - -
                                                                            - - - - - - - -
                                                                            -

                                                                            - Methods - -

                                                                            -
                                                                            -

                                                                            - testCustomOutput() - -

                                                                            - - -

                                                                            covers the custom output functionality via an example

                                                                            - - - public - testCustomOutput() : void - -
                                                                            - - - - -
                                                                            Return values
                                                                            - void - — -
                                                                            - - -
                                                                            -
                                                                            -

                                                                            - testInstance() - -

                                                                            - - -

                                                                            Validate the instance of the interface

                                                                            - - - public - testInstance() : void - -
                                                                            - - - - -
                                                                            Return values
                                                                            - void - — -
                                                                            - - -
                                                                            -
                                                                            -

                                                                            - testRenderImage() - -

                                                                            - - -

                                                                            covers the built-in output modules, tests against pre-rendered data

                                                                            - - - public - testRenderImage(string $type) : void - -
                                                                            - -
                                                                            Parameters
                                                                            -
                                                                            -
                                                                            - $type - : string -
                                                                            -
                                                                            - -
                                                                            -
                                                                            - - -
                                                                            - Tags - -
                                                                            -
                                                                            -
                                                                            - dataProvider -
                                                                            -
                                                                            - -

                                                                            types

                                                                            -
                                                                            - -
                                                                            -
                                                                            - -
                                                                            Return values
                                                                            - void - — -
                                                                            - - -
                                                                            -
                                                                            -

                                                                            - testSaveException() - -

                                                                            - - -

                                                                            Tests if an exception is thrown when trying to write a cache file to an invalid destination

                                                                            - - - public - testSaveException() : void - -
                                                                            - - - - -
                                                                            Return values
                                                                            - void - — -
                                                                            - - -
                                                                            -
                                                                            -

                                                                            - testSetModuleValues() - -

                                                                            - - -

                                                                            covers the module values settings

                                                                            - - - public - testSetModuleValues() : void - -
                                                                            - - - -
                                                                            - Tags - -
                                                                            -
                                                                            -
                                                                            - inheritDoc -
                                                                            -
                                                                            - -
                                                                            - -
                                                                            -
                                                                            - -
                                                                            Return values
                                                                            - void - — -
                                                                            - - -
                                                                            -
                                                                            -

                                                                            - testStringOutput() - -

                                                                            - - -

                                                                            coverage of the built-in output modules

                                                                            - - - public - testStringOutput(string $type) : void - -
                                                                            - -
                                                                            Parameters
                                                                            -
                                                                            -
                                                                            - $type - : string -
                                                                            -
                                                                            - -
                                                                            -
                                                                            - - -
                                                                            - Tags - -
                                                                            -
                                                                            -
                                                                            - dataProvider -
                                                                            -
                                                                            - -

                                                                            types

                                                                            -
                                                                            - -
                                                                            -
                                                                            - -
                                                                            Return values
                                                                            - void - — -
                                                                            - - -
                                                                            -
                                                                            - -
                                                                            -
                                                                            -
                                                                            -
                                                                            -

                                                                            Search results

                                                                            - -
                                                                            -
                                                                            -
                                                                              -
                                                                              -
                                                                              -
                                                                              -
                                                                              -
                                                                              - - -
                                                                              - - - - diff --git a/classes/chillerlan-QRCodeTest-QRCodeTest.html b/classes/chillerlan-QRCodeTest-QRCodeTest.html deleted file mode 100644 index 4d339d3c6..000000000 --- a/classes/chillerlan-QRCodeTest-QRCodeTest.html +++ /dev/null @@ -1,537 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                              -

                                                                              Documentation

                                                                              - - - - - -
                                                                              - -
                                                                              -
                                                                              - - - - -
                                                                              - - -
                                                                              -

                                                                              - QRCodeTest - - - extends TestCase - - - - -

                                                                              - - - -

                                                                              Tests basic functions of the QRCode class

                                                                              - -
                                                                              - - - - - - - - -

                                                                              - Table of Contents - -

                                                                              - -
                                                                              -
                                                                              - testAvoidTrimming() - -  : void -
                                                                              -
                                                                              test whether stings are trimmed (they are not) - i'm still torn on that (see isByte)
                                                                              - -
                                                                              - testDataModeOverride() - -  : void -
                                                                              -
                                                                              tests if the data mode is overriden if QROptions::$dataModeOverride is set to a valid value
                                                                              - -
                                                                              - testDataModeOverrideError() - -  : void -
                                                                              -
                                                                              tests if an exception is thrown when an invalid character occurs when forcing a data mode other than Byte
                                                                              - -
                                                                              - testGetMatrixException() - -  : void -
                                                                              -
                                                                              tests if an exception is thrown when trying to call getMatrix() without data (empty string, no data set)
                                                                              - -
                                                                              - testInitDataInterfaceException() - -  : void -
                                                                              -
                                                                              tests if an exception is thrown when an invalid (built-in) output type is specified
                                                                              - -
                                                                              - testIsAlphaNum() - -  : void -
                                                                              -
                                                                              isAlphaNum() should pass on the 45 defined characters and fail on anything else (e.g. lowercase)
                                                                              - -
                                                                              - testIsByte() - -  : void -
                                                                              -
                                                                              isByte() passses any binary string and only fails on empty strings
                                                                              - -
                                                                              - testIsKanji() - -  : void -
                                                                              -
                                                                              isKanji() should pass on Kanji/SJIS characters and fail on everything else
                                                                              - -
                                                                              - testIsNumber() - -  : void -
                                                                              -
                                                                              isNumber() should pass on any number and fail on anything else
                                                                              - -
                                                                              - - - - - - - -
                                                                              -

                                                                              - Methods - -

                                                                              -
                                                                              -

                                                                              - testAvoidTrimming() - -

                                                                              - - -

                                                                              test whether stings are trimmed (they are not) - i'm still torn on that (see isByte)

                                                                              - - - public - testAvoidTrimming() : void - -
                                                                              - - - - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              -

                                                                              - testDataModeOverride() - -

                                                                              - - -

                                                                              tests if the data mode is overriden if QROptions::$dataModeOverride is set to a valid value

                                                                              - - - public - testDataModeOverride() : void - -
                                                                              - - - -
                                                                              - Tags - -
                                                                              -
                                                                              -
                                                                              - see -
                                                                              -
                                                                              - https://github.com/chillerlan/php-qrcode/issues/39 - -
                                                                              - -
                                                                              -
                                                                              - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              -

                                                                              - testDataModeOverrideError() - -

                                                                              - - -

                                                                              tests if an exception is thrown when an invalid character occurs when forcing a data mode other than Byte

                                                                              - - - public - testDataModeOverrideError() : void - -
                                                                              - - - - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              -

                                                                              - testGetMatrixException() - -

                                                                              - - -

                                                                              tests if an exception is thrown when trying to call getMatrix() without data (empty string, no data set)

                                                                              - - - public - testGetMatrixException() : void - -
                                                                              - - - - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              -

                                                                              - testInitDataInterfaceException() - -

                                                                              - - -

                                                                              tests if an exception is thrown when an invalid (built-in) output type is specified

                                                                              - - - public - testInitDataInterfaceException() : void - -
                                                                              - - - - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              -

                                                                              - testIsAlphaNum() - -

                                                                              - - -

                                                                              isAlphaNum() should pass on the 45 defined characters and fail on anything else (e.g. lowercase)

                                                                              - - - public - testIsAlphaNum() : void - -
                                                                              - - - - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              -

                                                                              - testIsByte() - -

                                                                              - - -

                                                                              isByte() passses any binary string and only fails on empty strings

                                                                              - - - public - testIsByte() : void - -
                                                                              - - - - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              -

                                                                              - testIsKanji() - -

                                                                              - - -

                                                                              isKanji() should pass on Kanji/SJIS characters and fail on everything else

                                                                              - - - public - testIsKanji() : void - -
                                                                              - - - - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              -

                                                                              - testIsNumber() - -

                                                                              - - -

                                                                              isNumber() should pass on any number and fail on anything else

                                                                              - - - public - testIsNumber() : void - -
                                                                              - - - - -
                                                                              Return values
                                                                              - void - — -
                                                                              - - -
                                                                              -
                                                                              - -
                                                                              -
                                                                              -
                                                                              -
                                                                              -

                                                                              Search results

                                                                              - -
                                                                              -
                                                                              -
                                                                                -
                                                                                -
                                                                                -
                                                                                -
                                                                                -
                                                                                - - -
                                                                                - - - - diff --git a/classes/chillerlan-QRCodeTest-QROptionsTest.html b/classes/chillerlan-QRCodeTest-QROptionsTest.html deleted file mode 100644 index 9c468ccaf..000000000 --- a/classes/chillerlan-QRCodeTest-QROptionsTest.html +++ /dev/null @@ -1,541 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                -

                                                                                Documentation

                                                                                - - - - - -
                                                                                - -
                                                                                -
                                                                                - - - - -
                                                                                - - -
                                                                                -

                                                                                - QROptionsTest - - - extends TestCase - - - - -

                                                                                - - - -

                                                                                QROptions test

                                                                                - -
                                                                                - - - - - - - - -

                                                                                - Table of Contents - -

                                                                                - -
                                                                                -
                                                                                - testClampRGBValues() - -  : void -
                                                                                -
                                                                                Tests clamping of the RGB values for $imageTransparencyBG
                                                                                - -
                                                                                - testInvalidEccLevelException() - -  : void -
                                                                                -
                                                                                Tests if an exception is thrown on an incorrect ECC level
                                                                                - -
                                                                                - testInvalidRGBValueException() - -  : void -
                                                                                -
                                                                                Tests if an exception is thrown when a non-numeric RGB value was encoutered
                                                                                - -
                                                                                - testMaskPatternClamp() - -  : void -
                                                                                -
                                                                                Tests the $maskPattern clamping
                                                                                - -
                                                                                - testVersionClamp() - -  : void -
                                                                                -
                                                                                Tests the $version clamping
                                                                                - -
                                                                                - testVersionMinMaxClamp() - -  : void -
                                                                                -
                                                                                Tests the $versionMin/$versionMax clamping
                                                                                - -
                                                                                - - - - - - - -
                                                                                -

                                                                                - Methods - -

                                                                                -
                                                                                -

                                                                                - testClampRGBValues() - -

                                                                                - - -

                                                                                Tests clamping of the RGB values for $imageTransparencyBG

                                                                                - - - public - testClampRGBValues(array<string|int, mixed> $rgb, array<string|int, mixed> $expected) : void - -
                                                                                - -
                                                                                Parameters
                                                                                -
                                                                                -
                                                                                - $rgb - : array<string|int, mixed> -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - $expected - : array<string|int, mixed> -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - - -
                                                                                - Tags - -
                                                                                -
                                                                                -
                                                                                - dataProvider -
                                                                                -
                                                                                - -

                                                                                RGBProvider

                                                                                -
                                                                                - -
                                                                                -
                                                                                - -
                                                                                Return values
                                                                                - void - — -
                                                                                - - -
                                                                                -
                                                                                -

                                                                                - testInvalidEccLevelException() - -

                                                                                - - -

                                                                                Tests if an exception is thrown on an incorrect ECC level

                                                                                - - - public - testInvalidEccLevelException() : void - -
                                                                                - - - - -
                                                                                Return values
                                                                                - void - — -
                                                                                - - -
                                                                                -
                                                                                -

                                                                                - testInvalidRGBValueException() - -

                                                                                - - -

                                                                                Tests if an exception is thrown when a non-numeric RGB value was encoutered

                                                                                - - - public - testInvalidRGBValueException() : void - -
                                                                                - - - - -
                                                                                Return values
                                                                                - void - — -
                                                                                - - -
                                                                                -
                                                                                -

                                                                                - testMaskPatternClamp() - -

                                                                                - - -

                                                                                Tests the $maskPattern clamping

                                                                                - - - public - testMaskPatternClamp(int $maskPattern, int $expected) : void - -
                                                                                - -
                                                                                Parameters
                                                                                -
                                                                                -
                                                                                - $maskPattern - : int -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - $expected - : int -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - - -
                                                                                - Tags - -
                                                                                -
                                                                                -
                                                                                - dataProvider -
                                                                                -
                                                                                - -

                                                                                MaskPatternProvider

                                                                                -
                                                                                - -
                                                                                -
                                                                                - -
                                                                                Return values
                                                                                - void - — -
                                                                                - - -
                                                                                -
                                                                                -

                                                                                - testVersionClamp() - -

                                                                                - - -

                                                                                Tests the $version clamping

                                                                                - - - public - testVersionClamp(int $version, int $expected) : void - -
                                                                                - -
                                                                                Parameters
                                                                                -
                                                                                -
                                                                                - $version - : int -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - $expected - : int -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - - -
                                                                                - Tags - -
                                                                                -
                                                                                -
                                                                                - dataProvider -
                                                                                -
                                                                                - -

                                                                                VersionProvider

                                                                                -
                                                                                - -
                                                                                -
                                                                                - -
                                                                                Return values
                                                                                - void - — -
                                                                                - - -
                                                                                -
                                                                                -

                                                                                - testVersionMinMaxClamp() - -

                                                                                - - -

                                                                                Tests the $versionMin/$versionMax clamping

                                                                                - - - public - testVersionMinMaxClamp(int $versionMin, int $versionMax, int $expectedMin, int $expectedMax) : void - -
                                                                                - -
                                                                                Parameters
                                                                                -
                                                                                -
                                                                                - $versionMin - : int -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - $versionMax - : int -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - $expectedMin - : int -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - $expectedMax - : int -
                                                                                -
                                                                                - -
                                                                                -
                                                                                - - -
                                                                                - Tags - -
                                                                                -
                                                                                -
                                                                                - dataProvider -
                                                                                -
                                                                                - -

                                                                                VersionMinMaxProvider

                                                                                -
                                                                                - -
                                                                                -
                                                                                - -
                                                                                Return values
                                                                                - void - — -
                                                                                - - -
                                                                                -
                                                                                - -
                                                                                -
                                                                                -
                                                                                -
                                                                                -

                                                                                Search results

                                                                                - -
                                                                                -
                                                                                -
                                                                                  -
                                                                                  -
                                                                                  -
                                                                                  -
                                                                                  -
                                                                                  - - -
                                                                                  - - - - diff --git a/composer.json b/composer.json new file mode 100644 index 000000000..57d6a28e1 --- /dev/null +++ b/composer.json @@ -0,0 +1,69 @@ +{ + "name": "chillerlan/php-qrcode", + "description": "A QR code generator. PHP 7.4+", + "homepage": "https://github.com/chillerlan/php-qrcode", + "license": "MIT", + "minimum-stability": "stable", + "type": "library", + "keywords": [ + "QR code", "qrcode", "qr", "qrcode-generator", "phpqrcode", "qrcode-reader" + ], + "authors": [ + { + "name": "Kazuhiko Arase", + "homepage": "https://github.com/kazuhikoarase/qrcode-generator" + }, + { + "name":"ZXing Authors", + "homepage": "https://github.com/zxing/zxing" + }, + { + "name": "Ashot Khanamiryan", + "homepage": "https://github.com/khanamiryan/php-qrcode-detector-decoder" + }, + { + "name": "Smiley", + "email": "smiley@chillerlan.net", + "homepage": "https://github.com/codemasher" + }, + { + "name": "Contributors", + "homepage":"https://github.com/chillerlan/php-qrcode/graphs/contributors" + } + ], + "require": { + "php": "^7.4 || ^8.0", + "ext-mbstring": "*", + "chillerlan/php-settings-container": "^2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.5", + "phan/phan": "^5.3", + "setasign/fpdf": "^1.8.2" + }, + "suggest": { + "chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.", + "setasign/fpdf": "Required to use the QR FPDF output." + }, + "autoload": { + "psr-4": { + "chillerlan\\QRCode\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "chillerlan\\QRCodePublic\\": "public/", + "chillerlan\\QRCodeTest\\": "tests/", + "chillerlan\\QRCodeExamples\\": "examples/" + } + }, + "scripts": { + "phpunit": "@php vendor/bin/phpunit", + "phan": "@php vendor/bin/phan" + }, + "config": { + "lock": false, + "sort-packages": true, + "platform-check": true + } +} diff --git a/css/base.css b/css/base.css deleted file mode 100644 index 3fa8f232f..000000000 --- a/css/base.css +++ /dev/null @@ -1,1002 +0,0 @@ - -:root { - /* Typography */ - --font-primary: 'Source Sans Pro', Helvetica, Arial, sans-serif; - --font-secondary: 'Source Sans Pro', Helvetica, Arial, sans-serif; - --line-height--primary: 1.6; - --letter-spacing--primary: .05rem; - --text-base-size: 1em; - --text-scale-ratio: 1.2; - - --text-xxs: calc(var(--text-base-size) / var(--text-scale-ratio) / var(--text-scale-ratio) / var(--text-scale-ratio)); - --text-xs: calc(var(--text-base-size) / var(--text-scale-ratio) / var(--text-scale-ratio)); - --text-sm: calc(var(--text-base-size) / var(--text-scale-ratio)); - --text-md: var(--text-base-size); - --text-lg: calc(var(--text-base-size) * var(--text-scale-ratio)); - --text-xl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio)); - --text-xxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); - --text-xxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); - --text-xxxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); - --text-xxxxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); - - /* Colors */ - --primary-color: hsl(96, 57%, 60%); - --primary-color-darken: hsl(96, 57%, 40%); - --primary-color-darker: hsl(96, 57%, 20%); - --primary-color-lighten: hsl(96, 57%, 80%); - --primary-color-lighter: hsl(96, 57%, 97%); - --dark-gray: #d1d1d1; - --light-gray: #f0f0f0; - - --text-color: #4b3b40; - - --header-height: var(--spacing-xxxxl); - --header-bg-color: var(--primary-color); - --code-background-color: #f7faf5; - --code-border-color: #d6e7cb; - --button-border-color: var(--primary-color-darken); - --button-color: transparent; - --button-color-primary: var(--primary-color); - --button-text-color: #555; - --button-text-color-primary: white; - --popover-background-color: rgba(255, 255, 255, 0.75); - --link-color-primary: var(--primary-color-darken); - --link-hover-color-primary: var(--primary-color-darker); - --form-field-border-color: var(--dark-gray); - --form-field-color: #fff; - --admonition-success-color: var(--primary-color); - --admonition-border-color: silver; - --table-separator-color: var(--primary-color-lighten); - --title-text-color: var(--primary-color); - - --sidebar-border-color: var(--primary-color-lighten); - - /* Grid */ - --container-width: 1400px; - - /* Spacing */ - --spacing-base-size: 1rem; - --spacing-scale-ratio: 1.5; - - --spacing-xxxs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); - --spacing-xxs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); - --spacing-xs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); - --spacing-sm: calc(var(--spacing-base-size) / var(--spacing-scale-ratio)); - --spacing-md: var(--spacing-base-size); - --spacing-lg: calc(var(--spacing-base-size) * var(--spacing-scale-ratio)); - --spacing-xl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); - --spacing-xxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); - --spacing-xxxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); - --spacing-xxxxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); - - --border-radius-base-size: 3px; -} - -/* Base Styles --------------------------------------------------- */ -body { - color: var(--text-color); - font-family: var(--font-primary); - font-size: var(--text-md); - letter-spacing: var(--letter-spacing--primary); - line-height: var(--line-height--primary); -} - -.phpdocumentor h1, -.phpdocumentor h2, -.phpdocumentor h3, -.phpdocumentor h4, -.phpdocumentor h5, -.phpdocumentor h6 { - margin-bottom: var(--spacing-lg); - margin-top: var(--spacing-lg); - font-weight: 600; -} - -.phpdocumentor h1 { - font-size: var(--text-xxxxl); - letter-spacing: var(--letter-spacing--primary); - line-height: 1.2; - margin-top: 0; -} - -.phpdocumentor h2 { - font-size: var(--text-xxxl); - letter-spacing: var(--letter-spacing--primary); - line-height: 1.25; - margin-top: 0; -} - -.phpdocumentor h3 { - font-size: var(--text-xxl); - letter-spacing: var(--letter-spacing--primary); - line-height: 1.3; -} - -.phpdocumentor h4 { - font-size: var(--text-xl); - letter-spacing: calc(var(--letter-spacing--primary) / 2); - line-height: 1.35; - margin-bottom: var(--spacing-md); -} - -.phpdocumentor h5 { - font-size: var(--text-lg); - letter-spacing: calc(var(--letter-spacing--primary) / 4); - line-height: 1.5; - margin-bottom: var(--spacing-md); - margin-top: var(--spacing-md); -} - -.phpdocumentor h6 { - font-size: var(--text-md); - letter-spacing: 0; - line-height: var(--line-height--primary); - margin-bottom: var(--spacing-md); - margin-top: var(--spacing-md); -} - -.phpdocumentor h1 .headerlink, -.phpdocumentor h2 .headerlink, -.phpdocumentor h3 .headerlink, -.phpdocumentor h4 .headerlink, -.phpdocumentor h5 .headerlink, -.phpdocumentor h6 .headerlink -{ - transition: all .3s ease-in-out; - opacity: 0; - text-decoration: none; - color: silver; - font-size: 80%; -} - -.phpdocumentor h1:hover .headerlink, -.phpdocumentor h2:hover .headerlink, -.phpdocumentor h3:hover .headerlink, -.phpdocumentor h4:hover .headerlink, -.phpdocumentor h5:hover .headerlink, -.phpdocumentor h6:hover .headerlink -{ - opacity: 1; -} -.phpdocumentor p { - margin-top: 0; - margin-bottom: var(--spacing-md); -} -.phpdocumentor figure { - margin-bottom: var(--spacing-md); -} -.phpdocumentor-line { - border-top: 1px solid #E1E1E1; - border-width: 0; - margin-bottom: var(--spacing-xxl); - margin-top: var(--spacing-xxl); -} -.phpdocumentor-section { - box-sizing: border-box; - margin: 0 auto; - max-width: var(--container-width); - padding: 0 var(--spacing-lg); - position: relative; - width: 100%; -} - -@media (min-width: 1200px) { - .phpdocumentor-section { - padding: 0; - width: 95%; - } -} -.phpdocumentor-column { - box-sizing: border-box; - float: left; - width: 100%; -} - -@media (min-width: 550px) { - .phpdocumentor-column { - margin-left: 4%; - } - - .phpdocumentor-column:first-child { - margin-left: 0; - } - - .-one.phpdocumentor-column { - width: 4.66666666667%; - } - - .-two.phpdocumentor-column { - width: 13.3333333333%; - } - - .-three.phpdocumentor-column { - width: 22%; - } - - .-four.phpdocumentor-column { - width: 30.6666666667%; - } - - .-five.phpdocumentor-column { - width: 39.3333333333%; - } - - .-six.phpdocumentor-column { - width: 48%; - } - - .-seven.phpdocumentor-column { - width: 56.6666666667%; - } - - .-eight.phpdocumentor-column { - width: 65.3333333333%; - } - - .-nine.phpdocumentor-column { - width: 74.0%; - } - - .-ten.phpdocumentor-column { - width: 82.6666666667%; - } - - .-eleven.phpdocumentor-column { - width: 91.3333333333%; - } - - .-twelve.phpdocumentor-column { - margin-left: 0; - width: 100%; - } - - .-one-third.phpdocumentor-column { - width: 30.6666666667%; - } - - .-two-thirds.phpdocumentor-column { - width: 65.3333333333%; - } - - .-one-half.phpdocumentor-column { - width: 48%; - } - - /* Offsets */ - .-offset-by-one.phpdocumentor-column { - margin-left: 8.66666666667%; - } - - .-offset-by-two.phpdocumentor-column { - margin-left: 17.3333333333%; - } - - .-offset-by-three.phpdocumentor-column { - margin-left: 26%; - } - - .-offset-by-four.phpdocumentor-column { - margin-left: 34.6666666667%; - } - - .-offset-by-five.phpdocumentor-column { - margin-left: 43.3333333333%; - } - - .-offset-by-six.phpdocumentor-column { - margin-left: 52%; - } - - .-offset-by-seven.phpdocumentor-column { - margin-left: 60.6666666667%; - } - - .-offset-by-eight.phpdocumentor-column { - margin-left: 69.3333333333%; - } - - .-offset-by-nine.phpdocumentor-column { - margin-left: 78.0%; - } - - .-offset-by-ten.phpdocumentor-column { - margin-left: 86.6666666667%; - } - - .-offset-by-eleven.phpdocumentor-column { - margin-left: 95.3333333333%; - } - - .-offset-by-one-third.phpdocumentor-column { - margin-left: 34.6666666667%; - } - - .-offset-by-two-thirds.phpdocumentor-column { - margin-left: 69.3333333333%; - } - - .-offset-by-one-half.phpdocumentor-column { - margin-left: 52%; - } -} -.phpdocumentor a { - color: var(--link-color-primary); -} - -.phpdocumentor a:hover { - color: var(--link-hover-color-primary); -} -.phpdocumentor-button { - background-color: var(--button-color); - border: 1px solid var(--button-border-color); - border-radius: var(--border-radius-base-size); - box-sizing: border-box; - color: var(--button-text-color); - cursor: pointer; - display: inline-block; - font-size: var(--text-sm); - font-weight: 600; - height: 38px; - letter-spacing: .1rem; - line-height: 38px; - padding: 0 var(--spacing-xxl); - text-align: center; - text-decoration: none; - text-transform: uppercase; - white-space: nowrap; - margin-bottom: var(--spacing-md); -} - -.phpdocumentor-button .-wide { - width: 100%; -} - -.phpdocumentor-button:hover, -.phpdocumentor-button:focus { - border-color: #888; - color: #333; - outline: 0; -} - -.phpdocumentor-button.-primary { - background-color: var(--button-color-primary); - border-color: var(--button-color-primary); - color: var(--button-text-color-primary); -} - -.phpdocumentor-button.-primary:hover, -.phpdocumentor-button.-primary:focus { - background-color: var(--link-color-primary); - border-color: var(--link-color-primary); - color: var(--button-text-color-primary); -} -.phpdocumentor form { - margin-bottom: var(--spacing-md); -} - -.phpdocumentor-field { - background-color: var(--form-field-color); - border: 1px solid var(--form-field-border-color); - border-radius: var(--border-radius-base-size); - box-shadow: none; - box-sizing: border-box; - height: 38px; - padding: var(--spacing-xxxs) var(--spacing-xxs); /* The 6px vertically centers text on FF, ignored by Webkit */ - margin-bottom: var(--spacing-md); -} - -/* Removes awkward default styles on some inputs for iOS */ -input[type="email"], -input[type="number"], -input[type="search"], -input[type="text"], -input[type="tel"], -input[type="url"], -input[type="password"], -textarea { - -moz-appearance: none; - -webkit-appearance: none; - appearance: none; -} - -.phpdocumentor-textarea { - min-height: 65px; - padding-bottom: var(--spacing-xxxs); - padding-top: var(--spacing-xxxs); -} - -.phpdocumentor-field:focus { - border: 1px solid var(--button-color-primary); - outline: 0; -} - -.phpdocumentor-label { - display: block; - margin-bottom: var(--spacing-xs); -} - -.phpdocumentor-fieldset { - border-width: 0; - padding: 0; -} - -input[type="checkbox"].phpdocumentor-field, -input[type="radio"].phpdocumentor-field { - display: inline; -} -div.phpdocumentor-list > ul, -ul.phpdocumentor-list { - list-style: circle inside; -} - -ol.phpdocumentor-list { - list-style: decimal inside; -} - -div.phpdocumentor-list > ul, -ol.phpdocumentor-list, -ul.phpdocumentor-list { - margin-top: 0; - padding-left: 0; - margin-bottom: var(--spacing-md); -} - -dl { - margin-bottom: var(--spacing-md); -} - -div.phpdocumentor-list > ul ul, -ul.phpdocumentor-list ul.phpdocumentor-list, -ul.phpdocumentor-list ol.phpdocumentor-list, -ol.phpdocumentor-list ol.phpdocumentor-list, -ol.phpdocumentor-list ul.phpdocumentor-list { - font-size: var(--text-sm); - margin: var(--spacing-xs) 0 var(--spacing-xs) calc(var(--spacing-xs) * 2); -} - -li.phpdocumentor-list { - margin-bottom: var(--spacing-md); -} -.phpdocumentor pre { - margin-bottom: var(--spacing-md); -} - -.phpdocumentor-code { - background: var(--code-background-color); - border: 1px solid var(--code-border-color); - border-radius: var(--border-radius-base-size); - font-size: var(--text-sm); - padding: var(--spacing-sm) var(--spacing-md); - width: 100%; - box-sizing: border-box; -} - -pre > .phpdocumentor-code { - display: block; - white-space: pre; -} -.phpdocumentor blockquote { - border-left: 4px solid var(--primary-color); - margin: var(--spacing-md) 0; - padding: var(--spacing-xs) var(--spacing-sm); - color: var(--primary-color-darker); - font-style: italic; - font-size: var(--text-sm); -} -.phpdocumentor table { - margin-bottom: var(--spacing-md); -} - -th.phpdocumentor-heading, -td.phpdocumentor-cell { - border-bottom: 1px solid var(--table-separator-color); - padding: var(--spacing-sm) var(--spacing-md); - text-align: left; -} - -th.phpdocumentor-heading:first-child, -td.phpdocumentor-cell:first-child { - padding-left: 0; -} - -th.phpdocumentor-heading:last-child, -td.phpdocumentor-cell:last-child { - padding-right: 0; -} - -.phpdocumentor-header { - display: flex; - flex-direction: row; - align-items: stretch; - flex-wrap: wrap; - justify-content: space-between; - height: auto; - padding: var(--spacing-md) var(--spacing-md); -} - -.phpdocumentor-header__menu-button { - position: absolute; - top: -100%; - left: -100%; -} - -.phpdocumentor-header__menu-icon { - font-size: 2rem; - color: var(--primary-color); -} - -.phpdocumentor-header__menu-button:checked ~ .phpdocumentor-topnav { - max-height: 250px; - padding-top: var(--spacing-md); -} - -@media (min-width: 1000px) { - .phpdocumentor-header { - flex-direction: row; - padding: var(--spacing-lg) var(--spacing-lg); - min-height: var(--header-height); - } - - .phpdocumentor-header__menu-icon { - display: none; - } -} - -@media (min-width: 1000px) { - .phpdocumentor-header { - padding-top: 0; - padding-bottom: 0; - } -} -@media (min-width: 1200px) { - .phpdocumentor-header { - padding: 0; - } -} -.phpdocumentor-title { - box-sizing: border-box; - color: var(--title-text-color); - font-size: var(--text-xxl); - letter-spacing: .05rem; - font-weight: normal; - width: auto; - margin: 0; - display: flex; - align-items: center; -} - -.phpdocumentor-title.-without-divider { - border: none; -} - -.phpdocumentor-title__link { - transition: all .3s ease-out; - display: flex; - color: var(--title-text-color); - text-decoration: none; - font-weight: normal; - white-space: nowrap; - transform: scale(.75); - transform-origin: left; -} - -.phpdocumentor-title__link:hover { - transform: perspective(15rem) translateX(.5rem); - font-weight: 600; -} - -@media (min-width: 1000px) { - .phpdocumentor-title { - width: 30.6666666667%; - border-right: var(--sidebar-border-color) solid 1px; - } - - .phpdocumentor-title__link { - transform-origin: left; - } -} - -@media (min-width: 1000px) { - .phpdocumentor-title__link { - transform: scale(.85); - } -} - -@media (min-width: 1200px) { - .phpdocumentor-title__link { - transform: scale(1); - } -} -.phpdocumentor-topnav { - display: flex; - align-items: center; - margin: 0; - max-height: 0; - overflow: hidden; - transition: max-height 0.2s ease-out; - flex-basis: 100%; -} - -.phpdocumentor-topnav__menu { - text-align: right; - list-style: none; - margin: 0; - padding: 0; - flex: 1; - display: flex; - flex-flow: row wrap; - justify-content: center; -} - -.phpdocumentor-topnav__menu-item { - margin: 0; - width: 100%; - display: inline-block; - text-align: center; - padding: var(--spacing-sm) 0 -} - -.phpdocumentor-topnav__menu-item.-social { - width: auto; - padding: var(--spacing-sm) -} - -.phpdocumentor-topnav__menu-item a { - display: inline-block; - color: var(--text-color); - text-decoration: none; - font-size: var(--text-lg); - transition: all .3s ease-out; - border-bottom: 1px dotted transparent; - line-height: 1; -} - -.phpdocumentor-topnav__menu-item a:hover { - transform: perspective(15rem) translateY(.1rem); - border-bottom: 1px dotted var(--text-color); -} - -@media (min-width: 1000px) { - .phpdocumentor-topnav { - max-height: none; - overflow: visible; - flex-basis: auto; - } - - .phpdocumentor-topnav__menu { - display: flex; - flex-flow: row wrap; - justify-content: flex-end; - } - - .phpdocumentor-topnav__menu-item, - .phpdocumentor-topnav__menu-item.-social { - width: auto; - display: inline; - text-align: right; - padding: 0 0 0 var(--spacing-md) - } -} -.phpdocumentor-sidebar { - margin: 0; - overflow: hidden; - max-height: 0; -} - -.phpdocumentor .phpdocumentor-sidebar .phpdocumentor-list { - padding-top: var(--spacing-xs); - padding-left: var(--spacing-md); - list-style: none; -} - -.phpdocumentor .phpdocumentor-sidebar li { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - padding: 0 0 var(--spacing-xxxs) var(--spacing-md); -} - -.phpdocumentor .phpdocumentor-sidebar abbr, -.phpdocumentor .phpdocumentor-sidebar a { - text-decoration: none; - border-bottom: none; - color: var(--text-color); - font-size: var(--text-md); - padding-left: 0; - transition: padding-left .4s ease-out; -} - -.phpdocumentor .phpdocumentor-sidebar a:hover { - padding-left: 5px; - font-weight: 600; -} - -.phpdocumentor .phpdocumentor-sidebar__category > * { - border-left: 1px solid var(--primary-color-lighten); -} - -.phpdocumentor .phpdocumentor-sidebar__category { - margin-bottom: var(--spacing-lg); -} - -.phpdocumentor .phpdocumentor-sidebar__category-header { - font-size: var(--text-md); - margin-bottom: var(--spacing-xs); - color: var(--link-color-primary); - font-weight: 600; - border-left: 0; -} - -.phpdocumentor .phpdocumentor-sidebar__root-package, -.phpdocumentor .phpdocumentor-sidebar__root-namespace { - font-size: var(--text-md); - margin: 0; - padding-top: var(--spacing-xs); - padding-left: var(--spacing-md); - color: var(--text-color); - font-weight: normal; -} - -@media (min-width: 550px) { - .phpdocumentor-sidebar { - border-right: var(--sidebar-border-color) solid 1px; - } -} - -.phpdocumentor-sidebar__menu-button { - position: absolute; - top: -100%; - left: -100%; -} - -.phpdocumentor-sidebar__menu-icon { - font-size: var(--text-md); - font-weight: 600; - background: var(--primary-color); - color: white; - margin: 0 0 var(--spacing-lg); - display: block; - padding: var(--spacing-sm); - text-align: center; - border-radius: 3px; - text-transform: uppercase; - letter-spacing: .15rem; -} - -.phpdocumentor-sidebar__menu-button:checked ~ .phpdocumentor-sidebar { - max-height: 100%; - padding-top: var(--spacing-md); -} - -@media (min-width: 550px) { - .phpdocumentor-sidebar { - overflow: visible; - max-height: 100%; - } - - .phpdocumentor-sidebar__menu-icon { - display: none; - } -} -.phpdocumentor-admonition { - border: 1px solid var(--admonition-border-color); - border-radius: var(--border-radius-base-size); - border-color: var(--primary-color-lighten); - background-color: var(--primary-color-lighter); - font-size: 85%; - padding: .5rem; - margin: 2rem 0; - display: flex; - flex-direction: row; -} - -.phpdocumentor-admonition--success { - border-color: var(--admonition-success-color); -} - -.phpdocumentor-admonition__icon { - font-size: 2rem; - margin: .75rem 0.75rem 1.25rem 0.5rem; - color: var(--primary-color); -} -.phpdocumentor ul.phpdocumentor-breadcrumbs { - font-size: var(--text-md); - list-style: none; - margin: 0; - padding: 0; -} - -.phpdocumentor ul.phpdocumentor-breadcrumbs a { - color: var(--text-color); - text-decoration: none; -} - -.phpdocumentor ul.phpdocumentor-breadcrumbs > li { - display: inline-block; - margin: 0; -} - -.phpdocumentor ul.phpdocumentor-breadcrumbs > li + li:before { - color: var(--dark-gray); - content: "\\\A0"; - padding: 0; -} -.phpdocumentor .phpdocumentor-back-to-top { - position: fixed; - bottom: 2rem; - font-size: 2.5rem; - opacity: .25; - transition: all .3s ease-in-out; - right: 2rem; -} - -.phpdocumentor .phpdocumentor-back-to-top:hover { - color: var(--link-color-primary); - opacity: 1; -} -.phpdocumentor-search { - position: relative; - display: none; /** disable by default for non-js flow */ - opacity: .3; /** white-out default for loading indication */ - transition: opacity .3s, background .3s; - margin: var(--spacing-sm) 0; - flex: 1; - min-width: 100%; -} - -.phpdocumentor-search label { - display: flex; - align-items: center; - flex: 1; -} - -.phpdocumentor-search__icon { - color: var(--primary-color); - margin-right: var(--spacing-sm); - width: 1rem; - height: 1rem; -} - -.phpdocumentor-search--enabled { - display: flex; -} - -.phpdocumentor-search--active { - opacity: 1; -} - -.phpdocumentor-search input:disabled { - background-color: lightgray; -} - -.phpdocumentor-search__field:focus, -.phpdocumentor-search__field { - margin-bottom: 0; - border: 0; - border-bottom: 2px solid var(--primary-color); - padding: 0; - border-radius: 0; - flex: 1; -} - -@media (min-width: 1000px) { - .phpdocumentor-search { - min-width: auto; - max-width: 20rem; - margin: 0 0 0 auto; - } -} -.phpdocumentor-content { - position: relative; -} - -.phpdocumentor-search-results { - backdrop-filter: blur(5px); - background: var(--popover-background-color); - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - padding: 0; - opacity: 1; - pointer-events: all; - - transition: opacity .3s, background .3s; -} - -.phpdocumentor-search-results--hidden { - background: transparent; - backdrop-filter: blur(0); - opacity: 0; - pointer-events: none; -} - -.phpdocumentor-search-results__dialog { - width: 100%; - background: white; - max-height: 100%; - display: flex; - flex-direction: column; -} - -.phpdocumentor-search-results__body { - overflow: auto; -} - -.phpdocumentor-search-results__header { - padding: var(--spacing-lg); - display: flex; - justify-content: space-between; - background: var(--primary-color-darken); - color: white; - align-items: center; -} - -.phpdocumentor-search-results__close { - font-size: var(--text-xl); - background: none; - border: none; - padding: 0; - margin: 0; -} - -.phpdocumentor .phpdocumentor-search-results__title { - font-size: var(--text-xl); - margin-bottom: 0; -} - -.phpdocumentor-search-results__entries { - list-style: none; - padding: 0 var(--spacing-lg); - margin: 0; -} - -.phpdocumentor-search-results__entry { - border-bottom: 1px solid var(--table-separator-color); - padding: var(--spacing-sm) 0; - text-align: left; -} - -.phpdocumentor-search-results__entry a { - display: block; -} - -.phpdocumentor-search-results__entry small { - margin-top: var(--spacing-xs); - margin-bottom: var(--spacing-md); - color: var(--primary-color-darker); - display: block; - word-break: break-word; -} - -.phpdocumentor-search-results__entry h3 { - font-size: var(--text-lg); - margin: 0; -} - -@media (min-width: 550px) { - .phpdocumentor-search-results { - padding: 0 var(--spacing-lg); - } - - .phpdocumentor-search-results__entry h3 { - font-size: var(--text-xxl); - } - - .phpdocumentor-search-results__dialog { - margin: var(--spacing-xl) auto; - max-width: 40rem; - background: white; - border: 1px solid silver; - box-shadow: 0 2px 5px silver; - max-height: 40rem; - border-radius: 3px; - } -} - -/* Used for screen readers and such */ -.visually-hidden { - display: none; -} diff --git a/css/normalize.css b/css/normalize.css deleted file mode 100644 index 46f646a5c..000000000 --- a/css/normalize.css +++ /dev/null @@ -1,427 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/css/template.css b/css/template.css deleted file mode 100644 index fb905f3d7..000000000 --- a/css/template.css +++ /dev/null @@ -1,169 +0,0 @@ -.phpdocumentor-summary { - font-style: italic; -} -.phpdocumentor-description { - margin-bottom: var(--spacing-md); -} -.phpdocumentor-element { - position: relative; -} - -.phpdocumentor .phpdocumentor-element__name { - line-height: 1; -} - -.phpdocumentor-element__package, -.phpdocumentor-element__extends, -.phpdocumentor-element__implements { - display: block; - font-size: var(--text-xxs); - font-weight: normal; - opacity: .7; -} - -.phpdocumentor-element__package .phpdocumentor-breadcrumbs { - display: inline; -} - -.phpdocumentor-element:not(:last-child) { - border-bottom: 1px solid var(--primary-color-lighten); - padding-bottom: var(--spacing-lg); -} - -.phpdocumentor-element.-deprecated .phpdocumentor-element__name { - text-decoration: line-through; -} - -.phpdocumentor-element__modifier { - font-size: var(--text-xxs); - padding: calc(var(--spacing-base-size) / 4) calc(var(--spacing-base-size) / 2); - color: var(--text-color); - background-color: var(--light-gray); - border-radius: 3px; - text-transform: uppercase; -} -.phpdocumentor-signature { - display: inline-block; - font-size: var(--text-sm); - margin-bottom: var(--spacing-md); -} - -.phpdocumentor-signature.-deprecated .phpdocumentor-signature__name { - text-decoration: line-through; -} -.phpdocumentor-table-of-contents { -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry { - padding-top: var(--spacing-xs); - margin-left: 2rem; - display: flex; -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry > a { - flex: 0 1 auto; -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry > span { - flex: 1; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry:after { - content: ''; - height: 12px; - width: 12px; - left: 16px; - position: absolute; -} -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-private:after { - background: url('data:image/svg+xml;utf8,') no-repeat; -} -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-protected:after { - left: 13px; - background: url('data:image/svg+xml;utf8,') no-repeat; -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry:before { - width: 1.25rem; - height: 1.25rem; - line-height: 1.25rem; - background: transparent url('data:image/svg+xml;utf8,') no-repeat center center; - content: ''; - position: absolute; - left: 0; - border-radius: 50%; - font-weight: 600; - color: white; - text-align: center; - font-size: .75rem; - margin-top: .2rem; -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-method:before { - content: 'M'; - background-image: url('data:image/svg+xml;utf8,'); -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-function:before { - content: 'M'; - background-image: url('data:image/svg+xml;utf8,'); -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-property:before { - content: 'P' -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-constant:before { - content: 'C'; - background-color: transparent; - background-image: url('data:image/svg+xml;utf8,'); -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-class:before { - content: 'C' -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-interface:before { - content: 'I' -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-trait:before { - content: 'T' -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-namespace:before { - content: 'N' -} - -.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-package:before { - content: 'P' -} - -.phpdocumentor-table-of-contents dd { - font-style: italic; - margin-left: 2rem; -} -.phpdocumentor-element-found-in { - position: absolute; - top: 0; - right: 0; - font-size: var(--text-sm); - color: gray; -} -.phpdocumentor-class-graph { - width: 100%; height: 600px; border:1px solid black; overflow: hidden -} - -.phpdocumentor-class-graph__graph { - width: 100%; -} -.phpdocumentor-tag-list__definition { - display: flex; -} - -.phpdocumentor-tag-link { - margin-right: var(--spacing-sm); -} diff --git a/descriptors/+/4/J79V3i35xFrOCD3MiGVw b/descriptors/+/4/J79V3i35xFrOCD3MiGVw deleted file mode 100644 index 8bc0051ba..000000000 Binary files a/descriptors/+/4/J79V3i35xFrOCD3MiGVw and /dev/null differ diff --git a/descriptors/+/P/Nl7ssh3KKeR8HtBtXT5Q b/descriptors/+/P/Nl7ssh3KKeR8HtBtXT5Q deleted file mode 100644 index 13b3079c1..000000000 Binary files a/descriptors/+/P/Nl7ssh3KKeR8HtBtXT5Q and /dev/null differ diff --git a/descriptors/-/2/48fvzRKW4dY1KC87BcHQ b/descriptors/-/2/48fvzRKW4dY1KC87BcHQ deleted file mode 100644 index 5c17c1100..000000000 Binary files a/descriptors/-/2/48fvzRKW4dY1KC87BcHQ and /dev/null differ diff --git a/descriptors/-/6/dsuPpGr0KRU0shpxjEmw b/descriptors/-/6/dsuPpGr0KRU0shpxjEmw deleted file mode 100644 index 046f915e1..000000000 Binary files a/descriptors/-/6/dsuPpGr0KRU0shpxjEmw and /dev/null differ diff --git a/descriptors/-/W/J7Vz6259gygGeqhbnvng b/descriptors/-/W/J7Vz6259gygGeqhbnvng deleted file mode 100644 index 8b69efb48..000000000 Binary files a/descriptors/-/W/J7Vz6259gygGeqhbnvng and /dev/null differ diff --git a/descriptors/0/S/hP-3wfw-DWJwFelVyg1w b/descriptors/0/S/hP-3wfw-DWJwFelVyg1w deleted file mode 100644 index 923d7bdcf..000000000 Binary files a/descriptors/0/S/hP-3wfw-DWJwFelVyg1w and /dev/null differ diff --git a/descriptors/3/D/98dT1rEobyqeXPwJohlQ b/descriptors/3/D/98dT1rEobyqeXPwJohlQ deleted file mode 100644 index 0ef740fa6..000000000 Binary files a/descriptors/3/D/98dT1rEobyqeXPwJohlQ and /dev/null differ diff --git a/descriptors/7/B/QD-dwvOVQnRBkabHURTg b/descriptors/7/B/QD-dwvOVQnRBkabHURTg deleted file mode 100644 index 5e4a21aff..000000000 Binary files a/descriptors/7/B/QD-dwvOVQnRBkabHURTg and /dev/null differ diff --git a/descriptors/9/S/nvQbFP5M0NhRY+U5h5Zg b/descriptors/9/S/nvQbFP5M0NhRY+U5h5Zg deleted file mode 100644 index e5c97d5c8..000000000 Binary files a/descriptors/9/S/nvQbFP5M0NhRY+U5h5Zg and /dev/null differ diff --git a/descriptors/B/I/P+u+dyr6fYJ5H49nVFpw b/descriptors/B/I/P+u+dyr6fYJ5H49nVFpw deleted file mode 100644 index c5d3df5c3..000000000 Binary files a/descriptors/B/I/P+u+dyr6fYJ5H49nVFpw and /dev/null differ diff --git a/descriptors/C/X/lCjLpRx-jv80J2lTXAdA b/descriptors/C/X/lCjLpRx-jv80J2lTXAdA deleted file mode 100644 index 4d36974fb..000000000 Binary files a/descriptors/C/X/lCjLpRx-jv80J2lTXAdA and /dev/null differ diff --git a/descriptors/E/N/7J1HzR2rAmelj40DCtRQ b/descriptors/E/N/7J1HzR2rAmelj40DCtRQ deleted file mode 100644 index 796336a0a..000000000 Binary files a/descriptors/E/N/7J1HzR2rAmelj40DCtRQ and /dev/null differ diff --git a/descriptors/F/F/ytYkFa+I+GXzyMa6GMLQ b/descriptors/F/F/ytYkFa+I+GXzyMa6GMLQ deleted file mode 100644 index 205a7271c..000000000 Binary files a/descriptors/F/F/ytYkFa+I+GXzyMa6GMLQ and /dev/null differ diff --git a/descriptors/F/G/uRaGX24I-0IrjNHzU2Aw b/descriptors/F/G/uRaGX24I-0IrjNHzU2Aw deleted file mode 100644 index 897b4ccd0..000000000 Binary files a/descriptors/F/G/uRaGX24I-0IrjNHzU2Aw and /dev/null differ diff --git a/descriptors/F/M/wgT07ZSpNOFubqhJ3NaQ b/descriptors/F/M/wgT07ZSpNOFubqhJ3NaQ deleted file mode 100644 index c52f08a0e..000000000 Binary files a/descriptors/F/M/wgT07ZSpNOFubqhJ3NaQ and /dev/null differ diff --git a/descriptors/G/P/0wRp4Gms9emiOfjnPbFg b/descriptors/G/P/0wRp4Gms9emiOfjnPbFg deleted file mode 100644 index 915265812..000000000 Binary files a/descriptors/G/P/0wRp4Gms9emiOfjnPbFg and /dev/null differ diff --git a/descriptors/K/3/YL+YrFq67XBsu73+nZAQ b/descriptors/K/3/YL+YrFq67XBsu73+nZAQ deleted file mode 100644 index 8cbbfcedd..000000000 Binary files a/descriptors/K/3/YL+YrFq67XBsu73+nZAQ and /dev/null differ diff --git a/descriptors/L/C/fZPr+WdSHDWS5Vi0hKmQ b/descriptors/L/C/fZPr+WdSHDWS5Vi0hKmQ deleted file mode 100644 index 6f518c937..000000000 Binary files a/descriptors/L/C/fZPr+WdSHDWS5Vi0hKmQ and /dev/null differ diff --git a/descriptors/M/Z/NowDQuJ6Wpkqe5R2xHxg b/descriptors/M/Z/NowDQuJ6Wpkqe5R2xHxg deleted file mode 100644 index 630699f4d..000000000 Binary files a/descriptors/M/Z/NowDQuJ6Wpkqe5R2xHxg and /dev/null differ diff --git a/descriptors/N/K/h9ZQJCH1sL3GOJzIP6YQ b/descriptors/N/K/h9ZQJCH1sL3GOJzIP6YQ deleted file mode 100644 index 9abea9614..000000000 Binary files a/descriptors/N/K/h9ZQJCH1sL3GOJzIP6YQ and /dev/null differ diff --git a/descriptors/O/I/CZLeEQ9UjGtpZp16duNw b/descriptors/O/I/CZLeEQ9UjGtpZp16duNw deleted file mode 100644 index 1c5315c6d..000000000 Binary files a/descriptors/O/I/CZLeEQ9UjGtpZp16duNw and /dev/null differ diff --git a/descriptors/P/+/3qYqDzXLQc6xrFQb2VVw b/descriptors/P/+/3qYqDzXLQc6xrFQb2VVw deleted file mode 100644 index 6cf0062e6..000000000 Binary files a/descriptors/P/+/3qYqDzXLQc6xrFQb2VVw and /dev/null differ diff --git a/descriptors/P/I/JTEhTSYSeSlmRi0Omfjw b/descriptors/P/I/JTEhTSYSeSlmRi0Omfjw deleted file mode 100644 index c7fb82575..000000000 Binary files a/descriptors/P/I/JTEhTSYSeSlmRi0Omfjw and /dev/null differ diff --git a/descriptors/Q/B/N8soEBwr-MXLUTj+AOSQ b/descriptors/Q/B/N8soEBwr-MXLUTj+AOSQ deleted file mode 100644 index 831e7a68d..000000000 Binary files a/descriptors/Q/B/N8soEBwr-MXLUTj+AOSQ and /dev/null differ diff --git a/descriptors/Q/L/xB66VhzNbapI7FEkTA1w b/descriptors/Q/L/xB66VhzNbapI7FEkTA1w deleted file mode 100644 index 24a107fb8..000000000 Binary files a/descriptors/Q/L/xB66VhzNbapI7FEkTA1w and /dev/null differ diff --git a/descriptors/R/F/IeoKYlOO9nPr1oc173IQ b/descriptors/R/F/IeoKYlOO9nPr1oc173IQ deleted file mode 100644 index 1af095e6f..000000000 Binary files a/descriptors/R/F/IeoKYlOO9nPr1oc173IQ and /dev/null differ diff --git a/descriptors/R/N/CcNtK2zlYqzXaX4BWc7Q b/descriptors/R/N/CcNtK2zlYqzXaX4BWc7Q deleted file mode 100644 index 25e253d4f..000000000 Binary files a/descriptors/R/N/CcNtK2zlYqzXaX4BWc7Q and /dev/null differ diff --git a/descriptors/R/U/VshQMVuxG1q6j0UdoNzA b/descriptors/R/U/VshQMVuxG1q6j0UdoNzA deleted file mode 100644 index b6b097d2c..000000000 Binary files a/descriptors/R/U/VshQMVuxG1q6j0UdoNzA and /dev/null differ diff --git a/descriptors/S/5/hz2fZQCFSiAF4iuUv8Wg b/descriptors/S/5/hz2fZQCFSiAF4iuUv8Wg deleted file mode 100644 index 490313911..000000000 Binary files a/descriptors/S/5/hz2fZQCFSiAF4iuUv8Wg and /dev/null differ diff --git a/descriptors/S/J/C6T1auhsGT3+MMq1K5-A b/descriptors/S/J/C6T1auhsGT3+MMq1K5-A deleted file mode 100644 index 04deb31b3..000000000 Binary files a/descriptors/S/J/C6T1auhsGT3+MMq1K5-A and /dev/null differ diff --git a/descriptors/S/S/PbPhSosYXWe4m22+XDEA b/descriptors/S/S/PbPhSosYXWe4m22+XDEA deleted file mode 100644 index 7bc90af27..000000000 Binary files a/descriptors/S/S/PbPhSosYXWe4m22+XDEA and /dev/null differ diff --git a/descriptors/T/G/EVonPeEo1Pxf+oUfneiw b/descriptors/T/G/EVonPeEo1Pxf+oUfneiw deleted file mode 100644 index 76822103e..000000000 --- a/descriptors/T/G/EVonPeEo1Pxf+oUfneiw +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -LpGsUSVZxt%3AphpDocumentor-projectDescriptor-filelist -a:40:{i:0;s:70:"phpDocumentor-projectDescriptor-files-6e4f69c48ba9cbe306a6007c692f0ffe";i:1;s:70:"phpDocumentor-projectDescriptor-files-8ff9f516ac8e54a3b2246fa2744d92d7";i:2;s:70:"phpDocumentor-projectDescriptor-files-f26a0846c840be604a792acafaeee293";i:3;s:70:"phpDocumentor-projectDescriptor-files-df42cd88fecffe804b2371f7c58a3f7f";i:4;s:70:"phpDocumentor-projectDescriptor-files-51b9053c73b0b532c33480987e362b6d";i:5;s:70:"phpDocumentor-projectDescriptor-files-e0f9ff4335e7dcabde94b24b5b3d838d";i:6;s:70:"phpDocumentor-projectDescriptor-files-789032e7d1724604ae5104a7ce0e89db";i:7;s:70:"phpDocumentor-projectDescriptor-files-726e195427c9d19fd16b85863921fb3d";i:8;s:70:"phpDocumentor-projectDescriptor-files-1f67fbce112198c37c55fe3ebdfe2599";i:9;s:70:"phpDocumentor-projectDescriptor-files-3db9168bac2313bc61c4acfed1ce1036";i:10;s:70:"phpDocumentor-projectDescriptor-files-d4de4c60838bf3ee18fa3ede3e4daff2";i:11;s:70:"phpDocumentor-projectDescriptor-files-b35ca0c182d9df96f981d1ed731e6eff";i:12;s:70:"phpDocumentor-projectDescriptor-files-b31d16eab64d6e98936bd9a7132dee28";i:13;s:70:"phpDocumentor-projectDescriptor-files-f4fbe9a5ba07da4c5dd136e0ca43f3de";i:14;s:70:"phpDocumentor-projectDescriptor-files-6efe3acfed58500c89222069397f57be";i:15;s:70:"phpDocumentor-projectDescriptor-files-2759f30a0c3ac842ba1fbfad5040960d";i:16;s:70:"phpDocumentor-projectDescriptor-files-818aad68a0071bd9554b3a113878be07";i:17;s:70:"phpDocumentor-projectDescriptor-files-a3598badc79d62dd0a7188eed330d15f";i:18;s:70:"phpDocumentor-projectDescriptor-files-908f984026aba14f9c4eb5f8b5309120";i:19;s:70:"phpDocumentor-projectDescriptor-files-b424b588535732c9c0ee9c87d872cd3e";i:20;s:70:"phpDocumentor-projectDescriptor-files-401116d23a0230fa80932e4cc8aefad0";i:21;s:70:"phpDocumentor-projectDescriptor-files-d8b72682d00611500144fd349e7e2b22";i:22;s:70:"phpDocumentor-projectDescriptor-files-e821eb855be9bafd757aab41d206fdb2";i:23;s:70:"phpDocumentor-projectDescriptor-files-c0227aab7b13ad115cf8cc086003c2c6";i:24;s:70:"phpDocumentor-projectDescriptor-files-d3b407fc3811ef470d3585d96693e51c";i:25;s:70:"phpDocumentor-projectDescriptor-files-a1f6779869c09e75ad1f94f294dd9ca2";i:26;s:70:"phpDocumentor-projectDescriptor-files-f59b8ac8a723058061167f1458eba522";i:27;s:70:"phpDocumentor-projectDescriptor-files-f3f46f468250a7a8e739390164fb97fe";i:28;s:70:"phpDocumentor-projectDescriptor-files-46061bb33edfde59b98188cceddc9b13";i:29;s:70:"phpDocumentor-projectDescriptor-files-517f664c9d4b66de958e7810bb791d32";i:30;s:70:"phpDocumentor-projectDescriptor-files-2e3323021f002ba34a9011727eff8f7b";i:31;s:70:"phpDocumentor-projectDescriptor-files-bb63657107496ce9060908640154e6fc";i:32;s:70:"phpDocumentor-projectDescriptor-files-b776832d0b3df88872bae4fe1e49dd65";i:33;s:70:"phpDocumentor-projectDescriptor-files-697a91ef3e75c0b0a5f0fe17b5004a5d";i:34;s:70:"phpDocumentor-projectDescriptor-files-4fb7bb7759cd104c674b9c264f688bc5";i:35;s:70:"phpDocumentor-projectDescriptor-files-17db8f965a78c479fa69beeda56ede1c";i:36;s:70:"phpDocumentor-projectDescriptor-files-3aa6c1954bc7440479ae9c89c6a6035c";i:37;s:70:"phpDocumentor-projectDescriptor-files-9e8b63b8c6df7e879ebac500607b3c00";i:38;s:70:"phpDocumentor-projectDescriptor-files-f6854c7cef3b34bb696e660ac106b5aa";i:39;s:70:"phpDocumentor-projectDescriptor-files-42d091db9bd6f5eff8687eb5f9cf707d";} \ No newline at end of file diff --git a/descriptors/U/6/iT8KA-K8K4HIkEsavo6g b/descriptors/U/6/iT8KA-K8K4HIkEsavo6g deleted file mode 100644 index 75e3cf552..000000000 Binary files a/descriptors/U/6/iT8KA-K8K4HIkEsavo6g and /dev/null differ diff --git a/descriptors/V/B/GuS6YKZ8HZqdagVtzcRg b/descriptors/V/B/GuS6YKZ8HZqdagVtzcRg deleted file mode 100644 index a6e00d8f5..000000000 Binary files a/descriptors/V/B/GuS6YKZ8HZqdagVtzcRg and /dev/null differ diff --git a/descriptors/V/L/OKmU7hO-Oao2jo+DZYGQ b/descriptors/V/L/OKmU7hO-Oao2jo+DZYGQ deleted file mode 100644 index db021f50b..000000000 Binary files a/descriptors/V/L/OKmU7hO-Oao2jo+DZYGQ and /dev/null differ diff --git a/descriptors/V/R/ZLRqZLUQd-m3IJdFrwBA b/descriptors/V/R/ZLRqZLUQd-m3IJdFrwBA deleted file mode 100644 index 505e0ace2..000000000 Binary files a/descriptors/V/R/ZLRqZLUQd-m3IJdFrwBA and /dev/null differ diff --git a/descriptors/W/N/L+QXygcwKJaB7dH45vPg b/descriptors/W/N/L+QXygcwKJaB7dH45vPg deleted file mode 100644 index 8ff803050..000000000 Binary files a/descriptors/W/N/L+QXygcwKJaB7dH45vPg and /dev/null differ diff --git a/descriptors/X/F/5yk6Q4asFeNyGb30gflg b/descriptors/X/F/5yk6Q4asFeNyGb30gflg deleted file mode 100644 index cebd38e11..000000000 Binary files a/descriptors/X/F/5yk6Q4asFeNyGb30gflg and /dev/null differ diff --git a/descriptors/X/M/AQTB6J48qvn76mGyNoKw b/descriptors/X/M/AQTB6J48qvn76mGyNoKw deleted file mode 100644 index c673d981c..000000000 Binary files a/descriptors/X/M/AQTB6J48qvn76mGyNoKw and /dev/null differ diff --git a/descriptors/X/N/yghCcdQgJSZ7s5qRqEjA b/descriptors/X/N/yghCcdQgJSZ7s5qRqEjA deleted file mode 100644 index e58555102..000000000 Binary files a/descriptors/X/N/yghCcdQgJSZ7s5qRqEjA and /dev/null differ diff --git a/descriptors/Z/I/Sh5a6AZjBROajRPjUj7g b/descriptors/Z/I/Sh5a6AZjBROajRPjUj7g deleted file mode 100644 index 860ebc237..000000000 Binary files a/descriptors/Z/I/Sh5a6AZjBROajRPjUj7g and /dev/null differ diff --git a/descriptors/Z/O/j-yFKwIIbe5cKnQL0WTg b/descriptors/Z/O/j-yFKwIIbe5cKnQL0WTg deleted file mode 100644 index d056a2ef2..000000000 Binary files a/descriptors/Z/O/j-yFKwIIbe5cKnQL0WTg and /dev/null differ diff --git a/examples/MyCustomOutput.php b/examples/MyCustomOutput.php new file mode 100644 index 000000000..40f4aae2b --- /dev/null +++ b/examples/MyCustomOutput.php @@ -0,0 +1,36 @@ + + * @copyright 2017 Smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\Output\QROutputAbstract; + +class MyCustomOutput extends QROutputAbstract{ + + protected function setModuleValues():void{ + // TODO: Implement setModuleValues() method. + } + + public function dump(string $file = null):string{ + + $output = ''; + + for($row = 0; $row < $this->moduleCount; $row++){ + for($col = 0; $col < $this->moduleCount; $col++){ + $output .= (int)$this->matrix->check($col, $row); + } + + $output .= \PHP_EOL; + } + + return $output; + } + +} diff --git a/examples/QRImageWithLogo.php b/examples/QRImageWithLogo.php new file mode 100644 index 000000000..ac2dacadd --- /dev/null +++ b/examples/QRImageWithLogo.php @@ -0,0 +1,79 @@ + + * @copyright 2020 smiley + * @license MIT + * + * @noinspection PhpComposerExtensionStubsInspection + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\Output\{QRCodeOutputException, QRImage}; + +use function imagecopyresampled, imagecreatefrompng, imagesx, imagesy, is_file, is_readable; + +/** + * @property \chillerlan\QRCodeExamples\LogoOptions $options + */ +class QRImageWithLogo extends QRImage{ + + /** + * @param string|null $file + * @param string|null $logo + * + * @return string + * @throws \chillerlan\QRCode\Output\QRCodeOutputException + */ + public function dump(string $file = null, string $logo = null):string{ + // set returnResource to true to skip further processing for now + $this->options->returnResource = true; + + // of course you could accept other formats too (such as resource or Imagick) + // i'm not checking for the file type either for simplicity reasons (assuming PNG) + if(!is_file($logo) || !is_readable($logo)){ + throw new QRCodeOutputException('invalid logo'); + } + + $this->matrix->setLogoSpace( + $this->options->logoSpaceWidth, + $this->options->logoSpaceHeight + // not utilizing the position here + ); + + // there's no need to save the result of dump() into $this->image here + parent::dump($file); + + $im = imagecreatefrompng($logo); + + // get logo image size + $w = imagesx($im); + $h = imagesy($im); + + // set new logo size, leave a border of 1 module (no proportional resize/centering) + $lw = ($this->options->logoSpaceWidth - 2) * $this->options->scale; + $lh = ($this->options->logoSpaceHeight - 2) * $this->options->scale; + + // get the qrcode size + $ql = $this->matrix->size() * $this->options->scale; + + // scale the logo and copy it over. done! + imagecopyresampled($this->image, $im, ($ql - $lw) / 2, ($ql - $lh) / 2, 0, 0, $lw, $lh, $w, $h); + + $imageData = $this->dumpImage(); + + if($file !== null){ + $this->saveToFile($imageData, $file); + } + + if($this->options->imageBase64){ + $imageData = $this->base64encode($imageData, 'image/'.$this->options->outputType); + } + + return $imageData; + } + +} diff --git a/examples/QRImageWithText.php b/examples/QRImageWithText.php new file mode 100644 index 000000000..b5971bdf1 --- /dev/null +++ b/examples/QRImageWithText.php @@ -0,0 +1,98 @@ + + * @copyright 2019 smiley + * @license MIT + * + * @noinspection PhpComposerExtensionStubsInspection + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\Output\QRImage; + +use function imagechar, imagecolorallocate, imagecolortransparent, imagecopymerge, imagecreatetruecolor, + imagedestroy, imagefilledrectangle, imagefontwidth, in_array, round, str_split, strlen; + +class QRImageWithText extends QRImage{ + + /** + * @param string|null $file + * @param string|null $text + * + * @return string + */ + public function dump(string $file = null, string $text = null):string{ + // set returnResource to true to skip further processing for now + $this->options->returnResource = true; + + // there's no need to save the result of dump() into $this->image here + parent::dump($file); + + // render text output if a string is given + if($text !== null){ + $this->addText($text); + } + + $imageData = $this->dumpImage(); + + if($file !== null){ + $this->saveToFile($imageData, $file); + } + + if($this->options->imageBase64){ + $imageData = $this->base64encode($imageData, 'image/'.$this->options->outputType); + } + + return $imageData; + } + + /** + * @param string $text + */ + protected function addText(string $text):void{ + // save the qrcode image + $qrcode = $this->image; + + // options things + $textSize = 3; // see imagefontheight() and imagefontwidth() + $textBG = [200, 200, 200]; + $textColor = [50, 50, 50]; + + $bgWidth = $this->length; + $bgHeight = $bgWidth + 20; // 20px extra space + + // create a new image with additional space + $this->image = imagecreatetruecolor($bgWidth, $bgHeight); + $background = imagecolorallocate($this->image, ...$textBG); + + // allow transparency + if($this->options->imageTransparent && in_array($this->options->outputType, $this::TRANSPARENCY_TYPES, true)){ + imagecolortransparent($this->image, $background); + } + + // fill the background + imagefilledrectangle($this->image, 0, 0, $bgWidth, $bgHeight, $background); + + // copy over the qrcode + imagecopymerge($this->image, $qrcode, 0, 0, 0, 0, $this->length, $this->length, 100); + imagedestroy($qrcode); + + $fontColor = imagecolorallocate($this->image, ...$textColor); + $w = imagefontwidth($textSize); + $x = round(($bgWidth - strlen($text) * $w) / 2); + + // loop through the string and draw the letters + foreach(str_split($text) as $i => $chr){ + imagechar($this->image, $textSize, (int)($i * $w + $x), $this->length, $chr, $fontColor); + } + } + +} diff --git a/examples/custom_output.php b/examples/custom_output.php new file mode 100644 index 000000000..175b5b86e --- /dev/null +++ b/examples/custom_output.php @@ -0,0 +1,40 @@ + + * @copyright 2017 Smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\{QRCode, QROptions}; +use chillerlan\QRCode\Common\EccLevel; + +require_once __DIR__.'/../vendor/autoload.php'; + +$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s'; + +// invoke the QROutputInterface manually +$options = new QROptions([ + 'version' => 5, + 'eccLevel' => EccLevel::L, +]); + +$qrcode = new QRCode($options); +$qrcode->addByteSegment($data); + +$qrOutputInterface = new MyCustomOutput($options, $qrcode->getMatrix()); + +var_dump($qrOutputInterface->dump()); + + +// or just +$options = new QROptions([ + 'version' => 5, + 'eccLevel' => EccLevel::L, + 'outputType' => QRCode::OUTPUT_CUSTOM, + 'outputInterface' => MyCustomOutput::class, +]); + +var_dump((new QRCode($options))->render($data)); diff --git a/examples/fpdf.php b/examples/fpdf.php new file mode 100644 index 000000000..a693df725 --- /dev/null +++ b/examples/fpdf.php @@ -0,0 +1,49 @@ + 7, + 'outputType' => QRCode::OUTPUT_FPDF, + 'eccLevel' => EccLevel::L, + 'scale' => 5, + 'imageBase64' => false, + 'moduleValues' => [ + // finder + QRMatrix::M_FINDER | QRMatrix::IS_DARK => [0, 63, 255], // dark (true) + QRMatrix::M_FINDER => [255, 255, 255], // light (false), white is the transparency color and is enabled by default + // alignment + QRMatrix::M_ALIGNMENT | QRMatrix::IS_DARK => [255, 0, 255], + QRMatrix::M_ALIGNMENT => [255, 255, 255], + // timing + QRMatrix::M_TIMING | QRMatrix::IS_DARK => [255, 0, 0], + QRMatrix::M_TIMING => [255, 255, 255], + // format + QRMatrix::M_FORMAT | QRMatrix::IS_DARK => [67, 191, 84], + QRMatrix::M_FORMAT => [255, 255, 255], + // version + QRMatrix::M_VERSION | QRMatrix::IS_DARK => [62, 174, 190], + QRMatrix::M_VERSION => [255, 255, 255], + // data + QRMatrix::M_DATA | QRMatrix::IS_DARK => [0, 0, 0], + QRMatrix::M_DATA => [255, 255, 255], + // darkmodule + QRMatrix::M_DARKMODULE | QRMatrix::IS_DARK => [0, 0, 0], + // separator + QRMatrix::M_SEPARATOR => [255, 255, 255], + // quietzone + QRMatrix::M_QUIETZONE => [255, 255, 255], + ], +]); + +\header('Content-type: application/pdf'); + +echo (new QRCode($options))->render($data); diff --git a/examples/html.php b/examples/html.php new file mode 100644 index 000000000..5ac189136 --- /dev/null +++ b/examples/html.php @@ -0,0 +1,90 @@ + + * @copyright 2017 Smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\{QRCode, QROptions}; +use chillerlan\QRCode\Data\QRMatrix; +use chillerlan\QRCode\Common\EccLevel; + +require_once '../vendor/autoload.php'; + +header('Content-Type: text/html; charset=utf-8'); + +?> + + + + + + QRCode test + + + + 5, + 'outputType' => QRCode::OUTPUT_MARKUP_HTML, + 'eccLevel' => EccLevel::L, + 'cssClass' => 'qrcode', + 'moduleValues' => [ + // finder + QRMatrix::M_FINDER | QRMatrix::IS_DARK => '#A71111', // dark (true) + QRMatrix::M_FINDER => '#FFBFBF', // light (false) + QRMatrix::M_FINDER_DOT | QRMatrix::IS_DARK => '#A71111', // finder dot, dark (true) + // alignment + QRMatrix::M_ALIGNMENT | QRMatrix::IS_DARK => '#A70364', + QRMatrix::M_ALIGNMENT => '#FFC9C9', + // timing + QRMatrix::M_TIMING | QRMatrix::IS_DARK => '#98005D', + QRMatrix::M_TIMING => '#FFB8E9', + // format + QRMatrix::M_FORMAT | QRMatrix::IS_DARK => '#003804', + QRMatrix::M_FORMAT => '#00FB12', + // version + QRMatrix::M_VERSION | QRMatrix::IS_DARK => '#650098', + QRMatrix::M_VERSION => '#E0B8FF', + // data + QRMatrix::M_DATA | QRMatrix::IS_DARK => '#4A6000', + QRMatrix::M_DATA => '#ECF9BE', + // darkmodule + QRMatrix::M_DARKMODULE | QRMatrix::IS_DARK => '#080063', + // separator + QRMatrix::M_SEPARATOR => '#AFBFBF', + // quietzone + QRMatrix::M_QUIETZONE => '#DDDDDD', + ], + ]); + + echo (new QRCode($options))->render($data); + +?> + + + + + diff --git a/examples/image.php b/examples/image.php new file mode 100644 index 000000000..bbb0c20a1 --- /dev/null +++ b/examples/image.php @@ -0,0 +1,63 @@ + + * @copyright 2017 Smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\{QRCode, QROptions}; +use chillerlan\QRCode\Data\QRMatrix; +use chillerlan\QRCode\Common\EccLevel; + +require_once __DIR__.'/../vendor/autoload.php'; + +$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s'; + +$options = new QROptions([ + 'version' => 5, + 'outputType' => QRCode::OUTPUT_IMAGE_PNG, + 'eccLevel' => EccLevel::L, + 'scale' => 5, + 'imageBase64' => false, + 'moduleValues' => [ + // finder + QRMatrix::M_FINDER | QRMatrix::IS_DARK => [0, 63, 255], // dark (true) + QRMatrix::M_FINDER => [255, 255, 255], // light (false), white is the transparency color and is enabled by default + QRMatrix::M_FINDER_DOT | QRMatrix::IS_DARK => [241, 28, 163], // finder dot, dark (true) + // alignment + QRMatrix::M_ALIGNMENT | QRMatrix::IS_DARK => [255, 0, 255], + QRMatrix::M_ALIGNMENT => [255, 255, 255], + // timing + QRMatrix::M_TIMING | QRMatrix::IS_DARK => [255, 0, 0], + QRMatrix::M_TIMING => [255, 255, 255], + // format + QRMatrix::M_FORMAT | QRMatrix::IS_DARK => [67, 99, 84], + QRMatrix::M_FORMAT => [255, 255, 255], + // version + QRMatrix::M_VERSION | QRMatrix::IS_DARK => [62, 174, 190], + QRMatrix::M_VERSION => [255, 255, 255], + // data + QRMatrix::M_DATA | QRMatrix::IS_DARK => [0, 0, 0], + QRMatrix::M_DATA => [255, 255, 255], + // darkmodule + QRMatrix::M_DARKMODULE | QRMatrix::IS_DARK => [0, 0, 0], + // separator + QRMatrix::M_SEPARATOR => [255, 255, 255], + // quietzone + QRMatrix::M_QUIETZONE => [255, 255, 255], + // logo (requires a call to QRMatrix::setLogoSpace()), see QRImageWithLogo + QRMatrix::M_LOGO => [255, 255, 255], + ], +]); + +header('Content-type: image/png'); + +echo (new QRCode($options))->render($data); + + + + + diff --git a/examples/imageWithLogo.php b/examples/imageWithLogo.php new file mode 100644 index 000000000..7aabdc021 --- /dev/null +++ b/examples/imageWithLogo.php @@ -0,0 +1,47 @@ + + * @copyright 2020 smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\{QRCode, QROptions}; +use chillerlan\QRCode\Common\EccLevel; + +require_once __DIR__.'/../vendor/autoload.php'; + +$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s'; +/** + * @property int $logoSpaceWidth + * @property int $logoSpaceHeight + * + * @noinspection PhpIllegalPsrClassPathInspection + */ +class LogoOptions extends QROptions{ + // size in QR modules, multiply with QROptions::$scale for pixel size + protected int $logoSpaceWidth; + protected int $logoSpaceHeight; +} + +$options = new LogoOptions; + +$options->version = 7; +$options->eccLevel = EccLevel::H; +$options->imageBase64 = false; +$options->logoSpaceWidth = 13; +$options->logoSpaceWidth = 13; +$options->scale = 5; +$options->imageTransparent = false; + +$qrcode = new QRCode($options); +$qrcode->addByteSegment($data); + +header('Content-type: image/png'); + +$qrOutputInterface = new QRImageWithLogo($options, $qrcode->getMatrix()); + +// dump the output, with an additional logo +echo $qrOutputInterface->dump(null, __DIR__.'/octocat.png'); diff --git a/examples/imageWithText.php b/examples/imageWithText.php new file mode 100644 index 000000000..0f040f79e --- /dev/null +++ b/examples/imageWithText.php @@ -0,0 +1,35 @@ + + * @copyright 2019 Smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\{QRCode, QROptions}; + +require_once __DIR__.'/../vendor/autoload.php'; + +$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s'; + +$options = new QROptions([ + 'version' => 7, + 'outputType' => QRCode::OUTPUT_IMAGE_PNG, + 'scale' => 3, + 'imageBase64' => false, +]); + +$qrcode = new QRCode($options); +$qrcode->addByteSegment($data); + +header('Content-type: image/png'); + +$qrOutputInterface = new QRImageWithText($options, $qrcode->getMatrix()); + +// dump the output, with additional text +echo $qrOutputInterface->dump(null, 'example text'); diff --git a/examples/imagick.php b/examples/imagick.php new file mode 100644 index 000000000..ea8af1d57 --- /dev/null +++ b/examples/imagick.php @@ -0,0 +1,60 @@ + + * @copyright 2017 Smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\{QRCode, QROptions}; +use chillerlan\QRCode\Data\QRMatrix; +use chillerlan\QRCode\Common\EccLevel; + +require_once __DIR__.'/../vendor/autoload.php'; + +$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s'; + +$options = new QROptions([ + 'version' => 7, + 'outputType' => QRCode::OUTPUT_IMAGICK, + 'eccLevel' => EccLevel::L, + 'scale' => 5, + 'moduleValues' => [ + // finder + QRMatrix::M_FINDER | QRMatrix::IS_DARK => '#A71111', // dark (true) + QRMatrix::M_FINDER => '#FFBFBF', // light (false) + QRMatrix::M_FINDER_DOT | QRMatrix::IS_DARK => '#A71111', // finder dot, dark (true) + // alignment + QRMatrix::M_ALIGNMENT | QRMatrix::IS_DARK => '#A70364', + QRMatrix::M_ALIGNMENT => '#FFC9C9', + // timing + QRMatrix::M_TIMING | QRMatrix::IS_DARK => '#98005D', + QRMatrix::M_TIMING => '#FFB8E9', + // format + QRMatrix::M_FORMAT | QRMatrix::IS_DARK => '#003804', + QRMatrix::M_FORMAT => '#00FB12', + // version + QRMatrix::M_VERSION | QRMatrix::IS_DARK => '#650098', + QRMatrix::M_VERSION => '#E0B8FF', + // data + QRMatrix::M_DATA | QRMatrix::IS_DARK => '#4A6000', + QRMatrix::M_DATA => '#ECF9BE', + // darkmodule + QRMatrix::M_DARKMODULE | QRMatrix::IS_DARK => '#080063', + // separator + QRMatrix::M_SEPARATOR => '#DDDDDD', + // quietzone + QRMatrix::M_QUIETZONE => '#DDDDDD', + ], +]); + +header('Content-type: image/png'); + +echo (new QRCode($options))->render($data); + + + + + diff --git a/examples/octocat.png b/examples/octocat.png new file mode 100644 index 000000000..f9050b935 Binary files /dev/null and b/examples/octocat.png differ diff --git a/examples/svg.php b/examples/svg.php new file mode 100644 index 000000000..63cb54552 --- /dev/null +++ b/examples/svg.php @@ -0,0 +1,79 @@ + + * @copyright 2017 Smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\{QRCode, QROptions}; +use chillerlan\QRCode\Data\QRMatrix; +use chillerlan\QRCode\Common\EccLevel; + +require_once __DIR__.'/../vendor/autoload.php'; + +$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s'; +$gzip = true; + +$options = new QROptions([ + 'version' => 7, + 'outputType' => QRCode::OUTPUT_MARKUP_SVG, + 'imageBase64' => false, + 'eccLevel' => EccLevel::L, + 'svgViewBoxSize' => 530, + 'addQuietzone' => true, + 'cssClass' => 'my-css-class', + 'svgOpacity' => 1.0, + 'svgDefs' => ' + + + + + + + + + ', + 'moduleValues' => [ + // finder + QRMatrix::M_FINDER | QRMatrix::IS_DARK => 'url(#g1)', // dark (true) + QRMatrix::M_FINDER => '#fff', // light (false) + QRMatrix::M_FINDER_DOT | QRMatrix::IS_DARK => 'url(#g2)', // finder dot, dark (true) + // alignment + QRMatrix::M_ALIGNMENT | QRMatrix::IS_DARK => 'url(#g1)', + QRMatrix::M_ALIGNMENT => '#fff', + // timing + QRMatrix::M_TIMING | QRMatrix::IS_DARK => 'url(#g1)', + QRMatrix::M_TIMING => '#fff', + // format + QRMatrix::M_FORMAT | QRMatrix::IS_DARK => 'url(#g1)', + QRMatrix::M_FORMAT => '#fff', + // version + QRMatrix::M_VERSION | QRMatrix::IS_DARK => 'url(#g1)', + QRMatrix::M_VERSION => '#fff', + // data + QRMatrix::M_DATA | QRMatrix::IS_DARK => 'url(#g2)', + QRMatrix::M_DATA => '#fff', + // darkmodule + QRMatrix::M_DARKMODULE | QRMatrix::IS_DARK => 'url(#g1)', + // separator + QRMatrix::M_SEPARATOR => '#fff', + // quietzone + QRMatrix::M_QUIETZONE => '#fff', + ], +]); + +$qrcode = (new QRCode($options))->render($data); + +header('Content-type: image/svg+xml'); + +if($gzip === true){ + header('Vary: Accept-Encoding'); + header('Content-Encoding: gzip'); + $qrcode = gzencode($qrcode, 9); +} +echo $qrcode; + + diff --git a/examples/text.php b/examples/text.php new file mode 100644 index 000000000..bc24ddf28 --- /dev/null +++ b/examples/text.php @@ -0,0 +1,69 @@ + + * @copyright 2017 Smiley + * @license MIT + */ + +namespace chillerlan\QRCodeExamples; + +use chillerlan\QRCode\{QRCode, QROptions}; +use chillerlan\QRCode\Data\QRMatrix; +use chillerlan\QRCode\Common\EccLevel; + +require_once __DIR__.'/../vendor/autoload.php'; + +$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s'; + +$options = new QROptions([ + 'version' => 5, + 'outputType' => QRCode::OUTPUT_STRING_TEXT, + 'eccLevel' => EccLevel::L, +]); + +//
                                                                                   to view it in a browser
                                                                                  +echo '
                                                                                  '.(new QRCode($options))->render($data).'
                                                                                  '; + + +// custom values +$options = new QROptions([ + 'version' => 5, + 'outputType' => QRCode::OUTPUT_STRING_TEXT, + 'eccLevel' => EccLevel::L, + 'moduleValues' => [ + // finder + QRMatrix::M_FINDER | QRMatrix::IS_DARK => 'A', // dark (true) + QRMatrix::M_FINDER => 'a', // light (false) + QRMatrix::M_FINDER_DOT | QRMatrix::IS_DARK => 'ä', // finder dot, dark (true) + // alignment + QRMatrix::M_ALIGNMENT | QRMatrix::IS_DARK => 'B', + QRMatrix::M_ALIGNMENT => 'b', + // timing + QRMatrix::M_TIMING | QRMatrix::IS_DARK => 'C', + QRMatrix::M_TIMING => 'c', + // format + QRMatrix::M_FORMAT | QRMatrix::IS_DARK => 'D', + QRMatrix::M_FORMAT => 'd', + // version + QRMatrix::M_VERSION | QRMatrix::IS_DARK => 'E', + QRMatrix::M_VERSION => 'e', + // data + QRMatrix::M_DATA | QRMatrix::IS_DARK => 'F', + QRMatrix::M_DATA => 'f', + // darkmodule + QRMatrix::M_DARKMODULE | QRMatrix::IS_DARK => 'G', + // separator + QRMatrix::M_SEPARATOR => 'h', + // quietzone + QRMatrix::M_QUIETZONE => 'i', + ], +]); + +//
                                                                                   to view it in a browser
                                                                                  +echo '
                                                                                  '.(new QRCode($options))->render($data).'
                                                                                  '; + + + + + diff --git a/files/+/F/1DqPUqnVuY6LZG9ijkUA b/files/+/F/1DqPUqnVuY6LZG9ijkUA deleted file mode 100644 index 4b54955d6..000000000 --- a/files/+/F/1DqPUqnVuY6LZG9ijkUA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A789032e7d1724604ae5104a7ce0e89db-0c6bdfc06325bc9cfb96b48a02164d0d -s:80944:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjA6IkNsYXNzIFFSRGF0YUFic3RyYWN0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE4OiJRUkRhdGFBYnN0cmFjdC5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIyNS4xMS4yMDE1IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiMGM2YmRmYzA2MzI1YmM5Y2ZiOTZiNDhhMDIxNjRkMGQiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxODoiUVJEYXRhQWJzdHJhY3QucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Mjc6InNyYy9EYXRhL1FSRGF0YUFic3RyYWN0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NzM4MzoiPD9waHAKLyoqCiAqIENsYXNzIFFSRGF0YUFic3RyYWN0CiAqCiAqIEBmaWxlc291cmNlICAgUVJEYXRhQWJzdHJhY3QucGhwCiAqIEBjcmVhdGVkICAgICAgMjUuMTEuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXERhdGEKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxEYXRhOwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTsKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNce0JpdEJ1ZmZlciwgUG9seW5vbWlhbH07CnVzZSBjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlOwoKdXNlIGZ1bmN0aW9uIGFycmF5X2ZpbGwsIGFycmF5X21lcmdlLCBjb3VudCwgbWF4LCBtYl9jb252ZXJ0X2VuY29kaW5nLCBtYl9kZXRlY3RfZW5jb2RpbmcsIHJhbmdlLCBzcHJpbnRmLCBzdHJsZW47CgovKioKICogUHJvY2Vzc2VzIHRoZSBiaW5hcnkgZGF0YSBhbmQgbWFwcyBpdCBvbiBhIG1hdHJpeCB3aGljaCBpcyB0aGVuIGJlaW5nIHJldHVybmVkCiAqLwphYnN0cmFjdCBjbGFzcyBRUkRhdGFBYnN0cmFjdCBpbXBsZW1lbnRzIFFSRGF0YUludGVyZmFjZXsKCgkvKioKCSAqIHRoZSBzdHJpbmcgYnl0ZSBjb3VudAoJICovCglwcm90ZWN0ZWQgP2ludCAkc3RybGVuID0gbnVsbDsKCgkvKioKCSAqIHRoZSBjdXJyZW50IGRhdGEgbW9kZTogTnVtLCBBbHBoYW51bSwgS2FuamksIEJ5dGUKCSAqLwoJcHJvdGVjdGVkIGludCAkZGF0YW1vZGU7CgoJLyoqCgkgKiBtb2RlIGxlbmd0aCBiaXRzIGZvciB0aGUgdmVyc2lvbiBicmVha3BvaW50cyAxLTksIDEwLTI2IGFuZCAyNy00MAoJICoKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBUYWJsZSAzIC0gTnVtYmVyIG9mIGJpdHMgaW4gQ2hhcmFjdGVyIENvdW50IEluZGljYXRvcgoJICovCglwcm90ZWN0ZWQgYXJyYXkgJGxlbmd0aEJpdHMgPSBbMCwgMCwgMF07CgoJLyoqCgkgKiBjdXJyZW50IFFSIENvZGUgdmVyc2lvbgoJICovCglwcm90ZWN0ZWQgaW50ICR2ZXJzaW9uOwoKCS8qKgoJICogRUNDIHRlbXAgZGF0YQoJICovCglwcm90ZWN0ZWQgYXJyYXkgJGVjZGF0YTsKCgkvKioKCSAqIEVDQyB0ZW1wIGRhdGEKCSAqLwoJcHJvdGVjdGVkIGFycmF5ICRkY2RhdGE7CgoJLyoqCgkgKiB0aGUgb3B0aW9ucyBpbnN0YW5jZQoJICoKCSAqIEB2YXIgXGNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2V8XGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucwoJICovCglwcm90ZWN0ZWQgU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UgJG9wdGlvbnM7CgoJLyoqCgkgKiBhIEJpdEJ1ZmZlciBpbnN0YW5jZQoJICovCglwcm90ZWN0ZWQgQml0QnVmZmVyICRiaXRCdWZmZXI7CgoJLyoqCgkgKiBRUkRhdGFJbnRlcmZhY2UgY29uc3RydWN0b3IuCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSAkb3B0aW9ucywgc3RyaW5nICRkYXRhID0gbnVsbCl7CgkJJHRoaXMtPm9wdGlvbnMgPSAkb3B0aW9uczsKCgkJaWYoJGRhdGEgIT09IG51bGwpewoJCQkkdGhpcy0+c2V0RGF0YSgkZGF0YSk7CgkJfQoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHNldERhdGEoc3RyaW5nICRkYXRhKTpRUkRhdGFJbnRlcmZhY2V7CgoJCWlmKCR0aGlzLT5kYXRhbW9kZSA9PT0gUVJDb2RlOjpEQVRBX0tBTkpJKXsKCQkJJGRhdGEgPSBtYl9jb252ZXJ0X2VuY29kaW5nKCRkYXRhLCAnU0pJUycsIG1iX2RldGVjdF9lbmNvZGluZygkZGF0YSkpOwoJCX0KCgkJJHRoaXMtPnN0cmxlbiAgPSAkdGhpcy0+Z2V0TGVuZ3RoKCRkYXRhKTsKCQkkdGhpcy0+dmVyc2lvbiA9ICR0aGlzLT5vcHRpb25zLT52ZXJzaW9uID09PSBRUkNvZGU6OlZFUlNJT05fQVVUTwoJCQk/ICR0aGlzLT5nZXRNaW5pbXVtVmVyc2lvbigpCgkJCTogJHRoaXMtPm9wdGlvbnMtPnZlcnNpb247CgoJCSR0aGlzLT53cml0ZUJpdEJ1ZmZlcigkZGF0YSk7CgoJCXJldHVybiAkdGhpczsKCX0KCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBpbml0TWF0cml4KGludCAkbWFza1BhdHRlcm4sIGJvb2wgJHRlc3QgPSBudWxsKTpRUk1hdHJpeHsKCQlyZXR1cm4gKG5ldyBRUk1hdHJpeCgkdGhpcy0+dmVyc2lvbiwgJHRoaXMtPm9wdGlvbnMtPmVjY0xldmVsKSkKCQkJLT5pbml0KCRtYXNrUGF0dGVybiwgJHRlc3QpCgkJCS0+bWFwRGF0YSgkdGhpcy0+bWFza0VDQygpLCAkbWFza1BhdHRlcm4pCgkJOwoJfQoKCS8qKgoJICogcmV0dXJucyB0aGUgbGVuZ3RoIGJpdHMgZm9yIHRoZSB2ZXJzaW9uIGJyZWFrcG9pbnRzIDEtOSwgMTAtMjYgYW5kIDI3LTQwCgkgKgoJICogQHRocm93cyBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uCgkgKiBAY29kZUNvdmVyYWdlSWdub3JlCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRMZW5ndGhCaXRzKCk6aW50ewoKCQkgZm9yZWFjaChbOSwgMjYsIDQwXSBhcyAka2V5ID0+ICRicmVha3BvaW50KXsKCQkJIGlmKCR0aGlzLT52ZXJzaW9uIDw9ICRicmVha3BvaW50KXsKCQkJCSByZXR1cm4gJHRoaXMtPmxlbmd0aEJpdHNbJGtleV07CgkJCSB9CgkJIH0KCgkJdGhyb3cgbmV3IFFSQ29kZURhdGFFeGNlcHRpb24oc3ByaW50ZignaW52YWxpZCB2ZXJzaW9uIG51bWJlcjogJWQnLCAkdGhpcy0+dmVyc2lvbikpOwoJfQoKCS8qKgoJICogcmV0dXJucyB0aGUgYnl0ZSBjb3VudCBvZiB0aGUgJGRhdGEgc3RyaW5nCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRMZW5ndGgoc3RyaW5nICRkYXRhKTppbnR7CgkJcmV0dXJuIHN0cmxlbigkZGF0YSk7Cgl9CgoJLyoqCgkgKiByZXR1cm5zIHRoZSBtaW5pbXVtIHZlcnNpb24gbnVtYmVyIGZvciB0aGUgZ2l2ZW4gc3RyaW5nCgkgKgoJICogQHRocm93cyBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRNaW5pbXVtVmVyc2lvbigpOmludHsKCQkkbWF4bGVuZ3RoID0gMDsKCgkJLy8gZ3Vlc3MgdGhlIHZlcnNpb24gbnVtYmVyIHdpdGhpbiB0aGUgZ2l2ZW4gcmFuZ2UKCQkkZGF0YU1vZGUgPSBRUkNvZGU6OkRBVEFfTU9ERVNbJHRoaXMtPmRhdGFtb2RlXTsKCQkkZWNjTW9kZSAgPSBRUkNvZGU6OkVDQ19NT0RFU1skdGhpcy0+b3B0aW9ucy0+ZWNjTGV2ZWxdOwoKCQlmb3JlYWNoKHJhbmdlKCR0aGlzLT5vcHRpb25zLT52ZXJzaW9uTWluLCAkdGhpcy0+b3B0aW9ucy0+dmVyc2lvbk1heCkgYXMgJHZlcnNpb24pewoJCQkkbWF4bGVuZ3RoID0gJHRoaXM6Ok1BWF9MRU5HVEhbJHZlcnNpb25dWyRkYXRhTW9kZV1bJGVjY01vZGVdOwoKCQkJaWYoJHRoaXMtPnN0cmxlbiA8PSAkbWF4bGVuZ3RoKXsKCQkJCXJldHVybiAkdmVyc2lvbjsKCQkJfQoJCX0KCgkJdGhyb3cgbmV3IFFSQ29kZURhdGFFeGNlcHRpb24oc3ByaW50ZignZGF0YSBleGNlZWRzICVkIGNoYXJhY3RlcnMnLCAkbWF4bGVuZ3RoKSk7Cgl9CgoJLyoqCgkgKiB3cml0ZXMgdGhlIGFjdHVhbCBkYXRhIHN0cmluZyB0byB0aGUgQml0QnVmZmVyCgkgKgoJICogQHNlZSBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6d3JpdGVCaXRCdWZmZXIoKQoJICovCglhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gd3JpdGUoc3RyaW5nICRkYXRhKTp2b2lkOwoKCS8qKgoJICogY3JlYXRlcyBhIEJpdEJ1ZmZlciBhbmQgd3JpdGVzIHRoZSBzdHJpbmcgZGF0YSB0byBpdAoJICoKCSAqIEB0aHJvd3MgXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbiBvbiBkYXRhIG92ZXJmbG93CgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiB3cml0ZUJpdEJ1ZmZlcihzdHJpbmcgJGRhdGEpOnZvaWR7CgkJJHRoaXMtPmJpdEJ1ZmZlciA9IG5ldyBCaXRCdWZmZXI7CgoJCSRNQVhfQklUUyA9ICR0aGlzOjpNQVhfQklUU1skdGhpcy0+dmVyc2lvbl1bUVJDb2RlOjpFQ0NfTU9ERVNbJHRoaXMtPm9wdGlvbnMtPmVjY0xldmVsXV07CgoJCSR0aGlzLT5iaXRCdWZmZXIKCQkJLT5wdXQoJHRoaXMtPmRhdGFtb2RlLCA0KQoJCQktPnB1dCgkdGhpcy0+c3RybGVuLCAkdGhpcy0+Z2V0TGVuZ3RoQml0cygpKQoJCTsKCgkJJHRoaXMtPndyaXRlKCRkYXRhKTsKCgkJLy8gb3ZlcmZsb3csIGxpa2VseSBjYXVzZWQgZHVlIHRvIGludmFsaWQgdmVyc2lvbiBzZXR0aW5nCgkJaWYoJHRoaXMtPmJpdEJ1ZmZlci0+Z2V0TGVuZ3RoKCkgPiAkTUFYX0JJVFMpewoJCQl0aHJvdyBuZXcgUVJDb2RlRGF0YUV4Y2VwdGlvbihzcHJpbnRmKCdjb2RlIGxlbmd0aCBvdmVyZmxvdy4gKCVkID4gJWQgYml0KScsICR0aGlzLT5iaXRCdWZmZXItPmdldExlbmd0aCgpLCAkTUFYX0JJVFMpKTsKCQl9CgoJCS8vIGFkZCB0ZXJtaW5hdG9yIChJU08vSUVDIDE4MDA0OjIwMDAgVGFibGUgMikKCQlpZigkdGhpcy0+Yml0QnVmZmVyLT5nZXRMZW5ndGgoKSArIDQgPD0gJE1BWF9CSVRTKXsKCQkJJHRoaXMtPmJpdEJ1ZmZlci0+cHV0KDAsIDQpOwoJCX0KCgkJLy8gcGFkZGluZwoJCXdoaWxlKCR0aGlzLT5iaXRCdWZmZXItPmdldExlbmd0aCgpICUgOCAhPT0gMCl7CgkJCSR0aGlzLT5iaXRCdWZmZXItPnB1dEJpdChmYWxzZSk7CgkJfQoKCQkvLyBwYWRkaW5nCgkJd2hpbGUodHJ1ZSl7CgoJCQlpZigkdGhpcy0+Yml0QnVmZmVyLT5nZXRMZW5ndGgoKSA+PSAkTUFYX0JJVFMpewoJCQkJYnJlYWs7CgkJCX0KCgkJCSR0aGlzLT5iaXRCdWZmZXItPnB1dCgweEVDLCA4KTsKCgkJCWlmKCR0aGlzLT5iaXRCdWZmZXItPmdldExlbmd0aCgpID49ICRNQVhfQklUUyl7CgkJCQlicmVhazsKCQkJfQoKCQkJJHRoaXMtPmJpdEJ1ZmZlci0+cHV0KDB4MTEsIDgpOwoJCX0KCgl9CgoJLyoqCgkgKiBFQ0MgbWFza2luZwoJICoKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguNSBmZgoJICoKCSAqIEBzZWUgaHR0cDovL3d3dy50aG9ua3kuY29tL3FyLWNvZGUtdHV0b3JpYWwvZXJyb3ItY29ycmVjdGlvbi1jb2RpbmcKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIG1hc2tFQ0MoKTphcnJheXsKCQlbJGwxLCAkbDIsICRiMSwgJGIyXSA9ICR0aGlzOjpSU0JMT0NLU1skdGhpcy0+dmVyc2lvbl1bUVJDb2RlOjpFQ0NfTU9ERVNbJHRoaXMtPm9wdGlvbnMtPmVjY0xldmVsXV07CgoJCSRyc0Jsb2NrcyAgICAgPSBhcnJheV9maWxsKDAsICRsMSwgWyRiMSwgJGIyXSk7CgkJJHJzQ291bnQgICAgICA9ICRsMSArICRsMjsKCQkkdGhpcy0+ZWNkYXRhID0gYXJyYXlfZmlsbCgwLCAkcnNDb3VudCwgW10pOwoJCSR0aGlzLT5kY2RhdGEgPSAkdGhpcy0+ZWNkYXRhOwoKCQlpZigkbDIgPiAwKXsKCQkJJHJzQmxvY2tzID0gYXJyYXlfbWVyZ2UoJHJzQmxvY2tzLCBhcnJheV9maWxsKDAsICRsMiwgWyRiMSArIDEsICRiMiArIDFdKSk7CgkJfQoKCQkkdG90YWxDb2RlQ291bnQgPSAwOwoJCSRtYXhEY0NvdW50ICAgICA9IDA7CgkJJG1heEVjQ291bnQgICAgID0gMDsKCQkkb2Zmc2V0ICAgICAgICAgPSAwOwoKCQkkYml0QnVmZmVyID0gJHRoaXMtPmJpdEJ1ZmZlci0+Z2V0QnVmZmVyKCk7CgoJCWZvcmVhY2goJHJzQmxvY2tzIGFzICRrZXkgPT4gJGJsb2NrKXsKCQkJWyRyc0Jsb2NrVG90YWwsICRkY0NvdW50XSA9ICRibG9jazsKCgkJCSRlY0NvdW50ICAgICAgICAgICAgPSAkcnNCbG9ja1RvdGFsIC0gJGRjQ291bnQ7CgkJCSRtYXhEY0NvdW50ICAgICAgICAgPSBtYXgoJG1heERjQ291bnQsICRkY0NvdW50KTsKCQkJJG1heEVjQ291bnQgICAgICAgICA9IG1heCgkbWF4RWNDb3VudCwgJGVjQ291bnQpOwoJCQkkdGhpcy0+ZGNkYXRhWyRrZXldID0gYXJyYXlfZmlsbCgwLCAkZGNDb3VudCwgbnVsbCk7CgoJCQlmb3JlYWNoKCR0aGlzLT5kY2RhdGFbJGtleV0gYXMgJGEgPT4gJF96KXsKCQkJCSR0aGlzLT5kY2RhdGFbJGtleV1bJGFdID0gMHhmZiAmICRiaXRCdWZmZXJbJGEgKyAkb2Zmc2V0XTsKCQkJfQoKCQkJWyRudW0sICRhZGRdID0gJHRoaXMtPnBvbHkoJGtleSwgJGVjQ291bnQpOwoKCQkJZm9yZWFjaCgkdGhpcy0+ZWNkYXRhWyRrZXldIGFzICRjID0+ICRfKXsKCQkJCSRtb2RJbmRleCAgICAgICAgICAgICAgID0gJGMgKyAkYWRkOwoJCQkJJHRoaXMtPmVjZGF0YVska2V5XVskY10gPSAkbW9kSW5kZXggPj0gMCA/ICRudW1bJG1vZEluZGV4XSA6IDA7CgkJCX0KCgkJCSRvZmZzZXQgICAgICAgICArPSAkZGNDb3VudDsKCQkJJHRvdGFsQ29kZUNvdW50ICs9ICRyc0Jsb2NrVG90YWw7CgkJfQoKCQkkZGF0YSAgPSBhcnJheV9maWxsKDAsICR0b3RhbENvZGVDb3VudCwgbnVsbCk7CgkJJGluZGV4ID0gMDsKCgkJJG1hc2sgPSBmdW5jdGlvbihhcnJheSAkYXJyLCBpbnQgJGNvdW50KSB1c2UgKCYkZGF0YSwgJiRpbmRleCwgJHJzQ291bnQpOnZvaWR7CgkJCWZvcigkeCA9IDA7ICR4IDwgJGNvdW50OyAkeCsrKXsKCQkJCWZvcigkeSA9IDA7ICR5IDwgJHJzQ291bnQ7ICR5KyspewoJCQkJCWlmKCR4IDwgY291bnQoJGFyclskeV0pKXsKCQkJCQkJJGRhdGFbJGluZGV4XSA9ICRhcnJbJHldWyR4XTsKCQkJCQkJJGluZGV4Kys7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfTsKCgkJJG1hc2soJHRoaXMtPmRjZGF0YSwgJG1heERjQ291bnQpOwoJCSRtYXNrKCR0aGlzLT5lY2RhdGEsICRtYXhFY0NvdW50KTsKCgkJcmV0dXJuICRkYXRhOwoJfQoKCS8qKgoJICogaGVscGVyIG1ldGhvZCBmb3IgdGhlIHBvbHlub21pYWwgb3BlcmF0aW9ucwoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gcG9seShpbnQgJGtleSwgaW50ICRjb3VudCk6YXJyYXl7CgkJJHJzUG9seSAgPSBuZXcgUG9seW5vbWlhbDsKCQkkbW9kUG9seSA9IG5ldyBQb2x5bm9taWFsOwoKCQlmb3IoJGkgPSAwOyAkaSA8ICRjb3VudDsgJGkrKyl7CgkJCSRtb2RQb2x5LT5zZXROdW0oWzEsICRtb2RQb2x5LT5nZXhwKCRpKV0pOwoJCQkkcnNQb2x5LT5tdWx0aXBseSgkbW9kUG9seS0+Z2V0TnVtKCkpOwoJCX0KCgkJJHJzUG9seUNvdW50ID0gY291bnQoJHJzUG9seS0+Z2V0TnVtKCkpOwoKCQkkbW9kUG9seQoJCQktPnNldE51bSgkdGhpcy0+ZGNkYXRhWyRrZXldLCAkcnNQb2x5Q291bnQgLSAxKQoJCQktPm1vZCgkcnNQb2x5LT5nZXROdW0oKSkKCQk7CgoJCSR0aGlzLT5lY2RhdGFbJGtleV0gPSBhcnJheV9maWxsKDAsICRyc1BvbHlDb3VudCAtIDEsIG51bGwpOwoJCSRudW0gICAgICAgICAgICAgICAgPSAkbW9kUG9seS0+Z2V0TnVtKCk7CgoJCXJldHVybiBbCgkJCSRudW0sCgkJCWNvdW50KCRudW0pIC0gY291bnQoJHRoaXMtPmVjZGF0YVska2V5XSksCgkJXTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyMzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJEYXRhIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6Mzg6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJRUkRhdGFBYnN0cmFjdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Nzg6IlByb2Nlc3NlcyB0aGUgYmluYXJ5IGRhdGEgYW5kIG1hcHMgaXQgb24gYSBtYXRyaXggd2hpY2ggaXMgdGhlbiBiZWluZyByZXR1cm5lZCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyMjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6NDp7czo2OiJRUkNvZGUiO3M6MjQ6ImNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZSI7czo5OiJCaXRCdWZmZXIiO3M6MzU6ImNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcQml0QnVmZmVyIjtzOjEwOiJQb2x5bm9taWFsIjtzOjM2OiJjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWwiO3M6MjY6IlNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjtzOjQ2OiJjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjoxO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MTp7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6ODp7czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OiRzdHJsZW4iO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0Ojokc3RybGVuIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Njoic3RybGVuIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIxOiJ0aGUgc3RyaW5nIGJ5dGUgY291bnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0OiJudWxsIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX19czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OiRkYXRhbW9kZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OiRkYXRhbW9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6ImRhdGFtb2RlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQ5OiJ0aGUgY3VycmVudCBkYXRhIG1vZGU6IE51bSwgQWxwaGFudW0sIEthbmppLCBCeXRlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjokbGVuZ3RoQml0cyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OiRsZW5ndGhCaXRzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Imxlbmd0aEJpdHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NjU6Im1vZGUgbGVuZ3RoIGJpdHMgZm9yIHRoZSB2ZXJzaW9uIGJyZWFrcG9pbnRzIDEtOSwgMTAtMjYgYW5kIDI3LTQwIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjcyOiJJU08vSUVDIDE4MDA0OjIwMDAgVGFibGUgMyAtIE51bWJlciBvZiBiaXRzIGluIENoYXJhY3RlciBDb3VudCBJbmRpY2F0b3IiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjk6IlswLCAwLCAwXSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1zOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6JHZlcnNpb24iO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjokdmVyc2lvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InZlcnNpb24iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjM6ImN1cnJlbnQgUVIgQ29kZSB2ZXJzaW9uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjokZWNkYXRhIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6JGVjZGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6ImVjZGF0YSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMzoiRUNDIHRlbXAgZGF0YSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OiRkY2RhdGEiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjokZGNkYXRhIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiZGNkYXRhIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEzOiJFQ0MgdGVtcCBkYXRhIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1zOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6JG9wdGlvbnMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0Ojokb3B0aW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6Im9wdGlvbnMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjA6InRoZSBvcHRpb25zIGluc3RhbmNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxTZXR0aW5nc1xTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI2OiJTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSI7fX1pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiUVJPcHRpb25zIjt9fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjY6IlNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjt9fX1zOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6JGJpdEJ1ZmZlciI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OiRiaXRCdWZmZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJiaXRCdWZmZXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjA6ImEgQml0QnVmZmVyIGluc3RhbmNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNjoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcQml0QnVmZmVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiQml0QnVmZmVyIjt9fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MTA6e3M6NTM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjpfX2NvbnN0cnVjdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyODoiUVJEYXRhSW50ZXJmYWNlIGNvbnN0cnVjdG9yLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6X19jb25zdHJ1Y3QoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJfX2NvbnN0cnVjdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJvcHRpb25zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjY6IlNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OnNldERhdGEoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjgxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6c2V0RGF0YSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Nzoic2V0RGF0YSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJkYXRhIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO319fXM6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0Ojppbml0TWF0cml4KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0Ojppbml0TWF0cml4KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiaW5pdE1hdHJpeCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMToibWFza1BhdHRlcm4iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoidGVzdCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fX19czo1NToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OmdldExlbmd0aEJpdHMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NzI6InJldHVybnMgdGhlIGxlbmd0aCBiaXRzIGZvciB0aGUgdmVyc2lvbiBicmVha3BvaW50cyAxLTksIDEwLTI2IGFuZCAyNy00MCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJRUkNvZGVEYXRhRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTg6ImNvZGVDb3ZlcmFnZUlnbm9yZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTEwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU1OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6Z2V0TGVuZ3RoQml0cygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6ImdldExlbmd0aEJpdHMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6Z2V0TGVuZ3RoKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQyOiJyZXR1cm5zIHRoZSBieXRlIGNvdW50IG9mIHRoZSAkZGF0YSBzdHJpbmciO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjpnZXRMZW5ndGgoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6ImdldExlbmd0aCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJkYXRhIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OmdldE1pbmltdW1WZXJzaW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU1OiJyZXR1cm5zIHRoZSBtaW5pbXVtIHZlcnNpb24gbnVtYmVyIGZvciB0aGUgZ2l2ZW4gc3RyaW5nIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6IlFSQ29kZURhdGFFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjpnZXRNaW5pbXVtVmVyc2lvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6ImdldE1pbmltdW1WZXJzaW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OndyaXRlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQ2OiJ3cml0ZXMgdGhlIGFjdHVhbCBkYXRhIHN0cmluZyB0byB0aGUgQml0QnVmZmVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OndyaXRlQml0QnVmZmVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoid3JpdGVCaXRCdWZmZXIiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6d3JpdGUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IndyaXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjE7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo1NjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6OndyaXRlQml0QnVmZmVyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjUyOiJjcmVhdGVzIGEgQml0QnVmZmVyIGFuZCB3cml0ZXMgdGhlIHN0cmluZyBkYXRhIHRvIGl0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlFSQ29kZUV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNjoib24gZGF0YSBvdmVyZmxvdyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTY0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU2OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6d3JpdGVCaXRCdWZmZXIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJ3cml0ZUJpdEJ1ZmZlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJkYXRhIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE2OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjptYXNrRUNDKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjExOiJFQ0MgbWFza2luZyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMzoiSVNPL0lFQyAxODAwNDoyMDAwIFNlY3Rpb24gOC41IGZmIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwiOjE6e3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsAHVyaSI7czo2MjoiaHR0cDovL3d3dy50aG9ua3kuY29tL3FyLWNvZGUtdHV0b3JpYWwvZXJyb3ItY29ycmVjdGlvbi1jb2RpbmciO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0OjptYXNrRUNDKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJtYXNrRUNDIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIyMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0Ojpwb2x5KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQzOiJoZWxwZXIgbWV0aG9kIGZvciB0aGUgcG9seW5vbWlhbCBvcGVyYXRpb25zIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjgzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdDo6cG9seSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoicG9seSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJrZXkiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NToiY291bnQiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjg2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/+/W/gTGCTZSFt0eFPkK5R3dA b/files/+/W/gTGCTZSFt0eFPkK5R3dA deleted file mode 100644 index d3a5bb79f..000000000 --- a/files/+/W/gTGCTZSFt0eFPkK5R3dA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Af6854c7cef3b34bb696e660ac106b5aa-44100e6ee21715727ebeabc60113e93a -s:48524:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTY6IkNsYXNzIFFSQ29kZVRlc3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTQ6IlFSQ29kZVRlc3QucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMTcuMTEuMjAxNyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjE6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNDQxMDBlNmVlMjE3MTU3MjdlYmVhYmM2MDExM2U5M2EiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxNDoiUVJDb2RlVGVzdC5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czoyMDoidGVzdHMvUVJDb2RlVGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjQ2MDc6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUkNvZGVUZXN0CiAqCiAqIEBmaWxlc291cmNlICAgUVJDb2RlVGVzdC5waHAKICogQGNyZWF0ZWQgICAgICAxNy4xMS4yMDE3CiAqIEBwYWNrYWdlICAgICAgY2hpbGxlcmxhblxRUkNvZGVUZXN0CiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0OwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXHtRUk9wdGlvbnMsIFFSQ29kZX07CnVzZSBjaGlsbGVybGFuXFFSQ29kZVxEYXRhXHtBbHBoYU51bSwgQnl0ZSwgS2FuamksIE51bWJlciwgUVJDb2RlRGF0YUV4Y2VwdGlvbn07CnVzZSBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJDb2RlT3V0cHV0RXhjZXB0aW9uOwp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7Cgp1c2UgZnVuY3Rpb24gcmFuZG9tX2J5dGVzOwoKLyoqCiAqIFRlc3RzIGJhc2ljIGZ1bmN0aW9ucyBvZiB0aGUgUVJDb2RlIGNsYXNzCiAqLwpjbGFzcyBRUkNvZGVUZXN0IGV4dGVuZHMgVGVzdENhc2V7CgoJLyoqIEBpbnRlcm5hbCAgKi8KCXByb3RlY3RlZCBRUkNvZGUgJHFyY29kZTsKCS8qKiBAaW50ZXJuYWwgICovCglwcm90ZWN0ZWQgUVJPcHRpb25zICRvcHRpb25zOwoKCS8qKgoJICogaW52b2tlIHRlc3QgaW5zdGFuY2VzCgkgKgoJICogQGludGVybmFsCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRVcCgpOnZvaWR7CgkJJHRoaXMtPnFyY29kZSAgPSBuZXcgUVJDb2RlOwoJCSR0aGlzLT5vcHRpb25zID0gbmV3IFFST3B0aW9uczsKCX0KCgkvKioKCSAqIGlzTnVtYmVyKCkgc2hvdWxkIHBhc3Mgb24gYW55IG51bWJlciBhbmQgZmFpbCBvbiBhbnl0aGluZyBlbHNlCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0SXNOdW1iZXIoKTp2b2lkewoJCSR0aGlzOjphc3NlcnRUcnVlKCR0aGlzLT5xcmNvZGUtPmlzTnVtYmVyKCcwMTIzNDU2Nzg5JykpOwoKCQkkdGhpczo6YXNzZXJ0RmFsc2UoJHRoaXMtPnFyY29kZS0+aXNOdW1iZXIoJ0FCQzEyMycpKTsKCX0KCgkvKioKCSAqIGlzQWxwaGFOdW0oKSBzaG91bGQgcGFzcyBvbiB0aGUgNDUgZGVmaW5lZCBjaGFyYWN0ZXJzIGFuZCBmYWlsIG9uIGFueXRoaW5nIGVsc2UgKGUuZy4gbG93ZXJjYXNlKQoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdElzQWxwaGFOdW0oKTp2b2lkewoJCSR0aGlzOjphc3NlcnRUcnVlKCR0aGlzLT5xcmNvZGUtPmlzQWxwaGFOdW0oJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMTIzNDU2Nzg5MCAkJSorLS4vOicpKTsKCgkJJHRoaXM6OmFzc2VydEZhbHNlKCR0aGlzLT5xcmNvZGUtPmlzQWxwaGFOdW0oJ2FiYycpKTsKCX0KCgkvKioKCSAqIGlzS2FuamkoKSBzaG91bGQgcGFzcyBvbiBLYW5qaS9TSklTIGNoYXJhY3RlcnMgYW5kIGZhaWwgb24gZXZlcnl0aGluZyBlbHNlCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0SXNLYW5qaSgpOnZvaWR7CgkJJHRoaXM6OmFzc2VydFRydWUoJHRoaXMtPnFyY29kZS0+aXNLYW5qaSgn6IyX6I23JykpOwoKCQkkdGhpczo6YXNzZXJ0RmFsc2UoJHRoaXMtPnFyY29kZS0+aXNLYW5qaSgnw4MnKSk7CgkJJHRoaXM6OmFzc2VydEZhbHNlKCR0aGlzLT5xcmNvZGUtPmlzS2FuamkoJ0FCQycpKTsKCQkkdGhpczo6YXNzZXJ0RmFsc2UoJHRoaXMtPnFyY29kZS0+aXNLYW5qaSgnMTIzJykpOwoJfQoKCS8qKgoJICogaXNCeXRlKCkgcGFzc3NlcyBhbnkgYmluYXJ5IHN0cmluZyBhbmQgb25seSBmYWlscyBvbiBlbXB0eSBzdHJpbmdzCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0SXNCeXRlKCk6dm9pZHsKCQkkdGhpczo6YXNzZXJ0VHJ1ZSgkdGhpcy0+cXJjb2RlLT5pc0J5dGUoIlx4MDFceDAyXHgwMyIpKTsKCQkkdGhpczo6YXNzZXJ0VHJ1ZSgkdGhpcy0+cXJjb2RlLT5pc0J5dGUoJyAgICAgICAgICAgICcpKTsgLy8gbm90IGVtcHR5IQoKCQkkdGhpczo6YXNzZXJ0RmFsc2UoJHRoaXMtPnFyY29kZS0+aXNCeXRlKCcnKSk7Cgl9CgoJLyoqCgkgKiB0ZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gYW4gaW52YWxpZCAoYnVpbHQtaW4pIG91dHB1dCB0eXBlIGlzIHNwZWNpZmllZAoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdEluaXREYXRhSW50ZXJmYWNlRXhjZXB0aW9uKCk6dm9pZHsKCQkkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uKFFSQ29kZU91dHB1dEV4Y2VwdGlvbjo6Y2xhc3MpOwoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb25NZXNzYWdlKCdpbnZhbGlkIG91dHB1dCB0eXBlJyk7CgoJCSR0aGlzLT5vcHRpb25zLT5vdXRwdXRUeXBlID0gJ2Zvbyc7CgoJCShuZXcgUVJDb2RlKCR0aGlzLT5vcHRpb25zKSktPnJlbmRlcigndGVzdCcpOwoJfQoKCS8qKgoJICogdGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRyeWluZyB0byBjYWxsIGdldE1hdHJpeCgpIHdpdGhvdXQgZGF0YSAoZW1wdHkgc3RyaW5nLCBubyBkYXRhIHNldCkKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRNYXRyaXhFeGNlcHRpb24oKTp2b2lkewoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb24oUVJDb2RlRGF0YUV4Y2VwdGlvbjo6Y2xhc3MpOwoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb25NZXNzYWdlKCdRUkNvZGU6OmdldE1hdHJpeCgpIE5vIGRhdGEgZ2l2ZW4uJyk7CgoJCSR0aGlzLT5xcmNvZGUtPmdldE1hdHJpeCgnJyk7Cgl9CgoJLyoqCgkgKiB0ZXN0IHdoZXRoZXIgc3RpbmdzIGFyZSB0cmltbWVkICh0aGV5IGFyZSBub3QpIC0gaSdtIHN0aWxsIHRvcm4gb24gdGhhdCAoc2VlIGlzQnl0ZSkKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RBdm9pZFRyaW1taW5nKCk6dm9pZHsKCQkkbTEgPSAkdGhpcy0+cXJjb2RlLT5nZXRNYXRyaXgoJ2hlbGxvJyktPm1hdHJpeCgpOwoJCSRtMiA9ICR0aGlzLT5xcmNvZGUtPmdldE1hdHJpeCgnaGVsbG8gJyktPm1hdHJpeCgpOyAvLyBhZGRlZCBzcGFjZQoKCQkkdGhpczo6YXNzZXJ0Tm90U2FtZSgkbTEsICRtMik7Cgl9CgoJLyoqCgkgKiB0ZXN0cyBpZiB0aGUgZGF0YSBtb2RlIGlzIG92ZXJyaWRlbiBpZiBRUk9wdGlvbnM6OiRkYXRhTW9kZU92ZXJyaWRlIGlzIHNldCB0byBhIHZhbGlkIHZhbHVlCgkgKgoJICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2hpbGxlcmxhbi9waHAtcXJjb2RlL2lzc3Vlcy8zOQoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdERhdGFNb2RlT3ZlcnJpZGUoKTp2b2lkewoKCQkvLyBubyAob3IgaW52YWxpZCkgdmFsdWUgc2V0IC0gYXV0byBkZXRlY3Rpb24KCQkkdGhpcy0+b3B0aW9ucy0+ZGF0YU1vZGVPdmVycmlkZSA9ICdmb28nOwoJCSR0aGlzLT5xcmNvZGUgPSBuZXcgUVJDb2RlOwoKCQkkdGhpczo6YXNzZXJ0SW5zdGFuY2VPZihOdW1iZXI6OmNsYXNzLCAkdGhpcy0+cXJjb2RlLT5pbml0RGF0YUludGVyZmFjZSgnMTIzJykpOwoJCSR0aGlzOjphc3NlcnRJbnN0YW5jZU9mKEFscGhhTnVtOjpjbGFzcywgJHRoaXMtPnFyY29kZS0+aW5pdERhdGFJbnRlcmZhY2UoJ0FCQzEyMycpKTsKCQkkdGhpczo6YXNzZXJ0SW5zdGFuY2VPZihCeXRlOjpjbGFzcywgJHRoaXMtPnFyY29kZS0+aW5pdERhdGFJbnRlcmZhY2UocmFuZG9tX2J5dGVzKDMyKSkpOwoJCSR0aGlzOjphc3NlcnRJbnN0YW5jZU9mKEthbmppOjpjbGFzcywgJHRoaXMtPnFyY29kZS0+aW5pdERhdGFJbnRlcmZhY2UoJ+iMl+iNtycpKTsKCgkJLy8gZGF0YSBtb2RlIHNldDogZm9yY2UgdGhlIGdpdmVuIGRhdGEgbW9kZQoJCSR0aGlzLT5vcHRpb25zLT5kYXRhTW9kZU92ZXJyaWRlID0gJ0J5dGUnOwoJCSR0aGlzLT5xcmNvZGUgPSBuZXcgUVJDb2RlKCR0aGlzLT5vcHRpb25zKTsKCgkJJHRoaXM6OmFzc2VydEluc3RhbmNlT2YoQnl0ZTo6Y2xhc3MsICR0aGlzLT5xcmNvZGUtPmluaXREYXRhSW50ZXJmYWNlKCcxMjMnKSk7CgkJJHRoaXM6OmFzc2VydEluc3RhbmNlT2YoQnl0ZTo6Y2xhc3MsICR0aGlzLT5xcmNvZGUtPmluaXREYXRhSW50ZXJmYWNlKCdBQkMxMjMnKSk7CgkJJHRoaXM6OmFzc2VydEluc3RhbmNlT2YoQnl0ZTo6Y2xhc3MsICR0aGlzLT5xcmNvZGUtPmluaXREYXRhSW50ZXJmYWNlKHJhbmRvbV9ieXRlcygzMikpKTsKCQkkdGhpczo6YXNzZXJ0SW5zdGFuY2VPZihCeXRlOjpjbGFzcywgJHRoaXMtPnFyY29kZS0+aW5pdERhdGFJbnRlcmZhY2UoJ+iMl+iNtycpKTsKCX0KCgkvKioKCSAqIHRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhbiBpbnZhbGlkIGNoYXJhY3RlciBvY2N1cnMgd2hlbiBmb3JjaW5nIGEgZGF0YSBtb2RlIG90aGVyIHRoYW4gQnl0ZQoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdERhdGFNb2RlT3ZlcnJpZGVFcnJvcigpOnZvaWR7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihRUkNvZGVEYXRhRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ2lsbGVnYWwgY2hhcjonKTsKCgkJJHRoaXMtPm9wdGlvbnMtPmRhdGFNb2RlT3ZlcnJpZGUgPSAnQWxwaGFOdW0nOwoKCQkobmV3IFFSQ29kZSgkdGhpcy0+b3B0aW9ucykpLT5pbml0RGF0YUludGVyZmFjZShyYW5kb21fYnl0ZXMoMzIpKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyMjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIyOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IlFSQ29kZVRlc3QiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozMzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFSQ29kZVRlc3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiUVJDb2RlVGVzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDE6IlRlc3RzIGJhc2ljIGZ1bmN0aW9ucyBvZiB0aGUgUVJDb2RlIGNsYXNzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjIxOiJjaGlsbGVybGFuXFFSQ29kZVRlc3QiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjk6e3M6OToiUVJPcHRpb25zIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO3M6ODoiQWxwaGFOdW0iO3M6MzE6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcQWxwaGFOdW0iO3M6NDoiQnl0ZSI7czoyNzoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxCeXRlIjtzOjU6IkthbmppIjtzOjI4OiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEthbmppIjtzOjY6Ik51bWJlciI7czoyOToiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxOdW1iZXIiO3M6MTk6IlFSQ29kZURhdGFFeGNlcHRpb24iO3M6NDI6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbiI7czoyMToiUVJDb2RlT3V0cHV0RXhjZXB0aW9uIjtzOjQ2OiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJDb2RlT3V0cHV0RXhjZXB0aW9uIjtzOjg6IlRlc3RDYXNlIjtzOjI2OiJQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlRlc3RDYXNlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjI6e3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6JHFyY29kZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0OjokcXJjb2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoicXJjb2RlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI1OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiUVJDb2RlIjt9fX1zOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFSQ29kZVRlc3Q6OiRvcHRpb25zIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFSQ29kZVRlc3Q6OiRvcHRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Nzoib3B0aW9ucyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IlFST3B0aW9ucyI7fX19fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjEwOntzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFSQ29kZVRlc3Q6OnNldFVwKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIxOiJpbnZva2UgdGVzdCBpbnN0YW5jZXMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6c2V0VXAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InNldFVwIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0Ojp0ZXN0SXNOdW1iZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NjI6ImlzTnVtYmVyKCkgc2hvdWxkIHBhc3Mgb24gYW55IG51bWJlciBhbmQgZmFpbCBvbiBhbnl0aGluZyBlbHNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6dGVzdElzTnVtYmVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoidGVzdElzTnVtYmVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0Ojp0ZXN0SXNBbHBoYU51bSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo5NjoiaXNBbHBoYU51bSgpIHNob3VsZCBwYXNzIG9uIHRoZSA0NSBkZWZpbmVkIGNoYXJhY3RlcnMgYW5kIGZhaWwgb24gYW55dGhpbmcgZWxzZSAoZS5nLiBsb3dlcmNhc2UpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6dGVzdElzQWxwaGFOdW0oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJ0ZXN0SXNBbHBoYU51bSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6dGVzdElzS2FuamkoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NzQ6ImlzS2FuamkoKSBzaG91bGQgcGFzcyBvbiBLYW5qaS9TSklTIGNoYXJhY3RlcnMgYW5kIGZhaWwgb24gZXZlcnl0aGluZyBlbHNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6dGVzdElzS2FuamkoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJ0ZXN0SXNLYW5qaSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6dGVzdElzQnl0ZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2NjoiaXNCeXRlKCkgcGFzc3NlcyBhbnkgYmluYXJ5IHN0cmluZyBhbmQgb25seSBmYWlscyBvbiBlbXB0eSBzdHJpbmdzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6dGVzdElzQnl0ZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6InRlc3RJc0J5dGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjY3OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFSQ29kZVRlc3Q6OnRlc3RJbml0RGF0YUludGVyZmFjZUV4Y2VwdGlvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo4MzoidGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGFuIGludmFsaWQgKGJ1aWx0LWluKSBvdXRwdXQgdHlwZSBpcyBzcGVjaWZpZWQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0Ojp0ZXN0SW5pdERhdGFJbnRlcmZhY2VFeGNlcHRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjMwOiJ0ZXN0SW5pdERhdGFJbnRlcmZhY2VFeGNlcHRpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFSQ29kZVRlc3Q6OnRlc3RHZXRNYXRyaXhFeGNlcHRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTA0OiJ0ZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdHJ5aW5nIHRvIGNhbGwgZ2V0TWF0cml4KCkgd2l0aG91dCBkYXRhIChlbXB0eSBzdHJpbmcsIG5vIGRhdGEgc2V0KSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjkzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFSQ29kZVRlc3Q6OnRlc3RHZXRNYXRyaXhFeGNlcHRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIyOiJ0ZXN0R2V0TWF0cml4RXhjZXB0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo1NDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0Ojp0ZXN0QXZvaWRUcmltbWluZygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo4NDoidGVzdCB3aGV0aGVyIHN0aW5ncyBhcmUgdHJpbW1lZCAodGhleSBhcmUgbm90KSAtIGknbSBzdGlsbCB0b3JuIG9uIHRoYXQgKHNlZSBpc0J5dGUpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFSQ29kZVRlc3Q6OnRlc3RBdm9pZFRyaW1taW5nKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoidGVzdEF2b2lkVHJpbW1pbmciO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo1NzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0Ojp0ZXN0RGF0YU1vZGVPdmVycmlkZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo5MToidGVzdHMgaWYgdGhlIGRhdGEgbW9kZSBpcyBvdmVycmlkZW4gaWYgUVJPcHRpb25zOjokZGF0YU1vZGVPdmVycmlkZSBpcyBzZXQgdG8gYSB2YWxpZCB2YWx1ZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjUwOiJodHRwczovL2dpdGh1Yi5jb20vY2hpbGxlcmxhbi9waHAtcXJjb2RlL2lzc3Vlcy8zOSI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0Ojp0ZXN0RGF0YU1vZGVPdmVycmlkZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6InRlc3REYXRhTW9kZU92ZXJyaWRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NjI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJDb2RlVGVzdDo6dGVzdERhdGFNb2RlT3ZlcnJpZGVFcnJvcigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMDU6InRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhbiBpbnZhbGlkIGNoYXJhY3RlciBvY2N1cnMgd2hlbiBmb3JjaW5nIGEgZGF0YSBtb2RlIG90aGVyIHRoYW4gQnl0ZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUkNvZGVUZXN0Ojp0ZXN0RGF0YU1vZGVPdmVycmlkZUVycm9yKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNToidGVzdERhdGFNb2RlT3ZlcnJpZGVFcnJvciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/+/Z/dzr5Dxi9S+blrEGs-chQ b/files/+/Z/dzr5Dxi9S+blrEGs-chQ deleted file mode 100644 index 0d5d8b8ac..000000000 --- a/files/+/Z/dzr5Dxi9S+blrEGs-chQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A2e3323021f002ba34a9011727eff8f7b-bb2e392aaba51e40fa3ed9ff06f13993 -s:21176:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTk6IkNsYXNzIEJpdEJ1ZmZlclRlc3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTc6IkJpdEJ1ZmZlclRlc3QucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMDguMDIuMjAxNiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE1IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJiYjJlMzkyYWFiYTUxZTQwZmEzZWQ5ZmYwNmYxMzk5MyI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE3OiJCaXRCdWZmZXJUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjMxOiJ0ZXN0cy9IZWxwZXJzL0JpdEJ1ZmZlclRlc3QucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxMjQ5OiI8P3BocAovKioKICogQ2xhc3MgQml0QnVmZmVyVGVzdAogKgogKiBAZmlsZXNvdXJjZSAgIEJpdEJ1ZmZlclRlc3QucGhwCiAqIEBjcmVhdGVkICAgICAgMDguMDIuMjAxNgogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNSBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnM7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOwp1c2UgY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xCaXRCdWZmZXI7CnVzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKCi8qKgogKiBCaXRCdWZmZXIgY292ZXJhZ2UgdGVzdAogKi8KZmluYWwgY2xhc3MgQml0QnVmZmVyVGVzdCBleHRlbmRzIFRlc3RDYXNlewoKCXByb3RlY3RlZCBCaXRCdWZmZXIgJGJpdEJ1ZmZlcjsKCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0VXAoKTp2b2lkewoJCSR0aGlzLT5iaXRCdWZmZXIgPSBuZXcgQml0QnVmZmVyOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBiaXRQcm92aWRlcigpOmFycmF5ewoJCXJldHVybiBbCgkJCSdudW1iZXInICAgPT4gW1FSQ29kZTo6REFUQV9OVU1CRVIsIDE2XSwKCQkJJ2FscGhhbnVtJyA9PiBbUVJDb2RlOjpEQVRBX0FMUEhBTlVNLCAzMl0sCgkJCSdieXRlJyAgICAgPT4gW1FSQ29kZTo6REFUQV9CWVRFLCA2NF0sCgkJCSdrYW5qaScgICAgPT4gW1FSQ29kZTo6REFUQV9LQU5KSSwgMTI4XSwKCQldOwoJfQoKCS8qKgoJICogQGRhdGFQcm92aWRlciBiaXRQcm92aWRlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdFB1dChpbnQgJGRhdGEsIGludCAkdmFsdWUpOnZvaWR7CgkJJHRoaXMtPmJpdEJ1ZmZlci0+cHV0KCRkYXRhLCA0KTsKCQkkdGhpczo6YXNzZXJ0U2FtZSgkdmFsdWUsICR0aGlzLT5iaXRCdWZmZXItPmdldEJ1ZmZlcigpWzBdKTsKCQkkdGhpczo6YXNzZXJ0U2FtZSg0LCAkdGhpcy0+Yml0QnVmZmVyLT5nZXRMZW5ndGgoKSk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHRlc3RDbGVhcigpOnZvaWR7CgkJJHRoaXMtPmJpdEJ1ZmZlci0+Y2xlYXIoKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShbXSwgJHRoaXMtPmJpdEJ1ZmZlci0+Z2V0QnVmZmVyKCkpOwoJCSR0aGlzOjphc3NlcnRTYW1lKDAsICR0aGlzLT5iaXRCdWZmZXItPmdldExlbmd0aCgpKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czozMDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzA6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVycyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkhlbHBlcnMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo0NDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzXEJpdEJ1ZmZlclRlc3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyc1xCaXRCdWZmZXJUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6IkJpdEJ1ZmZlclRlc3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIzOiJCaXRCdWZmZXIgY292ZXJhZ2UgdGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyOToiY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjM6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO3M6OToiQml0QnVmZmVyIjtzOjM1OiJjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlciI7czo4OiJUZXN0Q2FzZSI7czoyNjoiUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJUZXN0Q2FzZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToxOntzOjU2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnNcQml0QnVmZmVyVGVzdDo6JGJpdEJ1ZmZlciI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzXEJpdEJ1ZmZlclRlc3Q6OiRiaXRCdWZmZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJiaXRCdWZmZXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xCaXRCdWZmZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJCaXRCdWZmZXIiO319fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YTo0OntzOjUzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnNcQml0QnVmZmVyVGVzdDo6c2V0VXAoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzXEJpdEJ1ZmZlclRlc3Q6OnNldFVwKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJzZXRVcCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyc1xCaXRCdWZmZXJUZXN0OjpiaXRQcm92aWRlcigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnNcQml0QnVmZmVyVGVzdDo6Yml0UHJvdmlkZXIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJiaXRQcm92aWRlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NTU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyc1xCaXRCdWZmZXJUZXN0Ojp0ZXN0UHV0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJkYXRhUHJvdmlkZXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiJiaXRQcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyc1xCaXRCdWZmZXJUZXN0Ojp0ZXN0UHV0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJ0ZXN0UHV0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NToidmFsdWUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjU3OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnNcQml0QnVmZmVyVGVzdDo6dGVzdENsZWFyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyc1xCaXRCdWZmZXJUZXN0Ojp0ZXN0Q2xlYXIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6InRlc3RDbGVhciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/0/C/dkWSbCSGgTuEDOB6H7wA b/files/0/C/dkWSbCSGgTuEDOB6H7wA deleted file mode 100644 index 04b7204d5..000000000 --- a/files/0/C/dkWSbCSGgTuEDOB6H7wA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A9e8b63b8c6df7e879ebac500607b3c00-1f68e98a6cae9a4079f05013452cb932 -s:24044:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6IkNsYXNzIFFSU3RyaW5nVGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNjoiUVJTdHJpbmdUZXN0LnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI0LjEyLjIwMTciO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI4OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE3IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiIxZjY4ZTk4YTZjYWU5YTQwNzlmMDUwMTM0NTJjYjkzMiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE2OiJRUlN0cmluZ1Rlc3QucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Mjk6InRlc3RzL091dHB1dC9RUlN0cmluZ1Rlc3QucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxNzE1OiI8P3BocAovKioKICogQ2xhc3MgUVJTdHJpbmdUZXN0CiAqCiAqIEBmaWxlc291cmNlICAgUVJTdHJpbmdUZXN0LnBocAogKiBAY3JlYXRlZCAgICAgIDI0LjEyLjIwMTcKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0CiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dDsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZUV4YW1wbGVzXE15Q3VzdG9tT3V0cHV0Owp1c2UgY2hpbGxlcmxhblxRUkNvZGVce1FSQ29kZSwgUVJPcHRpb25zfTsKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFx7UVJPdXRwdXRJbnRlcmZhY2UsIFFSU3RyaW5nfTsKCi8qKgogKiBUZXN0cyB0aGUgUVJTdHJpbmcgb3V0cHV0IG1vZHVsZQogKi8KY2xhc3MgUVJTdHJpbmdUZXN0IGV4dGVuZHMgUVJPdXRwdXRUZXN0QWJzdHJhY3R7CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICogQGludGVybmFsCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRPdXRwdXRJbnRlcmZhY2UoUVJPcHRpb25zICRvcHRpb25zKTpRUk91dHB1dEludGVyZmFjZXsKCQlyZXR1cm4gbmV3IFFSU3RyaW5nKCRvcHRpb25zLCAkdGhpcy0+bWF0cml4KTsKCX0KCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHR5cGVzKCk6YXJyYXl7CgkJcmV0dXJuIFsKCQkJJ2pzb24nID0+IFtRUkNvZGU6Ok9VVFBVVF9TVFJJTkdfSlNPTl0sCgkJCSd0ZXh0JyA9PiBbUVJDb2RlOjpPVVRQVVRfU1RSSU5HX1RFWFRdLAoJCV07Cgl9CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdFNldE1vZHVsZVZhbHVlcygpOnZvaWR7CgoJCSR0aGlzLT5vcHRpb25zLT5tb2R1bGVWYWx1ZXMgPSBbCgkJCS8vIGRhdGEKCQkJMTAyNCA9PiAnQScsCgkJCTQgICAgPT4gJ0InLAoJCV07CgoJCSR0aGlzLT5vdXRwdXRJbnRlcmZhY2UgPSAkdGhpcy0+Z2V0T3V0cHV0SW50ZXJmYWNlKCR0aGlzLT5vcHRpb25zKTsKCQkkZGF0YSAgICAgICAgICAgICAgICAgID0gJHRoaXMtPm91dHB1dEludGVyZmFjZS0+ZHVtcCgpOwoKCQkkdGhpczo6YXNzZXJ0U3RyaW5nQ29udGFpbnNTdHJpbmcoJ0EnLCAkZGF0YSk7CgkJJHRoaXM6OmFzc2VydFN0cmluZ0NvbnRhaW5zU3RyaW5nKCdCJywgJGRhdGEpOwoJfQoKCS8qKgoJICogY292ZXJzIHRoZSBjdXN0b20gb3V0cHV0IGZ1bmN0aW9uYWxpdHkgdmlhIGFuIGV4YW1wbGUKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RDdXN0b21PdXRwdXQoKTp2b2lkewoJCSR0aGlzLT5vcHRpb25zLT52ZXJzaW9uICAgICAgICAgPSA1OwoJCSR0aGlzLT5vcHRpb25zLT5lY2NMZXZlbCAgICAgICAgPSBRUkNvZGU6OkVDQ19MOwoJCSR0aGlzLT5vcHRpb25zLT5vdXRwdXRUeXBlICAgICAgPSBRUkNvZGU6Ok9VVFBVVF9DVVNUT007CgkJJHRoaXMtPm9wdGlvbnMtPm91dHB1dEludGVyZmFjZSA9IE15Q3VzdG9tT3V0cHV0OjpjbGFzczsKCgkJJHRoaXM6OmFzc2VydFNhbWUoCgkJCWZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy9zYW1wbGVzL2N1c3RvbScpLAoJCQkobmV3IFFSQ29kZSgkdGhpcy0+b3B0aW9ucykpLT5yZW5kZXIoJ3Rlc3QnKQoJCSk7Cgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6Mjk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiT3V0cHV0Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSU3RyaW5nVGVzdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJTdHJpbmdUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6IlFSU3RyaW5nVGVzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzI6IlRlc3RzIHRoZSBRUlN0cmluZyBvdXRwdXQgbW9kdWxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI4OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTo1OntzOjE0OiJNeUN1c3RvbU91dHB1dCI7czo0MDoiY2hpbGxlcmxhblxRUkNvZGVFeGFtcGxlc1xNeUN1c3RvbU91dHB1dCI7czo2OiJRUkNvZGUiO3M6MjQ6ImNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZSI7czo5OiJRUk9wdGlvbnMiO3M6Mjc6ImNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czoxNzoiUVJPdXRwdXRJbnRlcmZhY2UiO3M6NDI6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEludGVyZmFjZSI7czo4OiJRUlN0cmluZyI7czozMzoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSU3RyaW5nIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoiUVJPdXRwdXRUZXN0QWJzdHJhY3QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjQ6e3M6NjQ6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSU3RyaW5nVGVzdDo6Z2V0T3V0cHV0SW50ZXJmYWNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjQ6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSU3RyaW5nVGVzdDo6Z2V0T3V0cHV0SW50ZXJmYWNlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoiZ2V0T3V0cHV0SW50ZXJmYWNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6Im9wdGlvbnMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IlFST3B0aW9ucyI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0SW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IlFST3V0cHV0SW50ZXJmYWNlIjt9fX1zOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUlN0cmluZ1Rlc3Q6OnR5cGVzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSU3RyaW5nVGVzdDo6dHlwZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InR5cGVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19czo2NToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJTdHJpbmdUZXN0Ojp0ZXN0U2V0TW9kdWxlVmFsdWVzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJTdHJpbmdUZXN0Ojp0ZXN0U2V0TW9kdWxlVmFsdWVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToidGVzdFNldE1vZHVsZVZhbHVlcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NjI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSU3RyaW5nVGVzdDo6dGVzdEN1c3RvbU91dHB1dCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MzoiY292ZXJzIHRoZSBjdXN0b20gb3V0cHV0IGZ1bmN0aW9uYWxpdHkgdmlhIGFuIGV4YW1wbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJTdHJpbmdUZXN0Ojp0ZXN0Q3VzdG9tT3V0cHV0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoidGVzdEN1c3RvbU91dHB1dCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/1/F/EmnrkE861UcqQRcGjKrg b/files/1/F/EmnrkE861UcqQRcGjKrg deleted file mode 100644 index e6ddc6b4a..000000000 --- a/files/1/F/EmnrkE861UcqQRcGjKrg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ab31d16eab64d6e98936bd9a7132dee28-ee6657e5cb73de07f2120f02b1cc0be5 -s:22496:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTI6IkNsYXNzIFFSRnBkZiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0ODoiaHR0cHM6Ly9naXRodWIuY29tL2NoaWxsZXJsYW4vcGhwLXFyY29kZS9wdWxsLzQ5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IlFSRnBkZi5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIwMy4wNi4yMDIwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjE3OiJNYXhpbWlsaWFuIEtyZXNzZSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czowOiIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiZWU2NjU3ZTVjYjczZGUwN2YyMTIwZjAyYjFjYzBiZTUiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxMDoiUVJGcGRmLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjIxOiJzcmMvT3V0cHV0L1FSRnBkZi5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjI0Mzc6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUkZwZGYKICoKICogaHR0cHM6Ly9naXRodWIuY29tL2NoaWxsZXJsYW4vcGhwLXFyY29kZS9wdWxsLzQ5CiAqCiAqIEBmaWxlc291cmNlICAgUVJGcGRmLnBocAogKiBAY3JlYXRlZCAgICAgIDAzLjA2LjIwMjAKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQKICogQGF1dGhvciAgICAgICBNYXhpbWlsaWFuIEtyZXNzZQogKgogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQ7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDsKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbjsKdXNlIGNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2U7CnVzZSBGUERGOwoKdXNlIGZ1bmN0aW9uIGFycmF5X3ZhbHVlcywgY2xhc3NfZXhpc3RzLCBjb3VudCwgaXNfYXJyYXk7CgovKioKICogUVJGcGRmIG91dHB1dCBtb2R1bGUgKHJlcXVpcmVzIGZwZGYpCiAqCiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL1NldGFzaWduL0ZQREYKICogQHNlZSBodHRwOi8vd3d3LmZwZGYub3JnLwogKi8KY2xhc3MgUVJGcGRmIGV4dGVuZHMgUVJPdXRwdXRBYnN0cmFjdHsKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UgJG9wdGlvbnMsIFFSTWF0cml4ICRtYXRyaXgpewoKCQlpZighY2xhc3NfZXhpc3RzKEZQREY6OmNsYXNzKSl7CgkJCS8vIEBjb2RlQ292ZXJhZ2VJZ25vcmVTdGFydAoJCQl0aHJvdyBuZXcgUVJDb2RlRXhjZXB0aW9uKAoJCQkJJ1RoZSBRUkZwZGYgb3V0cHV0IHJlcXVpcmVzIEZQREYgYXMgZGVwZW5kZW5jeSBidXQgdGhlIGNsYXNzICJcRlBERiIgY291bGRuXCd0IGJlIGZvdW5kLicKCQkJKTsKCQkJLy8gQGNvZGVDb3ZlcmFnZUlnbm9yZUVuZAoJCX0KCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkb3B0aW9ucywgJG1hdHJpeCk7Cgl9CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0TW9kdWxlVmFsdWVzKCk6dm9pZHsKCgkJZm9yZWFjaCgkdGhpczo6REVGQVVMVF9NT0RVTEVfVkFMVUVTIGFzICRNX1RZUEUgPT4gJGRlZmF1bHRWYWx1ZSl7CgkJCSR2ID0gJHRoaXMtPm9wdGlvbnMtPm1vZHVsZVZhbHVlc1skTV9UWVBFXSA/PyBudWxsOwoKCQkJaWYoIWlzX2FycmF5KCR2KSB8fCBjb3VudCgkdikgPCAzKXsKCQkJCSR0aGlzLT5tb2R1bGVWYWx1ZXNbJE1fVFlQRV0gPSAkZGVmYXVsdFZhbHVlCgkJCQkJPyBbMCwgMCwgMF0KCQkJCQk6IFsyNTUsIDI1NSwgMjU1XTsKCQkJfQoJCQllbHNlewoJCQkJJHRoaXMtPm1vZHVsZVZhbHVlc1skTV9UWVBFXSA9IGFycmF5X3ZhbHVlcygkdik7CgkJCX0KCgkJfQoKCX0KCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKgoJICogQHJldHVybiBzdHJpbmd8XEZQREYKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGR1bXAoc3RyaW5nICRmaWxlID0gbnVsbCl7CgkJJGZpbGUgPz89ICR0aGlzLT5vcHRpb25zLT5jYWNoZWZpbGU7CgoJCSRmcGRmID0gbmV3IEZQREYoJ1AnLCAkdGhpcy0+b3B0aW9ucy0+ZnBkZk1lYXN1cmVVbml0LCBbJHRoaXMtPmxlbmd0aCwgJHRoaXMtPmxlbmd0aF0pOwoJCSRmcGRmLT5BZGRQYWdlKCk7CgoJCSRwcmV2Q29sb3IgPSBudWxsOwoKCQlmb3JlYWNoKCR0aGlzLT5tYXRyaXgtPm1hdHJpeCgpIGFzICR5ID0+ICRyb3cpewoKCQkJZm9yZWFjaCgkcm93IGFzICR4ID0+ICRNX1RZUEUpewoJCQkJLyoqIEB2YXIgaW50ICRNX1RZUEUgKi8KCQkJCSRjb2xvciA9ICR0aGlzLT5tb2R1bGVWYWx1ZXNbJE1fVFlQRV07CgoJCQkJaWYoJHByZXZDb2xvciA9PT0gbnVsbCB8fCAkcHJldkNvbG9yICE9PSAkY29sb3IpewoJCQkJCS8qKiBAcGhhbi1zdXBwcmVzcy1uZXh0LWxpbmUgUGhhblBhcmFtVG9vRmV3VW5wYWNrICovCgkJCQkJJGZwZGYtPlNldEZpbGxDb2xvciguLi4kY29sb3IpOwoJCQkJCSRwcmV2Q29sb3IgPSAkY29sb3I7CgkJCQl9CgoJCQkJJGZwZGYtPlJlY3QoJHggKiAkdGhpcy0+c2NhbGUsICR5ICogJHRoaXMtPnNjYWxlLCAxICogJHRoaXMtPnNjYWxlLCAxICogJHRoaXMtPnNjYWxlLCAnRicpOwoJCQl9CgoJCX0KCgkJaWYoJHRoaXMtPm9wdGlvbnMtPnJldHVyblJlc291cmNlKXsKCQkJcmV0dXJuICRmcGRmOwoJCX0KCgkJJHBkZkRhdGEgPSAkZnBkZi0+T3V0cHV0KCdTJyk7CgoJCWlmKCRmaWxlICE9PSBudWxsKXsKCQkJJHRoaXMtPnNhdmVUb0ZpbGUoJHBkZkRhdGEsICRmaWxlKTsKCQl9CgoJCWlmKCR0aGlzLT5vcHRpb25zLT5pbWFnZUJhc2U2NCl7CgkJCSRwZGZEYXRhID0gc3ByaW50ZignZGF0YTphcHBsaWNhdGlvbi9wZGY7YmFzZTY0LCVzJywgYmFzZTY0X2VuY29kZSgkcGRmRGF0YSkpOwoJCX0KCgkJcmV0dXJuICRwZGZEYXRhOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI1OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjU6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJPdXRwdXQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkZwZGYiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJGcGRmIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiUVJGcGRmIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNjoiUVJGcGRmIG91dHB1dCBtb2R1bGUgKHJlcXVpcmVzIGZwZGYpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjUyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsIjoxOntzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybAB1cmkiO3M6MzI6Imh0dHBzOi8vZ2l0aHViLmNvbS9TZXRhc2lnbi9GUERGIjt9czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjUyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsIjoxOntzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybAB1cmkiO3M6MjA6Imh0dHA6Ly93d3cuZnBkZi5vcmcvIjt9czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjQ6e3M6ODoiUVJNYXRyaXgiO3M6MzE6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MTU6IlFSQ29kZUV4Y2VwdGlvbiI7czozMzoiY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlRXhjZXB0aW9uIjtzOjI2OiJTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSI7czo0NjoiY2hpbGxlcmxhblxTZXR0aW5nc1xTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSI7czo0OiJGUERGIjtzOjQ6IkZQREYiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiUVJPdXRwdXRBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mzp7czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkZwZGY6Ol9fY29uc3RydWN0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJGcGRmOjpfX2NvbnN0cnVjdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Il9fY29uc3RydWN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6Im9wdGlvbnMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNjoiU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoibWF0cml4IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkZwZGY6OnNldE1vZHVsZVZhbHVlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJGcGRmOjpzZXRNb2R1bGVWYWx1ZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJzZXRNb2R1bGVWYWx1ZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSRnBkZjo6ZHVtcCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU6IlxGUERGIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRlBERiI7fX19czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkZwZGY6OmR1bXAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6ImR1bXAiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/1/Y/K8RD9eHuXlfSK5izu3eA b/files/1/Y/K8RD9eHuXlfSK5izu3eA deleted file mode 100644 index a06a5769a..000000000 --- a/files/1/Y/K8RD9eHuXlfSK5izu3eA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A517f664c9d4b66de958e7810bb791d32-a1b3484ef4680c325ea89309945167dc -s:99692:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6IkNsYXNzIFFSTWF0cml4VGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNjoiUVJNYXRyaXhUZXN0LnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjE3LjExLjIwMTciO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI2OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYTFiMzQ4NGVmNDY4MGMzMjVlYTg5MzA5OTQ1MTY3ZGMiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxNjoiUVJNYXRyaXhUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjI3OiJ0ZXN0cy9EYXRhL1FSTWF0cml4VGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjEwNjk3OiI8P3BocAovKioKICogQ2xhc3MgUVJNYXRyaXhUZXN0CiAqCiAqIEBmaWxlc291cmNlICAgUVJNYXRyaXhUZXN0LnBocAogKiBAY3JlYXRlZCAgICAgIDE3LjExLjIwMTcKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YQogKiBAYXV0aG9yICAgICAgIFNtaWxleSA8c21pbGV5QGNoaWxsZXJsYW4ubmV0PgogKiBAY29weXJpZ2h0ICAgIDIwMTcgU21pbGV5CiAqIEBsaWNlbnNlICAgICAgTUlUCiAqLwoKbmFtZXNwYWNlIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhOwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTsKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uczsKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXERhdGFce1FSQ29kZURhdGFFeGNlcHRpb24sIFFSTWF0cml4fTsKdXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOwp1c2UgUmVmbGVjdGlvbkNsYXNzOwoKLyoqCiAqIFRlc3RzIHRoZSBRUk1hdGl4IGNsYXNzCiAqLwpmaW5hbCBjbGFzcyBRUk1hdHJpeFRlc3QgZXh0ZW5kcyBUZXN0Q2FzZXsKCgkvKiogQGludGVybmFsICovCglwcm90ZWN0ZWQgY29uc3QgdmVyc2lvbiA9IDQwOwoJLyoqIEBpbnRlcm5hbCAqLwoJcHJvdGVjdGVkIFFSTWF0cml4ICRtYXRyaXg7CgoJLyoqCgkgKiBpbnZva2VzIGEgUVJNYXRyaXggb2JqZWN0CgkgKgoJICogQGludGVybmFsCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRVcCgpOnZvaWR7CgkJJHRoaXMtPm1hdHJpeCA9ICR0aGlzLT5nZXRNYXRyaXgoJHRoaXM6OnZlcnNpb24pOwoJfQoKCS8qKgoJICogc2hvcnRjdXQKCSAqCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldE1hdHJpeChpbnQgJHZlcnNpb24pOlFSTWF0cml4ewoJCXJldHVybiAgbmV3IFFSTWF0cml4KCR2ZXJzaW9uLCBRUkNvZGU6OkVDQ19MKTsKCX0KCgkvKioKCSAqIFZhbGlkYXRlcyB0aGUgUVJNYXRyaXggaW5zdGFuY2UKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RJbnN0YW5jZSgpOnZvaWR7CgkJJHRoaXM6OmFzc2VydEluc3RhbmNlT2YoUVJNYXRyaXg6OmNsYXNzLCAkdGhpcy0+bWF0cml4KTsKCX0KCgkvKioKCSAqIFRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhbiBpbnZhbGlkIFFSIHZlcnNpb24gd2FzIGdpdmVuCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZFZlcnNpb25FeGNlcHRpb24oKTp2b2lkewoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb24oUVJDb2RlRGF0YUV4Y2VwdGlvbjo6Y2xhc3MpOwoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb25NZXNzYWdlKCdpbnZhbGlkIFFSIENvZGUgdmVyc2lvbicpOwoKCQkkdGhpcy0+bWF0cml4ID0gbmV3IFFSTWF0cml4KDQyLCAwKTsKCX0KCgkvKioKCSAqIFRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhbiBpbnZhbGlkIEVDQyBsZXZlbCB3YXMgZ2l2ZW4KCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkRWNjRXhjZXB0aW9uKCk6dm9pZHsKCQkkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uKFFSQ29kZURhdGFFeGNlcHRpb246OmNsYXNzKTsKCQkkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uTWVzc2FnZSgnaW52YWxpZCBlY2MgbGV2ZWwnKTsKCgkJJHRoaXMtPm1hdHJpeCA9IG5ldyBRUk1hdHJpeCgxLCA0Mik7Cgl9CgoJLyoqCgkgKiBUZXN0cyBpZiBzaXplKCkgcmV0dXJucyB0aGUgYWN0dWFsIG1hdHJpeCBzaXplL2NvdW50CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2l6ZSgpOnZvaWR7CgkJJHRoaXM6OmFzc2VydENvdW50KCR0aGlzLT5tYXRyaXgtPnNpemUoKSwgJHRoaXMtPm1hdHJpeC0+bWF0cml4KCkpOwoJfQoKCS8qKgoJICogVGVzdHMgaWYgdmVyc2lvbigpIHJldHVybnMgdGhlIGN1cnJlbnQgKGdpdmVuKSB2ZXJzaW9uCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0VmVyc2lvbigpOnZvaWR7CgkJJHRoaXM6OmFzc2VydFNhbWUoJHRoaXM6OnZlcnNpb24sICR0aGlzLT5tYXRyaXgtPnZlcnNpb24oKSk7Cgl9CgoJLyoqCgkgKiBUZXN0cyBpZiBlY2NMZXZlbCgpIHJldHVybnMgdGhlIGN1cnJlbnQgKGdpdmVuKSBFQ0MgbGV2ZWwKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RFQ0MoKTp2b2lkewoJCSR0aGlzOjphc3NlcnRTYW1lKFFSQ29kZTo6RUNDX0wsICR0aGlzLT5tYXRyaXgtPmVjY0xldmVsKCkpOwoJfQoKCS8qKgoJICogVGVzdHMgaWYgbWFza1BhdHRlcm4oKSByZXR1cm5zIHRoZSBjdXJyZW50IChvciBkZWZhdWx0KSBtYXNrIHBhdHRlcm4KCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RNYXNrUGF0dGVybigpOnZvaWR7CgkJJHRoaXM6OmFzc2VydFNhbWUoLTEsICR0aGlzLT5tYXRyaXgtPm1hc2tQYXR0ZXJuKCkpOyAvLyBkZWZhdWx0CgoJCS8vIEB0b2RvOiBhY3R1YWwgbWFzayBwYXR0ZXJuIGFmdGVyIG1hcERhdGEoKQoJfQoKCS8qKgoJICogVGVzdHMgdGhlIHNldCgpLCBnZXQoKSBhbmQgY2hlY2soKSBtZXRob2RzCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0U2V0Q2hlY2soKTp2b2lkewoJCSR0aGlzLT5tYXRyaXgtPnNldCgxMCwgMTAsIHRydWUsIFFSTWF0cml4OjpNX1RFU1QpOwoJCSR0aGlzOjphc3NlcnRTYW1lKDY1MjgwLCAkdGhpcy0+bWF0cml4LT5nZXQoMTAsIDEwKSk7CgkJJHRoaXM6OmFzc2VydFRydWUoJHRoaXMtPm1hdHJpeC0+Y2hlY2soMTAsIDEwKSk7CgoJCSR0aGlzLT5tYXRyaXgtPnNldCgyMCwgMjAsIGZhbHNlLCBRUk1hdHJpeDo6TV9URVNUKTsKCQkkdGhpczo6YXNzZXJ0U2FtZSgyNTUsICR0aGlzLT5tYXRyaXgtPmdldCgyMCwgMjApKTsKCQkkdGhpczo6YXNzZXJ0RmFsc2UoJHRoaXMtPm1hdHJpeC0+Y2hlY2soMjAsIDIwKSk7Cgl9CgoJLyoqCgkgKiBWZXJzaW9uIGRhdGEgcHJvdmlkZXIgZm9yIHNldmVyYWwgcGF0dGVybiB0ZXN0cwoJICoKCSAqIEByZXR1cm4gaW50W11bXQoJICogQGludGVybmFsCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB2ZXJzaW9uUHJvdmlkZXIoKTphcnJheXsKCQkkdmVyc2lvbnMgPSBbXTsKCgkJZm9yKCRpID0gMTsgJGkgPD0gNDA7ICRpKyspewoJCQkkdmVyc2lvbnNbXSA9IFskaV07CgkJfQoKCQlyZXR1cm4gJHZlcnNpb25zOwoJfQoKCS8qKgoJICogVGVzdHMgc2V0dGluZyB0aGUgZGFyayBtb2R1bGUgYW5kIHZlcmlmaWVzIGl0cyBwb3NpdGlvbgoJICoKCSAqIEBkYXRhUHJvdmlkZXIgdmVyc2lvblByb3ZpZGVyCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0RGFya01vZHVsZShpbnQgJHZlcnNpb24pOnZvaWR7CgkJJG1hdHJpeCA9ICR0aGlzLT5nZXRNYXRyaXgoJHZlcnNpb24pLT5zZXREYXJrTW9kdWxlKCk7CgoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX0RBUktNT0RVTEUgPDwgOCwgJG1hdHJpeC0+Z2V0KDgsICRtYXRyaXgtPnNpemUoKSAtIDgpKTsKCX0KCgkvKioKCSAqIFRlc3RzIHNldHRpbmcgdGhlIGZpbmRlciBwYXR0ZXJucyBhbmQgdmVyaWZpZXMgdGhlaXIgcG9zaXRpb25zCgkgKgoJICogQGRhdGFQcm92aWRlciB2ZXJzaW9uUHJvdmlkZXIKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRGaW5kZXJQYXR0ZXJuKGludCAkdmVyc2lvbik6dm9pZHsKCQkkbWF0cml4ID0gJHRoaXMtPmdldE1hdHJpeCgkdmVyc2lvbiktPnNldEZpbmRlclBhdHRlcm4oKTsKCgkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fRklOREVSIDw8IDgsICRtYXRyaXgtPmdldCgwLCAwKSk7CgkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fRklOREVSIDw8IDgsICRtYXRyaXgtPmdldCgwLCAkbWF0cml4LT5zaXplKCkgLSAxKSk7CgkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fRklOREVSIDw8IDgsICRtYXRyaXgtPmdldCgkbWF0cml4LT5zaXplKCkgLSAxLCAwKSk7Cgl9CgoJLyoqCgkgKiBUZXN0cyB0aGUgc2VwYXJhdG9yIHBhdHRlcm5zIGFuZCB2ZXJpZmllcyB0aGVpciBwb3NpdGlvbnMKCSAqCgkgKiBAZGF0YVByb3ZpZGVyIHZlcnNpb25Qcm92aWRlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdFNldFNlcGFyYXRvcnMoaW50ICR2ZXJzaW9uKTp2b2lkewoJCSRtYXRyaXggPSAkdGhpcy0+Z2V0TWF0cml4KCR2ZXJzaW9uKS0+c2V0U2VwYXJhdG9ycygpOwoKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9TRVBBUkFUT1IsICRtYXRyaXgtPmdldCg3LCAwKSk7CgkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fU0VQQVJBVE9SLCAkbWF0cml4LT5nZXQoMCwgNykpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX1NFUEFSQVRPUiwgJG1hdHJpeC0+Z2V0KDAsICRtYXRyaXgtPnNpemUoKSAtIDgpKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9TRVBBUkFUT1IsICRtYXRyaXgtPmdldCgkbWF0cml4LT5zaXplKCkgLSA4LCAwKSk7Cgl9CgoJLyoqCgkgKiBUZXN0cyB0aGUgYWxpZ25tZW50IHBhdHRlcm5zIGFuZCB2ZXJpZmllcyB0aGVpciBwb3NpdGlvbnMgLSB2ZXJzaW9uIDEgKG5vIHBhdHRlcm4pIHNraXBwZWQKCSAqCgkgKiBAZGF0YVByb3ZpZGVyIHZlcnNpb25Qcm92aWRlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdFNldEFsaWdubWVudFBhdHRlcm4oaW50ICR2ZXJzaW9uKTp2b2lkewoKCQlpZigkdmVyc2lvbiA9PT0gMSl7CgkJCSR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ04vQScpOwoKCQkJLyoqIEBub2luc3BlY3Rpb24gUGhwVW5yZWFjaGFibGVTdGF0ZW1lbnRJbnNwZWN0aW9uICovCgkJCXJldHVybjsKCQl9CgoJCSRtYXRyaXggPSAkdGhpcwoJCQktPmdldE1hdHJpeCgkdmVyc2lvbikKCQkJLT5zZXRGaW5kZXJQYXR0ZXJuKCkKCQkJLT5zZXRBbGlnbm1lbnRQYXR0ZXJuKCkKCQk7CgoJCSRhbGlnbm1lbnRQYXR0ZXJuID0gKG5ldyBSZWZsZWN0aW9uQ2xhc3MoUVJNYXRyaXg6OmNsYXNzKSktPmdldENvbnN0YW50KCdhbGlnbm1lbnRQYXR0ZXJuJylbJHZlcnNpb25dOwoKCQlmb3JlYWNoKCRhbGlnbm1lbnRQYXR0ZXJuIGFzICRweSl7CgkJCWZvcmVhY2goJGFsaWdubWVudFBhdHRlcm4gYXMgJHB4KXsKCgkJCQlpZigkbWF0cml4LT5nZXQoJHB4LCAkcHkpID09PSBRUk1hdHJpeDo6TV9GSU5ERVIgPDwgOCl7CgkJCQkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fRklOREVSIDw8IDgsICRtYXRyaXgtPmdldCgkcHgsICRweSksICdza2lwcGVkIGZpbmRlciBwYXR0ZXJuJyk7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fQUxJR05NRU5UIDw8IDgsICRtYXRyaXgtPmdldCgkcHgsICRweSkpOwoJCQl9CgkJfQoKCX0KCgkvKioKCSAqIFRlc3RzIHRoZSB0aW1pbmcgcGF0dGVybnMgYW5kIHZlcmlmaWVzIHRoZWlyIHBvc2l0aW9ucwoJICoKCSAqIEBkYXRhUHJvdmlkZXIgdmVyc2lvblByb3ZpZGVyCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0VGltaW5nUGF0dGVybihpbnQgJHZlcnNpb24pOnZvaWR7CgoJCSRtYXRyaXggPSAkdGhpcwoJCQktPmdldE1hdHJpeCgkdmVyc2lvbikKCQkJLT5zZXRBbGlnbm1lbnRQYXR0ZXJuKCkKCQkJLT5zZXRUaW1pbmdQYXR0ZXJuKCkKCQk7CgoJCSRzaXplID0gJG1hdHJpeC0+c2l6ZSgpOwoKCQlmb3IoJGkgPSA3OyAkaSA8ICRzaXplIC0gNzsgJGkrKyl7CgkJCWlmKCRpICUgMiA9PT0gMCl7CgkJCQkkcDEgPSAkbWF0cml4LT5nZXQoNiwgJGkpOwoKCQkJCWlmKCRwMSA9PT0gUVJNYXRyaXg6Ok1fQUxJR05NRU5UIDw8IDgpewoJCQkJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX0FMSUdOTUVOVCA8PCA4LCAkcDEsICdza2lwcGVkIGFsaWdubWVudCBwYXR0ZXJuJyk7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fVElNSU5HIDw8IDgsICRwMSk7CgkJCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9USU1JTkcgPDwgOCwgJG1hdHJpeC0+Z2V0KCRpLCA2KSk7CgkJCX0KCQl9Cgl9CgoJLyoqCgkgKiBUZXN0cyB0aGUgdmVyc2lvbiBwYXR0ZXJucyBhbmQgdmVyaWZpZXMgdGhlaXIgcG9zaXRpb25zIC0gdmVyc2lvbiA8IDcgc2tpcHBlZAoJICoKCSAqIEBkYXRhUHJvdmlkZXIgdmVyc2lvblByb3ZpZGVyCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0VmVyc2lvbk51bWJlcihpbnQgJHZlcnNpb24pOnZvaWR7CgoJCWlmKCR2ZXJzaW9uIDwgNyl7CgkJCSR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ04vQScpOwoKCQkJLyoqIEBub2luc3BlY3Rpb24gUGhwVW5yZWFjaGFibGVTdGF0ZW1lbnRJbnNwZWN0aW9uICovCgkJCXJldHVybjsKCQl9CgoJCSRtYXRyaXggPSAkdGhpcy0+Z2V0TWF0cml4KCR2ZXJzaW9uKS0+c2V0VmVyc2lvbk51bWJlcih0cnVlKTsKCgkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fVkVSU0lPTiwgJG1hdHJpeC0+Z2V0KCRtYXRyaXgtPnNpemUoKSAtIDksIDApKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9WRVJTSU9OLCAkbWF0cml4LT5nZXQoJG1hdHJpeC0+c2l6ZSgpIC0gMTEsIDUpKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9WRVJTSU9OLCAkbWF0cml4LT5nZXQoMCwgJG1hdHJpeC0+c2l6ZSgpIC0gOSkpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX1ZFUlNJT04sICRtYXRyaXgtPmdldCg1LCAkbWF0cml4LT5zaXplKCkgLSAxMSkpOwoJfQoKCS8qKgoJICogVGVzdHMgdGhlIGZvcm1hdCBwYXR0ZXJucyBhbmQgdmVyaWZpZXMgdGhlaXIgcG9zaXRpb25zCgkgKgoJICogQGRhdGFQcm92aWRlciB2ZXJzaW9uUHJvdmlkZXIKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRGb3JtYXRJbmZvKGludCAkdmVyc2lvbik6dm9pZHsKCQkkbWF0cml4ID0gJHRoaXMtPmdldE1hdHJpeCgkdmVyc2lvbiktPnNldEZvcm1hdEluZm8oMCwgdHJ1ZSk7CgoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX0ZPUk1BVCwgJG1hdHJpeC0+Z2V0KDgsIDApKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9GT1JNQVQsICRtYXRyaXgtPmdldCgwLCA4KSk7CgkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fRk9STUFULCAkbWF0cml4LT5nZXQoJG1hdHJpeC0+c2l6ZSgpIC0gMSwgOCkpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX0ZPUk1BVCwgJG1hdHJpeC0+Z2V0KCRtYXRyaXgtPnNpemUoKSAtIDgsIDgpKTsKCX0KCgkvKioKCSAqIFRlc3RzIHRoZSBxdWlldCB6b25lIHBhdHRlcm4gYW5kIHZlcmlmaWVzIGl0cyBwb3NpdGlvbgoJICoKCSAqIEBkYXRhUHJvdmlkZXIgdmVyc2lvblByb3ZpZGVyCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0UXVpZXRab25lKGludCAkdmVyc2lvbik6dm9pZHsKCQkkbWF0cml4ID0gJHRoaXMtPmdldE1hdHJpeCgkdmVyc2lvbik7CgoJCSRzaXplID0gJG1hdHJpeC0+c2l6ZSgpOwoJCSRxICAgID0gNTsKCgkJJG1hdHJpeC0+c2V0KDAsIDAsIHRydWUsIFFSTWF0cml4OjpNX1RFU1QpOwoJCSRtYXRyaXgtPnNldCgkc2l6ZSAtIDEsICRzaXplIC0gMSwgdHJ1ZSwgUVJNYXRyaXg6Ok1fVEVTVCk7CgoJCSRtYXRyaXgtPnNldFF1aWV0Wm9uZSgkcSk7CgoJCSR0aGlzOjphc3NlcnRDb3VudCgkc2l6ZSArIDIgKiAkcSwgJG1hdHJpeC0+bWF0cml4KCkpOwoJCSR0aGlzOjphc3NlcnRDb3VudCgkc2l6ZSArIDIgKiAkcSwgJG1hdHJpeC0+bWF0cml4KClbJHNpemUgLSAxXSk7CgoJCSRzaXplID0gJG1hdHJpeC0+c2l6ZSgpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX1FVSUVUWk9ORSwgJG1hdHJpeC0+Z2V0KDAsIDApKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9RVUlFVFpPTkUsICRtYXRyaXgtPmdldCgkc2l6ZSAtIDEsICRzaXplIC0gMSkpOwoKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9URVNUIDw8IDgsICRtYXRyaXgtPmdldCgkcSwgJHEpKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9URVNUIDw8IDgsICRtYXRyaXgtPmdldCgkc2l6ZSAtIDEgLSAkcSwgJHNpemUgLSAxIC0gJHEpKTsKCX0KCgkvKioKCSAqIFRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gaW4gYW4gYXR0ZW1wdCB0byBjcmVhdGUgaXQgYmVmb3JlIGRhdGEgd2FzIHdyaXR0ZW4KCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRRdWlldFpvbmVFeGNlcHRpb24oKTp2b2lkewoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb24oUVJDb2RlRGF0YUV4Y2VwdGlvbjo6Y2xhc3MpOwoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb25NZXNzYWdlKCd1c2Ugb25seSBhZnRlciB3cml0aW5nIGRhdGEnKTsKCgkJJHRoaXMtPm1hdHJpeC0+c2V0UXVpZXRab25lKCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRMb2dvU3BhY2VPcmllbnRhdGlvbigpOnZvaWR7CgkJJG8gPSBuZXcgUVJPcHRpb25zOwoJCSRvLT52ZXJzaW9uICAgICAgPSAxMDsKCQkkby0+ZWNjTGV2ZWwgICAgID0gUVJDb2RlOjpFQ0NfSDsKCQkkby0+YWRkUXVpZXR6b25lID0gZmFsc2U7CgoJCSRtYXRyaXggPSAobmV3IFFSQ29kZSgkbykpLT5nZXRNYXRyaXgoJ3Rlc3RkYXRhJyk7CgkJLy8gYWxzbyB0ZXN0aW5nIHNpemUgYWRqdXN0bWVudCB0byB1bmV2ZW4gbnVtYmVycwoJCSRtYXRyaXgtPnNldExvZ29TcGFjZSgyMCwgMTQpOwoKCQkvLyBOVyBjb3JuZXIKCQkkdGhpczo6YXNzZXJ0Tm90U2FtZShRUk1hdHJpeDo6TV9MT0dPLCAkbWF0cml4LT5nZXQoMTcsIDIwKSk7CgkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fTE9HTywgJG1hdHJpeC0+Z2V0KDE4LCAyMSkpOwoKCQkvLyBTRSBjb3JuZXIKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9MT0dPLCAkbWF0cml4LT5nZXQoMzgsIDM1KSk7CgkJJHRoaXM6OmFzc2VydE5vdFNhbWUoUVJNYXRyaXg6Ok1fTE9HTywgJG1hdHJpeC0+Z2V0KDM5LCAzNikpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0TG9nb1NwYWNlUG9zaXRpb24oKTp2b2lkewoJCSRvID0gbmV3IFFST3B0aW9uczsKCQkkby0+dmVyc2lvbiAgICAgICA9IDEwOwoJCSRvLT5lY2NMZXZlbCAgICAgID0gUVJDb2RlOjpFQ0NfSDsKCQkkby0+YWRkUXVpZXR6b25lICA9IHRydWU7CgkJJG8tPnF1aWV0em9uZVNpemUgPSAxMDsKCgkJJG0gPSAobmV3IFFSQ29kZSgkbykpLT5nZXRNYXRyaXgoJ3Rlc3RkYXRhJyk7CgoJCS8vIGxvZ28gc3BhY2Ugc2hvdWxkIG5vdCBvdmVyd3JpdGUgcXVpZXQgem9uZSAmIGZ1bmN0aW9uIHBhdHRlcm5zCgkJJG0tPnNldExvZ29TcGFjZSgyMSwgMjEsIC0xMCwgLTEwKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9RVUlFVFpPTkUsICRtLT5nZXQoOSwgOSkpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX0ZJTkRFUiA8PCA4LCAkbS0+Z2V0KDEwLCAxMCkpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX0ZJTkRFUiA8PCA4LCAkbS0+Z2V0KDE2LCAxNikpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX1NFUEFSQVRPUiwgJG0tPmdldCgxNywgMTcpKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9GT1JNQVQgPDwgOCwgJG0tPmdldCgxOCwgMTgpKTsKCQkkdGhpczo6YXNzZXJ0U2FtZShRUk1hdHJpeDo6TV9MT0dPLCAkbS0+Z2V0KDE5LCAxOSkpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX0xPR08sICRtLT5nZXQoMjAsIDIwKSk7CgkJJHRoaXM6OmFzc2VydE5vdFNhbWUoUVJNYXRyaXg6Ok1fTE9HTywgJG0tPmdldCgyMSwgMjEpKTsKCgkJLy8gaSBqdXN0IHJlYWxpemVkIHRoYXQgc2V0TG9nb1NwYWNlKCkgY291bGQgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzCgkJLy8gb24gdGhlIHNhbWUgaW5zdGFuY2UgYW5kIGknbSBub3QgZ29pbmcgdG8gZG8gYW55dGhpbmcgYWJvdXQgaXQgOlAKCQkkbS0+c2V0TG9nb1NwYWNlKDIxLCAyMSwgNDUsIDQ1KTsKCQkkdGhpczo6YXNzZXJ0Tm90U2FtZShRUk1hdHJpeDo6TV9MT0dPLCAkbS0+Z2V0KDU0LCA1NCkpOwoJCSR0aGlzOjphc3NlcnRTYW1lKFFSTWF0cml4OjpNX0xPR08sICRtLT5nZXQoNTUsIDU1KSk7CgkJJHRoaXM6OmFzc2VydFNhbWUoUVJNYXRyaXg6Ok1fUVVJRVRaT05FLCAkbS0+Z2V0KDY3LCA2NykpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0TG9nb1NwYWNlSW52YWxpZEVjY0V4Y2VwdGlvbigpOnZvaWR7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihRUkNvZGVEYXRhRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ0VDQyBsZXZlbCAiSCIgcmVxdWlyZWQgdG8gYWRkIGxvZ28gc3BhY2UnKTsKCgkJKG5ldyBRUkNvZGUpLT5nZXRNYXRyaXgoJ3Rlc3RkYXRhJyktPnNldExvZ29TcGFjZSg1MCwgNTApOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0TG9nb1NwYWNlTWF4U2l6ZUV4Y2VwdGlvbigpOnZvaWR7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihRUkNvZGVEYXRhRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ2xvZ28gc3BhY2UgZXhjZWVkcyB0aGUgbWF4aW11bSBlcnJvciBjb3JyZWN0aW9uIGNhcGFjaXR5Jyk7CgoJCSRvID0gbmV3IFFST3B0aW9uczsKCQkkby0+dmVyc2lvbiAgPSA1OwoJCSRvLT5lY2NMZXZlbCA9IFFSQ29kZTo6RUNDX0g7CgoJCShuZXcgUVJDb2RlKCRvKSktPmdldE1hdHJpeCgndGVzdGRhdGEnKS0+c2V0TG9nb1NwYWNlKDUwLCA1MCk7Cgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6Mjc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGEiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJEYXRhIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6NDA6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiUVJNYXRyaXhUZXN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMzoiVGVzdHMgdGhlIFFSTWF0aXggY2xhc3MiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjY6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTo2OntzOjY6IlFSQ29kZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlIjtzOjk6IlFST3B0aW9ucyI7czoyNzoiY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjE5OiJRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjQyOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24iO3M6ODoiUVJNYXRyaXgiO3M6MzE6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6ODoiVGVzdENhc2UiO3M6MjY6IlBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlIjtzOjE1OiJSZWZsZWN0aW9uQ2xhc3MiO3M6MTU6IlJlZmxlY3Rpb25DbGFzcyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlRlc3RDYXNlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MTp7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dmVyc2lvbiI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dmVyc2lvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InZlcnNpb24iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjI6IjQwIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToxOntzOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0OjokbWF0cml4IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0OjokbWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoibWF0cml4Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlFSTWF0cml4Ijt9fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MjQ6e3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnNldFVwKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI1OiJpbnZva2VzIGEgUVJNYXRyaXggb2JqZWN0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0OjpzZXRVcCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToic2V0VXAiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjUzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0OjpnZXRNYXRyaXgoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6ODoic2hvcnRjdXQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OmdldE1hdHJpeCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiZ2V0TWF0cml4Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6InZlcnNpb24iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fX19czo1NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdEluc3RhbmNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMxOiJWYWxpZGF0ZXMgdGhlIFFSTWF0cml4IGluc3RhbmNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RJbnN0YW5jZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6InRlc3RJbnN0YW5jZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NzE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RJbnZhbGlkVmVyc2lvbkV4Y2VwdGlvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2ODoiVGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGFuIGludmFsaWQgUVIgdmVyc2lvbiB3YXMgZ2l2ZW4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdEludmFsaWRWZXJzaW9uRXhjZXB0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNzoidGVzdEludmFsaWRWZXJzaW9uRXhjZXB0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2NzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdEludmFsaWRFY2NFeGNlcHRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njc6IlRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhbiBpbnZhbGlkIEVDQyBsZXZlbCB3YXMgZ2l2ZW4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdEludmFsaWRFY2NFeGNlcHRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIzOiJ0ZXN0SW52YWxpZEVjY0V4Y2VwdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RTaXplKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjUyOiJUZXN0cyBpZiBzaXplKCkgcmV0dXJucyB0aGUgYWN0dWFsIG1hdHJpeCBzaXplL2NvdW50IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RTaXplKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0ZXN0U2l6ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RWZXJzaW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU0OiJUZXN0cyBpZiB2ZXJzaW9uKCkgcmV0dXJucyB0aGUgY3VycmVudCAoZ2l2ZW4pIHZlcnNpb24iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFZlcnNpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJ0ZXN0VmVyc2lvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RFQ0MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTc6IlRlc3RzIGlmIGVjY0xldmVsKCkgcmV0dXJucyB0aGUgY3VycmVudCAoZ2l2ZW4pIEVDQyBsZXZlbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjkwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0RUNDKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJ0ZXN0RUNDIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjkzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo1OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdE1hc2tQYXR0ZXJuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjY4OiJUZXN0cyBpZiBtYXNrUGF0dGVybigpIHJldHVybnMgdGhlIGN1cnJlbnQgKG9yIGRlZmF1bHQpIG1hc2sgcGF0dGVybiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0TWFza1BhdHRlcm4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJ0ZXN0TWFza1BhdHRlcm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo1OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdEdldFNldENoZWNrKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQyOiJUZXN0cyB0aGUgc2V0KCksIGdldCgpIGFuZCBjaGVjaygpIG1ldGhvZHMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RHZXRTZXRDaGVjaygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6InRlc3RHZXRTZXRDaGVjayI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp2ZXJzaW9uUHJvdmlkZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDc6IlZlcnNpb24gZGF0YSBwcm92aWRlciBmb3Igc2V2ZXJhbCBwYXR0ZXJuIHRlc3RzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dmVyc2lvblByb3ZpZGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToidmVyc2lvblByb3ZpZGVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NjE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RTZXREYXJrTW9kdWxlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU1OiJUZXN0cyBzZXR0aW5nIHRoZSBkYXJrIG1vZHVsZSBhbmQgdmVyaWZpZXMgaXRzIHBvc2l0aW9uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU6InZlcnNpb25Qcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTM1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjYxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0RGFya01vZHVsZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6InRlc3RTZXREYXJrTW9kdWxlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6InZlcnNpb24iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2NDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldEZpbmRlclBhdHRlcm4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NjI6IlRlc3RzIHNldHRpbmcgdGhlIGZpbmRlciBwYXR0ZXJucyBhbmQgdmVyaWZpZXMgdGhlaXIgcG9zaXRpb25zIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU6InZlcnNpb25Qcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQ2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0RmluZGVyUGF0dGVybigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6InRlc3RTZXRGaW5kZXJQYXR0ZXJuIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6InZlcnNpb24iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTUxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldFNlcGFyYXRvcnMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTc6IlRlc3RzIHRoZSBzZXBhcmF0b3IgcGF0dGVybnMgYW5kIHZlcmlmaWVzIHRoZWlyIHBvc2l0aW9ucyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJkYXRhUHJvdmlkZXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE1OiJ2ZXJzaW9uUHJvdmlkZXIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE1OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldFNlcGFyYXRvcnMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJ0ZXN0U2V0U2VwYXJhdG9ycyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJ2ZXJzaW9uIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE2NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6Njc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RTZXRBbGlnbm1lbnRQYXR0ZXJuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjkwOiJUZXN0cyB0aGUgYWxpZ25tZW50IHBhdHRlcm5zIGFuZCB2ZXJpZmllcyB0aGVpciBwb3NpdGlvbnMgLSB2ZXJzaW9uIDEgKG5vIHBhdHRlcm4pIHNraXBwZWQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMjoiZGF0YVByb3ZpZGVyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNToidmVyc2lvblByb3ZpZGVyIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RTZXRBbGlnbm1lbnRQYXR0ZXJuKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMzoidGVzdFNldEFsaWdubWVudFBhdHRlcm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoidmVyc2lvbiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjY0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0VGltaW5nUGF0dGVybigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NDoiVGVzdHMgdGhlIHRpbWluZyBwYXR0ZXJucyBhbmQgdmVyaWZpZXMgdGhlaXIgcG9zaXRpb25zIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU6InZlcnNpb25Qcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0VGltaW5nUGF0dGVybigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6InRlc3RTZXRUaW1pbmdQYXR0ZXJuIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6InZlcnNpb24iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjE0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2NDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldFZlcnNpb25OdW1iZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Nzc6IlRlc3RzIHRoZSB2ZXJzaW9uIHBhdHRlcm5zIGFuZCB2ZXJpZmllcyB0aGVpciBwb3NpdGlvbnMgLSB2ZXJzaW9uIDwgNyBza2lwcGVkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU6InZlcnNpb25Qcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjM5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0VmVyc2lvbk51bWJlcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6InRlc3RTZXRWZXJzaW9uTnVtYmVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6InZlcnNpb24iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQ0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldEZvcm1hdEluZm8oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTQ6IlRlc3RzIHRoZSBmb3JtYXQgcGF0dGVybnMgYW5kIHZlcmlmaWVzIHRoZWlyIHBvc2l0aW9ucyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJkYXRhUHJvdmlkZXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE1OiJ2ZXJzaW9uUHJvdmlkZXIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldEZvcm1hdEluZm8oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJ0ZXN0U2V0Rm9ybWF0SW5mbyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJ2ZXJzaW9uIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NjA6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RTZXRRdWlldFpvbmUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTQ6IlRlc3RzIHRoZSBxdWlldCB6b25lIHBhdHRlcm4gYW5kIHZlcmlmaWVzIGl0cyBwb3NpdGlvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJkYXRhUHJvdmlkZXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE1OiJ2ZXJzaW9uUHJvdmlkZXIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldFF1aWV0Wm9uZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6InRlc3RTZXRRdWlldFpvbmUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoidmVyc2lvbiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjY5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0UXVpZXRab25lRXhjZXB0aW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjgyOiJUZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIGluIGFuIGF0dGVtcHQgdG8gY3JlYXRlIGl0IGJlZm9yZSBkYXRhIHdhcyB3cml0dGVuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzAyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0UXVpZXRab25lRXhjZXB0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNToidGVzdFNldFF1aWV0Wm9uZUV4Y2VwdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjcxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0TG9nb1NwYWNlT3JpZW50YXRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldExvZ29TcGFjZU9yaWVudGF0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNzoidGVzdFNldExvZ29TcGFjZU9yaWVudGF0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6Njg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxRUk1hdHJpeFRlc3Q6OnRlc3RTZXRMb2dvU3BhY2VQb3NpdGlvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0TG9nb1NwYWNlUG9zaXRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI0OiJ0ZXN0U2V0TG9nb1NwYWNlUG9zaXRpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo3OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldExvZ29TcGFjZUludmFsaWRFY2NFeGNlcHRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXFFSTWF0cml4VGVzdDo6dGVzdFNldExvZ29TcGFjZUludmFsaWRFY2NFeGNlcHRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM1OiJ0ZXN0U2V0TG9nb1NwYWNlSW52YWxpZEVjY0V4Y2VwdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjc2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0TG9nb1NwYWNlTWF4U2l6ZUV4Y2VwdGlvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcUVJNYXRyaXhUZXN0Ojp0ZXN0U2V0TG9nb1NwYWNlTWF4U2l6ZUV4Y2VwdGlvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzI6InRlc3RTZXRMb2dvU3BhY2VNYXhTaXplRXhjZXB0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM2NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/2/Q/lDC7VJFLVwb+qSBfsrlA b/files/2/Q/lDC7VJFLVwb+qSBfsrlA deleted file mode 100644 index 17179bd44..000000000 --- a/files/2/Q/lDC7VJFLVwb+qSBfsrlA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A818aad68a0071bd9554b3a113878be07-b6f4278d22a35cb3f14880ec3c0fc84a -s:53952:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjI6IkNsYXNzIFFST3V0cHV0QWJzdHJhY3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjA6IlFST3V0cHV0QWJzdHJhY3QucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMDkuMTIuMjAxNSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjQ6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYjZmNDI3OGQyMmEzNWNiM2YxNDg4MGVjM2MwZmM4NGEiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoyMDoiUVJPdXRwdXRBYnN0cmFjdC5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czozMToic3JjL091dHB1dC9RUk91dHB1dEFic3RyYWN0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MzA3MToiPD9waHAKLyoqCiAqIENsYXNzIFFST3V0cHV0QWJzdHJhY3QKICoKICogQGZpbGVzb3VyY2UgICBRUk91dHB1dEFic3RyYWN0LnBocAogKiBAY3JlYXRlZCAgICAgIDA5LjEyLjIwMTUKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQ7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVce0RhdGFcUVJNYXRyaXgsIFFSQ29kZX07CnVzZSBjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlOwoKdXNlIGZ1bmN0aW9uIGNhbGxfdXNlcl9mdW5jX2FycmF5LCBkaXJuYW1lLCBmaWxlX3B1dF9jb250ZW50cywgZ2V0X2NhbGxlZF9jbGFzcywgaW5fYXJyYXksIGlzX3dyaXRhYmxlLCBzcHJpbnRmOwoKLyoqCiAqIGNvbW1vbiBvdXRwdXQgYWJzdHJhY3QKICovCmFic3RyYWN0IGNsYXNzIFFST3V0cHV0QWJzdHJhY3QgaW1wbGVtZW50cyBRUk91dHB1dEludGVyZmFjZXsKCgkvKioKCSAqIHRoZSBjdXJyZW50IHNpemUgb2YgdGhlIFFSIG1hdHJpeAoJICoKCSAqIEBzZWUgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnNpemUoKQoJICovCglwcm90ZWN0ZWQgaW50ICRtb2R1bGVDb3VudDsKCgkvKioKCSAqIHRoZSBjdXJyZW50IG91dHB1dCBtb2RlCgkgKgoJICogQHNlZSBcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zOjokb3V0cHV0VHlwZQoJICovCglwcm90ZWN0ZWQgc3RyaW5nICRvdXRwdXRNb2RlOwoKCS8qKgoJICogdGhlIGRlZmF1bHQgb3V0cHV0IG1vZGUgb2YgdGhlIGN1cnJlbnQgb3V0cHV0IG1vZHVsZQoJICovCglwcm90ZWN0ZWQgc3RyaW5nICRkZWZhdWx0TW9kZTsKCgkvKioKCSAqIHRoZSBjdXJyZW50IHNjYWxpbmcgZm9yIGEgUVIgcGl4ZWwKCSAqCgkgKiBAc2VlIFxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnM6OiRzY2FsZQoJICovCglwcm90ZWN0ZWQgaW50ICRzY2FsZTsKCgkvKioKCSAqIHRoZSBzaWRlIGxlbmd0aCBvZiB0aGUgUVIgaW1hZ2UgKG1vZHVsZXMgKiBzY2FsZSkKCSAqLwoJcHJvdGVjdGVkIGludCAkbGVuZ3RoOwoKCS8qKgoJICogYW4gKG9wdGlvbmFsKSBhcnJheSBvZiBjb2xvciB2YWx1ZXMgZm9yIHRoZSBzZXZlcmFsIFFSIG1hdHJpeCBwYXJ0cwoJICovCglwcm90ZWN0ZWQgYXJyYXkgJG1vZHVsZVZhbHVlczsKCgkvKioKCSAqIHRoZSAoZmlsbGVkKSBkYXRhIG1hdHJpeCBvYmplY3QKCSAqLwoJcHJvdGVjdGVkIFFSTWF0cml4ICRtYXRyaXg7CgoJLyoqCgkgKiBAdmFyIFxjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlfFxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMKCSAqLwoJcHJvdGVjdGVkIFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlICRvcHRpb25zOwoKCS8qKgoJICogUVJPdXRwdXRBYnN0cmFjdCBjb25zdHJ1Y3Rvci4KCSAqLwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlICRvcHRpb25zLCBRUk1hdHJpeCAkbWF0cml4KXsKCQkkdGhpcy0+b3B0aW9ucyAgICAgPSAkb3B0aW9uczsKCQkkdGhpcy0+bWF0cml4ICAgICAgPSAkbWF0cml4OwoJCSR0aGlzLT5tb2R1bGVDb3VudCA9ICR0aGlzLT5tYXRyaXgtPnNpemUoKTsKCQkkdGhpcy0+c2NhbGUgICAgICAgPSAkdGhpcy0+b3B0aW9ucy0+c2NhbGU7CgkJJHRoaXMtPmxlbmd0aCAgICAgID0gJHRoaXMtPm1vZHVsZUNvdW50ICogJHRoaXMtPnNjYWxlOwoKCQkkY2xhc3MgPSBnZXRfY2FsbGVkX2NsYXNzKCk7CgoJCWlmKGlzc2V0KFFSQ29kZTo6T1VUUFVUX01PREVTWyRjbGFzc10pICYmIGluX2FycmF5KCR0aGlzLT5vcHRpb25zLT5vdXRwdXRUeXBlLCBRUkNvZGU6Ok9VVFBVVF9NT0RFU1skY2xhc3NdKSl7CgkJCSR0aGlzLT5vdXRwdXRNb2RlID0gJHRoaXMtPm9wdGlvbnMtPm91dHB1dFR5cGU7CgkJfQoKCQkkdGhpcy0+c2V0TW9kdWxlVmFsdWVzKCk7Cgl9CgoJLyoqCgkgKiBTZXRzIHRoZSBpbml0aWFsIG1vZHVsZSB2YWx1ZXMgKGNsZWFuLXVwICYgZGVmYXVsdHMpCgkgKi8KCWFic3RyYWN0IHByb3RlY3RlZCBmdW5jdGlvbiBzZXRNb2R1bGVWYWx1ZXMoKTp2b2lkOwoKCS8qKgoJICogc2F2ZXMgdGhlIHFyIGRhdGEgdG8gYSBmaWxlCgkgKgoJICogQHNlZSBmaWxlX3B1dF9jb250ZW50cygpCgkgKiBAc2VlIFxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnM6OmNhY2hlZmlsZQoJICoKCSAqIEB0aHJvd3MgXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkNvZGVPdXRwdXRFeGNlcHRpb24KCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVUb0ZpbGUoc3RyaW5nICRkYXRhLCBzdHJpbmcgJGZpbGUpOmJvb2x7CgoJCWlmKCFpc193cml0YWJsZShkaXJuYW1lKCRmaWxlKSkpewoJCQl0aHJvdyBuZXcgUVJDb2RlT3V0cHV0RXhjZXB0aW9uKHNwcmludGYoJ0NvdWxkIG5vdCB3cml0ZSBkYXRhIHRvIGNhY2hlIGZpbGU6ICVzJywgJGZpbGUpKTsKCQl9CgoJCXJldHVybiAoYm9vbClmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJGRhdGEpOwoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGR1bXAoc3RyaW5nICRmaWxlID0gbnVsbCl7CgkJJGZpbGUgPz89ICR0aGlzLT5vcHRpb25zLT5jYWNoZWZpbGU7CgoJCS8vIGNhbGwgdGhlIGJ1aWx0LWluIG91dHB1dCBtZXRob2Qgd2l0aCB0aGUgb3B0aW9uYWwgZmlsZSBwYXRoIGFzIHBhcmFtZXRlcgoJCS8vIHRvIG1ha2UgdGhlIGNhbGxlZCBtZXRob2QgYXdhcmUgaWYgYSBjYWNoZSBmaWxlIHdhcyBnaXZlbgoJCSRkYXRhID0gY2FsbF91c2VyX2Z1bmNfYXJyYXkoWyR0aGlzLCAkdGhpcy0+b3V0cHV0TW9kZSA/PyAkdGhpcy0+ZGVmYXVsdE1vZGVdLCBbJGZpbGVdKTsKCgkJaWYoJGZpbGUgIT09IG51bGwpewoJCQkkdGhpcy0+c2F2ZVRvRmlsZSgkZGF0YSwgJGZpbGUpOwoJCX0KCgkJcmV0dXJuICRkYXRhOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI1OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjU6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJPdXRwdXQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiUVJPdXRwdXRBYnN0cmFjdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjI6ImNvbW1vbiBvdXRwdXQgYWJzdHJhY3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjQ6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6Mzp7czo4OiJRUk1hdHJpeCI7czozMToiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7czo2OiJRUkNvZGUiO3M6MjQ6ImNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZSI7czoyNjoiU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6NDY6ImNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjE7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YToxOntzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0SW50ZXJmYWNlIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiUVJPdXRwdXRJbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6ODp7czo1NjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0OjokbW9kdWxlQ291bnQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTY6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRBYnN0cmFjdDo6JG1vZHVsZUNvdW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Im1vZHVsZUNvdW50Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMzOiJ0aGUgY3VycmVudCBzaXplIG9mIHRoZSBRUiBtYXRyaXgiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2l6ZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoic2l6ZSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1NToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0Ojokb3V0cHV0TW9kZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0Ojokb3V0cHV0TW9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJvdXRwdXRNb2RlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIzOiJ0aGUgY3VycmVudCBvdXRwdXQgbW9kZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnM6OiRvdXRwdXRUeXBlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Im91dHB1dFR5cGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NTY6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRBYnN0cmFjdDo6JGRlZmF1bHRNb2RlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU2OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3Q6OiRkZWZhdWx0TW9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJkZWZhdWx0TW9kZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MjoidGhlIGRlZmF1bHQgb3V0cHV0IG1vZGUgb2YgdGhlIGN1cnJlbnQgb3V0cHV0IG1vZHVsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3Q6OiRzY2FsZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0Ojokc2NhbGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJzY2FsZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNDoidGhlIGN1cnJlbnQgc2NhbGluZyBmb3IgYSBRUiBwaXhlbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzY6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnM6OiRzY2FsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InNjYWxlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3Q6OiRsZW5ndGgiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRBYnN0cmFjdDo6JGxlbmd0aCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6Imxlbmd0aCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0OToidGhlIHNpZGUgbGVuZ3RoIG9mIHRoZSBRUiBpbWFnZSAobW9kdWxlcyAqIHNjYWxlKSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjU3OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3Q6OiRtb2R1bGVWYWx1ZXMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTc6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRBYnN0cmFjdDo6JG1vZHVsZVZhbHVlcyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJtb2R1bGVWYWx1ZXMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njc6ImFuIChvcHRpb25hbCkgYXJyYXkgb2YgY29sb3IgdmFsdWVzIGZvciB0aGUgc2V2ZXJhbCBRUiBtYXRyaXggcGFydHMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRBYnN0cmFjdDo6JG1hdHJpeCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0OjokbWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoibWF0cml4Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMxOiJ0aGUgKGZpbGxlZCkgZGF0YSBtYXRyaXggb2JqZWN0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fX19czo1MjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0Ojokb3B0aW9ucyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0Ojokb3B0aW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6Im9wdGlvbnMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxTZXR0aW5nc1xTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI2OiJTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSI7fX1pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiUVJPcHRpb25zIjt9fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjY6IlNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjt9fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6NDp7czo1NzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0OjpfX2NvbnN0cnVjdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyOToiUVJPdXRwdXRBYnN0cmFjdCBjb25zdHJ1Y3Rvci4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0OjpfX2NvbnN0cnVjdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Il9fY29uc3RydWN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6Im9wdGlvbnMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNjoiU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoibWF0cml4IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319czo2MToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0OjpzZXRNb2R1bGVWYWx1ZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTI6IlNldHMgdGhlIGluaXRpYWwgbW9kdWxlIHZhbHVlcyAoY2xlYW4tdXAgJiBkZWZhdWx0cykiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0OjpzZXRNb2R1bGVWYWx1ZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJzZXRNb2R1bGVWYWx1ZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MTtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjU2OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3Q6OnNhdmVUb0ZpbGUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjc6InNhdmVzIHRoZSBxciBkYXRhIHRvIGEgZmlsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcZmlsZV9wdXRfY29udGVudHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJmaWxlX3B1dF9jb250ZW50cyI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zOjpjYWNoZWZpbGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJjYWNoZWZpbGUiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSQ29kZU91dHB1dEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIxOiJRUkNvZGVPdXRwdXRFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0OjpzYXZlVG9GaWxlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoic2F2ZVRvRmlsZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJkYXRhIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fX1zOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3Q6OmR1bXAoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0OjpkdW1wKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJkdW1wIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/4/O/vavAT3oJW06hdfAuzWIQ b/files/4/O/vavAT3oJW06hdfAuzWIQ deleted file mode 100644 index 50644fd74..000000000 --- a/files/4/O/vavAT3oJW06hdfAuzWIQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ad3b407fc3811ef470d3585d96693e51c-49cfe6cf690a9aa3bd89bb9b3d4d0900 -s:20760:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTQ6IkNsYXNzIEJ5dGVUZXN0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyOiJCeXRlVGVzdC5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIyNC4xMS4yMDE3IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNjoiY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGEiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6NjoiU21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTcgU21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjQ5Y2ZlNmNmNjkwYTlhYTNiZDg5YmI5YjNkNGQwOTAwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MTI6IkJ5dGVUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjIzOiJ0ZXN0cy9EYXRhL0J5dGVUZXN0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTIzMDoiPD9waHAKLyoqCiAqIENsYXNzIEJ5dGVUZXN0CiAqCiAqIEBmaWxlc291cmNlICAgQnl0ZVRlc3QucGhwCiAqIEBjcmVhdGVkICAgICAgMjQuMTEuMjAxNwogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGE7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxCeXRlOwp1c2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2U7CnVzZSBjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnM7CgovKioKICogVGVzdHMgdGhlIEJ5dGUgY2xhc3MKICovCmZpbmFsIGNsYXNzIEJ5dGVUZXN0IGV4dGVuZHMgRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdHsKCgkvKiogQGludGVybmFsICovCglwcm90ZWN0ZWQgc3RyaW5nICR0ZXN0ZGF0YSA9ICdbwq9cXyjjg4QpXy/Cr10nOwoKCS8qKiBAaW50ZXJuYWwgKi8KCXByb3RlY3RlZCBhcnJheSAgJGV4cGVjdGVkID0gWwoJCTY0LCAyNDUsIDE4OCwgNDIsIDI0NSwgMTk3LCAyNDIsIDE0MiwKCQk1NiwgNTYsIDY2LCAxNDksIDI0MiwgMjUyLCA0MiwgMjQ1LAoJCTIwOCwgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJNzksIDg5LCAyMjYsIDQ4LCAyMDksIDg5LCAxNTEsIDEsCgkJMTIsIDczLCA0MiwgMTYzLCAxMSwgMzQsIDI1NSwgMjA1LAoJCTIxLCA0NywgMjUwLCAxMDEKCV07CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICogQGludGVybmFsCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXREYXRhSW50ZXJmYWNlSW5zdGFuY2UoUVJPcHRpb25zICRvcHRpb25zKTpRUkRhdGFJbnRlcmZhY2V7CgkJcmV0dXJuIG5ldyBCeXRlKCRvcHRpb25zKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyNzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IkRhdGEiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozNjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXEJ5dGVUZXN0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcQnl0ZVRlc3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJCeXRlVGVzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjA6IlRlc3RzIHRoZSBCeXRlIGNsYXNzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI2OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6Mzp7czo0OiJCeXRlIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEJ5dGUiO3M6MTU6IlFSRGF0YUludGVyZmFjZSI7czozODoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2UiO3M6OToiUVJPcHRpb25zIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI1OiJEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjI6e3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxCeXRlVGVzdDo6JHRlc3RkYXRhIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcQnl0ZVRlc3Q6OiR0ZXN0ZGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InRlc3RkYXRhIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoxODoiJ1vCr1xcXyjjg4QpXy/Cr10nIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXEJ5dGVUZXN0OjokZXhwZWN0ZWQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxCeXRlVGVzdDo6JGV4cGVjdGVkIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiZXhwZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ1MDoiWzY0LCAyNDUsIDE4OCwgNDIsIDI0NSwgMTk3LCAyNDIsIDE0MiwgNTYsIDU2LCA2NiwgMTQ5LCAyNDIsIDI1MiwgNDIsIDI0NSwgMjA4LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDc5LCA4OSwgMjI2LCA0OCwgMjA5LCA4OSwgMTUxLCAxLCAxMiwgNzMsIDQyLCAxNjMsIDExLCAzNCwgMjU1LCAyMDUsIDIxLCA0NywgMjUwLCAxMDFdIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YToxOntzOjY0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcQnl0ZVRlc3Q6OmdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcQnl0ZVRlc3Q6OmdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6ImdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJvcHRpb25zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJRUk9wdGlvbnMiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlFSRGF0YUludGVyZmFjZSI7fX19fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/4/Y/ev6+w23CwMcug9nLaXEQ b/files/4/Y/ev6+w23CwMcug9nLaXEQ deleted file mode 100644 index 3f24afaa3..000000000 --- a/files/4/Y/ev6+w23CwMcug9nLaXEQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A2759f30a0c3ac842ba1fbfad5040960d-3c68cd2e1862c8c73dc4f65e8ec9d19a -s:27304:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTQ6IkNsYXNzIFFSTWFya3VwIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyOiJRUk1hcmt1cC5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIxNy4xMi4yMDE2IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE2IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiIzYzY4Y2QyZTE4NjJjOGM3M2RjNGY2NWU4ZWM5ZDE5YSI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEyOiJRUk1hcmt1cC5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czoyMzoic3JjL091dHB1dC9RUk1hcmt1cC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjM2MzI6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUk1hcmt1cAogKgogKiBAZmlsZXNvdXJjZSAgIFFSTWFya3VwLnBocAogKiBAY3JlYXRlZCAgICAgIDE3LjEyLjIwMTYKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE2IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQ7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOwoKdXNlIGZ1bmN0aW9uIGlzX3N0cmluZywgc3ByaW50Ziwgc3RyaXBfdGFncywgdHJpbTsKCi8qKgogKiBDb252ZXJ0cyB0aGUgbWF0cml4IGludG8gbWFya3VwIHR5cGVzOiBIVE1MLCBTVkcsIC4uLgogKi8KY2xhc3MgUVJNYXJrdXAgZXh0ZW5kcyBRUk91dHB1dEFic3RyYWN0ewoKCXByb3RlY3RlZCBzdHJpbmcgJGRlZmF1bHRNb2RlID0gUVJDb2RlOjpPVVRQVVRfTUFSS1VQX1NWRzsKCgkvKioKCSAqIEBzZWUgXHNwcmludGYoKQoJICovCglwcm90ZWN0ZWQgc3RyaW5nICRzdmdIZWFkZXIgPSAnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJxci1zdmcgJTEkcyIgJy4KCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdHlsZT0id2lkdGg6IDEwMCUlOyBoZWlnaHQ6IGF1dG87IiB2aWV3Qm94PSIwIDAgJTIkZCAlMiRkIj4nOwoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNldE1vZHVsZVZhbHVlcygpOnZvaWR7CgoJCWZvcmVhY2goJHRoaXM6OkRFRkFVTFRfTU9EVUxFX1ZBTFVFUyBhcyAkTV9UWVBFID0+ICRkZWZhdWx0VmFsdWUpewoJCQkkdiA9ICR0aGlzLT5vcHRpb25zLT5tb2R1bGVWYWx1ZXNbJE1fVFlQRV0gPz8gbnVsbDsKCgkJCWlmKCFpc19zdHJpbmcoJHYpKXsKCQkJCSR0aGlzLT5tb2R1bGVWYWx1ZXNbJE1fVFlQRV0gPSAkZGVmYXVsdFZhbHVlCgkJCQkJPyAkdGhpcy0+b3B0aW9ucy0+bWFya3VwRGFyawoJCQkJCTogJHRoaXMtPm9wdGlvbnMtPm1hcmt1cExpZ2h0OwoJCQl9CgkJCWVsc2V7CgkJCQkkdGhpcy0+bW9kdWxlVmFsdWVzWyRNX1RZUEVdID0gdHJpbShzdHJpcF90YWdzKCR2KSwgJ1wnIicpOwoJCQl9CgoJCX0KCgl9CgoJLyoqCgkgKiBIVE1MIG91dHB1dAoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gaHRtbChzdHJpbmcgJGZpbGUgPSBudWxsKTpzdHJpbmd7CgoJCSRodG1sID0gZW1wdHkoJHRoaXMtPm9wdGlvbnMtPmNzc0NsYXNzKQoJCQk/ICc8ZGl2PicKCQkJOiAnPGRpdiBjbGFzcz0iJy4kdGhpcy0+b3B0aW9ucy0+Y3NzQ2xhc3MuJyI+JzsKCgkJJGh0bWwgLj0gJHRoaXMtPm9wdGlvbnMtPmVvbDsKCgkJZm9yZWFjaCgkdGhpcy0+bWF0cml4LT5tYXRyaXgoKSBhcyAkcm93KXsKCQkJJGh0bWwgLj0gJzxkaXY+JzsKCgkJCWZvcmVhY2goJHJvdyBhcyAkTV9UWVBFKXsKCQkJCSRodG1sIC49ICc8c3BhbiBzdHlsZT0iYmFja2dyb3VuZDogJy4kdGhpcy0+bW9kdWxlVmFsdWVzWyRNX1RZUEVdLic7Ij48L3NwYW4+JzsKCQkJfQoKCQkJJGh0bWwgLj0gJzwvZGl2PicuJHRoaXMtPm9wdGlvbnMtPmVvbDsKCQl9CgoJCSRodG1sIC49ICc8L2Rpdj4nLiR0aGlzLT5vcHRpb25zLT5lb2w7CgoJCWlmKCRmaWxlICE9PSBudWxsKXsKCQkJcmV0dXJuICc8IURPQ1RZUEUgaHRtbD4nLgoJCQkgICAgICAgJzxoZWFkPjxtZXRhIGNoYXJzZXQ9IlVURi04Ij48dGl0bGU+UVIgQ29kZTwvdGl0bGU+PC9oZWFkPicuCgkJCSAgICAgICAnPGJvZHk+Jy4kdGhpcy0+b3B0aW9ucy0+ZW9sLiRodG1sLic8L2JvZHk+JzsKCQl9CgoJCXJldHVybiAkaHRtbDsKCX0KCgkvKioKCSAqIFNWRyBvdXRwdXQKCSAqCgkgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RlbWFzaGVyL3BocC1xcmNvZGUvcHVsbC81CgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzdmcoc3RyaW5nICRmaWxlID0gbnVsbCk6c3RyaW5newoJCSRtYXRyaXggPSAkdGhpcy0+bWF0cml4LT5tYXRyaXgoKTsKCgkJJHN2ZyA9IHNwcmludGYoJHRoaXMtPnN2Z0hlYWRlciwgJHRoaXMtPm9wdGlvbnMtPmNzc0NsYXNzLCAkdGhpcy0+b3B0aW9ucy0+c3ZnVmlld0JveFNpemUgPz8gJHRoaXMtPm1vZHVsZUNvdW50KQoJCSAgICAgICAuJHRoaXMtPm9wdGlvbnMtPmVvbAoJCSAgICAgICAuJzxkZWZzPicuJHRoaXMtPm9wdGlvbnMtPnN2Z0RlZnMuJzwvZGVmcz4nCgkJICAgICAgIC4kdGhpcy0+b3B0aW9ucy0+ZW9sOwoKCQlmb3JlYWNoKCR0aGlzLT5tb2R1bGVWYWx1ZXMgYXMgJE1fVFlQRSA9PiAkdmFsdWUpewoJCQkkcGF0aCA9ICcnOwoKCQkJZm9yZWFjaCgkbWF0cml4IGFzICR5ID0+ICRyb3cpewoJCQkJLy93ZSdsbCBjb21iaW5lIGFjdGl2ZSBibG9ja3Mgd2l0aGluIGEgc2luZ2xlIHJvdyBhcyBhIGxpZ2h0d2VpZ2h0IGNvbXByZXNzaW9uIHRlY2huaXF1ZQoJCQkJJHN0YXJ0ID0gbnVsbDsKCQkJCSRjb3VudCA9IDA7CgoJCQkJZm9yZWFjaCgkcm93IGFzICR4ID0+ICRtb2R1bGUpewoKCQkJCQlpZigkbW9kdWxlID09PSAkTV9UWVBFKXsKCQkJCQkJJGNvdW50Kys7CgoJCQkJCQlpZigkc3RhcnQgPT09IG51bGwpewoJCQkJCQkJJHN0YXJ0ID0gJHg7CgkJCQkJCX0KCgkJCQkJCWlmKGlzc2V0KCRyb3dbJHggKyAxXSkpewoJCQkJCQkJY29udGludWU7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCWlmKCRjb3VudCA+IDApewoJCQkJCQkkbGVuICAgPSAkY291bnQ7CgkJCQkJCSRzdGFydCA/Pz0gMDsgLy8gYXZvaWQgdHlwZSBjb2VyY2lvbiBpbiBzcHJpbnRmKCkgLSBwaGFuIGhhcHB5CgoJCQkJCQkkcGF0aCAuPSBzcHJpbnRmKCdNJXMgJXMgaCVzIHYxIGgtJXNaICcsICRzdGFydCwgJHksICRsZW4sICRsZW4pOwoKCQkJCQkJLy8gcmVzZXQgY291bnQKCQkJCQkJJGNvdW50ID0gMDsKCQkJCQkJJHN0YXJ0ID0gbnVsbDsKCQkJCQl9CgoJCQkJfQoKCQkJfQoKCQkJaWYoIWVtcHR5KCRwYXRoKSl7CgkJCQkkc3ZnIC49IHNwcmludGYoCgkJCQkJJzxwYXRoIGNsYXNzPSJxci0lcyAlcyIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgZmlsbD0iJXMiIGZpbGwtb3BhY2l0eT0iJXMiIGQ9IiVzIiAvPicsCgkJCQkJJE1fVFlQRSwgJHRoaXMtPm9wdGlvbnMtPmNzc0NsYXNzLCAkdmFsdWUsICR0aGlzLT5vcHRpb25zLT5zdmdPcGFjaXR5LCAkcGF0aAoJCQkJKTsKCQkJfQoKCQl9CgoJCS8vIGNsb3NlIHN2ZwoJCSRzdmcgLj0gJzwvc3ZnPicuJHRoaXMtPm9wdGlvbnMtPmVvbDsKCgkJLy8gaWYgc2F2aW5nIHRvIGZpbGUsIGFwcGVuZCB0aGUgY29ycmVjdCBoZWFkZXJzCgkJaWYoJGZpbGUgIT09IG51bGwpewoJCQlyZXR1cm4gJzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Jy4KCQkJICAgICAgICR0aGlzLT5vcHRpb25zLT5lb2wuJHN2ZzsKCQl9CgoJCWlmKCR0aGlzLT5vcHRpb25zLT5pbWFnZUJhc2U2NCl7CgkJCSRzdmcgPSBzcHJpbnRmKCdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCVzJywgYmFzZTY0X2VuY29kZSgkc3ZnKSk7CgkJfQoKCQlyZXR1cm4gJHN2ZzsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyNToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI1OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiT3V0cHV0Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MzQ6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXAiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzQ6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXAiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hcmt1cCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTE6IkNvbnZlcnRzIHRoZSBtYXRyaXggaW50byBtYXJrdXAgdHlwZXM6IEhUTUwsIFNWRywgLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyOiIuLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiUVJPdXRwdXRBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToyOntzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSTWFya3VwOjokZGVmYXVsdE1vZGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXA6OiRkZWZhdWx0TW9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJkZWZhdWx0TW9kZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfTUFSS1VQX1NWRyI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXA6OiRzdmdIZWFkZXIiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXA6OiRzdmdIZWFkZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJzdmdIZWFkZXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMDoiXHNwcmludGYoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InNwcmludGYiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MTI3OiInPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJxci1zdmcgJTEkcyIgJyAuICdzdHlsZT0id2lkdGg6IDEwMCUlOyBoZWlnaHQ6IGF1dG87IiB2aWV3Qm94PSIwIDAgJTIkZCAlMiRkIj4nIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjM6e3M6NTM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXA6OnNldE1vZHVsZVZhbHVlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXA6OnNldE1vZHVsZVZhbHVlcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6InNldE1vZHVsZVZhbHVlcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXA6Omh0bWwoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTE6IkhUTUwgb3V0cHV0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXA6Omh0bWwoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6Imh0bWwiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk1hcmt1cDo6c3ZnKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEwOiJTVkcgb3V0cHV0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjUyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsIjoxOntzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybAB1cmkiO3M6NDc6Imh0dHBzOi8vZ2l0aHViLmNvbS9jb2RlbWFzaGVyL3BocC1xcmNvZGUvcHVsbC81Ijt9czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJNYXJrdXA6OnN2ZygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mzoic3ZnIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/7/N/+uZ9S-KVpLiPSlf8W0jw b/files/7/N/+uZ9S-KVpLiPSlf8W0jw deleted file mode 100644 index fde1add52..000000000 --- a/files/7/N/+uZ9S-KVpLiPSlf8W0jw +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ab424b588535732c9c0ee9c87d872cd3e-ad326a54ffcac51ccc36e8c29c0d24fc -s:138836:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTI6IkNsYXNzIFFSQ29kZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiUVJDb2RlLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI2LjExLjIwMTUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE3OiJjaGlsbGVybGFuXFFSQ29kZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYWQzMjZhNTRmZmNhYzUxY2NjMzZlOGMyOWMwZDI0ZmMiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxMDoiUVJDb2RlLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjE0OiJzcmMvUVJDb2RlLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NzgxNzoiPD9waHAKLyoqCiAqIENsYXNzIFFSQ29kZQogKgogKiBAZmlsZXNvdXJjZSAgIFFSQ29kZS5waHAKICogQGNyZWF0ZWQgICAgICAyNi4xMS4yMDE1CiAqIEBwYWNrYWdlICAgICAgY2hpbGxlcmxhblxRUkNvZGUKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZTsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVxEYXRhXHsKCUFscGhhTnVtLCBCeXRlLCBLYW5qaSwgTWFza1BhdHRlcm5UZXN0ZXIsIE51bWJlciwgUVJDb2RlRGF0YUV4Y2VwdGlvbiwgUVJEYXRhSW50ZXJmYWNlLCBRUk1hdHJpeAp9Owp1c2UgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XHsKCVFSQ29kZU91dHB1dEV4Y2VwdGlvbiwgUVJGcGRmLCBRUkltYWdlLCBRUkltYWdpY2ssIFFSTWFya3VwLCBRUk91dHB1dEludGVyZmFjZSwgUVJTdHJpbmcKfTsKdXNlIGNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2U7Cgp1c2UgZnVuY3Rpb24gY2FsbF91c2VyX2Z1bmNfYXJyYXksIGNsYXNzX2V4aXN0cywgaW5fYXJyYXksIG9yZCwgc3RybGVuLCBzdHJ0b2xvd2VyLCBzdHJfc3BsaXQ7CgovKioKICogVHVybnMgYSB0ZXh0IHN0cmluZyBpbnRvIGEgTW9kZWwgMiBRUiBDb2RlCiAqCiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2thenVoaWtvYXJhc2UvcXJjb2RlLWdlbmVyYXRvci90cmVlL21hc3Rlci9waHAKICogQHNlZSBodHRwOi8vd3d3LnFyY29kZS5jb20vZW4vY29kZXMvbW9kZWwxMi5odG1sCiAqIEBzZWUgaHR0cHM6Ly93d3cuc3dpc3NlZHVjLmNoL2luZm9ybWF0aWsvdGhlb3JldGlzY2hlX2luZm9ybWF0aWsvcXJfY29kZXMvZG9jcy9xcl9zdGFuZGFyZC5wZGYKICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9RUl9jb2RlCiAqIEBzZWUgaHR0cDovL3d3dy50aG9ua3kuY29tL3FyLWNvZGUtdHV0b3JpYWwvCiAqLwpjbGFzcyBRUkNvZGV7CgoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgVkVSU0lPTl9BVVRPICAgICAgID0gLTE7CgkvKiogQHZhciBpbnQgKi8KCXB1YmxpYyBjb25zdCBNQVNLX1BBVFRFUk5fQVVUTyAgPSAtMTsKCgkvLyBJU08vSUVDIDE4MDA0OjIwMDAgVGFibGUgMgoKCS8qKiBAdmFyIGludCAqLwoJcHVibGljIGNvbnN0IERBVEFfTlVNQkVSICAgPSAwYjAwMDE7CgkvKiogQHZhciBpbnQgKi8KCXB1YmxpYyBjb25zdCBEQVRBX0FMUEhBTlVNID0gMGIwMDEwOwoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgREFUQV9CWVRFICAgICA9IDBiMDEwMDsKCS8qKiBAdmFyIGludCAqLwoJcHVibGljIGNvbnN0IERBVEFfS0FOSkkgICAgPSAwYjEwMDA7CgoJLyoqCgkgKiBSZWZlcmVuY2VzIHRvIHRoZSBrZXlzIG9mIHRoZSBmb2xsb3dpbmcgdGFibGVzOgoJICoKCSAqIEBzZWUgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlOjpNQVhfTEVOR1RICgkgKgoJICogQHZhciBpbnRbXQoJICovCglwdWJsaWMgY29uc3QgREFUQV9NT0RFUyA9IFsKCQlzZWxmOjpEQVRBX05VTUJFUiAgID0+IDAsCgkJc2VsZjo6REFUQV9BTFBIQU5VTSA9PiAxLAoJCXNlbGY6OkRBVEFfQllURSAgICAgPT4gMiwKCQlzZWxmOjpEQVRBX0tBTkpJICAgID0+IDMsCgldOwoKCS8vIElTTy9JRUMgMTgwMDQ6MjAwMCBUYWJsZXMgMTIsIDI1CgoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgRUNDX0wgPSAwYjAxOyAvLyA3JS4KCS8qKiBAdmFyIGludCAqLwoJcHVibGljIGNvbnN0IEVDQ19NID0gMGIwMDsgLy8gMTUlLgoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgRUNDX1EgPSAwYjExOyAvLyAyNSUuCgkvKiogQHZhciBpbnQgKi8KCXB1YmxpYyBjb25zdCBFQ0NfSCA9IDBiMTA7IC8vIDMwJS4KCgkvKioKCSAqIFJlZmVyZW5jZXMgdG8gdGhlIGtleXMgb2YgdGhlIGZvbGxvd2luZyB0YWJsZXM6CgkgKgoJICogQHNlZSBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2U6Ok1BWF9CSVRTCgkgKiBAc2VlIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZTo6UlNCTE9DS1MKCSAqIEBzZWUgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OmZvcm1hdFBhdHRlcm4KCSAqCgkgKiBAdmFyIGludFtdCgkgKi8KCXB1YmxpYyBjb25zdCBFQ0NfTU9ERVMgPSBbCgkJc2VsZjo6RUNDX0wgPT4gMCwKCQlzZWxmOjpFQ0NfTSA9PiAxLAoJCXNlbGY6OkVDQ19RID0+IDIsCgkJc2VsZjo6RUNDX0ggPT4gMywKCV07CgoJLyoqIEB2YXIgc3RyaW5nICovCglwdWJsaWMgY29uc3QgT1VUUFVUX01BUktVUF9IVE1MID0gJ2h0bWwnOwoJLyoqIEB2YXIgc3RyaW5nICovCglwdWJsaWMgY29uc3QgT1VUUFVUX01BUktVUF9TVkcgID0gJ3N2Zyc7CgkvKiogQHZhciBzdHJpbmcgKi8KCXB1YmxpYyBjb25zdCBPVVRQVVRfSU1BR0VfUE5HICAgPSAncG5nJzsKCS8qKiBAdmFyIHN0cmluZyAqLwoJcHVibGljIGNvbnN0IE9VVFBVVF9JTUFHRV9KUEcgICA9ICdqcGcnOwoJLyoqIEB2YXIgc3RyaW5nICovCglwdWJsaWMgY29uc3QgT1VUUFVUX0lNQUdFX0dJRiAgID0gJ2dpZic7CgkvKiogQHZhciBzdHJpbmcgKi8KCXB1YmxpYyBjb25zdCBPVVRQVVRfU1RSSU5HX0pTT04gPSAnanNvbic7CgkvKiogQHZhciBzdHJpbmcgKi8KCXB1YmxpYyBjb25zdCBPVVRQVVRfU1RSSU5HX1RFWFQgPSAndGV4dCc7CgkvKiogQHZhciBzdHJpbmcgKi8KCXB1YmxpYyBjb25zdCBPVVRQVVRfSU1BR0lDSyAgICAgPSAnaW1hZ2ljayc7CgkvKiogQHZhciBzdHJpbmcgKi8KCXB1YmxpYyBjb25zdCBPVVRQVVRfRlBERiAgICAgICAgPSAnZnBkZic7CgkvKiogQHZhciBzdHJpbmcgKi8KCXB1YmxpYyBjb25zdCBPVVRQVVRfQ1VTVE9NICAgICAgPSAnY3VzdG9tJzsKCgkvKioKCSAqIE1hcCBvZiBidWlsdC1pbiBvdXRwdXQgbW9kdWxlcyA9PiBjYXBhYmlsaXRpZXMKCSAqCgkgKiBAdmFyIHN0cmluZ1tdW10KCSAqLwoJcHVibGljIGNvbnN0IE9VVFBVVF9NT0RFUyA9IFsKCQlRUk1hcmt1cDo6Y2xhc3MgPT4gWwoJCQlzZWxmOjpPVVRQVVRfTUFSS1VQX1NWRywKCQkJc2VsZjo6T1VUUFVUX01BUktVUF9IVE1MLAoJCV0sCgkJUVJJbWFnZTo6Y2xhc3MgPT4gWwoJCQlzZWxmOjpPVVRQVVRfSU1BR0VfUE5HLAoJCQlzZWxmOjpPVVRQVVRfSU1BR0VfR0lGLAoJCQlzZWxmOjpPVVRQVVRfSU1BR0VfSlBHLAoJCV0sCgkJUVJTdHJpbmc6OmNsYXNzID0+IFsKCQkJc2VsZjo6T1VUUFVUX1NUUklOR19KU09OLAoJCQlzZWxmOjpPVVRQVVRfU1RSSU5HX1RFWFQsCgkJXSwKCQlRUkltYWdpY2s6OmNsYXNzID0+IFsKCQkJc2VsZjo6T1VUUFVUX0lNQUdJQ0ssCgkJXSwKCQlRUkZwZGY6OmNsYXNzID0+IFsKCQkJc2VsZjo6T1VUUFVUX0ZQREYKCQldCgldOwoKCS8qKgoJICogTWFwIG9mIGRhdGEgbW9kZSA9PiBpbnRlcmZhY2UKCSAqCgkgKiBAdmFyIHN0cmluZ1tdCgkgKi8KCXByb3RlY3RlZCBjb25zdCBEQVRBX0lOVEVSRkFDRVMgPSBbCgkJJ251bWJlcicgICA9PiBOdW1iZXI6OmNsYXNzLAoJCSdhbHBoYW51bScgPT4gQWxwaGFOdW06OmNsYXNzLAoJCSdrYW5qaScgICAgPT4gS2Fuamk6OmNsYXNzLAoJCSdieXRlJyAgICAgPT4gQnl0ZTo6Y2xhc3MsCgldOwoKCS8qKgoJICogVGhlIHNldHRpbmdzIGNvbnRhaW5lcgoJICoKCSAqIEB2YXIgXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc3xcY2hpbGxlcmxhblxTZXR0aW5nc1xTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZQoJICovCglwcm90ZWN0ZWQgU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UgJG9wdGlvbnM7CgoJLyoqCgkgKiBUaGUgc2VsZWN0ZWQgZGF0YSBpbnRlcmZhY2UgKE51bWJlciwgQWxwaGFOdW0sIEthbmppLCBCeXRlKQoJICovCglwcm90ZWN0ZWQgUVJEYXRhSW50ZXJmYWNlICRkYXRhSW50ZXJmYWNlOwoKCS8qKgoJICogUVJDb2RlIGNvbnN0cnVjdG9yLgoJICoKCSAqIFNldHMgdGhlIG9wdGlvbnMgaW5zdGFuY2UsIGRldGVybWluZXMgdGhlIGN1cnJlbnQgbWItZW5jb2RpbmcgYW5kIHNldHMgaXQgdG8gVVRGLTgKCSAqLwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlICRvcHRpb25zID0gbnVsbCl7CgkJJHRoaXMtPm9wdGlvbnMgPSAkb3B0aW9ucyA/PyBuZXcgUVJPcHRpb25zOwoJfQoKCS8qKgoJICogUmVuZGVycyBhIFFSIENvZGUgZm9yIHRoZSBnaXZlbiAkZGF0YSBhbmQgUVJPcHRpb25zCgkgKgoJICogQHJldHVybiBtaXhlZAoJICovCglwdWJsaWMgZnVuY3Rpb24gcmVuZGVyKHN0cmluZyAkZGF0YSwgc3RyaW5nICRmaWxlID0gbnVsbCl7CgkJcmV0dXJuICR0aGlzLT5pbml0T3V0cHV0SW50ZXJmYWNlKCRkYXRhKS0+ZHVtcCgkZmlsZSk7Cgl9CgoJLyoqCgkgKiBSZXR1cm5zIGEgUVJNYXRyaXggb2JqZWN0IGZvciB0aGUgZ2l2ZW4gJGRhdGEgYW5kIGN1cnJlbnQgUVJPcHRpb25zCgkgKgoJICogQHRocm93cyBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBnZXRNYXRyaXgoc3RyaW5nICRkYXRhKTpRUk1hdHJpeHsKCgkJaWYoZW1wdHkoJGRhdGEpKXsKCQkJdGhyb3cgbmV3IFFSQ29kZURhdGFFeGNlcHRpb24oJ1FSQ29kZTo6Z2V0TWF0cml4KCkgTm8gZGF0YSBnaXZlbi4nKTsKCQl9CgoJCSR0aGlzLT5kYXRhSW50ZXJmYWNlID0gJHRoaXMtPmluaXREYXRhSW50ZXJmYWNlKCRkYXRhKTsKCgkJJG1hc2tQYXR0ZXJuID0gJHRoaXMtPm9wdGlvbnMtPm1hc2tQYXR0ZXJuID09PSAkdGhpczo6TUFTS19QQVRURVJOX0FVVE8KCQkJPyAobmV3IE1hc2tQYXR0ZXJuVGVzdGVyKCR0aGlzLT5kYXRhSW50ZXJmYWNlKSktPmdldEJlc3RNYXNrUGF0dGVybigpCgkJCTogJHRoaXMtPm9wdGlvbnMtPm1hc2tQYXR0ZXJuOwoKCQkkbWF0cml4ID0gJHRoaXMtPmRhdGFJbnRlcmZhY2UtPmluaXRNYXRyaXgoJG1hc2tQYXR0ZXJuKTsKCgkJaWYoKGJvb2wpJHRoaXMtPm9wdGlvbnMtPmFkZFF1aWV0em9uZSl7CgkJCSRtYXRyaXgtPnNldFF1aWV0Wm9uZSgkdGhpcy0+b3B0aW9ucy0+cXVpZXR6b25lU2l6ZSk7CgkJfQoKCQlyZXR1cm4gJG1hdHJpeDsKCX0KCgkvKioKCSAqIHJldHVybnMgYSBmcmVzaCBRUkRhdGFJbnRlcmZhY2UgZm9yIHRoZSBnaXZlbiAkZGF0YQoJICoKCSAqIEB0aHJvd3MgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbgoJICovCglwdWJsaWMgZnVuY3Rpb24gaW5pdERhdGFJbnRlcmZhY2Uoc3RyaW5nICRkYXRhKTpRUkRhdGFJbnRlcmZhY2V7CgoJCS8vIGFsbG93IGZvcmNpbmcgdGhlIGRhdGEgbW9kZQoJCS8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2hpbGxlcmxhbi9waHAtcXJjb2RlL2lzc3Vlcy8zOQoJCSRpbnRlcmZhY2UgPSAkdGhpczo6REFUQV9JTlRFUkZBQ0VTW3N0cnRvbG93ZXIoJHRoaXMtPm9wdGlvbnMtPmRhdGFNb2RlT3ZlcnJpZGUpXSA/PyBudWxsOwoKCQlpZigkaW50ZXJmYWNlICE9PSBudWxsKXsKCQkJcmV0dXJuIG5ldyAkaW50ZXJmYWNlKCR0aGlzLT5vcHRpb25zLCAkZGF0YSk7CgkJfQoKCQlmb3JlYWNoKCR0aGlzOjpEQVRBX0lOVEVSRkFDRVMgYXMgJG1vZGUgPT4gJGRhdGFJbnRlcmZhY2UpewoKCQkJaWYoY2FsbF91c2VyX2Z1bmNfYXJyYXkoWyR0aGlzLCAnaXMnLiRtb2RlXSwgWyRkYXRhXSkpewoJCQkJcmV0dXJuIG5ldyAkZGF0YUludGVyZmFjZSgkdGhpcy0+b3B0aW9ucywgJGRhdGEpOwoJCQl9CgoJCX0KCgkJdGhyb3cgbmV3IFFSQ29kZURhdGFFeGNlcHRpb24oJ2ludmFsaWQgZGF0YSB0eXBlJyk7IC8vIEBjb2RlQ292ZXJhZ2VJZ25vcmUKCX0KCgkvKioKCSAqIHJldHVybnMgYSBmcmVzaCAoYnVpbHQtaW4pIFFST3V0cHV0SW50ZXJmYWNlCgkgKgoJICogQHRocm93cyBcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSQ29kZU91dHB1dEV4Y2VwdGlvbgoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdE91dHB1dEludGVyZmFjZShzdHJpbmcgJGRhdGEpOlFST3V0cHV0SW50ZXJmYWNlewoKCQlpZigkdGhpcy0+b3B0aW9ucy0+b3V0cHV0VHlwZSA9PT0gJHRoaXM6Ok9VVFBVVF9DVVNUT00gJiYgY2xhc3NfZXhpc3RzKCR0aGlzLT5vcHRpb25zLT5vdXRwdXRJbnRlcmZhY2UpKXsKCQkJLyoqIEBwaGFuLXN1cHByZXNzLW5leHQtbGluZSBQaGFuVHlwZUV4cGVjdGVkT2JqZWN0T3JDbGFzc05hbWUgKi8KCQkJcmV0dXJuIG5ldyAkdGhpcy0+b3B0aW9ucy0+b3V0cHV0SW50ZXJmYWNlKCR0aGlzLT5vcHRpb25zLCAkdGhpcy0+Z2V0TWF0cml4KCRkYXRhKSk7CgkJfQoKCQlmb3JlYWNoKCR0aGlzOjpPVVRQVVRfTU9ERVMgYXMgJG91dHB1dEludGVyZmFjZSA9PiAkbW9kZXMpewoKCQkJaWYoaW5fYXJyYXkoJHRoaXMtPm9wdGlvbnMtPm91dHB1dFR5cGUsICRtb2RlcywgdHJ1ZSkgJiYgY2xhc3NfZXhpc3RzKCRvdXRwdXRJbnRlcmZhY2UpKXsKCQkJCXJldHVybiBuZXcgJG91dHB1dEludGVyZmFjZSgkdGhpcy0+b3B0aW9ucywgJHRoaXMtPmdldE1hdHJpeCgkZGF0YSkpOwoJCQl9CgoJCX0KCgkJdGhyb3cgbmV3IFFSQ29kZU91dHB1dEV4Y2VwdGlvbignaW52YWxpZCBvdXRwdXQgdHlwZScpOwoJfQoKCS8qKgoJICogY2hlY2tzIGlmIGEgc3RyaW5nIHF1YWxpZmllcyBhcyBudW1lcmljCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBpc051bWJlcihzdHJpbmcgJHN0cmluZyk6Ym9vbHsKCQlyZXR1cm4gJHRoaXMtPmNoZWNrU3RyaW5nKCRzdHJpbmcsIFFSRGF0YUludGVyZmFjZTo6Q0hBUl9NQVBfTlVNQkVSKTsKCX0KCgkvKioKCSAqIGNoZWNrcyBpZiBhIHN0cmluZyBxdWFsaWZpZXMgYXMgYWxwaGFudW1lcmljCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBpc0FscGhhTnVtKHN0cmluZyAkc3RyaW5nKTpib29sewoJCXJldHVybiAkdGhpcy0+Y2hlY2tTdHJpbmcoJHN0cmluZywgUVJEYXRhSW50ZXJmYWNlOjpDSEFSX01BUF9BTFBIQU5VTSk7Cgl9CgoJLyoqCgkgKiBjaGVja3MgaXMgYSBnaXZlbiAkc3RyaW5nIG1hdGNoZXMgdGhlIGNoYXJhY3RlcnMgb2YgYSBnaXZlbiAkY2hhcm1hcCwgcmV0dXJucyBmYWxzZSBvbiB0aGUgZmlyc3QgaW52YWxpZCBvY2N1cmVuY2UuCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBjaGVja1N0cmluZyhzdHJpbmcgJHN0cmluZywgYXJyYXkgJGNoYXJtYXApOmJvb2x7CgoJCWZvcmVhY2goc3RyX3NwbGl0KCRzdHJpbmcpIGFzICRjaHIpewoJCQlpZighaXNzZXQoJGNoYXJtYXBbJGNocl0pKXsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRydWU7Cgl9CgoJLyoqCgkgKiBjaGVja3MgaWYgYSBzdHJpbmcgcXVhbGlmaWVzIGFzIEthbmppCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBpc0thbmppKHN0cmluZyAkc3RyaW5nKTpib29sewoJCSRpICAgPSAwOwoJCSRsZW4gPSBzdHJsZW4oJHN0cmluZyk7CgoJCXdoaWxlKCRpICsgMSA8ICRsZW4pewoJCQkkYyA9ICgoMHhmZiAmIG9yZCgkc3RyaW5nWyRpXSkpIDw8IDgpIHwgKDB4ZmYgJiBvcmQoJHN0cmluZ1skaSArIDFdKSk7CgoJCQlpZighKCRjID49IDB4ODE0MCAmJiAkYyA8PSAweDlGRkMpICYmICEoJGMgPj0gMHhFMDQwICYmICRjIDw9IDB4RUJCRikpewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgoJCQkkaSArPSAyOwoJCX0KCgkJcmV0dXJuICRpID49ICRsZW47Cgl9CgoJLyoqCgkgKiBhIGR1bW15CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBpc0J5dGUoc3RyaW5nICRkYXRhKTpib29sewoJCXJldHVybiAhZW1wdHkoJGRhdGEpOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjE4OiJcY2hpbGxlcmxhblxRUkNvZGUiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxODoiXGNoaWxsZXJsYW5cUVJDb2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiUVJDb2RlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MjU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJRUkNvZGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQyOiJUdXJucyBhIHRleHQgc3RyaW5nIGludG8gYSBNb2RlbCAyIFFSIENvZGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NTp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwiOjE6e3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsAHVyaSI7czo2NToiaHR0cHM6Ly9naXRodWIuY29tL2thenVoaWtvYXJhc2UvcXJjb2RlLWdlbmVyYXRvci90cmVlL21hc3Rlci9waHAiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwiOjE6e3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsAHVyaSI7czo0MzoiaHR0cDovL3d3dy5xcmNvZGUuY29tL2VuL2NvZGVzL21vZGVsMTIuaHRtbCI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjI7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjg5OiJodHRwczovL3d3dy5zd2lzc2VkdWMuY2gvaW5mb3JtYXRpay90aGVvcmV0aXNjaGVfaW5mb3JtYXRpay9xcl9jb2Rlcy9kb2NzL3FyX3N0YW5kYXJkLnBkZiI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjM7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjM3OiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9RUl9jb2RlIjt9czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjUyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsIjoxOntzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybAB1cmkiO3M6Mzk6Imh0dHA6Ly93d3cudGhvbmt5LmNvbS9xci1jb2RlLXR1dG9yaWFsLyI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoxNzoiY2hpbGxlcmxhblxRUkNvZGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE2OntzOjg6IkFscGhhTnVtIjtzOjMxOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtIjtzOjQ6IkJ5dGUiO3M6Mjc6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcQnl0ZSI7czo1OiJLYW5qaSI7czoyODoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxLYW5qaSI7czoxNzoiTWFza1BhdHRlcm5UZXN0ZXIiO3M6NDA6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXIiO3M6NjoiTnVtYmVyIjtzOjI5OiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE51bWJlciI7czoxOToiUVJDb2RlRGF0YUV4Y2VwdGlvbiI7czo0MjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO3M6Mzg6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlIjtzOjg6IlFSTWF0cml4IjtzOjMxOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjIxOiJRUkNvZGVPdXRwdXRFeGNlcHRpb24iO3M6NDY6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkNvZGVPdXRwdXRFeGNlcHRpb24iO3M6NjoiUVJGcGRmIjtzOjMxOiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJGcGRmIjtzOjc6IlFSSW1hZ2UiO3M6MzI6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlIjtzOjk6IlFSSW1hZ2ljayI7czozNDoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2ljayI7czo4OiJRUk1hcmt1cCI7czozMzoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSTWFya3VwIjtzOjE3OiJRUk91dHB1dEludGVyZmFjZSI7czo0MjoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0SW50ZXJmYWNlIjtzOjg6IlFSU3RyaW5nIjtzOjMzOiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJTdHJpbmciO3M6MjY6IlNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjtzOjQ2OiJjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MjQ6e3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OlZFUlNJT05fQVVUTyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6VkVSU0lPTl9BVVRPIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6IlZFUlNJT05fQVVUTyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjI6Ii0xIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NDQ6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6Ok1BU0tfUEFUVEVSTl9BVVRPIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpNQVNLX1BBVFRFUk5fQVVUTyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJNQVNLX1BBVFRFUk5fQVVUTyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjI6Ii0xIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6Mzg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OkRBVEFfTlVNQkVSIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpEQVRBX05VTUJFUiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJEQVRBX05VTUJFUiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjM6IjBiMSI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpEQVRBX0FMUEhBTlVNIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpEQVRBX0FMUEhBTlVNIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6IkRBVEFfQUxQSEFOVU0iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo0OiIwYjEwIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6MzY6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OkRBVEFfQllURSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6REFUQV9CWVRFIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiREFUQV9CWVRFIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6NToiMGIxMDAiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czozNzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6REFUQV9LQU5KSSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6REFUQV9LQU5KSSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJEQVRBX0tBTkpJIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6NjoiMGIxMDAwIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6Mzc6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OkRBVEFfTU9ERVMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OkRBVEFfTU9ERVMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiREFUQV9NT0RFUyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NzoiUmVmZXJlbmNlcyB0byB0aGUga2V5cyBvZiB0aGUgZm9sbG93aW5nIHRhYmxlczoiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2U6Ok1BWF9MRU5HVEgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiTUFYX0xFTkdUSCI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6OTU6IltzZWxmOjpEQVRBX05VTUJFUiA9PiAwLCBzZWxmOjpEQVRBX0FMUEhBTlVNID0+IDEsIHNlbGY6OkRBVEFfQllURSA9PiAyLCBzZWxmOjpEQVRBX0tBTkpJID0+IDNdIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OkVDQ19MIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpFQ0NfTCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IkVDQ19MIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MzoiMGIxIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OkVDQ19NIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpFQ0NfTSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IkVDQ19NIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MzoiMGIwIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OkVDQ19RIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpFQ0NfUSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IkVDQ19RIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6NDoiMGIxMSI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjczO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpFQ0NfSCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6RUNDX0giO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJFQ0NfSCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjQ6IjBiMTAiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czozNjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6RUNDX01PREVTIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpFQ0NfTU9ERVMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJFQ0NfTU9ERVMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDc6IlJlZmVyZW5jZXMgdG8gdGhlIGtleXMgb2YgdGhlIGZvbGxvd2luZyB0YWJsZXM6IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlOjpNQVhfQklUUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6Ik1BWF9CSVRTIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZTo6UlNCTE9DS1MiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJSU0JMT0NLUyI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToyO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6Zm9ybWF0UGF0dGVybiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJmb3JtYXRQYXR0ZXJuIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjM7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo3MjoiW3NlbGY6OkVDQ19MID0+IDAsIHNlbGY6OkVDQ19NID0+IDEsIHNlbGY6OkVDQ19RID0+IDIsIHNlbGY6OkVDQ19IID0+IDNdIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6Ok9VVFBVVF9NQVJLVVBfSFRNTCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6T1VUUFVUX01BUktVUF9IVE1MIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6Ik9VVFBVVF9NQVJLVVBfSFRNTCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjkzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjY6IidodG1sJyI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfTUFSS1VQX1NWRyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6T1VUUFVUX01BUktVUF9TVkciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiT1VUUFVUX01BUktVUF9TVkciO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo1OiInc3ZnJyI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfSU1BR0VfUE5HIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfSU1BR0VfUE5HIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6Ik9VVFBVVF9JTUFHRV9QTkciO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo1OiIncG5nJyI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfSU1BR0VfSlBHIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfSU1BR0VfSlBHIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6Ik9VVFBVVF9JTUFHRV9KUEciO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo1OiInanBnJyI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6T1VUUFVUX0lNQUdFX0dJRiI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6T1VUUFVUX0lNQUdFX0dJRiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJPVVRQVVRfSU1BR0VfR0lGIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjU6IidnaWYnIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfU1RSSU5HX0pTT04iO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6Ok9VVFBVVF9TVFJJTkdfSlNPTiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJPVVRQVVRfU1RSSU5HX0pTT04iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6NjoiJ2pzb24nIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfU1RSSU5HX1RFWFQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6Ok9VVFBVVF9TVFJJTkdfVEVYVCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJPVVRQVVRfU1RSSU5HX1RFWFQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6NjoiJ3RleHQnIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQxOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfSU1BR0lDSyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6T1VUUFVUX0lNQUdJQ0siO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiT1VUUFVUX0lNQUdJQ0siO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6OToiJ2ltYWdpY2snIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjM4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfRlBERiI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6T1VUUFVUX0ZQREYiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiT1VUUFVUX0ZQREYiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6NjoiJ2ZwZGYnIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTEwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfQ1VTVE9NIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfQ1VTVE9NIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6Ik9VVFBVVF9DVVNUT00iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6ODoiJ2N1c3RvbSciO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6Ok9VVFBVVF9NT0RFUyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6T1VUUFVUX01PREVTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6Ik9VVFBVVF9NT0RFUyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NjoiTWFwIG9mIGJ1aWx0LWluIG91dHB1dCBtb2R1bGVzID0+IGNhcGFiaWxpdGllcyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo0NDk6IltcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSTWFya3VwOjpjbGFzcyA9PiBbc2VsZjo6T1VUUFVUX01BUktVUF9TVkcsIHNlbGY6Ok9VVFBVVF9NQVJLVVBfSFRNTF0sIFxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnZTo6Y2xhc3MgPT4gW3NlbGY6Ok9VVFBVVF9JTUFHRV9QTkcsIHNlbGY6Ok9VVFBVVF9JTUFHRV9HSUYsIHNlbGY6Ok9VVFBVVF9JTUFHRV9KUEddLCBcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSU3RyaW5nOjpjbGFzcyA9PiBbc2VsZjo6T1VUUFVUX1NUUklOR19KU09OLCBzZWxmOjpPVVRQVVRfU1RSSU5HX1RFWFRdLCBcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2ljazo6Y2xhc3MgPT4gW3NlbGY6Ok9VVFBVVF9JTUFHSUNLXSwgXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkZwZGY6OmNsYXNzID0+IFtzZWxmOjpPVVRQVVRfRlBERl1dIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpEQVRBX0lOVEVSRkFDRVMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OkRBVEFfSU5URVJGQUNFUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJEQVRBX0lOVEVSRkFDRVMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjk6Ik1hcCBvZiBkYXRhIG1vZGUgPT4gaW50ZXJmYWNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE0MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czoyMDI6IlsnbnVtYmVyJyA9PiBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxOdW1iZXI6OmNsYXNzLCAnYWxwaGFudW0nID0+IFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtOjpjbGFzcywgJ2thbmppJyA9PiBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxLYW5qaTo6Y2xhc3MsICdieXRlJyA9PiBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxCeXRlOjpjbGFzc10iO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToyOntzOjM1OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjokb3B0aW9ucyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNToiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6JG9wdGlvbnMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJvcHRpb25zIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIyOiJUaGUgc2V0dGluZ3MgY29udGFpbmVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiUVJPcHRpb25zIjt9fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjY6IlNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjt9fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE1MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNjoiU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO319fXM6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OiRkYXRhSW50ZXJmYWNlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjokZGF0YUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJkYXRhSW50ZXJmYWNlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU5OiJUaGUgc2VsZWN0ZWQgZGF0YSBpbnRlcmZhY2UgKE51bWJlciwgQWxwaGFOdW0sIEthbmppLCBCeXRlKSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE2MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTYzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlFSRGF0YUludGVyZmFjZSI7fX19fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjEwOntzOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpfX2NvbnN0cnVjdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxOToiUVJDb2RlIGNvbnN0cnVjdG9yLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4MjoiU2V0cyB0aGUgb3B0aW9ucyBpbnN0YW5jZSwgZGV0ZXJtaW5lcyB0aGUgY3VycmVudCBtYi1lbmNvZGluZyBhbmQgc2V0cyBpdCB0byBVVEYtOCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTY1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpfX2NvbnN0cnVjdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Il9fY29uc3RydWN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6Im9wdGlvbnMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNjoiU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTcwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fXM6MzU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OnJlbmRlcigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MToiUmVuZGVycyBhIFFSIENvZGUgZm9yIHRoZSBnaXZlbiAkZGF0YSBhbmQgUVJPcHRpb25zIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNToiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6cmVuZGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJyZW5kZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZGF0YSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJmaWxlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1zOjM4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpnZXRNYXRyaXgoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njc6IlJldHVybnMgYSBRUk1hdHJpeCBvYmplY3QgZm9yIHRoZSBnaXZlbiAkZGF0YSBhbmQgY3VycmVudCBRUk9wdGlvbnMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToiUVJDb2RlRGF0YUV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6Z2V0TWF0cml4KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJnZXRNYXRyaXgiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZGF0YSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fX19czo0NjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6aW5pdERhdGFJbnRlcmZhY2UoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTE6InJldHVybnMgYSBmcmVzaCBRUkRhdGFJbnRlcmZhY2UgZm9yIHRoZSBnaXZlbiAkZGF0YSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJRUkNvZGVEYXRhRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjppbml0RGF0YUludGVyZmFjZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6ImluaXREYXRhSW50ZXJmYWNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjE0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO319fXM6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OmluaXRPdXRwdXRJbnRlcmZhY2UoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDQ6InJldHVybnMgYSBmcmVzaCAoYnVpbHQtaW4pIFFST3V0cHV0SW50ZXJmYWNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSQ29kZU91dHB1dEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIxOiJRUkNvZGVPdXRwdXRFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OmluaXRPdXRwdXRJbnRlcmZhY2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJpbml0T3V0cHV0SW50ZXJmYWNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiUVJPdXRwdXRJbnRlcmZhY2UiO319fXM6Mzc6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OmlzTnVtYmVyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM5OiJjaGVja3MgaWYgYSBzdHJpbmcgcXVhbGlmaWVzIGFzIG51bWVyaWMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OmlzTnVtYmVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJpc051bWJlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJzdHJpbmciO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjYxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fX1zOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjppc0FscGhhTnVtKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQ0OiJjaGVja3MgaWYgYSBzdHJpbmcgcXVhbGlmaWVzIGFzIGFscGhhbnVtZXJpYyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjkzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6aXNBbHBoYU51bSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6ImlzQWxwaGFOdW0iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Njoic3RyaW5nIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e319czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6Y2hlY2tTdHJpbmcoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTE1OiJjaGVja3MgaXMgYSBnaXZlbiAkc3RyaW5nIG1hdGNoZXMgdGhlIGNoYXJhY3RlcnMgb2YgYSBnaXZlbiAkY2hhcm1hcCwgcmV0dXJucyBmYWxzZSBvbiB0aGUgZmlyc3QgaW52YWxpZCBvY2N1cmVuY2UuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6OTM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjcyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpjaGVja1N0cmluZygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6ImNoZWNrU3RyaW5nIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6InN0cmluZyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJjaGFybWFwIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9fXM6MzY6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OmlzS2FuamkoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mzc6ImNoZWNrcyBpZiBhIHN0cmluZyBxdWFsaWZpZXMgYXMgS2FuamkiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzY6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OmlzS2FuamkoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6ImlzS2FuamkiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Njoic3RyaW5nIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI4OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e319czozNToiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6aXNCeXRlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjc6ImEgZHVtbXkiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6OmlzQnl0ZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiaXNCeXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzA5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/9/J/SXZBq5qhnIcmspnShLFQ b/files/9/J/SXZBq5qhnIcmspnShLFQ deleted file mode 100644 index 09839d44f..000000000 --- a/files/9/J/SXZBq5qhnIcmspnShLFQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A4fb7bb7759cd104c674b9c264f688bc5-a3b8bb2495938059ec4f5adfb71878f9 -s:26756:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTk6IkNsYXNzIFFSSW1hZ2lja1Rlc3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6ODp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTc6IlFSSW1hZ2lja1Rlc3QucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMDQuMDcuMjAxOCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjg6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6Njoic21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTggc21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjY7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJub2luc3BlY3Rpb24iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI3OiJQaHBVbmRlZmluZWRDbGFzc0luc3BlY3Rpb24iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjc7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJub2luc3BlY3Rpb24iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM1OiJQaHBDb21wb3NlckV4dGVuc2lvblN0dWJzSW5zcGVjdGlvbiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYTNiOGJiMjQ5NTkzODA1OWVjNGY1YWRmYjcxODc4ZjkiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxNzoiUVJJbWFnaWNrVGVzdC5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czozMDoidGVzdHMvT3V0cHV0L1FSSW1hZ2lja1Rlc3QucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxNzUxOiI8P3BocAovKioKICogQ2xhc3MgUVJJbWFnaWNrVGVzdAogKgogKiBAZmlsZXNvdXJjZSAgIFFSSW1hZ2lja1Rlc3QucGhwCiAqIEBjcmVhdGVkICAgICAgMDQuMDcuMjAxOAogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQKICogQGF1dGhvciAgICAgICBzbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE4IHNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKgogKiBAbm9pbnNwZWN0aW9uIFBocFVuZGVmaW5lZENsYXNzSW5zcGVjdGlvbgogKiBAbm9pbnNwZWN0aW9uIFBocENvbXBvc2VyRXh0ZW5zaW9uU3R1YnNJbnNwZWN0aW9uCiAqLwoKbmFtZXNwYWNlIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQ7Cgp1c2UgSW1hZ2ljazsKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXHtRUkNvZGUsIFFST3B0aW9uc307CnVzZSBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRce1FST3V0cHV0SW50ZXJmYWNlLCBRUkltYWdpY2t9OwoKLyoqCiAqIFRlc3RzIHRoZSBRUkltYWdpY2sgb3V0cHV0IG1vZHVsZQogKi8KY2xhc3MgUVJJbWFnaWNrVGVzdCBleHRlbmRzIFFST3V0cHV0VGVzdEFic3RyYWN0ewoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqIEBpbnRlcm5hbAoJICovCglwdWJsaWMgZnVuY3Rpb24gc2V0VXAoKTp2b2lkewoKCQlpZighZXh0ZW5zaW9uX2xvYWRlZCgnaW1hZ2ljaycpKXsKCQkJJHRoaXMtPm1hcmtUZXN0U2tpcHBlZCgnZXh0LWltYWdpY2sgbm90IGxvYWRlZCcpOwoKCQkJLyoqIEBub2luc3BlY3Rpb24gUGhwVW5yZWFjaGFibGVTdGF0ZW1lbnRJbnNwZWN0aW9uICovCgkJCXJldHVybjsKCQl9CgoJCXBhcmVudDo6c2V0VXAoKTsKCX0KCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldE91dHB1dEludGVyZmFjZShRUk9wdGlvbnMgJG9wdGlvbnMpOlFST3V0cHV0SW50ZXJmYWNlewoJCXJldHVybiBuZXcgUVJJbWFnaWNrKCRvcHRpb25zLCAkdGhpcy0+bWF0cml4KTsKCX0KCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHR5cGVzKCk6YXJyYXl7CgkJcmV0dXJuIFsKCQkJJ2ltYWdpY2snID0+IFtRUkNvZGU6Ok9VVFBVVF9JTUFHSUNLXSwKCQldOwoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRNb2R1bGVWYWx1ZXMoKTp2b2lkewoKCQkkdGhpcy0+b3B0aW9ucy0+bW9kdWxlVmFsdWVzID0gWwoJCQkvLyBkYXRhCgkJCTEwMjQgPT4gJyM0QTYwMDAnLAoJCQk0ICAgID0+ICcjRUNGOUJFJywKCQldOwoKCQkkdGhpcy0+b3V0cHV0SW50ZXJmYWNlID0gJHRoaXMtPmdldE91dHB1dEludGVyZmFjZSgkdGhpcy0+b3B0aW9ucyk7CgkJJHRoaXMtPm91dHB1dEludGVyZmFjZS0+ZHVtcCgpOwoKCQkkdGhpczo6YXNzZXJ0VHJ1ZSh0cnVlKTsgLy8gdHJpY2tpbmcgdGhlIGNvZGUgY292ZXJhZ2UKCX0KCglwdWJsaWMgZnVuY3Rpb24gdGVzdE91dHB1dEdldFJlc291cmNlKCk6dm9pZHsKCQkkdGhpcy0+b3B0aW9ucy0+cmV0dXJuUmVzb3VyY2UgPSB0cnVlOwoJCSR0aGlzLT5vdXRwdXRJbnRlcmZhY2UgICAgICAgICA9ICR0aGlzLT5nZXRPdXRwdXRJbnRlcmZhY2UoJHRoaXMtPm9wdGlvbnMpOwoKCQkkdGhpczo6YXNzZXJ0SW5zdGFuY2VPZihJbWFnaWNrOjpjbGFzcywgJHRoaXMtPm91dHB1dEludGVyZmFjZS0+ZHVtcCgpKTsKCX0KCgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6Mjk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiT3V0cHV0Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoiUVJJbWFnaWNrVGVzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzM6IlRlc3RzIHRoZSBRUkltYWdpY2sgb3V0cHV0IG1vZHVsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyODoiY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6NTp7czo3OiJJbWFnaWNrIjtzOjc6IkltYWdpY2siO3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO3M6OToiUVJPcHRpb25zIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6MTc6IlFST3V0cHV0SW50ZXJmYWNlIjtzOjQyOiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2UiO3M6OToiUVJJbWFnaWNrIjtzOjM0OiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnaWNrIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoiUVJPdXRwdXRUZXN0QWJzdHJhY3QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjU6e3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3Q6OnNldFVwKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3Q6OnNldFVwKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJzZXRVcCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NjU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3Q6OmdldE91dHB1dEludGVyZmFjZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY1OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUkltYWdpY2tUZXN0OjpnZXRPdXRwdXRJbnRlcmZhY2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJnZXRPdXRwdXRJbnRlcmZhY2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Nzoib3B0aW9ucyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiUVJPcHRpb25zIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiUVJPdXRwdXRJbnRlcmZhY2UiO319fXM6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3Q6OnR5cGVzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3Q6OnR5cGVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJ0eXBlcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NjY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3Q6OnRlc3RTZXRNb2R1bGVWYWx1ZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUkltYWdpY2tUZXN0Ojp0ZXN0U2V0TW9kdWxlVmFsdWVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToidGVzdFNldE1vZHVsZVZhbHVlcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6Njg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2lja1Rlc3Q6OnRlc3RPdXRwdXRHZXRSZXNvdXJjZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUkltYWdpY2tUZXN0Ojp0ZXN0T3V0cHV0R2V0UmVzb3VyY2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIxOiJ0ZXN0T3V0cHV0R2V0UmVzb3VyY2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Nzg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/A/5/lrhCmOj1ZivGvk6QgZEA b/files/A/5/lrhCmOj1ZivGvk6QgZEA deleted file mode 100644 index 1fc826bbf..000000000 --- a/files/A/5/lrhCmOj1ZivGvk6QgZEA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ad4de4c60838bf3ee18fa3ede3e4daff2-9721b7ebbb905236bddc456bbdf57c16 -s:60856:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTY6IkNsYXNzIFBvbHlub21pYWwiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTQ6IlBvbHlub21pYWwucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMjUuMTEuMjAxNSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjU6ImNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6NjoiU21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTUgU21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6Ijk3MjFiN2ViYmI5MDUyMzZiZGRjNDU2YmJkZjU3YzE2IjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MTQ6IlBvbHlub21pYWwucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MjY6InNyYy9IZWxwZXJzL1BvbHlub21pYWwucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czo1NjU0OiI8P3BocAovKioKICogQ2xhc3MgUG9seW5vbWlhbAogKgogKiBAZmlsZXNvdXJjZSAgIFBvbHlub21pYWwucGhwCiAqIEBjcmVhdGVkICAgICAgMjUuMTEuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnMKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzOwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbjsKCnVzZSBmdW5jdGlvbiBhcnJheV9maWxsLCBjb3VudCwgc3ByaW50ZjsKCi8qKgogKiBQb2x5bm9taWFsIGxvbmcgZGl2aXNpb24gaGVscGVycwogKgogKiBAc2VlIGh0dHA6Ly93d3cudGhvbmt5LmNvbS9xci1jb2RlLXR1dG9yaWFsL2Vycm9yLWNvcnJlY3Rpb24tY29kaW5nCiAqLwpmaW5hbCBjbGFzcyBQb2x5bm9taWFsewoKCS8qKgoJICogQHNlZSBodHRwOi8vd3d3LnRob25reS5jb20vcXItY29kZS10dXRvcmlhbC9sb2ctYW50aWxvZy10YWJsZQoJICovCglwcm90ZWN0ZWQgY29uc3QgdGFibGUgPSBbCgkJWyAgMSwgICAwXSwgWyAgMiwgICAwXSwgWyAgNCwgICAxXSwgWyAgOCwgIDI1XSwgWyAxNiwgICAyXSwgWyAzMiwgIDUwXSwgWyA2NCwgIDI2XSwgWzEyOCwgMTk4XSwKCQlbIDI5LCAgIDNdLCBbIDU4LCAyMjNdLCBbMTE2LCAgNTFdLCBbMjMyLCAyMzhdLCBbMjA1LCAgMjddLCBbMTM1LCAxMDRdLCBbIDE5LCAxOTldLCBbIDM4LCAgNzVdLAoJCVsgNzYsICAgNF0sIFsxNTIsIDEwMF0sIFsgNDUsIDIyNF0sIFsgOTAsICAxNF0sIFsxODAsICA1Ml0sIFsxMTcsIDE0MV0sIFsyMzQsIDIzOV0sIFsyMDEsIDEyOV0sCgkJWzE0MywgIDI4XSwgWyAgMywgMTkzXSwgWyAgNiwgMTA1XSwgWyAxMiwgMjQ4XSwgWyAyNCwgMjAwXSwgWyA0OCwgICA4XSwgWyA5NiwgIDc2XSwgWzE5MiwgMTEzXSwKCQlbMTU3LCAgIDVdLCBbIDM5LCAxMzhdLCBbIDc4LCAxMDFdLCBbMTU2LCAgNDddLCBbIDM3LCAyMjVdLCBbIDc0LCAgMzZdLCBbMTQ4LCAgMTVdLCBbIDUzLCAgMzNdLAoJCVsxMDYsICA1M10sIFsyMTIsIDE0N10sIFsxODEsIDE0Ml0sIFsxMTksIDIxOF0sIFsyMzgsIDI0MF0sIFsxOTMsICAxOF0sIFsxNTksIDEzMF0sIFsgMzUsICA2OV0sCgkJWyA3MCwgIDI5XSwgWzE0MCwgMTgxXSwgWyAgNSwgMTk0XSwgWyAxMCwgMTI1XSwgWyAyMCwgMTA2XSwgWyA0MCwgIDM5XSwgWyA4MCwgMjQ5XSwgWzE2MCwgMTg1XSwKCQlbIDkzLCAyMDFdLCBbMTg2LCAxNTRdLCBbMTA1LCAgIDldLCBbMjEwLCAxMjBdLCBbMTg1LCAgNzddLCBbMTExLCAyMjhdLCBbMjIyLCAxMTRdLCBbMTYxLCAxNjZdLAoJCVsgOTUsICAgNl0sIFsxOTAsIDE5MV0sIFsgOTcsIDEzOV0sIFsxOTQsICA5OF0sIFsxNTMsIDEwMl0sIFsgNDcsIDIyMV0sIFsgOTQsICA0OF0sIFsxODgsIDI1M10sCgkJWzEwMSwgMjI2XSwgWzIwMiwgMTUyXSwgWzEzNywgIDM3XSwgWyAxNSwgMTc5XSwgWyAzMCwgIDE2XSwgWyA2MCwgMTQ1XSwgWzEyMCwgIDM0XSwgWzI0MCwgMTM2XSwKCQlbMjUzLCAgNTRdLCBbMjMxLCAyMDhdLCBbMjExLCAxNDhdLCBbMTg3LCAyMDZdLCBbMTA3LCAxNDNdLCBbMjE0LCAxNTBdLCBbMTc3LCAyMTldLCBbMTI3LCAxODldLAoJCVsyNTQsIDI0MV0sIFsyMjUsIDIxMF0sIFsyMjMsICAxOV0sIFsxNjMsICA5Ml0sIFsgOTEsIDEzMV0sIFsxODIsICA1Nl0sIFsxMTMsICA3MF0sIFsyMjYsICA2NF0sCgkJWzIxNywgIDMwXSwgWzE3NSwgIDY2XSwgWyA2NywgMTgyXSwgWzEzNCwgMTYzXSwgWyAxNywgMTk1XSwgWyAzNCwgIDcyXSwgWyA2OCwgMTI2XSwgWzEzNiwgMTEwXSwKCQlbIDEzLCAxMDddLCBbIDI2LCAgNThdLCBbIDUyLCAgNDBdLCBbMTA0LCAgODRdLCBbMjA4LCAyNTBdLCBbMTg5LCAxMzNdLCBbMTAzLCAxODZdLCBbMjA2LCAgNjFdLAoJCVsxMjksIDIwMl0sIFsgMzEsICA5NF0sIFsgNjIsIDE1NV0sIFsxMjQsIDE1OV0sIFsyNDgsICAxMF0sIFsyMzcsICAyMV0sIFsxOTksIDEyMV0sIFsxNDcsICA0M10sCgkJWyA1OSwgIDc4XSwgWzExOCwgMjEyXSwgWzIzNiwgMjI5XSwgWzE5NywgMTcyXSwgWzE1MSwgMTE1XSwgWyA1MSwgMjQzXSwgWzEwMiwgMTY3XSwgWzIwNCwgIDg3XSwKCQlbMTMzLCAgIDddLCBbIDIzLCAxMTJdLCBbIDQ2LCAxOTJdLCBbIDkyLCAyNDddLCBbMTg0LCAxNDBdLCBbMTA5LCAxMjhdLCBbMjE4LCAgOTldLCBbMTY5LCAgMTNdLAoJCVsgNzksIDEwM10sIFsxNTgsICA3NF0sIFsgMzMsIDIyMl0sIFsgNjYsIDIzN10sIFsxMzIsICA0OV0sIFsgMjEsIDE5N10sIFsgNDIsIDI1NF0sIFsgODQsICAyNF0sCgkJWzE2OCwgMjI3XSwgWyA3NywgMTY1XSwgWzE1NCwgMTUzXSwgWyA0MSwgMTE5XSwgWyA4MiwgIDM4XSwgWzE2NCwgMTg0XSwgWyA4NSwgMTgwXSwgWzE3MCwgMTI0XSwKCQlbIDczLCAgMTddLCBbMTQ2LCAgNjhdLCBbIDU3LCAxNDZdLCBbMTE0LCAyMTddLCBbMjI4LCAgMzVdLCBbMjEzLCAgMzJdLCBbMTgzLCAxMzddLCBbMTE1LCAgNDZdLAoJCVsyMzAsICA1NV0sIFsyMDksICA2M10sIFsxOTEsIDIwOV0sIFsgOTksICA5MV0sIFsxOTgsIDE0OV0sIFsxNDUsIDE4OF0sIFsgNjMsIDIwN10sIFsxMjYsIDIwNV0sCgkJWzI1MiwgMTQ0XSwgWzIyOSwgMTM1XSwgWzIxNSwgMTUxXSwgWzE3OSwgMTc4XSwgWzEyMywgMjIwXSwgWzI0NiwgMjUyXSwgWzI0MSwgMTkwXSwgWzI1NSwgIDk3XSwKCQlbMjI3LCAyNDJdLCBbMjE5LCAgODZdLCBbMTcxLCAyMTFdLCBbIDc1LCAxNzFdLCBbMTUwLCAgMjBdLCBbIDQ5LCAgNDJdLCBbIDk4LCAgOTNdLCBbMTk2LCAxNThdLAoJCVsxNDksIDEzMl0sIFsgNTUsICA2MF0sIFsxMTAsICA1N10sIFsyMjAsICA4M10sIFsxNjUsICA3MV0sIFsgODcsIDEwOV0sIFsxNzQsICA2NV0sIFsgNjUsIDE2Ml0sCgkJWzEzMCwgIDMxXSwgWyAyNSwgIDQ1XSwgWyA1MCwgIDY3XSwgWzEwMCwgMjE2XSwgWzIwMCwgMTgzXSwgWzE0MSwgMTIzXSwgWyAgNywgMTY0XSwgWyAxNCwgMTE4XSwKCQlbIDI4LCAxOTZdLCBbIDU2LCAgMjNdLCBbMTEyLCAgNzNdLCBbMjI0LCAyMzZdLCBbMjIxLCAxMjddLCBbMTY3LCAgMTJdLCBbIDgzLCAxMTFdLCBbMTY2LCAyNDZdLAoJCVsgODEsIDEwOF0sIFsxNjIsIDE2MV0sIFsgODksICA1OV0sIFsxNzgsICA4Ml0sIFsxMjEsICA0MV0sIFsyNDIsIDE1N10sIFsyNDksICA4NV0sIFsyMzksIDE3MF0sCgkJWzE5NSwgMjUxXSwgWzE1NSwgIDk2XSwgWyA0MywgMTM0XSwgWyA4NiwgMTc3XSwgWzE3MiwgMTg3XSwgWyA2OSwgMjA0XSwgWzEzOCwgIDYyXSwgWyAgOSwgIDkwXSwKCQlbIDE4LCAyMDNdLCBbIDM2LCAgODldLCBbIDcyLCAgOTVdLCBbMTQ0LCAxNzZdLCBbIDYxLCAxNTZdLCBbMTIyLCAxNjldLCBbMjQ0LCAxNjBdLCBbMjQ1LCAgODFdLAoJCVsyNDcsICAxMV0sIFsyNDMsIDI0NV0sIFsyNTEsICAyMl0sIFsyMzUsIDIzNV0sIFsyMDMsIDEyMl0sIFsxMzksIDExN10sIFsgMTEsICA0NF0sIFsgMjIsIDIxNV0sCgkJWyA0NCwgIDc5XSwgWyA4OCwgMTc0XSwgWzE3NiwgMjEzXSwgWzEyNSwgMjMzXSwgWzI1MCwgMjMwXSwgWzIzMywgMjMxXSwgWzIwNywgMTczXSwgWzEzMSwgMjMyXSwKCQlbIDI3LCAxMTZdLCBbIDU0LCAyMTRdLCBbMTA4LCAyNDRdLCBbMjE2LCAyMzRdLCBbMTczLCAxNjhdLCBbIDcxLCAgODBdLCBbMTQyLCAgODhdLCBbICAxLCAxNzVdLAoJXTsKCgkvKioKCSAqIEB2YXIgaW50W10KCSAqLwoJcHJvdGVjdGVkIGFycmF5ICRudW0gPSBbXTsKCgkvKioKCSAqIFBvbHlub21pYWwgY29uc3RydWN0b3IuCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChhcnJheSAkbnVtID0gbnVsbCwgaW50ICRzaGlmdCA9IG51bGwpewoJCSR0aGlzLT5zZXROdW0oJG51bSA/PyBbMV0sICRzaGlmdCk7Cgl9CgoJLyoqCgkgKgoJICovCglwdWJsaWMgZnVuY3Rpb24gZ2V0TnVtKCk6YXJyYXl7CgkJcmV0dXJuICR0aGlzLT5udW07Cgl9CgoJLyoqCgkgKiBAcGFyYW0gaW50W10gICAgJG51bQoJICogQHBhcmFtIGludHxudWxsICRzaGlmdAoJICoKCSAqIEByZXR1cm4gXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbAoJICovCglwdWJsaWMgZnVuY3Rpb24gc2V0TnVtKGFycmF5ICRudW0sIGludCAkc2hpZnQgPSBudWxsKTpQb2x5bm9taWFsewoJCSRvZmZzZXQgPSAwOwoJCSRudW1Db3VudCA9IGNvdW50KCRudW0pOwoKCQl3aGlsZSgkb2Zmc2V0IDwgJG51bUNvdW50ICYmICRudW1bJG9mZnNldF0gPT09IDApewoJCQkkb2Zmc2V0Kys7CgkJfQoKCQkkdGhpcy0+bnVtID0gYXJyYXlfZmlsbCgwLCAkbnVtQ291bnQgLSAkb2Zmc2V0ICsgKCRzaGlmdCA/PyAwKSwgMCk7CgoJCWZvcigkaSA9IDA7ICRpIDwgJG51bUNvdW50IC0gJG9mZnNldDsgJGkrKyl7CgkJCSR0aGlzLT5udW1bJGldID0gJG51bVskaSArICRvZmZzZXRdOwoJCX0KCgkJcmV0dXJuICR0aGlzOwoJfQoKCS8qKgoJICogQHBhcmFtIGludFtdICRlCgkgKgoJICogQHJldHVybiBcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBtdWx0aXBseShhcnJheSAkZSk6UG9seW5vbWlhbHsKCQkkbiA9IGFycmF5X2ZpbGwoMCwgY291bnQoJHRoaXMtPm51bSkgKyBjb3VudCgkZSkgLSAxLCAwKTsKCgkJZm9yZWFjaCgkdGhpcy0+bnVtIGFzICRpID0+ICR2aSl7CgkJCSR2aSA9ICR0aGlzLT5nbG9nKCR2aSk7CgoJCQlmb3JlYWNoKCRlIGFzICRqID0+ICR2ail7CgkJCQkkblskaSArICRqXSBePSAkdGhpcy0+Z2V4cCgkdmkgKyAkdGhpcy0+Z2xvZygkdmopKTsKCQkJfQoKCQl9CgoJCSR0aGlzLT5zZXROdW0oJG4pOwoKCQlyZXR1cm4gJHRoaXM7Cgl9CgoJLyoqCgkgKiBAcGFyYW0gaW50W10gJGUKCSAqCgkgKiBAcmV0dXJuIFxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWwKCSAqLwoJcHVibGljIGZ1bmN0aW9uIG1vZChhcnJheSAkZSk6UG9seW5vbWlhbHsKCQkkbiA9ICR0aGlzLT5udW07CgoJCWlmKGNvdW50KCRuKSAtIGNvdW50KCRlKSA8IDApewoJCQlyZXR1cm4gJHRoaXM7CgkJfQoKCQkkcmF0aW8gPSAkdGhpcy0+Z2xvZygkblswXSkgLSAkdGhpcy0+Z2xvZygkZVswXSk7CgoJCWZvcmVhY2goJGUgYXMgJGkgPT4gJHYpewoJCQkkblskaV0gXj0gJHRoaXMtPmdleHAoJHRoaXMtPmdsb2coJHYpICsgJHJhdGlvKTsKCQl9CgoJCSR0aGlzLT5zZXROdW0oJG4pLT5tb2QoJGUpOwoKCQlyZXR1cm4gJHRoaXM7Cgl9CgoJLyoqCgkgKiBAdGhyb3dzIFxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb24KCSAqLwoJcHVibGljIGZ1bmN0aW9uIGdsb2coaW50ICRuKTppbnR7CgoJCWlmKCRuIDwgMSl7CgkJCXRocm93IG5ldyBRUkNvZGVFeGNlcHRpb24oc3ByaW50ZignbG9nKCVzKScsICRuKSk7CgkJfQoKCQlyZXR1cm4gUG9seW5vbWlhbDo6dGFibGVbJG5dWzFdOwoJfQoKCS8qKgoJICoKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGdleHAoaW50ICRuKTppbnR7CgoJCWlmKCRuIDwgMCl7CgkJCSRuICs9IDI1NTsKCQl9CgkJZWxzZWlmKCRuID49IDI1Nil7CgkJCSRuIC09IDI1NTsKCQl9CgoJCXJldHVybiBQb2x5bm9taWFsOjp0YWJsZVskbl1bMF07Cgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjY6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjY6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiSGVscGVycyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjM3OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM3OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IlBvbHlub21pYWwiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMyOiJQb2x5bm9taWFsIGxvbmcgZGl2aXNpb24gaGVscGVycyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjYyOiJodHRwOi8vd3d3LnRob25reS5jb20vcXItY29kZS10dXRvcmlhbC9lcnJvci1jb3JyZWN0aW9uLWNvZGluZyI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyNToiY2hpbGxlcmxhblxRUkNvZGVcSGVscGVycyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MTp7czoxNToiUVJDb2RlRXhjZXB0aW9uIjtzOjMzOiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb24iO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YToxOntzOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsOjp0YWJsZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbDo6dGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJ0YWJsZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwiOjE6e3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsAHVyaSI7czo1NjoiaHR0cDovL3d3dy50aG9ua3kuY29tL3FyLWNvZGUtdHV0b3JpYWwvbG9nLWFudGlsb2ctdGFibGUiO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czoyODUwOiJbWzEsIDBdLCBbMiwgMF0sIFs0LCAxXSwgWzgsIDI1XSwgWzE2LCAyXSwgWzMyLCA1MF0sIFs2NCwgMjZdLCBbMTI4LCAxOThdLCBbMjksIDNdLCBbNTgsIDIyM10sIFsxMTYsIDUxXSwgWzIzMiwgMjM4XSwgWzIwNSwgMjddLCBbMTM1LCAxMDRdLCBbMTksIDE5OV0sIFszOCwgNzVdLCBbNzYsIDRdLCBbMTUyLCAxMDBdLCBbNDUsIDIyNF0sIFs5MCwgMTRdLCBbMTgwLCA1Ml0sIFsxMTcsIDE0MV0sIFsyMzQsIDIzOV0sIFsyMDEsIDEyOV0sIFsxNDMsIDI4XSwgWzMsIDE5M10sIFs2LCAxMDVdLCBbMTIsIDI0OF0sIFsyNCwgMjAwXSwgWzQ4LCA4XSwgWzk2LCA3Nl0sIFsxOTIsIDExM10sIFsxNTcsIDVdLCBbMzksIDEzOF0sIFs3OCwgMTAxXSwgWzE1NiwgNDddLCBbMzcsIDIyNV0sIFs3NCwgMzZdLCBbMTQ4LCAxNV0sIFs1MywgMzNdLCBbMTA2LCA1M10sIFsyMTIsIDE0N10sIFsxODEsIDE0Ml0sIFsxMTksIDIxOF0sIFsyMzgsIDI0MF0sIFsxOTMsIDE4XSwgWzE1OSwgMTMwXSwgWzM1LCA2OV0sIFs3MCwgMjldLCBbMTQwLCAxODFdLCBbNSwgMTk0XSwgWzEwLCAxMjVdLCBbMjAsIDEwNl0sIFs0MCwgMzldLCBbODAsIDI0OV0sIFsxNjAsIDE4NV0sIFs5MywgMjAxXSwgWzE4NiwgMTU0XSwgWzEwNSwgOV0sIFsyMTAsIDEyMF0sIFsxODUsIDc3XSwgWzExMSwgMjI4XSwgWzIyMiwgMTE0XSwgWzE2MSwgMTY2XSwgWzk1LCA2XSwgWzE5MCwgMTkxXSwgWzk3LCAxMzldLCBbMTk0LCA5OF0sIFsxNTMsIDEwMl0sIFs0NywgMjIxXSwgWzk0LCA0OF0sIFsxODgsIDI1M10sIFsxMDEsIDIyNl0sIFsyMDIsIDE1Ml0sIFsxMzcsIDM3XSwgWzE1LCAxNzldLCBbMzAsIDE2XSwgWzYwLCAxNDVdLCBbMTIwLCAzNF0sIFsyNDAsIDEzNl0sIFsyNTMsIDU0XSwgWzIzMSwgMjA4XSwgWzIxMSwgMTQ4XSwgWzE4NywgMjA2XSwgWzEwNywgMTQzXSwgWzIxNCwgMTUwXSwgWzE3NywgMjE5XSwgWzEyNywgMTg5XSwgWzI1NCwgMjQxXSwgWzIyNSwgMjEwXSwgWzIyMywgMTldLCBbMTYzLCA5Ml0sIFs5MSwgMTMxXSwgWzE4MiwgNTZdLCBbMTEzLCA3MF0sIFsyMjYsIDY0XSwgWzIxNywgMzBdLCBbMTc1LCA2Nl0sIFs2NywgMTgyXSwgWzEzNCwgMTYzXSwgWzE3LCAxOTVdLCBbMzQsIDcyXSwgWzY4LCAxMjZdLCBbMTM2LCAxMTBdLCBbMTMsIDEwN10sIFsyNiwgNThdLCBbNTIsIDQwXSwgWzEwNCwgODRdLCBbMjA4LCAyNTBdLCBbMTg5LCAxMzNdLCBbMTAzLCAxODZdLCBbMjA2LCA2MV0sIFsxMjksIDIwMl0sIFszMSwgOTRdLCBbNjIsIDE1NV0sIFsxMjQsIDE1OV0sIFsyNDgsIDEwXSwgWzIzNywgMjFdLCBbMTk5LCAxMjFdLCBbMTQ3LCA0M10sIFs1OSwgNzhdLCBbMTE4LCAyMTJdLCBbMjM2LCAyMjldLCBbMTk3LCAxNzJdLCBbMTUxLCAxMTVdLCBbNTEsIDI0M10sIFsxMDIsIDE2N10sIFsyMDQsIDg3XSwgWzEzMywgN10sIFsyMywgMTEyXSwgWzQ2LCAxOTJdLCBbOTIsIDI0N10sIFsxODQsIDE0MF0sIFsxMDksIDEyOF0sIFsyMTgsIDk5XSwgWzE2OSwgMTNdLCBbNzksIDEwM10sIFsxNTgsIDc0XSwgWzMzLCAyMjJdLCBbNjYsIDIzN10sIFsxMzIsIDQ5XSwgWzIxLCAxOTddLCBbNDIsIDI1NF0sIFs4NCwgMjRdLCBbMTY4LCAyMjddLCBbNzcsIDE2NV0sIFsxNTQsIDE1M10sIFs0MSwgMTE5XSwgWzgyLCAzOF0sIFsxNjQsIDE4NF0sIFs4NSwgMTgwXSwgWzE3MCwgMTI0XSwgWzczLCAxN10sIFsxNDYsIDY4XSwgWzU3LCAxNDZdLCBbMTE0LCAyMTddLCBbMjI4LCAzNV0sIFsyMTMsIDMyXSwgWzE4MywgMTM3XSwgWzExNSwgNDZdLCBbMjMwLCA1NV0sIFsyMDksIDYzXSwgWzE5MSwgMjA5XSwgWzk5LCA5MV0sIFsxOTgsIDE0OV0sIFsxNDUsIDE4OF0sIFs2MywgMjA3XSwgWzEyNiwgMjA1XSwgWzI1MiwgMTQ0XSwgWzIyOSwgMTM1XSwgWzIxNSwgMTUxXSwgWzE3OSwgMTc4XSwgWzEyMywgMjIwXSwgWzI0NiwgMjUyXSwgWzI0MSwgMTkwXSwgWzI1NSwgOTddLCBbMjI3LCAyNDJdLCBbMjE5LCA4Nl0sIFsxNzEsIDIxMV0sIFs3NSwgMTcxXSwgWzE1MCwgMjBdLCBbNDksIDQyXSwgWzk4LCA5M10sIFsxOTYsIDE1OF0sIFsxNDksIDEzMl0sIFs1NSwgNjBdLCBbMTEwLCA1N10sIFsyMjAsIDgzXSwgWzE2NSwgNzFdLCBbODcsIDEwOV0sIFsxNzQsIDY1XSwgWzY1LCAxNjJdLCBbMTMwLCAzMV0sIFsyNSwgNDVdLCBbNTAsIDY3XSwgWzEwMCwgMjE2XSwgWzIwMCwgMTgzXSwgWzE0MSwgMTIzXSwgWzcsIDE2NF0sIFsxNCwgMTE4XSwgWzI4LCAxOTZdLCBbNTYsIDIzXSwgWzExMiwgNzNdLCBbMjI0LCAyMzZdLCBbMjIxLCAxMjddLCBbMTY3LCAxMl0sIFs4MywgMTExXSwgWzE2NiwgMjQ2XSwgWzgxLCAxMDhdLCBbMTYyLCAxNjFdLCBbODksIDU5XSwgWzE3OCwgODJdLCBbMTIxLCA0MV0sIFsyNDIsIDE1N10sIFsyNDksIDg1XSwgWzIzOSwgMTcwXSwgWzE5NSwgMjUxXSwgWzE1NSwgOTZdLCBbNDMsIDEzNF0sIFs4NiwgMTc3XSwgWzE3MiwgMTg3XSwgWzY5LCAyMDRdLCBbMTM4LCA2Ml0sIFs5LCA5MF0sIFsxOCwgMjAzXSwgWzM2LCA4OV0sIFs3MiwgOTVdLCBbMTQ0LCAxNzZdLCBbNjEsIDE1Nl0sIFsxMjIsIDE2OV0sIFsyNDQsIDE2MF0sIFsyNDUsIDgxXSwgWzI0NywgMTFdLCBbMjQzLCAyNDVdLCBbMjUxLCAyMl0sIFsyMzUsIDIzNV0sIFsyMDMsIDEyMl0sIFsxMzksIDExN10sIFsxMSwgNDRdLCBbMjIsIDIxNV0sIFs0NCwgNzldLCBbODgsIDE3NF0sIFsxNzYsIDIxM10sIFsxMjUsIDIzM10sIFsyNTAsIDIzMF0sIFsyMzMsIDIzMV0sIFsyMDcsIDE3M10sIFsxMzEsIDIzMl0sIFsyNywgMTE2XSwgWzU0LCAyMTRdLCBbMTA4LCAyNDRdLCBbMjE2LCAyMzRdLCBbMTczLCAxNjhdLCBbNzEsIDgwXSwgWzE0MiwgODhdLCBbMSwgMTc1XV0iO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjE6e3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWw6OiRudW0iO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWw6OiRudW0iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozOiJudW0iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjI6IltdIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YTo3OntzOjUyOiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsOjpfX2NvbnN0cnVjdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMzoiUG9seW5vbWlhbCBjb25zdHJ1Y3Rvci4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MjoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbDo6X19jb25zdHJ1Y3QoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJfX2NvbnN0cnVjdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJudW0iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6InNoaWZ0IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fXM6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWw6OmdldE51bSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbDo6Z2V0TnVtKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJnZXROdW0iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Nzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1zOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsOjpzZXROdW0oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czozOiJudW0iO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NToic2hpZnQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNzoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJQb2x5bm9taWFsIjt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWw6OnNldE51bSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Njoic2V0TnVtIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6Im51bSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NToic2hpZnQiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNzoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJQb2x5bm9taWFsIjt9fX1zOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsOjptdWx0aXBseSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjE6ImUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWwiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiUG9seW5vbWlhbCI7fX1zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbDo6bXVsdGlwbHkoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6Im11bHRpcGx5Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE6ImUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM3OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IlBvbHlub21pYWwiO319fXM6NDQ6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWw6Om1vZCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjE6ImUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWwiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiUG9seW5vbWlhbCI7fX1zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbDo6bW9kKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozOiJtb2QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MToiZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWwiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiUG9seW5vbWlhbCI7fX19czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbDo6Z2xvZygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzQ6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUVJDb2RlRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTUxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsOjpnbG9nKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJnbG9nIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE6Im4iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xQb2x5bm9taWFsOjpnZXhwKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE2MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbDo6Z2V4cCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiZ2V4cCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxOiJuIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE2NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/B/F/71nvuyJ3zQ+d295LXKEg b/files/B/F/71nvuyJ3zQ+d295LXKEg deleted file mode 100644 index dff687097..000000000 --- a/files/B/F/71nvuyJ3zQ+d295LXKEg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A17db8f965a78c479fa69beeda56ede1c-30c66b599dbab3a11b48ee30e248b45a -s:20664:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6IkNsYXNzIFFSTWFya3VwVGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNjoiUVJNYXJrdXBUZXN0LnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI0LjEyLjIwMTciO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI4OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE3IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiIzMGM2NmI1OTlkYmFiM2ExMWI0OGVlMzBlMjQ4YjQ1YSI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE2OiJRUk1hcmt1cFRlc3QucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Mjk6InRlc3RzL091dHB1dC9RUk1hcmt1cFRlc3QucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxMjY3OiI8P3BocAovKioKICogQ2xhc3MgUVJNYXJrdXBUZXN0CiAqCiAqIEBmaWxlc291cmNlICAgUVJNYXJrdXBUZXN0LnBocAogKiBAY3JlYXRlZCAgICAgIDI0LjEyLjIwMTcKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0CiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dDsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVx7UVJDb2RlLCBRUk9wdGlvbnN9Owp1c2UgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XHtRUk91dHB1dEludGVyZmFjZSwgUVJNYXJrdXB9OwoKLyoqCiAqIFRlc3RzIHRoZSBRUk1hcmt1cCBvdXRwdXQgbW9kdWxlCiAqLwpjbGFzcyBRUk1hcmt1cFRlc3QgZXh0ZW5kcyBRUk91dHB1dFRlc3RBYnN0cmFjdHsKCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldE91dHB1dEludGVyZmFjZShRUk9wdGlvbnMgJG9wdGlvbnMpOlFST3V0cHV0SW50ZXJmYWNlewoJCXJldHVybiBuZXcgUVJNYXJrdXAoJG9wdGlvbnMsICR0aGlzLT5tYXRyaXgpOwoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqIEBpbnRlcm5hbAoJICovCglwdWJsaWMgZnVuY3Rpb24gdHlwZXMoKTphcnJheXsKCQlyZXR1cm4gWwoJCQknaHRtbCcgPT4gW1FSQ29kZTo6T1VUUFVUX01BUktVUF9IVE1MXSwKCQkJJ3N2ZycgID0+IFtRUkNvZGU6Ok9VVFBVVF9NQVJLVVBfU1ZHXSwKCQldOwoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRNb2R1bGVWYWx1ZXMoKTp2b2lkewoJCSR0aGlzLT5vcHRpb25zLT5pbWFnZUJhc2U2NCAgPSBmYWxzZTsKCQkkdGhpcy0+b3B0aW9ucy0+bW9kdWxlVmFsdWVzID0gWwoJCQkvLyBkYXRhCgkJCTEwMjQgPT4gJyM0QTYwMDAnLAoJCQk0ICAgID0+ICcjRUNGOUJFJywKCQldOwoKCQkkdGhpcy0+b3V0cHV0SW50ZXJmYWNlID0gJHRoaXMtPmdldE91dHB1dEludGVyZmFjZSgkdGhpcy0+b3B0aW9ucyk7CgkJJGRhdGEgPSAkdGhpcy0+b3V0cHV0SW50ZXJmYWNlLT5kdW1wKCk7CgkJJHRoaXM6OmFzc2VydFN0cmluZ0NvbnRhaW5zU3RyaW5nKCcjNEE2MDAwJywgJGRhdGEpOwoJCSR0aGlzOjphc3NlcnRTdHJpbmdDb250YWluc1N0cmluZygnI0VDRjlCRScsICRkYXRhKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyOToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyOToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJPdXRwdXQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJNYXJrdXBUZXN0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk1hcmt1cFRlc3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiUVJNYXJrdXBUZXN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozMjoiVGVzdHMgdGhlIFFSTWFya3VwIG91dHB1dCBtb2R1bGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6Mjg6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjQ6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO3M6OToiUVJPcHRpb25zIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6MTc6IlFST3V0cHV0SW50ZXJmYWNlIjtzOjQyOiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2UiO3M6ODoiUVJNYXJrdXAiO3M6MzM6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk1hcmt1cCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTA6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFST3V0cHV0VGVzdEFic3RyYWN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6IlFST3V0cHV0VGVzdEFic3RyYWN0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YTozOntzOjY0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk1hcmt1cFRlc3Q6OmdldE91dHB1dEludGVyZmFjZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk1hcmt1cFRlc3Q6OmdldE91dHB1dEludGVyZmFjZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6ImdldE91dHB1dEludGVyZmFjZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJvcHRpb25zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJRUk9wdGlvbnMiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJRUk91dHB1dEludGVyZmFjZSI7fX19czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJNYXJrdXBUZXN0Ojp0eXBlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk1hcmt1cFRlc3Q6OnR5cGVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJ0eXBlcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NjU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSTWFya3VwVGVzdDo6dGVzdFNldE1vZHVsZVZhbHVlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSTWFya3VwVGVzdDo6dGVzdFNldE1vZHVsZVZhbHVlcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6InRlc3RTZXRNb2R1bGVWYWx1ZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/B/F/7lEG3mZMGxTiO0ESPGzg b/files/B/F/7lEG3mZMGxTiO0ESPGzg deleted file mode 100644 index 2b6b745d2..000000000 --- a/files/B/F/7lEG3mZMGxTiO0ESPGzg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A51b9053c73b0b532c33480987e362b6d-526380325b7f6dc7cface233c575eb56 -s:21172:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTI6IkNsYXNzIE51bWJlciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiTnVtYmVyLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI2LjExLjIwMTUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIyOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE1IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI1MjYzODAzMjViN2Y2ZGM3Y2ZhY2UyMzNjNTc1ZWI1NiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEwOiJOdW1iZXIucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MTk6InNyYy9EYXRhL051bWJlci5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjE1NTY6Ijw/cGhwCi8qKgogKiBDbGFzcyBOdW1iZXIKICoKICogQGZpbGVzb3VyY2UgICBOdW1iZXIucGhwCiAqIEBjcmVhdGVkICAgICAgMjYuMTEuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXERhdGEKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxEYXRhOwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTsKCnVzZSBmdW5jdGlvbiBvcmQsIHNwcmludGYsIHN0cl9zcGxpdCwgc3Vic3RyOwoKLyoqCiAqIE51bWVyaWMgbW9kZTogZGVjaW1hbCBkaWdpdHMgMCB0byA5CiAqCiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguMy4yCiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguNC4yCiAqLwpmaW5hbCBjbGFzcyBOdW1iZXIgZXh0ZW5kcyBRUkRhdGFBYnN0cmFjdHsKCglwcm90ZWN0ZWQgaW50ICRkYXRhbW9kZSA9IFFSQ29kZTo6REFUQV9OVU1CRVI7CgoJcHJvdGVjdGVkIGFycmF5ICRsZW5ndGhCaXRzID0gWzEwLCAxMiwgMTRdOwoKCS8qKgoJICogQGluaGVyaXRkb2MKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHdyaXRlKHN0cmluZyAkZGF0YSk6dm9pZHsKCQkkaSA9IDA7CgoJCXdoaWxlKCRpICsgMiA8ICR0aGlzLT5zdHJsZW4pewoJCQkkdGhpcy0+Yml0QnVmZmVyLT5wdXQoJHRoaXMtPnBhcnNlSW50KHN1YnN0cigkZGF0YSwgJGksIDMpKSwgMTApOwoJCQkkaSArPSAzOwoJCX0KCgkJaWYoJGkgPCAkdGhpcy0+c3RybGVuKXsKCgkJCWlmKCR0aGlzLT5zdHJsZW4gLSAkaSA9PT0gMSl7CgkJCQkkdGhpcy0+Yml0QnVmZmVyLT5wdXQoJHRoaXMtPnBhcnNlSW50KHN1YnN0cigkZGF0YSwgJGksICRpICsgMSkpLCA0KTsKCQkJfQoJCQllbHNlaWYoJHRoaXMtPnN0cmxlbiAtICRpID09PSAyKXsKCQkJCSR0aGlzLT5iaXRCdWZmZXItPnB1dCgkdGhpcy0+cGFyc2VJbnQoc3Vic3RyKCRkYXRhLCAkaSwgJGkgKyAyKSksIDcpOwoJCQl9CgoJCX0KCgl9CgoJLyoqCgkgKiBnZXQgdGhlIGNvZGUgZm9yIHRoZSBnaXZlbiBudW1lcmljIHN0cmluZwoJICoKCSAqIEB0aHJvd3MgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbiBvbiBhbiBpbGxlZ2FsIGNoYXJhY3RlciBvY2N1cmVuY2UKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHBhcnNlSW50KHN0cmluZyAkc3RyaW5nKTppbnR7CgkJJG51bSA9IDA7CgoJCWZvcmVhY2goc3RyX3NwbGl0KCRzdHJpbmcpIGFzICRjaHIpewoJCQkkYyA9IG9yZCgkY2hyKTsKCgkJCWlmKCFpc3NldCgkdGhpczo6Q0hBUl9NQVBfTlVNQkVSWyRjaHJdKSl7CgkJCQl0aHJvdyBuZXcgUVJDb2RlRGF0YUV4Y2VwdGlvbihzcHJpbnRmKCdpbGxlZ2FsIGNoYXI6ICIlcyIgWyVkXScsICRjaHIsICRjKSk7CgkJCX0KCgkJCSRjICAgPSAkYyAtIDQ4OyAvLyBvcmQoJzAnKQoJCQkkbnVtID0gJG51bSAqIDEwICsgJGM7CgkJfQoKCQlyZXR1cm4gJG51bTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyMzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJEYXRhIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MzA6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE51bWJlciI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTnVtYmVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiTnVtYmVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNToiTnVtZXJpYyBtb2RlOiBkZWNpbWFsIGRpZ2l0cyAwIHRvIDkiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjU6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguMy4yCklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguNC4yIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjI6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJRUkRhdGFBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToyOntzOjQxOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxOdW1iZXI6OiRkYXRhbW9kZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTnVtYmVyOjokZGF0YW1vZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJkYXRhbW9kZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjM4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpEQVRBX05VTUJFUiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE51bWJlcjo6JGxlbmd0aEJpdHMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE51bWJlcjo6JGxlbmd0aEJpdHMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoibGVuZ3RoQml0cyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjEyOiJbMTAsIDEyLCAxNF0iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjI6e3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE51bWJlcjo6d3JpdGUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXRkb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxOdW1iZXI6OndyaXRlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJ3cml0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJkYXRhIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTnVtYmVyOjpwYXJzZUludCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MToiZ2V0IHRoZSBjb2RlIGZvciB0aGUgZ2l2ZW4gbnVtZXJpYyBzdHJpbmciO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToiUVJDb2RlRGF0YUV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMzoib24gYW4gaWxsZWdhbCBjaGFyYWN0ZXIgb2NjdXJlbmNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTnVtYmVyOjpwYXJzZUludCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoicGFyc2VJbnQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Njoic3RyaW5nIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/B/Z/yudzLKt0Ng5wUPA9-r2g b/files/B/Z/yudzLKt0Ng5wUPA9-r2g deleted file mode 100644 index c4a5538c0..000000000 --- a/files/B/Z/yudzLKt0Ng5wUPA9-r2g +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Aa3598badc79d62dd0a7188eed330d15f-341455e6590d16f6576adbe77785ad12 -s:16700:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjg6IkludGVyZmFjZSBRUk91dHB1dEludGVyZmFjZSwiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjE6IlFST3V0cHV0SW50ZXJmYWNlLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjAyLjEyLjIwMTUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6NjoiU21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTUgU21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjM0MTQ1NWU2NTkwZDE2ZjY1NzZhZGJlNzc3ODVhZDEyIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MjE6IlFST3V0cHV0SW50ZXJmYWNlLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjMyOiJzcmMvT3V0cHV0L1FST3V0cHV0SW50ZXJmYWNlLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTU2NDoiPD9waHAKLyoqCiAqIEludGVyZmFjZSBRUk91dHB1dEludGVyZmFjZSwKICoKICogQGZpbGVzb3VyY2UgICBRUk91dHB1dEludGVyZmFjZS5waHAKICogQGNyZWF0ZWQgICAgICAwMi4xMi4yMDE1CiAqIEBwYWNrYWdlICAgICAgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0CiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNSBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0OwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg7CgovKioKICogQ29udmVydHMgdGhlIGRhdGEgbWF0cml4IGludG8gcmVhZGFibGUgb3V0cHV0CiAqLwppbnRlcmZhY2UgUVJPdXRwdXRJbnRlcmZhY2V7CgoJY29uc3QgREVGQVVMVF9NT0RVTEVfVkFMVUVTID0gWwoJCS8vIGxpZ2h0CgkJUVJNYXRyaXg6Ok1fTlVMTCAgICAgICAgICAgID0+IGZhbHNlLCAvLyAwCgkJUVJNYXRyaXg6Ok1fREFUQSAgICAgICAgICAgID0+IGZhbHNlLCAvLyA0CgkJUVJNYXRyaXg6Ok1fRklOREVSICAgICAgICAgID0+IGZhbHNlLCAvLyA2CgkJUVJNYXRyaXg6Ok1fU0VQQVJBVE9SICAgICAgID0+IGZhbHNlLCAvLyA4CgkJUVJNYXRyaXg6Ok1fQUxJR05NRU5UICAgICAgID0+IGZhbHNlLCAvLyAxMAoJCVFSTWF0cml4OjpNX1RJTUlORyAgICAgICAgICA9PiBmYWxzZSwgLy8gMTIKCQlRUk1hdHJpeDo6TV9GT1JNQVQgICAgICAgICAgPT4gZmFsc2UsIC8vIDE0CgkJUVJNYXRyaXg6Ok1fVkVSU0lPTiAgICAgICAgID0+IGZhbHNlLCAvLyAxNgoJCVFSTWF0cml4OjpNX1FVSUVUWk9ORSAgICAgICA9PiBmYWxzZSwgLy8gMTgKCQlRUk1hdHJpeDo6TV9MT0dPICAgICAgICAgICAgPT4gZmFsc2UsIC8vIDIwCgkJUVJNYXRyaXg6Ok1fVEVTVCAgICAgICAgICAgID0+IGZhbHNlLCAvLyAyNTUKCQkvLyBkYXJrCgkJUVJNYXRyaXg6Ok1fREFSS01PRFVMRSA8PCA4ID0+IHRydWUsICAvLyA1MTIKCQlRUk1hdHJpeDo6TV9EQVRBIDw8IDggICAgICAgPT4gdHJ1ZSwgIC8vIDEwMjQKCQlRUk1hdHJpeDo6TV9GSU5ERVIgPDwgOCAgICAgPT4gdHJ1ZSwgIC8vIDE1MzYKCQlRUk1hdHJpeDo6TV9BTElHTk1FTlQgPDwgOCAgPT4gdHJ1ZSwgIC8vIDI1NjAKCQlRUk1hdHJpeDo6TV9USU1JTkcgPDwgOCAgICAgPT4gdHJ1ZSwgIC8vIDMwNzIKCQlRUk1hdHJpeDo6TV9GT1JNQVQgPDwgOCAgICAgPT4gdHJ1ZSwgIC8vIDM1ODQKCQlRUk1hdHJpeDo6TV9WRVJTSU9OIDw8IDggICAgPT4gdHJ1ZSwgIC8vIDQwOTYKCQlRUk1hdHJpeDo6TV9GSU5ERVJfRE9UIDw8IDggPT4gdHJ1ZSwgIC8vIDU2MzIKCQlRUk1hdHJpeDo6TV9URVNUIDw8IDggICAgICAgPT4gdHJ1ZSwgIC8vIDY1MjgwCgldOwoKCS8qKgoJICogZ2VuZXJhdGVzIHRoZSBvdXRwdXQsIG9wdGlvbmFsbHkgZHVtcHMgaXQgdG8gYSBmaWxlLCBhbmQgcmV0dXJucyBpdAoJICoKCSAqIEByZXR1cm4gbWl4ZWQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGR1bXAoc3RyaW5nICRmaWxlID0gbnVsbCk7Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjU6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6Ik91dHB1dCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjE6e3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2UiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXyI6Njp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0SW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IlFST3V0cHV0SW50ZXJmYWNlIjt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDU6IkNvbnZlcnRzIHRoZSBkYXRhIG1hdHJpeCBpbnRvIHJlYWRhYmxlIG91dHB1dCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YToxOntzOjg6IlFSTWF0cml4IjtzOjMxOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEludGVyZmFjZV8AY29uc3RhbnRzIjthOjE6e3M6NjY6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2U6OkRFRkFVTFRfTU9EVUxFX1ZBTFVFUyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEludGVyZmFjZTo6REVGQVVMVF9NT0RVTEVfVkFMVUVTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjE6IkRFRkFVTFRfTU9EVUxFX1ZBTFVFUyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjE0MTY6IlsKICAgIC8vIGxpZ2h0CiAgICBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9OVUxMID0+IGZhbHNlLAogICAgLy8gMAogICAgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fREFUQSA9PiBmYWxzZSwKICAgIC8vIDQKICAgIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX0ZJTkRFUiA9PiBmYWxzZSwKICAgIC8vIDYKICAgIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX1NFUEFSQVRPUiA9PiBmYWxzZSwKICAgIC8vIDgKICAgIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX0FMSUdOTUVOVCA9PiBmYWxzZSwKICAgIC8vIDEwCiAgICBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9USU1JTkcgPT4gZmFsc2UsCiAgICAvLyAxMgogICAgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fRk9STUFUID0+IGZhbHNlLAogICAgLy8gMTQKICAgIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX1ZFUlNJT04gPT4gZmFsc2UsCiAgICAvLyAxNgogICAgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fUVVJRVRaT05FID0+IGZhbHNlLAogICAgLy8gMTgKICAgIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX0xPR08gPT4gZmFsc2UsCiAgICAvLyAyMAogICAgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fVEVTVCA9PiBmYWxzZSwKICAgIC8vIDI1NQogICAgLy8gZGFyawogICAgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fREFSS01PRFVMRSA8PCA4ID0+IHRydWUsCiAgICAvLyA1MTIKICAgIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX0RBVEEgPDwgOCA9PiB0cnVlLAogICAgLy8gMTAyNAogICAgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fRklOREVSIDw8IDggPT4gdHJ1ZSwKICAgIC8vIDE1MzYKICAgIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX0FMSUdOTUVOVCA8PCA4ID0+IHRydWUsCiAgICAvLyAyNTYwCiAgICBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9USU1JTkcgPDwgOCA9PiB0cnVlLAogICAgLy8gMzA3MgogICAgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fRk9STUFUIDw8IDggPT4gdHJ1ZSwKICAgIC8vIDM1ODQKICAgIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX1ZFUlNJT04gPDwgOCA9PiB0cnVlLAogICAgLy8gNDA5NgogICAgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fRklOREVSX0RPVCA8PCA4ID0+IHRydWUsCiAgICAvLyA1NjMyCiAgICBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9URVNUIDw8IDggPT4gdHJ1ZSwKXSI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX19czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXwBtZXRob2RzIjthOjE6e3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2U6OmR1bXAoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njc6ImdlbmVyYXRlcyB0aGUgb3V0cHV0LCBvcHRpb25hbGx5IGR1bXBzIGl0IHRvIGEgZmlsZSwgYW5kIHJldHVybnMgaXQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2U6OmR1bXAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6ImR1bXAiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXwBwYXJlbnRzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxJbnRlcmZhY2VfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/C/E/REX+M9WtxNjLvEiM3UTg b/files/C/E/REX+M9WtxNjLvEiM3UTg deleted file mode 100644 index 35800f9cc..000000000 --- a/files/C/E/REX+M9WtxNjLvEiM3UTg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A8ff9f516ac8e54a3b2246fa2744d92d7-bd2d5a1a70882f338d4c49fed40cd38d -s:16000:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTA6IkNsYXNzIEJ5dGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODoiQnl0ZS5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIyNS4xMS4yMDE1IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYmQyZDVhMWE3MDg4MmYzMzhkNGM0OWZlZDQwY2QzOGQiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czo4OiJCeXRlLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjE3OiJzcmMvRGF0YS9CeXRlLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NzM3OiI8P3BocAovKioKICogQ2xhc3MgQnl0ZQogKgogKiBAZmlsZXNvdXJjZSAgIEJ5dGUucGhwCiAqIEBjcmVhdGVkICAgICAgMjUuMTEuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXERhdGEKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxEYXRhOwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTsKCnVzZSBmdW5jdGlvbiBvcmQ7CgovKioKICogQnl0ZSBtb2RlLCBJU08tODg1OS0xIG9yIFVURi04CiAqCiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguMy40CiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguNC40CiAqLwpmaW5hbCBjbGFzcyBCeXRlIGV4dGVuZHMgUVJEYXRhQWJzdHJhY3R7CgoJcHJvdGVjdGVkIGludCAkZGF0YW1vZGUgPSBRUkNvZGU6OkRBVEFfQllURTsKCglwcm90ZWN0ZWQgYXJyYXkgJGxlbmd0aEJpdHMgPSBbOCwgMTYsIDE2XTsKCgkvKioKCSAqIEBpbmhlcml0ZG9jCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiB3cml0ZShzdHJpbmcgJGRhdGEpOnZvaWR7CgkJJGkgPSAwOwoKCQl3aGlsZSgkaSA8ICR0aGlzLT5zdHJsZW4pewoJCQkkdGhpcy0+Yml0QnVmZmVyLT5wdXQob3JkKCRkYXRhWyRpXSksIDgpOwoJCQkkaSsrOwoJCX0KCgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRGF0YSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxCeXRlIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxCeXRlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiQnl0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzA6IkJ5dGUgbW9kZSwgSVNPLTg4NTktMSBvciBVVEYtOCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NToiSVNPL0lFQyAxODAwNDoyMDAwIFNlY3Rpb24gOC4zLjQKSVNPL0lFQyAxODAwNDoyMDAwIFNlY3Rpb24gOC40LjQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyMjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MTp7czo2OiJRUkNvZGUiO3M6MjQ6ImNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUFic3RyYWN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTQ6IlFSRGF0YUFic3RyYWN0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjI6e3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEJ5dGU6OiRkYXRhbW9kZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcQnl0ZTo6JGRhdGFtb2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiZGF0YW1vZGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czozNjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6REFUQV9CWVRFIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcQnl0ZTo6JGxlbmd0aEJpdHMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEJ5dGU6OiRsZW5ndGhCaXRzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Imxlbmd0aEJpdHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoxMToiWzgsIDE2LCAxNl0iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjE6e3M6Mzc6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEJ5dGU6OndyaXRlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0ZG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcQnl0ZTo6d3JpdGUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IndyaXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/H/E/q3D8ItUWm7MUuYVXkSKw b/files/H/E/q3D8ItUWm7MUuYVXkSKw deleted file mode 100644 index 330f259f1..000000000 --- a/files/H/E/q3D8ItUWm7MUuYVXkSKw +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A1f67fbce112198c37c55fe3ebdfe2599-74482118be419d1e958a5d687120b2a5 -s:184444:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTQ6IkNsYXNzIFFSTWF0cml4IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyOiJRUk1hdHJpeC5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIxNS4xMS4yMDE3IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNzQ0ODIxMThiZTQxOWQxZTk1OGE1ZDY4NzEyMGIyYTUiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxMjoiUVJNYXRyaXgucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MjE6InNyYy9EYXRhL1FSTWF0cml4LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTc5ODU6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUk1hdHJpeAogKgogKiBAZmlsZXNvdXJjZSAgIFFSTWF0cml4LnBocAogKiBAY3JlYXRlZCAgICAgIDE1LjExLjIwMTcKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVxEYXRhCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YTsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU7CnVzZSBDbG9zdXJlOwoKdXNlIGZ1bmN0aW9uIGFycmF5X2ZpbGwsIGFycmF5X2tleV9leGlzdHMsIGFycmF5X3B1c2gsIGFycmF5X3Vuc2hpZnQsIGNvdW50LCBmbG9vciwgaW5fYXJyYXksIG1heCwgbWluLCByYW5nZTsKCi8qKgogKiBIb2xkcyBhIG51bWVyaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZmluYWwgUVIgQ29kZTsKICogbWFwcyB0aGUgRUNDIGNvZGVkIGJpbmFyeSBkYXRhIGFuZCBhcHBsaWVzIHRoZSBtYXNrIHBhdHRlcm4KICoKICogQHNlZSBodHRwOi8vd3d3LnRob25reS5jb20vcXItY29kZS10dXRvcmlhbC9mb3JtYXQtdmVyc2lvbi1pbmZvcm1hdGlvbgogKi8KZmluYWwgY2xhc3MgUVJNYXRyaXh7CgoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgTV9OVUxMICAgICAgID0gMHgwMDsKCS8qKiBAdmFyIGludCAqLwoJcHVibGljIGNvbnN0IE1fREFSS01PRFVMRSA9IDB4MDI7CgkvKiogQHZhciBpbnQgKi8KCXB1YmxpYyBjb25zdCBNX0RBVEEgICAgICAgPSAweDA0OwoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgTV9GSU5ERVIgICAgID0gMHgwNjsKCS8qKiBAdmFyIGludCAqLwoJcHVibGljIGNvbnN0IE1fU0VQQVJBVE9SICA9IDB4MDg7CgkvKiogQHZhciBpbnQgKi8KCXB1YmxpYyBjb25zdCBNX0FMSUdOTUVOVCAgPSAweDBhOwoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgTV9USU1JTkcgICAgID0gMHgwYzsKCS8qKiBAdmFyIGludCAqLwoJcHVibGljIGNvbnN0IE1fRk9STUFUICAgICA9IDB4MGU7CgkvKiogQHZhciBpbnQgKi8KCXB1YmxpYyBjb25zdCBNX1ZFUlNJT04gICAgPSAweDEwOwoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgTV9RVUlFVFpPTkUgID0gMHgxMjsKCS8qKiBAdmFyIGludCAqLwoJcHVibGljIGNvbnN0IE1fTE9HTyAgICAgICA9IDB4MTQ7CgkvKiogQHZhciBpbnQgKi8KCXB1YmxpYyBjb25zdCBNX0ZJTkRFUl9ET1QgPSAweDE2OwoJLyoqIEB2YXIgaW50ICovCglwdWJsaWMgY29uc3QgTV9URVNUICAgICAgID0gMHhmZjsKCgkvKioKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBBbm5leCBFLCBUYWJsZSBFLjEgLSBSb3cvY29sdW1uIGNvb3JkaW5hdGVzIG9mIGNlbnRlciBtb2R1bGUgb2YgQWxpZ25tZW50IFBhdHRlcm5zCgkgKgoJICogdmVyc2lvbiAtPiBwYXR0ZXJuCgkgKgoJICogQHZhciBpbnRbXVtdCgkgKi8KCXByb3RlY3RlZCBjb25zdCBhbGlnbm1lbnRQYXR0ZXJuID0gWwoJCTEgID0+IFtdLAoJCTIgID0+IFs2LCAxOF0sCgkJMyAgPT4gWzYsIDIyXSwKCQk0ICA9PiBbNiwgMjZdLAoJCTUgID0+IFs2LCAzMF0sCgkJNiAgPT4gWzYsIDM0XSwKCQk3ICA9PiBbNiwgMjIsIDM4XSwKCQk4ICA9PiBbNiwgMjQsIDQyXSwKCQk5ICA9PiBbNiwgMjYsIDQ2XSwKCQkxMCA9PiBbNiwgMjgsIDUwXSwKCQkxMSA9PiBbNiwgMzAsIDU0XSwKCQkxMiA9PiBbNiwgMzIsIDU4XSwKCQkxMyA9PiBbNiwgMzQsIDYyXSwKCQkxNCA9PiBbNiwgMjYsIDQ2LCA2Nl0sCgkJMTUgPT4gWzYsIDI2LCA0OCwgNzBdLAoJCTE2ID0+IFs2LCAyNiwgNTAsIDc0XSwKCQkxNyA9PiBbNiwgMzAsIDU0LCA3OF0sCgkJMTggPT4gWzYsIDMwLCA1NiwgODJdLAoJCTE5ID0+IFs2LCAzMCwgNTgsIDg2XSwKCQkyMCA9PiBbNiwgMzQsIDYyLCA5MF0sCgkJMjEgPT4gWzYsIDI4LCA1MCwgNzIsICA5NF0sCgkJMjIgPT4gWzYsIDI2LCA1MCwgNzQsICA5OF0sCgkJMjMgPT4gWzYsIDMwLCA1NCwgNzgsIDEwMl0sCgkJMjQgPT4gWzYsIDI4LCA1NCwgODAsIDEwNl0sCgkJMjUgPT4gWzYsIDMyLCA1OCwgODQsIDExMF0sCgkJMjYgPT4gWzYsIDMwLCA1OCwgODYsIDExNF0sCgkJMjcgPT4gWzYsIDM0LCA2MiwgOTAsIDExOF0sCgkJMjggPT4gWzYsIDI2LCA1MCwgNzQsICA5OCwgMTIyXSwKCQkyOSA9PiBbNiwgMzAsIDU0LCA3OCwgMTAyLCAxMjZdLAoJCTMwID0+IFs2LCAyNiwgNTIsIDc4LCAxMDQsIDEzMF0sCgkJMzEgPT4gWzYsIDMwLCA1NiwgODIsIDEwOCwgMTM0XSwKCQkzMiA9PiBbNiwgMzQsIDYwLCA4NiwgMTEyLCAxMzhdLAoJCTMzID0+IFs2LCAzMCwgNTgsIDg2LCAxMTQsIDE0Ml0sCgkJMzQgPT4gWzYsIDM0LCA2MiwgOTAsIDExOCwgMTQ2XSwKCQkzNSA9PiBbNiwgMzAsIDU0LCA3OCwgMTAyLCAxMjYsIDE1MF0sCgkJMzYgPT4gWzYsIDI0LCA1MCwgNzYsIDEwMiwgMTI4LCAxNTRdLAoJCTM3ID0+IFs2LCAyOCwgNTQsIDgwLCAxMDYsIDEzMiwgMTU4XSwKCQkzOCA9PiBbNiwgMzIsIDU4LCA4NCwgMTEwLCAxMzYsIDE2Ml0sCgkJMzkgPT4gWzYsIDI2LCA1NCwgODIsIDExMCwgMTM4LCAxNjZdLAoJCTQwID0+IFs2LCAzMCwgNTgsIDg2LCAxMTQsIDE0MiwgMTcwXSwKCV07CgoJLyoqCgkgKiBJU08vSUVDIDE4MDA0OjIwMDAgQW5uZXggRCwgVGFibGUgRC4xIC0gVmVyc2lvbiBpbmZvcm1hdGlvbiBiaXQgc3RyZWFtIGZvciBlYWNoIHZlcnNpb24KCSAqCgkgKiBubyB2ZXJzaW9uIHBhdHRlcm4gZm9yIFFSIENvZGVzIDwgNwoJICoKCSAqIEB2YXIgaW50W10KCSAqLwoJcHJvdGVjdGVkIGNvbnN0IHZlcnNpb25QYXR0ZXJuID0gWwoJCTcgID0+IDBiMDAwMTExMTEwMDEwMDEwMTAwLAoJCTggID0+IDBiMDAxMDAwMDEwMTEwMTExMTAwLAoJCTkgID0+IDBiMDAxMDAxMTAxMDEwMDExMDAxLAoJCTEwID0+IDBiMDAxMDEwMDEwMDExMDEwMDExLAoJCTExID0+IDBiMDAxMDExMTAxMTExMTEwMTEwLAoJCTEyID0+IDBiMDAxMTAwMDExMTAxMTAwMDEwLAoJCTEzID0+IDBiMDAxMTAxMTAwMDAxMDAwMTExLAoJCTE0ID0+IDBiMDAxMTEwMDExMDAwMDAxMTAxLAoJCTE1ID0+IDBiMDAxMTExMTAwMTAwMTAxMDAwLAoJCTE2ID0+IDBiMDEwMDAwMTAxMTAxMTExMDAwLAoJCTE3ID0+IDBiMDEwMDAxMDEwMDAxMDExMTAxLAoJCTE4ID0+IDBiMDEwMDEwMTAxMDAwMDEwMTExLAoJCTE5ID0+IDBiMDEwMDExMDEwMTAwMTEwMDEwLAoJCTIwID0+IDBiMDEwMTAwMTAwMTEwMTAwMTEwLAoJCTIxID0+IDBiMDEwMTAxMDExMDEwMDAwMDExLAoJCTIyID0+IDBiMDEwMTEwMTAwMDExMDAxMDAxLAoJCTIzID0+IDBiMDEwMTExMDExMTExMTAxMTAwLAoJCTI0ID0+IDBiMDExMDAwMTExMDExMDAwMTAwLAoJCTI1ID0+IDBiMDExMDAxMDAwMTExMTAwMDAxLAoJCTI2ID0+IDBiMDExMDEwMTExMTEwMTAxMDExLAoJCTI3ID0+IDBiMDExMDExMDAwMDEwMDAxMTEwLAoJCTI4ID0+IDBiMDExMTAwMTEwMDAwMDExMDEwLAoJCTI5ID0+IDBiMDExMTAxMDAxMTAwMTExMTExLAoJCTMwID0+IDBiMDExMTEwMTEwMTAxMTEwMTAxLAoJCTMxID0+IDBiMDExMTExMDAxMDAxMDEwMDAwLAoJCTMyID0+IDBiMTAwMDAwMTAwMTExMDEwMTAxLAoJCTMzID0+IDBiMTAwMDAxMDExMDExMTEwMDAwLAoJCTM0ID0+IDBiMTAwMDEwMTAwMDEwMTExMDEwLAoJCTM1ID0+IDBiMTAwMDExMDExMTEwMDExMTExLAoJCTM2ID0+IDBiMTAwMTAwMTAxMTAwMDAxMDExLAoJCTM3ID0+IDBiMTAwMTAxMDEwMDAwMTAxMTEwLAoJCTM4ID0+IDBiMTAwMTEwMTAxMDAxMTAwMTAwLAoJCTM5ID0+IDBiMTAwMTExMDEwMTAxMDAwMDAxLAoJCTQwID0+IDBiMTAxMDAwMTEwMDAxMTAxMDAxLAoJXTsKCgkvKioKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguOSAtIEZvcm1hdCBJbmZvcm1hdGlvbgoJICoKCSAqIEVDQyBsZXZlbCAtPiBtYXNrIHBhdHRlcm4KCSAqCgkgKiBAdmFyIGludFtdW10KCSAqLwoJcHJvdGVjdGVkIGNvbnN0IGZvcm1hdFBhdHRlcm4gPSBbCgkJWyAvLyBMCgkJCTBiMTExMDExMTExMDAwMTAwLAoJCQkwYjExMTAwMTAxMTExMDAxMSwKCQkJMGIxMTExMTAxMTAxMDEwMTAsCgkJCTBiMTExMTAwMDEwMDExMTAxLAoJCQkwYjExMDAxMTAwMDEwMTExMSwKCQkJMGIxMTAwMDExMDAwMTEwMDAsCgkJCTBiMTEwMTEwMDAxMDAwMDAxLAoJCQkwYjExMDEwMDEwMTExMDExMCwKCQldLAoJCVsgLy8gTQoJCQkwYjEwMTAxMDAwMDAxMDAxMCwKCQkJMGIxMDEwMDAxMDAxMDAxMDEsCgkJCTBiMTAxMTExMDAxMTExMTAwLAoJCQkwYjEwMTEwMTEwMTAwMTAxMSwKCQkJMGIxMDAwMTAxMTExMTEwMDEsCgkJCTBiMTAwMDAwMDExMDAxMTEwLAoJCQkwYjEwMDExMTExMDAxMDExMSwKCQkJMGIxMDAxMDEwMTAxMDAwMDAsCgkJXSwKCQlbIC8vIFEKCQkJMGIwMTEwMTAxMDEwMTExMTEsCgkJCTBiMDExMDAwMDAxMTAxMDAwLAoJCQkwYjAxMTExMTEwMDExMDAwMSwKCQkJMGIwMTExMDEwMDAwMDAxMTAsCgkJCTBiMDEwMDEwMDEwMTEwMTAwLAoJCQkwYjAxMDAwMDExMDAwMDAxMSwKCQkJMGIwMTAxMTEwMTEwMTEwMTAsCgkJCTBiMDEwMTAxMTExMTAxMTAxLAoJCV0sCgkJWyAvLyBICgkJCTBiMDAxMDExMDEwMDAxMDAxLAoJCQkwYjAwMTAwMTExMDExMTExMCwKCQkJMGIwMDExMTAwMTExMDAxMTEsCgkJCTBiMDAxMTAwMTExMDEwMDAwLAoJCQkwYjAwMDAxMTEwMTEwMDAxMCwKCQkJMGIwMDAwMDEwMDEwMTAxMDEsCgkJCTBiMDAwMTEwMTAwMDAxMTAwLAoJCQkwYjAwMDEwMDAwMDExMTAxMSwKCQldLAoJXTsKCgkvKioKCSAqIHRoZSBjdXJyZW50IFFSIENvZGUgdmVyc2lvbiBudW1iZXIKCSAqLwoJcHJvdGVjdGVkIGludCAkdmVyc2lvbjsKCgkvKioKCSAqIHRoZSBjdXJyZW50IEVDQyBsZXZlbAoJICovCglwcm90ZWN0ZWQgaW50ICRlY2xldmVsOwoKCS8qKgoJICogdGhlIHVzZWQgbWFzayBwYXR0ZXJuLCBzZXQgdmlhIFFSTWF0cml4OjptYXBEYXRhKCkKCSAqLwoJcHJvdGVjdGVkIGludCAkbWFza1BhdHRlcm4gPSBRUkNvZGU6Ok1BU0tfUEFUVEVSTl9BVVRPOwoKCS8qKgoJICogdGhlIHNpemUgKHNpZGUgbGVuZ3RoKSBvZiB0aGUgbWF0cml4CgkgKi8KCXByb3RlY3RlZCBpbnQgJG1vZHVsZUNvdW50OwoKCS8qKgoJICogdGhlIGFjdHVhbCBtYXRyaXggZGF0YSBhcnJheQoJICoKCSAqIEB2YXIgaW50W11bXQoJICovCglwcm90ZWN0ZWQgYXJyYXkgJG1hdHJpeDsKCgkvKioKCSAqIFFSTWF0cml4IGNvbnN0cnVjdG9yLgoJICoKCSAqIEB0aHJvd3MgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbgoJICovCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoaW50ICR2ZXJzaW9uLCBpbnQgJGVjbGV2ZWwpewoKCQlpZighaW5fYXJyYXkoJHZlcnNpb24sIHJhbmdlKDEsIDQwKSwgdHJ1ZSkpewoJCQl0aHJvdyBuZXcgUVJDb2RlRGF0YUV4Y2VwdGlvbignaW52YWxpZCBRUiBDb2RlIHZlcnNpb24nKTsKCQl9CgoJCWlmKCFhcnJheV9rZXlfZXhpc3RzKCRlY2xldmVsLCBRUkNvZGU6OkVDQ19NT0RFUykpewoJCQl0aHJvdyBuZXcgUVJDb2RlRGF0YUV4Y2VwdGlvbignaW52YWxpZCBlY2MgbGV2ZWwnKTsKCQl9CgoJCSR0aGlzLT52ZXJzaW9uICAgICA9ICR2ZXJzaW9uOwoJCSR0aGlzLT5lY2xldmVsICAgICA9ICRlY2xldmVsOwoJCSR0aGlzLT5tb2R1bGVDb3VudCA9ICR0aGlzLT52ZXJzaW9uICogNCArIDE3OwoJCSR0aGlzLT5tYXRyaXggICAgICA9IGFycmF5X2ZpbGwoMCwgJHRoaXMtPm1vZHVsZUNvdW50LCBhcnJheV9maWxsKDAsICR0aGlzLT5tb2R1bGVDb3VudCwgJHRoaXM6Ok1fTlVMTCkpOwoJfQoKCS8qKgoJICogc2hvcnRjdXQgdG8gaW5pdGlhbGl6ZSB0aGUgbWF0cml4CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBpbml0KGludCAkbWFza1BhdHRlcm4sIGJvb2wgJHRlc3QgPSBudWxsKTpRUk1hdHJpeHsKCQlyZXR1cm4gJHRoaXMKCQkJLT5zZXRGaW5kZXJQYXR0ZXJuKCkKCQkJLT5zZXRTZXBhcmF0b3JzKCkKCQkJLT5zZXRBbGlnbm1lbnRQYXR0ZXJuKCkKCQkJLT5zZXRUaW1pbmdQYXR0ZXJuKCkKCQkJLT5zZXRWZXJzaW9uTnVtYmVyKCR0ZXN0KQoJCQktPnNldEZvcm1hdEluZm8oJG1hc2tQYXR0ZXJuLCAkdGVzdCkKCQkJLT5zZXREYXJrTW9kdWxlKCkKCQk7Cgl9CgoJLyoqCgkgKiBSZXR1cm5zIHRoZSBkYXRhIG1hdHJpeCwgcmV0dXJucyBhIHB1cmUgYm9vbGVhbiByZXByZXNlbnRhdGlvbiBpZiAkYm9vbGVhbiBpcyBzZXQgdG8gdHJ1ZQoJICoKCSAqIEByZXR1cm4gaW50W11bXXxib29sW11bXQoJICovCglwdWJsaWMgZnVuY3Rpb24gbWF0cml4KGJvb2wgJGJvb2xlYW4gPSBmYWxzZSk6YXJyYXl7CgoJCWlmKCEkYm9vbGVhbil7CgkJCXJldHVybiAkdGhpcy0+bWF0cml4OwoJCX0KCgkJJG1hdHJpeCA9IFtdOwoKCQlmb3JlYWNoKCR0aGlzLT5tYXRyaXggYXMgJHkgPT4gJHJvdyl7CgkJCSRtYXRyaXhbJHldID0gW107CgoJCQlmb3JlYWNoKCRyb3cgYXMgJHggPT4gJHZhbCl7CgkJCQkkbWF0cml4WyR5XVskeF0gPSAoJHZhbCA+PiA4KSA+IDA7CgkJCX0KCQl9CgoJCXJldHVybiAkbWF0cml4OwoJfQoKCS8qKgoJICogUmV0dXJucyB0aGUgY3VycmVudCB2ZXJzaW9uIG51bWJlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gdmVyc2lvbigpOmludHsKCQlyZXR1cm4gJHRoaXMtPnZlcnNpb247Cgl9CgoJLyoqCgkgKiBSZXR1cm5zIHRoZSBjdXJyZW50IEVDQyBsZXZlbAoJICovCglwdWJsaWMgZnVuY3Rpb24gZWNjTGV2ZWwoKTppbnR7CgkJcmV0dXJuICR0aGlzLT5lY2xldmVsOwoJfQoKCS8qKgoJICogUmV0dXJucyB0aGUgY3VycmVudCBtYXNrIHBhdHRlcm4KCSAqLwoJcHVibGljIGZ1bmN0aW9uIG1hc2tQYXR0ZXJuKCk6aW50ewoJCXJldHVybiAkdGhpcy0+bWFza1BhdHRlcm47Cgl9CgoJLyoqCgkgKiBSZXR1cm5zIHRoZSBhYnNvdWx1dGUgc2l6ZSBvZiB0aGUgbWF0cml4LCBpbmNsdWRpbmcgcXVpZXQgem9uZSAoYWZ0ZXIgc2V0dGluZyBpdCkuCgkgKgoJICogc2l6ZSA9IHZlcnNpb24gKiA0ICsgMTcgWyArIDIgKiBxdWlldHpvbmUgc2l6ZV0KCSAqLwoJcHVibGljIGZ1bmN0aW9uIHNpemUoKTppbnR7CgkJcmV0dXJuICR0aGlzLT5tb2R1bGVDb3VudDsKCX0KCgkvKioKCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBtb2R1bGUgYXQgcG9zaXRpb24gWyR4LCAkeV0KCSAqLwoJcHVibGljIGZ1bmN0aW9uIGdldChpbnQgJHgsIGludCAkeSk6aW50ewoJCXJldHVybiAkdGhpcy0+bWF0cml4WyR5XVskeF07Cgl9CgoJLyoqCgkgKiBTZXRzIHRoZSAkTV9UWVBFIHZhbHVlIGZvciB0aGUgbW9kdWxlIGF0IHBvc2l0aW9uIFskeCwgJHldCgkgKgoJICogICB0cnVlICA9PiAkTV9UWVBFIDw8IDgKCSAqICAgZmFsc2UgPT4gJE1fVFlQRQoJICovCglwdWJsaWMgZnVuY3Rpb24gc2V0KGludCAkeCwgaW50ICR5LCBib29sICR2YWx1ZSwgaW50ICRNX1RZUEUpOlFSTWF0cml4ewoJCSR0aGlzLT5tYXRyaXhbJHldWyR4XSA9ICRNX1RZUEUgPDwgKCR2YWx1ZSA/IDggOiAwKTsKCgkJcmV0dXJuICR0aGlzOwoJfQoKCS8qKgoJICogQ2hlY2tzIHdoZXRoZXIgYSBtb2R1bGUgaXMgdHJ1ZSAoZGFyaykgb3IgZmFsc2UgKGxpZ2h0KQoJICoKCSAqICAgdHJ1ZSAgPT4gJHZhbHVlID4+IDggPT09ICRNX1RZUEUKCSAqICAgICAgICAgICAgJHZhbHVlID4+IDggPiAwCgkgKgoJICogICBmYWxzZSA9PiAkdmFsdWUgPT09ICRNX1RZUEUKCSAqICAgICAgICAgICAgJHZhbHVlID4+IDggPT09IDAKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGNoZWNrKGludCAkeCwgaW50ICR5KTpib29sewoJCXJldHVybiAoJHRoaXMtPm1hdHJpeFskeV1bJHhdID4+IDgpID4gMDsKCX0KCgoJLyoqCgkgKiBTZXRzIHRoZSAiZGFyayBtb2R1bGUiLCB0aGF0IGlzIGFsd2F5cyBvbiB0aGUgc2FtZSBwb3NpdGlvbiAxeDFweCBhd2F5IGZyb20gdGhlIGJvdHRvbSBsZWZ0IGZpbmRlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gc2V0RGFya01vZHVsZSgpOlFSTWF0cml4ewoJCSR0aGlzLT5zZXQoOCwgNCAqICR0aGlzLT52ZXJzaW9uICsgOSwgdHJ1ZSwgJHRoaXM6Ok1fREFSS01PRFVMRSk7CgoJCXJldHVybiAkdGhpczsKCX0KCgkvKioKCSAqIERyYXdzIHRoZSA3eDcgZmluZGVyIHBhdHRlcm5zIGluIHRoZSBjb3JuZXJzIHRvcCBsZWZ0L3JpZ2h0IGFuZCBib3R0b20gbGVmdAoJICoKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDcuMy4yCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBzZXRGaW5kZXJQYXR0ZXJuKCk6UVJNYXRyaXh7CgoJCSRwb3MgPSBbCgkJCVswLCAwXSwgLy8gdG9wIGxlZnQKCQkJWyR0aGlzLT5tb2R1bGVDb3VudCAtIDcsIDBdLCAvLyBib3R0b20gbGVmdAoJCQlbMCwgJHRoaXMtPm1vZHVsZUNvdW50IC0gN10sIC8vIHRvcCByaWdodAoJCV07CgoJCWZvcmVhY2goJHBvcyBhcyAkYyl7CgkJCWZvcigkeSA9IDA7ICR5IDwgNzsgJHkrKyl7CgkJCQlmb3IoJHggPSAwOyAkeCA8IDc7ICR4KyspewoJCQkJCS8vIG91dGVyIChkYXJrKSA3Kjcgc3F1YXJlCgkJCQkJaWYoJHggPT09IDAgfHwgJHggPT09IDYgfHwgJHkgPT09IDAgfHwgJHkgPT09IDYpewoJCQkJCQkkdGhpcy0+c2V0KCRjWzBdICsgJHksICRjWzFdICsgJHgsIHRydWUsICR0aGlzOjpNX0ZJTkRFUik7CgkJCQkJfQoJCQkJCS8vIGlubmVyIChsaWdodCkgNSo1IHNxdWFyZQoJCQkJCWVsc2VpZigkeCA9PT0gMSB8fCAkeCA9PT0gNSB8fCAkeSA9PT0gMSB8fCAkeSA9PT0gNSl7CgkJCQkJCSR0aGlzLT5zZXQoJGNbMF0gKyAkeSwgJGNbMV0gKyAkeCwgZmFsc2UsICR0aGlzOjpNX0ZJTkRFUik7CgkJCQkJfQoJCQkJCS8vIDMqMyBkb3QKCQkJCQllbHNlewoJCQkJCQkkdGhpcy0+c2V0KCRjWzBdICsgJHksICRjWzFdICsgJHgsIHRydWUsICR0aGlzOjpNX0ZJTkRFUl9ET1QpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuICR0aGlzOwoJfQoKCS8qKgoJICogRHJhd3MgdGhlIHNlcGFyYXRvciBsaW5lcyBhcm91bmQgdGhlIGZpbmRlciBwYXR0ZXJucwoJICoKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDcuMy4zCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBzZXRTZXBhcmF0b3JzKCk6UVJNYXRyaXh7CgoJCSRoID0gWwoJCQlbNywgMF0sCgkJCVskdGhpcy0+bW9kdWxlQ291bnQgLSA4LCAwXSwKCQkJWzcsICR0aGlzLT5tb2R1bGVDb3VudCAtIDhdLAoJCV07CgoJCSR2ID0gWwoJCQlbNywgN10sCgkJCVskdGhpcy0+bW9kdWxlQ291bnQgLSAxLCA3XSwKCQkJWzcsICR0aGlzLT5tb2R1bGVDb3VudCAtIDhdLAoJCV07CgoJCWZvcigkYyA9IDA7ICRjIDwgMzsgJGMrKyl7CgkJCWZvcigkaSA9IDA7ICRpIDwgODsgJGkrKyl7CgkJCQkkdGhpcy0+c2V0KCRoWyRjXVswXSAgICAgLCAkaFskY11bMV0gKyAkaSwgZmFsc2UsICR0aGlzOjpNX1NFUEFSQVRPUik7CgkJCQkkdGhpcy0+c2V0KCR2WyRjXVswXSAtICRpLCAkdlskY11bMV0gICAgICwgZmFsc2UsICR0aGlzOjpNX1NFUEFSQVRPUik7CgkJCX0KCQl9CgoJCXJldHVybiAkdGhpczsKCX0KCgoJLyoqCgkgKiBEcmF3cyB0aGUgNXg1IGFsaWdubWVudCBwYXR0ZXJucwoJICoKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDcuMy41CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBzZXRBbGlnbm1lbnRQYXR0ZXJuKCk6UVJNYXRyaXh7CgoJCWZvcmVhY2goJHRoaXM6OmFsaWdubWVudFBhdHRlcm5bJHRoaXMtPnZlcnNpb25dIGFzICR5KXsKCQkJZm9yZWFjaCgkdGhpczo6YWxpZ25tZW50UGF0dGVyblskdGhpcy0+dmVyc2lvbl0gYXMgJHgpewoKCQkJCS8vIHNraXAgZXhpc3RpbmcgcGF0dGVybnMKCQkJCWlmKCR0aGlzLT5tYXRyaXhbJHldWyR4XSAhPT0gJHRoaXM6Ok1fTlVMTCl7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJZm9yKCRyeSA9IC0yOyAkcnkgPD0gMjsgJHJ5KyspewoJCQkJCWZvcigkcnggPSAtMjsgJHJ4IDw9IDI7ICRyeCsrKXsKCQkJCQkJJHYgPSAoJHJ5ID09PSAwICYmICRyeCA9PT0gMCkgfHwgJHJ5ID09PSAyIHx8ICRyeSA9PT0gLTIgfHwgJHJ4ID09PSAyIHx8ICRyeCA9PT0gLTI7CgoJCQkJCQkkdGhpcy0+c2V0KCR4ICsgJHJ4LCAkeSArICRyeSwgJHYsICR0aGlzOjpNX0FMSUdOTUVOVCk7CgkJCQkJfQoJCQkJfQoKCQkJfQoJCX0KCgkJcmV0dXJuICR0aGlzOwoJfQoKCgkvKioKCSAqIERyYXdzIHRoZSB0aW1pbmcgcGF0dGVybiAoaC92IGNoZWNrZXJlZCBsaW5lIGJldHdlZW4gdGhlIGZpbmRlciBwYXR0ZXJucykKCSAqCgkgKiBJU08vSUVDIDE4MDA0OjIwMDAgU2VjdGlvbiA3LjMuNAoJICovCglwdWJsaWMgZnVuY3Rpb24gc2V0VGltaW5nUGF0dGVybigpOlFSTWF0cml4ewoKCQlmb3JlYWNoKHJhbmdlKDgsICR0aGlzLT5tb2R1bGVDb3VudCAtIDggLSAxKSBhcyAkaSl7CgoJCQlpZigkdGhpcy0+bWF0cml4WzZdWyRpXSAhPT0gJHRoaXM6Ok1fTlVMTCB8fCAkdGhpcy0+bWF0cml4WyRpXVs2XSAhPT0gJHRoaXM6Ok1fTlVMTCl7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJJHYgPSAkaSAlIDIgPT09IDA7CgoJCQkkdGhpcy0+c2V0KCRpLCA2LCAkdiwgJHRoaXM6Ok1fVElNSU5HKTsgLy8gaAoJCQkkdGhpcy0+c2V0KDYsICRpLCAkdiwgJHRoaXM6Ok1fVElNSU5HKTsgLy8gdgoJCX0KCgkJcmV0dXJuICR0aGlzOwoJfQoKCS8qKgoJICogRHJhd3MgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24sIDJ4IDN4NiBwaXhlbAoJICoKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguMTAKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHNldFZlcnNpb25OdW1iZXIoYm9vbCAkdGVzdCA9IG51bGwpOlFSTWF0cml4ewoJCSRiaXRzID0gJHRoaXM6OnZlcnNpb25QYXR0ZXJuWyR0aGlzLT52ZXJzaW9uXSA/PyBmYWxzZTsKCgkJaWYoJGJpdHMgIT09IGZhbHNlKXsKCgkJCWZvcigkaSA9IDA7ICRpIDwgMTg7ICRpKyspewoJCQkJJGEgPSAoaW50KWZsb29yKCRpIC8gMyk7CgkJCQkkYiA9ICRpICUgMyArICR0aGlzLT5tb2R1bGVDb3VudCAtIDggLSAzOwoJCQkJJHYgPSAhJHRlc3QgJiYgKCgkYml0cyA+PiAkaSkgJiAxKSA9PT0gMTsKCgkJCQkkdGhpcy0+c2V0KCRiLCAkYSwgJHYsICR0aGlzOjpNX1ZFUlNJT04pOyAvLyBuZQoJCQkJJHRoaXMtPnNldCgkYSwgJGIsICR2LCAkdGhpczo6TV9WRVJTSU9OKTsgLy8gc3cKCQkJfQoKCQl9CgoJCXJldHVybiAkdGhpczsKCX0KCgkvKioKCSAqIERyYXdzIHRoZSBmb3JtYXQgaW5mbyBhbG9uZyB0aGUgZmluZGVyIHBhdHRlcm5zCgkgKgoJICogSVNPL0lFQyAxODAwNDoyMDAwIFNlY3Rpb24gOC45CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBzZXRGb3JtYXRJbmZvKGludCAkbWFza1BhdHRlcm4sIGJvb2wgJHRlc3QgPSBudWxsKTpRUk1hdHJpeHsKCQkkYml0cyA9ICR0aGlzOjpmb3JtYXRQYXR0ZXJuW1FSQ29kZTo6RUNDX01PREVTWyR0aGlzLT5lY2xldmVsXV1bJG1hc2tQYXR0ZXJuXSA/PyAwOwoKCQlmb3IoJGkgPSAwOyAkaSA8IDE1OyAkaSsrKXsKCQkJJHYgPSAhJHRlc3QgJiYgKCgkYml0cyA+PiAkaSkgJiAxKSA9PT0gMTsKCgkJCWlmKCRpIDwgNil7CgkJCQkkdGhpcy0+c2V0KDgsICRpLCAkdiwgJHRoaXM6Ok1fRk9STUFUKTsKCQkJfQoJCQllbHNlaWYoJGkgPCA4KXsKCQkJCSR0aGlzLT5zZXQoOCwgJGkgKyAxLCAkdiwgJHRoaXM6Ok1fRk9STUFUKTsKCQkJfQoJCQllbHNlewoJCQkJJHRoaXMtPnNldCg4LCAkdGhpcy0+bW9kdWxlQ291bnQgLSAxNSArICRpLCAkdiwgJHRoaXM6Ok1fRk9STUFUKTsKCQkJfQoKCQkJaWYoJGkgPCA4KXsKCQkJCSR0aGlzLT5zZXQoJHRoaXMtPm1vZHVsZUNvdW50IC0gJGkgLSAxLCA4LCAkdiwgJHRoaXM6Ok1fRk9STUFUKTsKCQkJfQoJCQllbHNlaWYoJGkgPCA5KXsKCQkJCSR0aGlzLT5zZXQoMTUgLSAkaSwgOCwgJHYsICR0aGlzOjpNX0ZPUk1BVCk7CgkJCX0KCQkJZWxzZXsKCQkJCSR0aGlzLT5zZXQoMTUgLSAkaSAtIDEsIDgsICR2LCAkdGhpczo6TV9GT1JNQVQpOwoJCQl9CgoJCX0KCgkJJHRoaXMtPnNldCg4LCAkdGhpcy0+bW9kdWxlQ291bnQgLSA4LCAhJHRlc3QsICR0aGlzOjpNX0ZPUk1BVCk7CgoJCXJldHVybiAkdGhpczsKCX0KCgkvKioKCSAqIERyYXdzIHRoZSAicXVpZXQgem9uZSIgb2YgJHNpemUgYXJvdW5kIHRoZSBtYXRyaXgKCSAqCgkgKiBJU08vSUVDIDE4MDA0OjIwMDAgU2VjdGlvbiA3LjMuNwoJICoKCSAqIEB0aHJvd3MgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbgoJICovCglwdWJsaWMgZnVuY3Rpb24gc2V0UXVpZXRab25lKGludCAkc2l6ZSA9IG51bGwpOlFSTWF0cml4ewoKCQlpZigkdGhpcy0+bWF0cml4WyR0aGlzLT5tb2R1bGVDb3VudCAtIDFdWyR0aGlzLT5tb2R1bGVDb3VudCAtIDFdID09PSAkdGhpczo6TV9OVUxMKXsKCQkJdGhyb3cgbmV3IFFSQ29kZURhdGFFeGNlcHRpb24oJ3VzZSBvbmx5IGFmdGVyIHdyaXRpbmcgZGF0YScpOwoJCX0KCgkJJHNpemUgPSAkc2l6ZSAhPT0gbnVsbAoJCQk/IG1heCgwLCBtaW4oJHNpemUsIGZsb29yKCR0aGlzLT5tb2R1bGVDb3VudCAvIDIpKSkKCQkJOiA0OwoKCQlmb3IoJHkgPSAwOyAkeSA8ICR0aGlzLT5tb2R1bGVDb3VudDsgJHkrKyl7CgkJCWZvcigkaSA9IDA7ICRpIDwgJHNpemU7ICRpKyspewoJCQkJYXJyYXlfdW5zaGlmdCgkdGhpcy0+bWF0cml4WyR5XSwgJHRoaXM6Ok1fUVVJRVRaT05FKTsKCQkJCWFycmF5X3B1c2goJHRoaXMtPm1hdHJpeFskeV0sICR0aGlzOjpNX1FVSUVUWk9ORSk7CgkJCX0KCQl9CgoJCSR0aGlzLT5tb2R1bGVDb3VudCArPSAoJHNpemUgKiAyKTsKCgkJJHIgPSBhcnJheV9maWxsKDAsICR0aGlzLT5tb2R1bGVDb3VudCwgJHRoaXM6Ok1fUVVJRVRaT05FKTsKCgkJZm9yKCRpID0gMDsgJGkgPCAkc2l6ZTsgJGkrKyl7CgkJCWFycmF5X3Vuc2hpZnQoJHRoaXMtPm1hdHJpeCwgJHIpOwoJCQlhcnJheV9wdXNoKCR0aGlzLT5tYXRyaXgsICRyKTsKCQl9CgoJCXJldHVybiAkdGhpczsKCX0KCgkvKioKCSAqIENsZWFycyBhIHNwYWNlIG9mICR3aWR0aCAqICRoZWlnaHQgaW4gb3JkZXIgdG8gYWRkIGEgbG9nbyBvciB0ZXh0LgoJICoKCSAqIEFkZGl0aW9uYWxseSwgdGhlIGxvZ28gc3BhY2UgY2FuIGJlIHBvc2l0aW9uZWQgd2l0aGluIHRoZSBRUiBDb2RlIC0gcmVzcGVjdGluZyB0aGUgbWFpbiBmdW5jdGlvbmFsIHBhdHRlcm5zIC0KCSAqIHVzaW5nICRzdGFydFggYW5kICRzdGFydFkuIElmIGVpdGhlciBvZiB0aGVzZSBhcmUgbnVsbCwgdGhlIGxvZ28gc3BhY2Ugd2lsbCBiZSBjZW50ZXJlZCBpbiB0aGF0IGRpcmVjdGlvbi4KCSAqIEVDQyBsZXZlbCAiSCIgKDMwJSkgaXMgcmVxdWlyZWQuCgkgKgoJICogUGxlYXNlIG5vdGUgdGhhdCBhZGRpbmcgYSBsb2dvIHNwYWNlIG1pbmltaXplcyB0aGUgZXJyb3IgY29ycmVjdGlvbiBjYXBhY2l0eSBvZiB0aGUgUVIgQ29kZSBhbmQKCSAqIGNyZWF0ZWQgaW1hZ2VzIG1heSBiZWNvbWUgdW5yZWFkYWJsZSwgZXNwZWNpYWxseSB3aGVuIHByaW50ZWQgd2l0aCBhIGNoYW5jZSB0byByZWNlaXZlIGRhbWFnZS4KCSAqIFBsZWFzZSB0ZXN0IHRob3JvdWdobHkgYmVmb3JlIHVzaW5nIHRoaXMgZmVhdHVyZSBpbiBwcm9kdWN0aW9uLgoJICoKCSAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYW4gb3V0cHV0IG1vZHVsZSAoYWZ0ZXIgdGhlIG1hdHJpeCBoYXMgYmVlbiBmaWxsZWQgd2l0aCBkYXRhKS4KCSAqIE5vdGUgdGhhdCB0aGVyZSBpcyBubyByZXN0aWN0aW9uIG9uIGhvdyBtYW55IHRpbWVzIHRoaXMgbWV0aG9kIGNvdWxkIGJlIGNhbGxlZCBvbiB0aGUgc2FtZSBtYXRyaXggaW5zdGFuY2UuCgkgKgoJICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2NoaWxsZXJsYW4vcGhwLXFyY29kZS9pc3N1ZXMvNTIKCSAqCgkgKiBAdGhyb3dzIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24KCSAqLwoJcHVibGljIGZ1bmN0aW9uIHNldExvZ29TcGFjZShpbnQgJHdpZHRoLCBpbnQgJGhlaWdodCwgaW50ICRzdGFydFggPSBudWxsLCBpbnQgJHN0YXJ0WSA9IG51bGwpOlFSTWF0cml4ewoKCQkvLyBmb3IgbG9nb3Mgd2Ugb3BlcmF0ZSBpbiBFQ0MgSCAoMzAlKSBvbmx5CgkJaWYoJHRoaXMtPmVjbGV2ZWwgIT09IFFSQ29kZTo6RUNDX0gpewoJCQl0aHJvdyBuZXcgUVJDb2RlRGF0YUV4Y2VwdGlvbignRUNDIGxldmVsICJIIiByZXF1aXJlZCB0byBhZGQgbG9nbyBzcGFjZScpOwoJCX0KCgkJLy8gd2UgbmVlZCB1bmV2ZW4gc2l6ZXMgdG8gY2VudGVyIHRoZSBsb2dvIHNwYWNlLCBhZGp1c3QgaWYgbmVlZGVkCgkJaWYoJHN0YXJ0WCA9PT0gbnVsbCAmJiAoJHdpZHRoICUgMikgPT09IDApewoJCQkkd2lkdGgrKzsKCQl9CgoJCWlmKCRzdGFydFkgPT09IG51bGwgJiYgKCRoZWlnaHQgJSAyKSA9PT0gMCl7CgkJCSRoZWlnaHQrKzsKCQl9CgoJCS8vICR0aGlzLT5tb2R1bGVDb3VudCBpbmNsdWRlcyB0aGUgcXVpZXQgem9uZSAoaWYgY3JlYXRlZCksIHdlIG5lZWQgdGhlIFFSIHNpemUgaGVyZQoJCSRsZW5ndGggPSAkdGhpcy0+dmVyc2lvbiAqIDQgKyAxNzsKCgkJLy8gdGhyb3cgaWYgdGhlIGxvZ28gc3BhY2UgZXhjZWVkcyB0aGUgbWF4aW11bSBlcnJvciBjb3JyZWN0aW9uIGNhcGFjaXR5CgkJaWYoJHdpZHRoICogJGhlaWdodCA+IGZsb29yKCRsZW5ndGggKiAkbGVuZ3RoICogMC4yKSl7CgkJCXRocm93IG5ldyBRUkNvZGVEYXRhRXhjZXB0aW9uKCdsb2dvIHNwYWNlIGV4Y2VlZHMgdGhlIG1heGltdW0gZXJyb3IgY29ycmVjdGlvbiBjYXBhY2l0eScpOwoJCX0KCgkJLy8gcXVpZXQgem9uZSBzaXplCgkJJHF6ICAgID0gKCR0aGlzLT5tb2R1bGVDb3VudCAtICRsZW5ndGgpIC8gMjsKCQkvLyBza2lwIHF1aWV0IHpvbmUgYW5kIHRoZSBmaXJzdCA5IHJvd3MvY29sdW1ucyAoZmluZGVyLSwgbW9kZS0sIHZlcnNpb24tIGFuZCB0aW1pbmcgcGF0dGVybnMpCgkJJHN0YXJ0ID0gJHF6ICsgOTsKCQkvLyBza2lwIHF1aWV0IHpvbmUKCQkkZW5kICAgPSAkdGhpcy0+bW9kdWxlQ291bnQgLSAkcXo7CgoJCS8vIGRldGVybWluZSBzdGFydCBjb29yZGluYXRlcwoJCSRzdGFydFggPSAoJHN0YXJ0WCAhPT0gbnVsbCA/ICRzdGFydFggOiAoJGxlbmd0aCAtICR3aWR0aCkgLyAyKSArICRxejsKCQkkc3RhcnRZID0gKCRzdGFydFkgIT09IG51bGwgPyAkc3RhcnRZIDogKCRsZW5ndGggLSAkaGVpZ2h0KSAvIDIpICsgJHF6OwoKCQkvLyBjbGVhciB0aGUgc3BhY2UKCQlmb3JlYWNoKCR0aGlzLT5tYXRyaXggYXMgJHkgPT4gJHJvdyl7CgkJCWZvcmVhY2goJHJvdyBhcyAkeCA9PiAkdmFsKXsKCQkJCS8vIG91dCBvZiBib3VuZHMsIHNraXAKCQkJCWlmKCR4IDwgJHN0YXJ0IHx8ICR5IDwgJHN0YXJ0IHx8JHggPj0gJGVuZCB8fCAkeSA+PSAkZW5kKXsKCQkJCQljb250aW51ZTsKCQkJCX0KCQkJCS8vIGEgbWF0Y2gKCQkJCWlmKCR4ID49ICRzdGFydFggJiYgJHggPCAoJHN0YXJ0WCArICR3aWR0aCkgJiYgJHkgPj0gJHN0YXJ0WSAmJiAkeSA8ICgkc3RhcnRZICsgJGhlaWdodCkpewoJCQkJCSR0aGlzLT5zZXQoJHgsICR5LCBmYWxzZSwgJHRoaXM6Ok1fTE9HTyk7CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiAkdGhpczsKCX0KCgkvKioKCSAqIE1hcHMgdGhlIGJpbmFyeSAkZGF0YSBhcnJheSBmcm9tIFFSRGF0YUludGVyZmFjZTo6bWFza0VDQygpIG9uIHRoZSBtYXRyaXgsCgkgKiBtYXNraW5nIHRoZSBkYXRhIHVzaW5nICRtYXNrUGF0dGVybiAoSVNPL0lFQyAxODAwNDoyMDAwIFNlY3Rpb24gOC44KQoJICoKCSAqIEBzZWUgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6Om1hc2tFQ0MoKQoJICoKCSAqIEBwYXJhbSBpbnRbXSAkZGF0YQoJICogQHBhcmFtIGludCAgICRtYXNrUGF0dGVybgoJICoKCSAqIEByZXR1cm4gXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgKCSAqLwoJcHVibGljIGZ1bmN0aW9uIG1hcERhdGEoYXJyYXkgJGRhdGEsIGludCAkbWFza1BhdHRlcm4pOlFSTWF0cml4ewoJCSR0aGlzLT5tYXNrUGF0dGVybiA9ICRtYXNrUGF0dGVybjsKCQkkYnl0ZUNvdW50ICAgICAgICAgPSBjb3VudCgkZGF0YSk7CgkJJHkgICAgICAgICAgICAgICAgID0gJHRoaXMtPm1vZHVsZUNvdW50IC0gMTsKCQkkaW5jICAgICAgICAgICAgICAgPSAtMTsKCQkkYnl0ZUluZGV4ICAgICAgICAgPSAwOwoJCSRiaXRJbmRleCAgICAgICAgICA9IDc7CgkJJG1hc2sgICAgICAgICAgICAgID0gJHRoaXMtPmdldE1hc2soJHRoaXMtPm1hc2tQYXR0ZXJuKTsKCgkJZm9yKCRpID0gJHk7ICRpID4gMDsgJGkgLT0gMil7CgoJCQlpZigkaSA9PT0gNil7CgkJCQkkaS0tOwoJCQl9CgoJCQl3aGlsZSh0cnVlKXsKCQkJCWZvcigkYyA9IDA7ICRjIDwgMjsgJGMrKyl7CgkJCQkJJHggPSAkaSAtICRjOwoKCQkJCQlpZigkdGhpcy0+bWF0cml4WyR5XVskeF0gPT09ICR0aGlzOjpNX05VTEwpewoJCQkJCQkkdiA9IGZhbHNlOwoKCQkJCQkJaWYoJGJ5dGVJbmRleCA8ICRieXRlQ291bnQpewoJCQkJCQkJJHYgPSAoKCRkYXRhWyRieXRlSW5kZXhdID4+ICRiaXRJbmRleCkgJiAxKSA9PT0gMTsKCQkJCQkJfQoKCQkJCQkJaWYoJG1hc2soJHgsICR5KSA9PT0gMCl7CgkJCQkJCQkkdiA9ICEkdjsKCQkJCQkJfQoKCQkJCQkJJHRoaXMtPm1hdHJpeFskeV1bJHhdID0gJHRoaXM6Ok1fREFUQSA8PCAoJHYgPyA4IDogMCk7CgkJCQkJCSRiaXRJbmRleC0tOwoKCQkJCQkJaWYoJGJpdEluZGV4ID09PSAtMSl7CgkJCQkJCQkkYnl0ZUluZGV4Kys7CgkJCQkJCQkkYml0SW5kZXggPSA3OwoJCQkJCQl9CgoJCQkJCX0KCQkJCX0KCgkJCQkkeSArPSAkaW5jOwoKCQkJCWlmKCR5IDwgMCB8fCAkdGhpcy0+bW9kdWxlQ291bnQgPD0gJHkpewoJCQkJCSR5ICAgLT0gICRpbmM7CgkJCQkJJGluYyAgPSAtJGluYzsKCgkJCQkJYnJlYWs7CgkJCQl9CgoJCQl9CgkJfQoKCQlyZXR1cm4gJHRoaXM7Cgl9CgoJLyoqCgkgKiBJU08vSUVDIDE4MDA0OjIwMDAgU2VjdGlvbiA4LjguMQoJICoKCSAqIE5vdGUgdGhhdCBzb21lIHZlcnNpb25zIG9mIHRoZSBRUiBjb2RlIHN0YW5kYXJkIGhhdmUgaGFkIGVycm9ycyBpbiB0aGUgc2VjdGlvbiBhYm91dCBtYXNrIHBhdHRlcm5zLgoJICogVGhlIGluZm9ybWF0aW9uIGJlbG93IGhhcyBiZWVuIGNvcnJlY3RlZC4gKGh0dHBzOi8vd3d3LnRob25reS5jb20vcXItY29kZS10dXRvcmlhbC9tYXNrLXBhdHRlcm5zKQoJICoKCSAqIEBzZWUgXGNoaWxsZXJsYW5cUVJDb2RlXFFSTWF0cml4OjptYXBEYXRhKCkKCSAqCgkgKiBAaW50ZXJuYWwKCSAqCgkgKiBAdGhyb3dzIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24KCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldE1hc2soaW50ICRtYXNrUGF0dGVybik6Q2xvc3VyZXsKCgkJaWYoKDBiMTExICYgJG1hc2tQYXR0ZXJuKSAhPT0gJG1hc2tQYXR0ZXJuKXsKCQkJdGhyb3cgbmV3IFFSQ29kZURhdGFFeGNlcHRpb24oJ2ludmFsaWQgbWFzayBwYXR0ZXJuJyk7IC8vIEBjb2RlQ292ZXJhZ2VJZ25vcmUKCQl9CgoJCXJldHVybiBbCgkJCTBiMDAwID0+IGZuKCR4LCAkeSk6aW50ID0+ICgkeCArICR5KSAlIDIsCgkJCTBiMDAxID0+IGZuKCR4LCAkeSk6aW50ID0+ICR5ICUgMiwKCQkJMGIwMTAgPT4gZm4oJHgsICR5KTppbnQgPT4gJHggJSAzLAoJCQkwYjAxMSA9PiBmbigkeCwgJHkpOmludCA9PiAoJHggKyAkeSkgJSAzLAoJCQkwYjEwMCA9PiBmbigkeCwgJHkpOmludCA9PiAoKGludCkoJHkgLyAyKSArIChpbnQpKCR4IC8gMykpICUgMiwKCQkJMGIxMDEgPT4gZm4oJHgsICR5KTppbnQgPT4gKCgkeCAqICR5KSAlIDIpICsgKCgkeCAqICR5KSAlIDMpLAoJCQkwYjExMCA9PiBmbigkeCwgJHkpOmludCA9PiAoKCgkeCAqICR5KSAlIDIpICsgKCgkeCAqICR5KSAlIDMpKSAlIDIsCgkJCTBiMTExID0+IGZuKCR4LCAkeSk6aW50ID0+ICgoKCR4ICogJHkpICUgMykgKyAoKCR4ICsgJHkpICUgMikpICUgMiwKCQldWyRtYXNrUGF0dGVybl07Cgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRGF0YSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTE0OiJIb2xkcyBhIG51bWVyaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZmluYWwgUVIgQ29kZTsKbWFwcyB0aGUgRUNDIGNvZGVkIGJpbmFyeSBkYXRhIGFuZCBhcHBsaWVzIHRoZSBtYXNrIHBhdHRlcm4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwiOjE6e3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsAHVyaSI7czo2NToiaHR0cDovL3d3dy50aG9ua3kuY29tL3FyLWNvZGUtdHV0b3JpYWwvZm9ybWF0LXZlcnNpb24taW5mb3JtYXRpb24iO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjI6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjI6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO3M6NzoiQ2xvc3VyZSI7czo3OiJDbG9zdXJlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjoxO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MTY6e3M6NDA6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX05VTEwiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX05VTEwiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJNX05VTEwiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czozOiIweDAiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czo0NjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fREFSS01PRFVMRSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fREFSS01PRFVMRSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJNX0RBUktNT0RVTEUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czozOiIweDIiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fREFUQSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fREFUQSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6Ik1fREFUQSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjM6IjB4NCI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9GSU5ERVIiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX0ZJTkRFUiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6Ik1fRklOREVSIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MzoiMHg2IjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX1NFUEFSQVRPUiI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fU0VQQVJBVE9SIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Ik1fU0VQQVJBVE9SIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MzoiMHg4IjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX0FMSUdOTUVOVCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fQUxJR05NRU5UIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Ik1fQUxJR05NRU5UIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MzoiMHhhIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX1RJTUlORyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fVElNSU5HIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiTV9USU1JTkciO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czozOiIweGMiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fRk9STUFUIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9GT1JNQVQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJNX0ZPUk1BVCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjM6IjB4ZSI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9WRVJTSU9OIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9WRVJTSU9OIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiTV9WRVJTSU9OIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6NDoiMHgxMCI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6TV9RVUlFVFpPTkUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX1FVSUVUWk9ORSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJNX1FVSUVUWk9ORSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjQ6IjB4MTIiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fTE9HTyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fTE9HTyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6Ik1fTE9HTyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjQ6IjB4MTQiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czo0NjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fRklOREVSX0RPVCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Ok1fRklOREVSX0RPVCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJNX0ZJTkRFUl9ET1QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo0OiIweDE2IjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NDA6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX1RFU1QiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpNX1RFU1QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJNX1RFU1QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo0OiIweGZmIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NTA6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjphbGlnbm1lbnRQYXR0ZXJuIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6YWxpZ25tZW50UGF0dGVybiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJhbGlnbm1lbnRQYXR0ZXJuIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEwMToiSVNPL0lFQyAxODAwNDoyMDAwIEFubmV4IEUsIFRhYmxlIEUuMSAtIFJvdy9jb2x1bW4gY29vcmRpbmF0ZXMgb2YgY2VudGVyIG1vZHVsZSBvZiBBbGlnbm1lbnQgUGF0dGVybnMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTg6InZlcnNpb24gLT4gcGF0dGVybiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MTAyMjoiWzEgPT4gW10sIDIgPT4gWzYsIDE4XSwgMyA9PiBbNiwgMjJdLCA0ID0+IFs2LCAyNl0sIDUgPT4gWzYsIDMwXSwgNiA9PiBbNiwgMzRdLCA3ID0+IFs2LCAyMiwgMzhdLCA4ID0+IFs2LCAyNCwgNDJdLCA5ID0+IFs2LCAyNiwgNDZdLCAxMCA9PiBbNiwgMjgsIDUwXSwgMTEgPT4gWzYsIDMwLCA1NF0sIDEyID0+IFs2LCAzMiwgNThdLCAxMyA9PiBbNiwgMzQsIDYyXSwgMTQgPT4gWzYsIDI2LCA0NiwgNjZdLCAxNSA9PiBbNiwgMjYsIDQ4LCA3MF0sIDE2ID0+IFs2LCAyNiwgNTAsIDc0XSwgMTcgPT4gWzYsIDMwLCA1NCwgNzhdLCAxOCA9PiBbNiwgMzAsIDU2LCA4Ml0sIDE5ID0+IFs2LCAzMCwgNTgsIDg2XSwgMjAgPT4gWzYsIDM0LCA2MiwgOTBdLCAyMSA9PiBbNiwgMjgsIDUwLCA3MiwgOTRdLCAyMiA9PiBbNiwgMjYsIDUwLCA3NCwgOThdLCAyMyA9PiBbNiwgMzAsIDU0LCA3OCwgMTAyXSwgMjQgPT4gWzYsIDI4LCA1NCwgODAsIDEwNl0sIDI1ID0+IFs2LCAzMiwgNTgsIDg0LCAxMTBdLCAyNiA9PiBbNiwgMzAsIDU4LCA4NiwgMTE0XSwgMjcgPT4gWzYsIDM0LCA2MiwgOTAsIDExOF0sIDI4ID0+IFs2LCAyNiwgNTAsIDc0LCA5OCwgMTIyXSwgMjkgPT4gWzYsIDMwLCA1NCwgNzgsIDEwMiwgMTI2XSwgMzAgPT4gWzYsIDI2LCA1MiwgNzgsIDEwNCwgMTMwXSwgMzEgPT4gWzYsIDMwLCA1NiwgODIsIDEwOCwgMTM0XSwgMzIgPT4gWzYsIDM0LCA2MCwgODYsIDExMiwgMTM4XSwgMzMgPT4gWzYsIDMwLCA1OCwgODYsIDExNCwgMTQyXSwgMzQgPT4gWzYsIDM0LCA2MiwgOTAsIDExOCwgMTQ2XSwgMzUgPT4gWzYsIDMwLCA1NCwgNzgsIDEwMiwgMTI2LCAxNTBdLCAzNiA9PiBbNiwgMjQsIDUwLCA3NiwgMTAyLCAxMjgsIDE1NF0sIDM3ID0+IFs2LCAyOCwgNTQsIDgwLCAxMDYsIDEzMiwgMTU4XSwgMzggPT4gWzYsIDMyLCA1OCwgODQsIDExMCwgMTM2LCAxNjJdLCAzOSA9PiBbNiwgMjYsIDU0LCA4MiwgMTEwLCAxMzgsIDE2Nl0sIDQwID0+IFs2LCAzMCwgNTgsIDg2LCAxMTQsIDE0MiwgMTcwXV0iO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO319czo0ODoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnZlcnNpb25QYXR0ZXJuIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6dmVyc2lvblBhdHRlcm4iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoidmVyc2lvblBhdHRlcm4iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6ODc6IklTTy9JRUMgMTgwMDQ6MjAwMCBBbm5leCBELCBUYWJsZSBELjEgLSBWZXJzaW9uIGluZm9ybWF0aW9uIGJpdCBzdHJlYW0gZm9yIGVhY2ggdmVyc2lvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozNToibm8gdmVyc2lvbiBwYXR0ZXJuIGZvciBRUiBDb2RlcyA8IDciO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6OTE0OiJbNyA9PiAwYjExMTExMDAxMDAxMDEwMCwgOCA9PiAwYjEwMDAwMTAxMTAxMTExMDAsIDkgPT4gMGIxMDAxMTAxMDEwMDExMDAxLCAxMCA9PiAwYjEwMTAwMTAwMTEwMTAwMTEsIDExID0+IDBiMTAxMTEwMTExMTExMDExMCwgMTIgPT4gMGIxMTAwMDExMTAxMTAwMDEwLCAxMyA9PiAwYjExMDExMDAwMDEwMDAxMTEsIDE0ID0+IDBiMTExMDAxMTAwMDAwMTEwMSwgMTUgPT4gMGIxMTExMTAwMTAwMTAxMDAwLCAxNiA9PiAwYjEwMDAwMTAxMTAxMTExMDAwLCAxNyA9PiAwYjEwMDAxMDEwMDAxMDExMTAxLCAxOCA9PiAwYjEwMDEwMTAxMDAwMDEwMTExLCAxOSA9PiAwYjEwMDExMDEwMTAwMTEwMDEwLCAyMCA9PiAwYjEwMTAwMTAwMTEwMTAwMTEwLCAyMSA9PiAwYjEwMTAxMDExMDEwMDAwMDExLCAyMiA9PiAwYjEwMTEwMTAwMDExMDAxMDAxLCAyMyA9PiAwYjEwMTExMDExMTExMTAxMTAwLCAyNCA9PiAwYjExMDAwMTExMDExMDAwMTAwLCAyNSA9PiAwYjExMDAxMDAwMTExMTAwMDAxLCAyNiA9PiAwYjExMDEwMTExMTEwMTAxMDExLCAyNyA9PiAwYjExMDExMDAwMDEwMDAxMTEwLCAyOCA9PiAwYjExMTAwMTEwMDAwMDExMDEwLCAyOSA9PiAwYjExMTAxMDAxMTAwMTExMTExLCAzMCA9PiAwYjExMTEwMTEwMTAxMTEwMTAxLCAzMSA9PiAwYjExMTExMDAxMDAxMDEwMDAwLCAzMiA9PiAwYjEwMDAwMDEwMDExMTAxMDEwMSwgMzMgPT4gMGIxMDAwMDEwMTEwMTExMTAwMDAsIDM0ID0+IDBiMTAwMDEwMTAwMDEwMTExMDEwLCAzNSA9PiAwYjEwMDAxMTAxMTExMDAxMTExMSwgMzYgPT4gMGIxMDAxMDAxMDExMDAwMDEwMTEsIDM3ID0+IDBiMTAwMTAxMDEwMDAwMTAxMTEwLCAzOCA9PiAwYjEwMDExMDEwMTAwMTEwMDEwMCwgMzkgPT4gMGIxMDAxMTEwMTAxMDEwMDAwMDEsIDQwID0+IDBiMTAxMDAwMTEwMDAxMTAxMDAxXSI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO319czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OmZvcm1hdFBhdHRlcm4iO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4Ojpmb3JtYXRQYXR0ZXJuIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6ImZvcm1hdFBhdHRlcm4iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTE6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguOSAtIEZvcm1hdCBJbmZvcm1hdGlvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNToiRUNDIGxldmVsIC0+IG1hc2sgcGF0dGVybiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQ5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjc2MToiW1sKICAgIC8vIEwKICAgIDBiMTExMDExMTExMDAwMTAwLAogICAgMGIxMTEwMDEwMTExMTAwMTEsCiAgICAwYjExMTExMDExMDEwMTAxMCwKICAgIDBiMTExMTAwMDEwMDExMTAxLAogICAgMGIxMTAwMTEwMDAxMDExMTEsCiAgICAwYjExMDAwMTEwMDAxMTAwMCwKICAgIDBiMTEwMTEwMDAxMDAwMDAxLAogICAgMGIxMTAxMDAxMDExMTAxMTAsCl0sIFsKICAgIC8vIE0KICAgIDBiMTAxMDEwMDAwMDEwMDEwLAogICAgMGIxMDEwMDAxMDAxMDAxMDEsCiAgICAwYjEwMTExMTAwMTExMTEwMCwKICAgIDBiMTAxMTAxMTAxMDAxMDExLAogICAgMGIxMDAwMTAxMTExMTEwMDEsCiAgICAwYjEwMDAwMDAxMTAwMTExMCwKICAgIDBiMTAwMTExMTEwMDEwMTExLAogICAgMGIxMDAxMDEwMTAxMDAwMDAsCl0sIFsKICAgIC8vIFEKICAgIDBiMTEwMTAxMDEwMTExMTEsCiAgICAwYjExMDAwMDAxMTAxMDAwLAogICAgMGIxMTExMTEwMDExMDAwMSwKICAgIDBiMTExMDEwMDAwMDAxMTAsCiAgICAwYjEwMDEwMDEwMTEwMTAwLAogICAgMGIxMDAwMDExMDAwMDAxMSwKICAgIDBiMTAxMTEwMTEwMTEwMTAsCiAgICAwYjEwMTAxMTExMTAxMTAxLApdLCBbCiAgICAvLyBICiAgICAwYjEwMTEwMTAwMDEwMDEsCiAgICAwYjEwMDExMTAxMTExMTAsCiAgICAwYjExMTAwMTExMDAxMTEsCiAgICAwYjExMDAxMTEwMTAwMDAsCiAgICAwYjExMTAxMTAwMDEwLAogICAgMGIxMDAxMDEwMTAxLAogICAgMGIxMTAxMDAwMDExMDAsCiAgICAwYjEwMDAwMDExMTAxMSwKXV0iO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTo1OntzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6JHZlcnNpb24iO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjokdmVyc2lvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InZlcnNpb24iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzQ6InRoZSBjdXJyZW50IFFSIENvZGUgdmVyc2lvbiBudW1iZXIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6JGVjbGV2ZWwiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjokZWNsZXZlbCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6ImVjbGV2ZWwiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjE6InRoZSBjdXJyZW50IEVDQyBsZXZlbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjokbWFza1BhdHRlcm4iO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjokbWFza1BhdHRlcm4iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToibWFza1BhdHRlcm4iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTA6InRoZSB1c2VkIG1hc2sgcGF0dGVybiwgc2V0IHZpYSBRUk1hdHJpeDo6bWFwRGF0YSgpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpNQVNLX1BBVFRFUk5fQVVUTyI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6JG1vZHVsZUNvdW50IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6JG1vZHVsZUNvdW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Im1vZHVsZUNvdW50Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM2OiJ0aGUgc2l6ZSAoc2lkZSBsZW5ndGgpIG9mIHRoZSBtYXRyaXgiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQxOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6JG1hdHJpeCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OiRtYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJtYXRyaXgiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjg6InRoZSBhY3R1YWwgbWF0cml4IGRhdGEgYXJyYXkiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjIxOntzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6X19jb25zdHJ1Y3QoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjE6IlFSTWF0cml4IGNvbnN0cnVjdG9yLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJRUkNvZGVEYXRhRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjI2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6X19jb25zdHJ1Y3QoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJfX2NvbnN0cnVjdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJ2ZXJzaW9uIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImVjbGV2ZWwiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fXM6NDA6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4Ojppbml0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMzOiJzaG9ydGN1dCB0byBpbml0aWFsaXplIHRoZSBtYXRyaXgiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4Ojppbml0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJpbml0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ0ZXN0IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlFSTWF0cml4Ijt9fX1zOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6bWF0cml4KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjg5OiJSZXR1cm5zIHRoZSBkYXRhIG1hdHJpeCwgcmV0dXJucyBhIHB1cmUgYm9vbGVhbiByZXByZXNlbnRhdGlvbiBpZiAkYm9vbGVhbiBpcyBzZXQgdG8gdHJ1ZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjptYXRyaXgoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6Im1hdHJpeCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJib29sZWFuIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NToiZmFsc2UiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1zOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6dmVyc2lvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNDoiUmV0dXJucyB0aGUgY3VycmVudCB2ZXJzaW9uIG51bWJlciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnZlcnNpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InZlcnNpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjg5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6ZWNjTGV2ZWwoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjk6IlJldHVybnMgdGhlIGN1cnJlbnQgRUNDIGxldmVsIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjkzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6ZWNjTGV2ZWwoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6ImVjY0xldmVsIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI5NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Om1hc2tQYXR0ZXJuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMyOiJSZXR1cm5zIHRoZSBjdXJyZW50IG1hc2sgcGF0dGVybiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6Om1hc2tQYXR0ZXJuKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToibWFza1BhdHRlcm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzAzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2l6ZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo4MjoiUmV0dXJucyB0aGUgYWJzb3VsdXRlIHNpemUgb2YgdGhlIG1hdHJpeCwgaW5jbHVkaW5nIHF1aWV0IHpvbmUgKGFmdGVyIHNldHRpbmcgaXQpLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0Nzoic2l6ZSA9IHZlcnNpb24gKiA0ICsgMTcgWyArIDIgKiBxdWlldHpvbmUgc2l6ZV0iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnNpemUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6InNpemUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzEyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6Z2V0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjUyOiJSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgbW9kdWxlIGF0IHBvc2l0aW9uIFskeCwgJHldIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6Z2V0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozOiJnZXQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MToieCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxOiJ5IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnNldCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1ODoiU2V0cyB0aGUgJE1fVFlQRSB2YWx1ZSBmb3IgdGhlIG1vZHVsZSBhdCBwb3NpdGlvbiBbJHgsICR5XSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozODoidHJ1ZSAgPT4gJE1fVFlQRSA8PCA4CmZhbHNlID0+ICRNX1RZUEUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMyMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnNldCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mzoic2V0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjQ6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE6IngiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MToieSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo1OiJ2YWx1ZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjM7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJNX1RZUEUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319fXM6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpjaGVjaygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NToiQ2hlY2tzIHdoZXRoZXIgYSBtb2R1bGUgaXMgdHJ1ZSAoZGFyaykgb3IgZmFsc2UgKGxpZ2h0KSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMTM6InRydWUgID0+ICR2YWx1ZSA+PiA4ID09PSAkTV9UWVBFCiAgICAgICAgICR2YWx1ZSA+PiA4ID4gMAoKZmFsc2UgPT4gJHZhbHVlID09PSAkTV9UWVBFCiAgICAgICAgICR2YWx1ZSA+PiA4ID09PSAwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpjaGVjaygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiY2hlY2siO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MToieCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxOiJ5IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM0NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e319czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnNldERhcmtNb2R1bGUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6OTg6IlNldHMgdGhlICJkYXJrIG1vZHVsZSIsIHRoYXQgaXMgYWx3YXlzIG9uIHRoZSBzYW1lIHBvc2l0aW9uIDF4MXB4IGF3YXkgZnJvbSB0aGUgYm90dG9tIGxlZnQgZmluZGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2V0RGFya01vZHVsZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6InNldERhcmtNb2R1bGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzUyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319fXM6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpzZXRGaW5kZXJQYXR0ZXJuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjc1OiJEcmF3cyB0aGUgN3g3IGZpbmRlciBwYXR0ZXJucyBpbiB0aGUgY29ybmVycyB0b3AgbGVmdC9yaWdodCBhbmQgYm90dG9tIGxlZnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzI6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDcuMy4yIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpzZXRGaW5kZXJQYXR0ZXJuKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoic2V0RmluZGVyUGF0dGVybiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNjM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fX19czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnNldFNlcGFyYXRvcnMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTI6IkRyYXdzIHRoZSBzZXBhcmF0b3IgbGluZXMgYXJvdW5kIHRoZSBmaW5kZXIgcGF0dGVybnMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzI6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDcuMy4zIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozOTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpzZXRTZXBhcmF0b3JzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoic2V0U2VwYXJhdG9ycyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozOTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fX19czo1NToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnNldEFsaWdubWVudFBhdHRlcm4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzI6IkRyYXdzIHRoZSA1eDUgYWxpZ25tZW50IHBhdHRlcm5zIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMyOiJJU08vSUVDIDE4MDA0OjIwMDAgU2VjdGlvbiA3LjMuNSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU1OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2V0QWxpZ25tZW50UGF0dGVybigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6InNldEFsaWdubWVudFBhdHRlcm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDI4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319fXM6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpzZXRUaW1pbmdQYXR0ZXJuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjczOiJEcmF3cyB0aGUgdGltaW5nIHBhdHRlcm4gKGgvdiBjaGVja2VyZWQgbGluZSBiZXR3ZWVuIHRoZSBmaW5kZXIgcGF0dGVybnMpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMyOiJJU08vSUVDIDE4MDA0OjIwMDAgU2VjdGlvbiA3LjMuNCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDUzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2V0VGltaW5nUGF0dGVybigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6InNldFRpbWluZ1BhdHRlcm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319fXM6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpzZXRWZXJzaW9uTnVtYmVyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQzOiJEcmF3cyB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiwgMnggM3g2IHBpeGVsIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMxOiJJU08vSUVDIDE4MDA0OjIwMDAgU2VjdGlvbiA4LjEwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpzZXRWZXJzaW9uTnVtYmVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoic2V0VmVyc2lvbk51bWJlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ0ZXN0IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ4MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlFSTWF0cml4Ijt9fX1zOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2V0Rm9ybWF0SW5mbygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NzoiRHJhd3MgdGhlIGZvcm1hdCBpbmZvIGFsb25nIHRoZSBmaW5kZXIgcGF0dGVybnMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzA6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguOSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDk5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2V0Rm9ybWF0SW5mbygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6InNldEZvcm1hdEluZm8iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTE6Im1hc2tQYXR0ZXJuIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InRlc3QiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTA0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319fXM6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpzZXRRdWlldFpvbmUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDk6IkRyYXdzIHRoZSAicXVpZXQgem9uZSIgb2YgJHNpemUgYXJvdW5kIHRoZSBtYXRyaXgiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzI6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDcuMy43IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToiUVJDb2RlRGF0YUV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUzNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0ODoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OnNldFF1aWV0Wm9uZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6InNldFF1aWV0Wm9uZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJzaXplIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU0NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlFSTWF0cml4Ijt9fX1zOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2V0TG9nb1NwYWNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjY2OiJDbGVhcnMgYSBzcGFjZSBvZiAkd2lkdGggKiAkaGVpZ2h0IGluIG9yZGVyIHRvIGFkZCBhIGxvZ28gb3IgdGV4dC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NzE5OiJBZGRpdGlvbmFsbHksIHRoZSBsb2dvIHNwYWNlIGNhbiBiZSBwb3NpdGlvbmVkIHdpdGhpbiB0aGUgUVIgQ29kZSAtIHJlc3BlY3RpbmcgdGhlIG1haW4gZnVuY3Rpb25hbCBwYXR0ZXJucyAtCnVzaW5nICRzdGFydFggYW5kICRzdGFydFkuIElmIGVpdGhlciBvZiB0aGVzZSBhcmUgbnVsbCwgdGhlIGxvZ28gc3BhY2Ugd2lsbCBiZSBjZW50ZXJlZCBpbiB0aGF0IGRpcmVjdGlvbi4KRUNDIGxldmVsICJIIiAoMzAlJSkgaXMgcmVxdWlyZWQuCgpQbGVhc2Ugbm90ZSB0aGF0IGFkZGluZyBhIGxvZ28gc3BhY2UgbWluaW1pemVzIHRoZSBlcnJvciBjb3JyZWN0aW9uIGNhcGFjaXR5IG9mIHRoZSBRUiBDb2RlIGFuZApjcmVhdGVkIGltYWdlcyBtYXkgYmVjb21lIHVucmVhZGFibGUsIGVzcGVjaWFsbHkgd2hlbiBwcmludGVkIHdpdGggYSBjaGFuY2UgdG8gcmVjZWl2ZSBkYW1hZ2UuClBsZWFzZSB0ZXN0IHRob3JvdWdobHkgYmVmb3JlIHVzaW5nIHRoaXMgZmVhdHVyZSBpbiBwcm9kdWN0aW9uLgoKVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBhbiBvdXRwdXQgbW9kdWxlIChhZnRlciB0aGUgbWF0cml4IGhhcyBiZWVuIGZpbGxlZCB3aXRoIGRhdGEpLgpOb3RlIHRoYXQgdGhlcmUgaXMgbm8gcmVzdGljdGlvbiBvbiBob3cgbWFueSB0aW1lcyB0aGlzIG1ldGhvZCBjb3VsZCBiZSBjYWxsZWQgb24gdGhlIHNhbWUgbWF0cml4IGluc3RhbmNlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rIjozOntzOjc6IgAqAG5hbWUiO3M6NDoibGluayI7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsAbGluayI7czo1MDoiaHR0cHM6Ly9naXRodWIuY29tL2NoaWxsZXJsYW4vcGhwLXFyY29kZS9pc3N1ZXMvNTIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJDb2RlRGF0YUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJRUkNvZGVEYXRhRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTczO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6c2V0TG9nb1NwYWNlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoic2V0TG9nb1NwYWNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjQ6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6IndpZHRoIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6ImhlaWdodCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJzdGFydFgiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aTozO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Njoic3RhcnRZIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU5MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlFSTWF0cml4Ijt9fX1zOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6bWFwRGF0YSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxNDM6Ik1hcHMgdGhlIGJpbmFyeSAkZGF0YSBhcnJheSBmcm9tIFFSRGF0YUludGVyZmFjZTo6bWFza0VDQygpIG9uIHRoZSBtYXRyaXgsCm1hc2tpbmcgdGhlIGRhdGEgdXNpbmcgJG1hc2tQYXR0ZXJuIChJU08vSUVDIDE4MDA0OjIwMDAgU2VjdGlvbiA4LjgpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhQWJzdHJhY3Q6Om1hc2tFQ0MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6Im1hc2tFQ0MiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJkYXRhIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjptYXBEYXRhKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJtYXBEYXRhIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fX19czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OmdldE1hc2soKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzI6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguOC4xIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE5NzoiTm90ZSB0aGF0IHNvbWUgdmVyc2lvbnMgb2YgdGhlIFFSIGNvZGUgc3RhbmRhcmQgaGF2ZSBoYWQgZXJyb3JzIGluIHRoZSBzZWN0aW9uIGFib3V0IG1hc2sgcGF0dGVybnMuClRoZSBpbmZvcm1hdGlvbiBiZWxvdyBoYXMgYmVlbiBjb3JyZWN0ZWQuIChodHRwczovL3d3dy50aG9ua3kuY29tL3FyLWNvZGUtdHV0b3JpYWwvbWFzay1wYXR0ZXJucykiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk1hdHJpeDo6bWFwRGF0YSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoibWFwRGF0YSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6IlFSQ29kZURhdGFFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjpnZXRNYXNrKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJnZXRNYXNrIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4OiJcQ2xvc3VyZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkNsb3N1cmUiO319fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/H/K/tT26dyzwqfVNAGTm+IxQ b/files/H/K/tT26dyzwqfVNAGTm+IxQ deleted file mode 100644 index abc1ddbb4..000000000 --- a/files/H/K/tT26dyzwqfVNAGTm+IxQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A908f984026aba14f9c4eb5f8b5309120-c8543d38b09d96630c9e82b87517072f -s:21672:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTQ6IkNsYXNzIFFSU3RyaW5nIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjg6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyOiJRUlN0cmluZy5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIwNS4xMi4yMDE1IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE1IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo2O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMjoibm9pbnNwZWN0aW9uIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyODoiUGhwVW51c2VkUGFyYW1ldGVySW5zcGVjdGlvbiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NztPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6Im5vaW5zcGVjdGlvbiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzU6IlBocENvbXBvc2VyRXh0ZW5zaW9uU3R1YnNJbnNwZWN0aW9uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJjODU0M2QzOGIwOWQ5NjYzMGM5ZTgyYjg3NTE3MDcyZiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEyOiJRUlN0cmluZy5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czoyMzoic3JjL091dHB1dC9RUlN0cmluZy5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjE0NTY6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUlN0cmluZwogKgogKiBAZmlsZXNvdXJjZSAgIFFSU3RyaW5nLnBocAogKiBAY3JlYXRlZCAgICAgIDA1LjEyLjIwMTUKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKgogKiBAbm9pbnNwZWN0aW9uIFBocFVudXNlZFBhcmFtZXRlckluc3BlY3Rpb24KICogQG5vaW5zcGVjdGlvbiBQaHBDb21wb3NlckV4dGVuc2lvblN0dWJzSW5zcGVjdGlvbgogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQ7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOwoKdXNlIGZ1bmN0aW9uIGltcGxvZGUsIGlzX3N0cmluZywganNvbl9lbmNvZGU7CgovKioKICogQ29udmVydHMgdGhlIG1hdHJpeCBkYXRhIGludG8gc3RyaW5nIHR5cGVzCiAqLwpjbGFzcyBRUlN0cmluZyBleHRlbmRzIFFST3V0cHV0QWJzdHJhY3R7CgoJcHJvdGVjdGVkIHN0cmluZyAkZGVmYXVsdE1vZGUgPSBRUkNvZGU6Ok9VVFBVVF9TVFJJTkdfVEVYVDsKCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRNb2R1bGVWYWx1ZXMoKTp2b2lkewoKCQlmb3JlYWNoKCR0aGlzOjpERUZBVUxUX01PRFVMRV9WQUxVRVMgYXMgJE1fVFlQRSA9PiAkZGVmYXVsdFZhbHVlKXsKCQkJJHYgPSAkdGhpcy0+b3B0aW9ucy0+bW9kdWxlVmFsdWVzWyRNX1RZUEVdID8/IG51bGw7CgoJCQlpZighaXNfc3RyaW5nKCR2KSl7CgkJCQkkdGhpcy0+bW9kdWxlVmFsdWVzWyRNX1RZUEVdID0gJGRlZmF1bHRWYWx1ZQoJCQkJCT8gJHRoaXMtPm9wdGlvbnMtPnRleHREYXJrCgkJCQkJOiAkdGhpcy0+b3B0aW9ucy0+dGV4dExpZ2h0OwoJCQl9CgkJCWVsc2V7CgkJCQkkdGhpcy0+bW9kdWxlVmFsdWVzWyRNX1RZUEVdID0gJHY7CgkJCX0KCgkJfQoKCX0KCgkvKioKCSAqIHN0cmluZyBvdXRwdXQKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHRleHQoc3RyaW5nICRmaWxlID0gbnVsbCk6c3RyaW5newoJCSRzdHIgPSBbXTsKCgkJZm9yZWFjaCgkdGhpcy0+bWF0cml4LT5tYXRyaXgoKSBhcyAkcm93KXsKCQkJJHIgPSBbXTsKCgkJCWZvcmVhY2goJHJvdyBhcyAkTV9UWVBFKXsKCQkJCSRyW10gPSAkdGhpcy0+bW9kdWxlVmFsdWVzWyRNX1RZUEVdOwoJCQl9CgoJCQkkc3RyW10gPSBpbXBsb2RlKCcnLCAkcik7CgkJfQoKCQlyZXR1cm4gaW1wbG9kZSgkdGhpcy0+b3B0aW9ucy0+ZW9sLCAkc3RyKTsKCX0KCgkvKioKCSAqIEpTT04gb3V0cHV0CgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBqc29uKHN0cmluZyAkZmlsZSA9IG51bGwpOnN0cmluZ3sKCQlyZXR1cm4ganNvbl9lbmNvZGUoJHRoaXMtPm1hdHJpeC0+bWF0cml4KCkpOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI1OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjU6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJPdXRwdXQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozNDoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUlN0cmluZyI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNDoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUlN0cmluZyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlFSU3RyaW5nIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MjoiQ29udmVydHMgdGhlIG1hdHJpeCBkYXRhIGludG8gc3RyaW5nIHR5cGVzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiUVJPdXRwdXRBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToxOntzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSU3RyaW5nOjokZGVmYXVsdE1vZGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJTdHJpbmc6OiRkZWZhdWx0TW9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJkZWZhdWx0TW9kZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfU1RSSU5HX1RFWFQiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mzp7czo1MzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUlN0cmluZzo6c2V0TW9kdWxlVmFsdWVzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUlN0cmluZzo6c2V0TW9kdWxlVmFsdWVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToic2V0TW9kdWxlVmFsdWVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUlN0cmluZzo6dGV4dCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMzoic3RyaW5nIG91dHB1dCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSU3RyaW5nOjp0ZXh0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJ0ZXh0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJTdHJpbmc6Ompzb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTE6IkpTT04gb3V0cHV0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJTdHJpbmc6Ompzb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6Impzb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/H/W/k1nqXa0ZlKwMahkSnoHQ b/files/H/W/k1nqXa0ZlKwMahkSnoHQ deleted file mode 100644 index ff3d96ad9..000000000 --- a/files/H/W/k1nqXa0ZlKwMahkSnoHQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A401116d23a0230fa80932e4cc8aefad0-8e7f53ba5985b7cc716a12ea77364745 -s:8700:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjE6IkNsYXNzIFFSQ29kZUV4Y2VwdGlvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxOToiUVJDb2RlRXhjZXB0aW9uLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI3LjExLjIwMTUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE3OiJjaGlsbGVybGFuXFFSQ29kZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiOGU3ZjUzYmE1OTg1YjdjYzcxNmExMmVhNzczNjQ3NDUiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxOToiUVJDb2RlRXhjZXB0aW9uLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjIzOiJzcmMvUVJDb2RlRXhjZXB0aW9uLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MzYzOiI8P3BocAovKioKICogQ2xhc3MgUVJDb2RlRXhjZXB0aW9uCiAqCiAqIEBmaWxlc291cmNlICAgUVJDb2RlRXhjZXB0aW9uLnBocAogKiBAY3JlYXRlZCAgICAgIDI3LjExLjIwMTUKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZQogKiBAYXV0aG9yICAgICAgIFNtaWxleSA8c21pbGV5QGNoaWxsZXJsYW4ubmV0PgogKiBAY29weXJpZ2h0ICAgIDIwMTUgU21pbGV5CiAqIEBsaWNlbnNlICAgICAgTUlUCiAqLwoKbmFtZXNwYWNlIGNoaWxsZXJsYW5cUVJDb2RlOwoKdXNlIEV4Y2VwdGlvbjsKCi8qKgogKiBBbiBleGNlcHRpb24gY29udGFpbmVyCiAqLwpjbGFzcyBRUkNvZGVFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb257fQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjE4OiJcY2hpbGxlcmxhblxRUkNvZGUiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxODoiXGNoaWxsZXJsYW5cUVJDb2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiUVJDb2RlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MzQ6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb24iO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzQ6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUVJDb2RlRXhjZXB0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMjoiQW4gZXhjZXB0aW9uIGNvbnRhaW5lciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoxNzoiY2hpbGxlcmxhblxRUkNvZGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE6e3M6OToiRXhjZXB0aW9uIjtzOjk6IkV4Y2VwdGlvbiI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTA6IlxFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJFeGNlcHRpb24iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/I/1/-zbRpsfYv2tz+dVPL5Cw b/files/I/1/-zbRpsfYv2tz+dVPL5Cw deleted file mode 100644 index 4819d6804..000000000 --- a/files/I/1/-zbRpsfYv2tz+dVPL5Cw +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ac0227aab7b13ad115cf8cc086003c2c6-53f7a710b6ccf97d667632081e9cc719 -s:24096:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6IkNsYXNzIEFscGhhTnVtVGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNjoiQWxwaGFOdW1UZXN0LnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI0LjExLjIwMTciO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI2OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNTNmN2E3MTBiNmNjZjk3ZDY2NzYzMjA4MWU5Y2M3MTkiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxNjoiQWxwaGFOdW1UZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjI3OiJ0ZXN0cy9EYXRhL0FscGhhTnVtVGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjE1NDE6Ijw/cGhwCi8qKgogKiBDbGFzcyBBbHBoYU51bVRlc3QKICoKICogQGZpbGVzb3VyY2UgICBBbHBoYU51bVRlc3QucGhwCiAqIEBjcmVhdGVkICAgICAgMjQuMTEuMjAxNwogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGE7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YVx7QWxwaGFOdW0sIFFSQ29kZURhdGFFeGNlcHRpb24sIFFSRGF0YUludGVyZmFjZX07CnVzZSBjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnM7CgovKioKICogVGVzdHMgdGhlIEFscGhhTnVtIGNsYXNzCiAqLwpmaW5hbCBjbGFzcyBBbHBoYU51bVRlc3QgZXh0ZW5kcyBEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0ewoKCS8qKiBAaW50ZXJuYWwgKi8KCXByb3RlY3RlZCBzdHJpbmcgJHRlc3RkYXRhICA9ICcwICQlKistLi86JzsKCgkvKiogQGludGVybmFsICovCglwcm90ZWN0ZWQgYXJyYXkgICRleHBlY3RlZCAgPSBbCgkJMzIsIDgwLCAzNiwgMjEyLCAyNTIsIDE1LCAxNzUsIDI1MSwKCQkxNzYsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTEyLCA0MywgOSwgMjQ4LCAyMDAsIDE5NCwgNzUsIDI1LAoJCTIwNSwgMTczLCAxNTQsIDY4LCAxOTEsIDE2LCAxMjgsCgkJOTIsIDExMiwgMjAsIDE5OCwgMjcKCV07CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICogQGludGVybmFsCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXREYXRhSW50ZXJmYWNlSW5zdGFuY2UoUVJPcHRpb25zICRvcHRpb25zKTpRUkRhdGFJbnRlcmZhY2V7CgkJcmV0dXJuIG5ldyBBbHBoYU51bSgkb3B0aW9ucyk7Cgl9CgoJLyoqCgkgKiBUZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gYW4gaW52YWxpZCBjaGFyYWN0ZXIgaXMgZW5jb3VudGVyZWQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRDaGFyQ29kZUV4Y2VwdGlvbigpOnZvaWR7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihRUkNvZGVEYXRhRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ2lsbGVnYWwgY2hhcjogIiMiIFszNV0nKTsKCgkJJHRoaXMtPmRhdGFJbnRlcmZhY2UtPnNldERhdGEoJyMnKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyNzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IkRhdGEiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXEFscGhhTnVtVGVzdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXEFscGhhTnVtVGVzdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJBbHBoYU51bVRlc3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI0OiJUZXN0cyB0aGUgQWxwaGFOdW0gY2xhc3MiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjY6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTo0OntzOjg6IkFscGhhTnVtIjtzOjMxOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtIjtzOjE5OiJRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjQyOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24iO3M6MTU6IlFSRGF0YUludGVyZmFjZSI7czozODoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2UiO3M6OToiUVJPcHRpb25zIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI1OiJEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjI6e3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxBbHBoYU51bVRlc3Q6OiR0ZXN0ZGF0YSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXEFscGhhTnVtVGVzdDo6JHRlc3RkYXRhIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoidGVzdGRhdGEiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjEyOiInMCAkJSorLS4vOiciO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcQWxwaGFOdW1UZXN0OjokZXhwZWN0ZWQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxBbHBoYU51bVRlc3Q6OiRleHBlY3RlZCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6ImV4cGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0NTE6IlszMiwgODAsIDM2LCAyMTIsIDI1MiwgMTUsIDE3NSwgMjUxLCAxNzYsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTEyLCA0MywgOSwgMjQ4LCAyMDAsIDE5NCwgNzUsIDI1LCAyMDUsIDE3MywgMTU0LCA2OCwgMTkxLCAxNiwgMTI4LCA5MiwgMTEyLCAyMCwgMTk4LCAyN10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjI6e3M6Njg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxBbHBoYU51bVRlc3Q6OmdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcQWxwaGFOdW1UZXN0OjpnZXREYXRhSW50ZXJmYWNlSW5zdGFuY2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI0OiJnZXREYXRhSW50ZXJmYWNlSW5zdGFuY2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Nzoib3B0aW9ucyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiUVJPcHRpb25zIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO319fXM6Njg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxBbHBoYU51bVRlc3Q6OnRlc3RHZXRDaGFyQ29kZUV4Y2VwdGlvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3MjoiVGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGFuIGludmFsaWQgY2hhcmFjdGVyIGlzIGVuY291bnRlcmVkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxBbHBoYU51bVRlc3Q6OnRlc3RHZXRDaGFyQ29kZUV4Y2VwdGlvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6InRlc3RHZXRDaGFyQ29kZUV4Y2VwdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/I/A/9ZKcbwcmgD+kEhARMgzQ b/files/I/A/9ZKcbwcmgD+kEhARMgzQ deleted file mode 100644 index 9b454d2bd..000000000 --- a/files/I/A/9ZKcbwcmgD+kEhARMgzQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ab776832d0b3df88872bae4fe1e49dd65-e503bbf23a8c7af435da47f2b8023b42 -s:29892:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTY6IkNsYXNzIFFSRnBkZlRlc3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTQ6IlFSRnBkZlRlc3QucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMDMuMDYuMjAyMCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjg6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6Njoic21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMjAgc21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImU1MDNiYmYyM2E4YzdhZjQzNWRhNDdmMmI4MDIzYjQyIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MTQ6IlFSRnBkZlRlc3QucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Mjc6InRlc3RzL091dHB1dC9RUkZwZGZUZXN0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MjA3MzoiPD9waHAKLyoqCiAqIENsYXNzIFFSRnBkZlRlc3QKICoKICogQGZpbGVzb3VyY2UgICBRUkZwZGZUZXN0LnBocAogKiBAY3JlYXRlZCAgICAgIDAzLjA2LjIwMjAKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0CiAqIEBhdXRob3IgICAgICAgc21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAyMCBzbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dDsKCnVzZSBGUERGOwp1c2UgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XHtRUkZwZGYsIFFST3V0cHV0SW50ZXJmYWNlfTsKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXHtRUkNvZGUsIFFST3B0aW9uc307Cgp1c2UgZnVuY3Rpb24gY2xhc3NfZXhpc3RzLCBzdWJzdHI7CgovKioKICogVGVzdHMgdGhlIFFSRnBkZiBvdXRwdXQgbW9kdWxlCiAqLwpjbGFzcyBRUkZwZGZUZXN0IGV4dGVuZHMgUVJPdXRwdXRUZXN0QWJzdHJhY3R7CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICogQGludGVybmFsCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBzZXRVcCgpOnZvaWR7CgoJCWlmKCFjbGFzc19leGlzdHMoRlBERjo6Y2xhc3MpKXsKCQkJJHRoaXMtPm1hcmtUZXN0U2tpcHBlZCgnRlBERiBub3QgYXZhaWxhYmxlJyk7CgoJCQkvKiogQG5vaW5zcGVjdGlvbiBQaHBVbnJlYWNoYWJsZVN0YXRlbWVudEluc3BlY3Rpb24gKi8KCQkJcmV0dXJuOwoJCX0KCgkJcGFyZW50OjpzZXRVcCgpOwoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqIEBpbnRlcm5hbAoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0T3V0cHV0SW50ZXJmYWNlKFFST3B0aW9ucyAkb3B0aW9ucyk6UVJPdXRwdXRJbnRlcmZhY2V7CgkJcmV0dXJuIG5ldyBRUkZwZGYoJG9wdGlvbnMsICR0aGlzLT5tYXRyaXgpOwoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqIEBpbnRlcm5hbAoJICovCglwdWJsaWMgZnVuY3Rpb24gdHlwZXMoKTphcnJheXsKCQlyZXR1cm4gWwoJCQknZnBkZicgPT4gW1FSQ29kZTo6T1VUUFVUX0ZQREZdLAoJCV07Cgl9CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdFNldE1vZHVsZVZhbHVlcygpOnZvaWR7CgoJCSR0aGlzLT5vcHRpb25zLT5tb2R1bGVWYWx1ZXMgPSBbCgkJCS8vIGRhdGEKCQkJMTAyNCA9PiBbMCwgMCwgMF0sCgkJCTQgICAgPT4gWzI1NSwgMjU1LCAyNTVdLAoJCV07CgoJCSR0aGlzLT5vdXRwdXRJbnRlcmZhY2UgPSAkdGhpcy0+Z2V0T3V0cHV0SW50ZXJmYWNlKCR0aGlzLT5vcHRpb25zKTsKCQkkdGhpcy0+b3V0cHV0SW50ZXJmYWNlLT5kdW1wKCk7CgoJCSR0aGlzOjphc3NlcnRUcnVlKHRydWUpOyAvLyB0cmlja2luZyB0aGUgY29kZSBjb3ZlcmFnZQoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqIEBkYXRhUHJvdmlkZXIgdHlwZXMKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RSZW5kZXJJbWFnZShzdHJpbmcgJHR5cGUpOnZvaWR7CgkJJHRoaXMtPm9wdGlvbnMtPm91dHB1dFR5cGUgID0gJHR5cGU7CgkJJHRoaXMtPm9wdGlvbnMtPmltYWdlQmFzZTY0ID0gZmFsc2U7CgoJCS8vIHN1YnN0cigpIHRvIGF2b2lkIENyZWF0aW9uRGF0ZQoJCSRleHBlY3RlZCA9IHN1YnN0cihmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvc2FtcGxlcy8nLiR0eXBlKSwgMCwgMjUwMCk7CgkJJGFjdHVhbCAgID0gc3Vic3RyKChuZXcgUVJDb2RlKCR0aGlzLT5vcHRpb25zKSktPnJlbmRlcigndGVzdCcpLCAwLCAyNTAwKTsKCgkJJHRoaXM6OmFzc2VydFNhbWUoJGV4cGVjdGVkLCAkYWN0dWFsKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdGVzdE91dHB1dEdldFJlc291cmNlKCk6dm9pZHsKCQkkdGhpcy0+b3B0aW9ucy0+cmV0dXJuUmVzb3VyY2UgPSB0cnVlOwoJCSR0aGlzLT5vdXRwdXRJbnRlcmZhY2UgICAgICAgICA9ICR0aGlzLT5nZXRPdXRwdXRJbnRlcmZhY2UoJHRoaXMtPm9wdGlvbnMpOwoKCQkkdGhpczo6YXNzZXJ0SW5zdGFuY2VPZihGUERGOjpjbGFzcywgJHRoaXMtPm91dHB1dEludGVyZmFjZS0+ZHVtcCgpKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyOToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyOToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJPdXRwdXQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJRUkZwZGZUZXN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozMDoiVGVzdHMgdGhlIFFSRnBkZiBvdXRwdXQgbW9kdWxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI4OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTo1OntzOjQ6IkZQREYiO3M6NDoiRlBERiI7czo2OiJRUkZwZGYiO3M6MzE6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkZwZGYiO3M6MTc6IlFST3V0cHV0SW50ZXJmYWNlIjtzOjQyOiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2UiO3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO3M6OToiUVJPcHRpb25zIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIwOiJRUk91dHB1dFRlc3RBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Njp7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdDo6c2V0VXAoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdDo6c2V0VXAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InNldFVwIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdDo6Z2V0T3V0cHV0SW50ZXJmYWNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSRnBkZlRlc3Q6OmdldE91dHB1dEludGVyZmFjZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6ImdldE91dHB1dEludGVyZmFjZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJvcHRpb25zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJRUk9wdGlvbnMiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJRUk91dHB1dEludGVyZmFjZSI7fX19czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdDo6dHlwZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdDo6dHlwZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InR5cGVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19czo2MzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdDo6dGVzdFNldE1vZHVsZVZhbHVlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjM6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSRnBkZlRlc3Q6OnRlc3RTZXRNb2R1bGVWYWx1ZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJ0ZXN0U2V0TW9kdWxlVmFsdWVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo1OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdDo6dGVzdFJlbmRlckltYWdlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMjoiZGF0YVByb3ZpZGVyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1OiJ0eXBlcyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Nzc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSRnBkZlRlc3Q6OnRlc3RSZW5kZXJJbWFnZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6InRlc3RSZW5kZXJJbWFnZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ0eXBlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjgxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2NToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJGcGRmVGVzdDo6dGVzdE91dHB1dEdldFJlc291cmNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSRnBkZlRlc3Q6OnRlc3RPdXRwdXRHZXRSZXNvdXJjZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjE6InRlc3RPdXRwdXRHZXRSZXNvdXJjZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/I/F/a0d8x79XC-jRSNQCgrlw b/files/I/F/a0d8x79XC-jRSNQCgrlw deleted file mode 100644 index 30fb72276..000000000 --- a/files/I/F/a0d8x79XC-jRSNQCgrlw +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Abb63657107496ce9060908640154e6fc-7d809203b87b86de7b37410036af65fa -s:16276:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjA6IkNsYXNzIFBvbHlub21pYWxUZXN0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE4OiJQb2x5bm9taWFsVGVzdC5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIwOS4wMi4yMDE2IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyOToiY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6NjoiU21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTUgU21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjdkODA5MjAzYjg3Yjg2ZGU3YjM3NDEwMDM2YWY2NWZhIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MTg6IlBvbHlub21pYWxUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjMyOiJ0ZXN0cy9IZWxwZXJzL1BvbHlub21pYWxUZXN0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6OTc4OiI8P3BocAovKioKICogQ2xhc3MgUG9seW5vbWlhbFRlc3QKICoKICogQGZpbGVzb3VyY2UgICBQb2x5bm9taWFsVGVzdC5waHAKICogQGNyZWF0ZWQgICAgICAwOS4wMi4yMDE2CiAqIEBwYWNrYWdlICAgICAgY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnMKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyczsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXFBvbHlub21pYWw7CnVzZSBjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb247CnVzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKCi8qKgogKiBQb2x5bm9taWFsIGNvdmVyYWdlIHRlc3QKICovCmZpbmFsIGNsYXNzIFBvbHlub21pYWxUZXN0IGV4dGVuZHMgVGVzdENhc2V7CgoJcHJvdGVjdGVkIFBvbHlub21pYWwgJHBvbHlub21pYWw7CgoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFVwKCk6dm9pZHsKCQkkdGhpcy0+cG9seW5vbWlhbCA9IG5ldyBQb2x5bm9taWFsOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V4cCgpOnZvaWR7CgkJJHRoaXM6OmFzc2VydFNhbWUoMTQyLCAkdGhpcy0+cG9seW5vbWlhbC0+Z2V4cCgtMSkpOwoJCSR0aGlzOjphc3NlcnRTYW1lKDEzMywgJHRoaXMtPnBvbHlub21pYWwtPmdleHAoMTI4KSk7CgkJJHRoaXM6OmFzc2VydFNhbWUoMiwgICAkdGhpcy0+cG9seW5vbWlhbC0+Z2V4cCgyNTYpKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gdGVzdEdsb2dFeGNlcHRpb24oKTp2b2lkewoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb24oUVJDb2RlRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ2xvZygwKScpOwoKCQkkdGhpcy0+cG9seW5vbWlhbC0+Z2xvZygwKTsKCX0KfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjMwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnMiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiSGVscGVycyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnNcUG9seW5vbWlhbFRlc3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyc1xQb2x5bm9taWFsVGVzdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJQb2x5bm9taWFsVGVzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjQ6IlBvbHlub21pYWwgY292ZXJhZ2UgdGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyOToiY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjM6e3M6MTA6IlBvbHlub21pYWwiO3M6MzY6ImNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbCI7czoxNToiUVJDb2RlRXhjZXB0aW9uIjtzOjMzOiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb24iO3M6ODoiVGVzdENhc2UiO3M6MjY6IlBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjoxO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiVGVzdENhc2UiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MTp7czo1ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzXFBvbHlub21pYWxUZXN0OjokcG9seW5vbWlhbCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzXFBvbHlub21pYWxUZXN0OjokcG9seW5vbWlhbCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJwb2x5bm9taWFsIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNzoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcUG9seW5vbWlhbCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJQb2x5bm9taWFsIjt9fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mzp7czo1NDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzXFBvbHlub21pYWxUZXN0OjpzZXRVcCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU0OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnNcUG9seW5vbWlhbFRlc3Q6OnNldFVwKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJzZXRVcCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyc1xQb2x5bm9taWFsVGVzdDo6dGVzdEdleHAoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxIZWxwZXJzXFBvbHlub21pYWxUZXN0Ojp0ZXN0R2V4cCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoidGVzdEdleHAiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjY2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XEhlbHBlcnNcUG9seW5vbWlhbFRlc3Q6OnRlc3RHbG9nRXhjZXB0aW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcSGVscGVyc1xQb2x5bm9taWFsVGVzdDo6dGVzdEdsb2dFeGNlcHRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJ0ZXN0R2xvZ0V4Y2VwdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/I/H/qhWPDCE3uWxlecP+UUtw b/files/I/H/qhWPDCE3uWxlecP+UUtw deleted file mode 100644 index e0ccee0fc..000000000 --- a/files/I/H/qhWPDCE3uWxlecP+UUtw +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A697a91ef3e75c0b0a5f0fe17b5004a5d-fc2a2a17bd3bf65d4617ca7a57a893a1 -s:27412:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTc6IkNsYXNzIFFSSW1hZ2VUZXN0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE1OiJRUkltYWdlVGVzdC5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIyNC4xMi4yMDE3IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyODoiY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiZmMyYTJhMTdiZDNiZjY1ZDQ2MTdjYTdhNTdhODkzYTEiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxNToiUVJJbWFnZVRlc3QucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Mjg6InRlc3RzL091dHB1dC9RUkltYWdlVGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjE4NjQ6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUkltYWdlVGVzdAogKgogKiBAZmlsZXNvdXJjZSAgIFFSSW1hZ2VUZXN0LnBocAogKiBAY3JlYXRlZCAgICAgIDI0LjEyLjIwMTcKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0CiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dDsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVx7UVJDb2RlLCBRUk9wdGlvbnN9Owp1c2UgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XHtRUk91dHB1dEludGVyZmFjZSwgUVJJbWFnZX07CgovKioKICogVGVzdHMgdGhlIFFSSW1hZ2Ugb3V0cHV0IG1vZHVsZQogKi8KY2xhc3MgUVJJbWFnZVRlc3QgZXh0ZW5kcyBRUk91dHB1dFRlc3RBYnN0cmFjdHsKCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHNldFVwKCk6dm9pZHsKCgkJaWYoIWV4dGVuc2lvbl9sb2FkZWQoJ2dkJykpewoJCQkkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdleHQtZ2Qgbm90IGxvYWRlZCcpOwoJCQlyZXR1cm47CgkJfQoKCQlwYXJlbnQ6OnNldFVwKCk7Cgl9CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICogQGludGVybmFsCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRPdXRwdXRJbnRlcmZhY2UoUVJPcHRpb25zICRvcHRpb25zKTpRUk91dHB1dEludGVyZmFjZXsKCQlyZXR1cm4gbmV3IFFSSW1hZ2UoJG9wdGlvbnMsICR0aGlzLT5tYXRyaXgpOwoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqIEBpbnRlcm5hbAoJICovCglwdWJsaWMgZnVuY3Rpb24gdHlwZXMoKTphcnJheXsKCQlyZXR1cm4gWwoJCQkncG5nJyA9PiBbUVJDb2RlOjpPVVRQVVRfSU1BR0VfUE5HXSwKCQkJJ2dpZicgPT4gW1FSQ29kZTo6T1VUUFVUX0lNQUdFX0dJRl0sCgkJCSdqcGcnID0+IFtRUkNvZGU6Ok9VVFBVVF9JTUFHRV9KUEddLAoJCV07Cgl9CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdFNldE1vZHVsZVZhbHVlcygpOnZvaWR7CgoJCSR0aGlzLT5vcHRpb25zLT5tb2R1bGVWYWx1ZXMgPSBbCgkJCS8vIGRhdGEKCQkJMTAyNCA9PiBbMCwgMCwgMF0sCgkJCTQgICAgPT4gWzI1NSwgMjU1LCAyNTVdLAoJCV07CgoJCSR0aGlzLT5vdXRwdXRJbnRlcmZhY2UgPSAkdGhpcy0+Z2V0T3V0cHV0SW50ZXJmYWNlKCR0aGlzLT5vcHRpb25zKTsKCQkkdGhpcy0+b3V0cHV0SW50ZXJmYWNlLT5kdW1wKCk7CgoJCSR0aGlzOjphc3NlcnRUcnVlKHRydWUpOyAvLyB0cmlja2luZyB0aGUgY29kZSBjb3ZlcmFnZQoJfQoKCS8qKgoJICogQHBoYW4tc3VwcHJlc3MgUGhhblVuZGVjbGFyZWRDbGFzc1JlZmVyZW5jZQoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdE91dHB1dEdldFJlc291cmNlKCk6dm9pZHsKCQkkdGhpcy0+b3B0aW9ucy0+cmV0dXJuUmVzb3VyY2UgPSB0cnVlOwoJCSR0aGlzLT5vdXRwdXRJbnRlcmZhY2UgICAgICAgICA9ICR0aGlzLT5nZXRPdXRwdXRJbnRlcmZhY2UoJHRoaXMtPm9wdGlvbnMpOwoKCQkkYWN0dWFsID0gJHRoaXMtPm91dHB1dEludGVyZmFjZS0+ZHVtcCgpOwoKCQkvKiogQG5vaW5zcGVjdGlvbiBQaHBFbGVtZW50SXNOb3RBdmFpbGFibGVJbkN1cnJlbnRQaHBWZXJzaW9uSW5zcGVjdGlvbiAqLwoJCVxQSFBfTUFKT1JfVkVSU0lPTiA+PSA4CgkJCT8gJHRoaXM6OmFzc2VydEluc3RhbmNlT2YoXEdkSW1hZ2U6OmNsYXNzLCAkYWN0dWFsKQoJCQk6ICR0aGlzOjphc3NlcnRJc1Jlc291cmNlKCRhY3R1YWwpOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6Ik91dHB1dCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjQxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUkltYWdlVGVzdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJJbWFnZVRlc3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiUVJJbWFnZVRlc3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMxOiJUZXN0cyB0aGUgUVJJbWFnZSBvdXRwdXQgbW9kdWxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI4OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTo0OntzOjY6IlFSQ29kZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlIjtzOjk6IlFST3B0aW9ucyI7czoyNzoiY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjE3OiJRUk91dHB1dEludGVyZmFjZSI7czo0MjoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0SW50ZXJmYWNlIjtzOjc6IlFSSW1hZ2UiO3M6MzI6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoiUVJPdXRwdXRUZXN0QWJzdHJhY3QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjU6e3M6NTA6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2VUZXN0OjpzZXRVcCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUkltYWdlVGVzdDo6c2V0VXAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InNldFVwIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2MzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJJbWFnZVRlc3Q6OmdldE91dHB1dEludGVyZmFjZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjYzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUkltYWdlVGVzdDo6Z2V0T3V0cHV0SW50ZXJmYWNlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoiZ2V0T3V0cHV0SW50ZXJmYWNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6Im9wdGlvbnMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IlFST3B0aW9ucyI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFST3V0cHV0SW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IlFST3V0cHV0SW50ZXJmYWNlIjt9fX1zOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUkltYWdlVGVzdDo6dHlwZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJJbWFnZVRlc3Q6OnR5cGVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJ0eXBlcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NjQ6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFSSW1hZ2VUZXN0Ojp0ZXN0U2V0TW9kdWxlVmFsdWVzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJJbWFnZVRlc3Q6OnRlc3RTZXRNb2R1bGVWYWx1ZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJ0ZXN0U2V0TW9kdWxlVmFsdWVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJJbWFnZVRlc3Q6OnRlc3RPdXRwdXRHZXRSZXNvdXJjZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMzoicGhhbi1zdXBwcmVzcyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjg6IlBoYW5VbmRlY2xhcmVkQ2xhc3NSZWZlcmVuY2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUkltYWdlVGVzdDo6dGVzdE91dHB1dEdldFJlc291cmNlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMToidGVzdE91dHB1dEdldFJlc291cmNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/J/P/ZznDVjUum4wVQBxpkQsQ b/files/J/P/ZznDVjUum4wVQBxpkQsQ deleted file mode 100644 index 23ba63483..000000000 --- a/files/J/P/ZznDVjUum4wVQBxpkQsQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A6e4f69c48ba9cbe306a6007c692f0ffe-a575446d8cd3f74867a0ef914d9ffa3f -s:20928:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTQ6IkNsYXNzIEFscGhhTnVtIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyOiJBbHBoYU51bS5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIyNS4xMS4yMDE1IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYTU3NTQ0NmQ4Y2QzZjc0ODY3YTBlZjkxNGQ5ZmZhM2YiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxMjoiQWxwaGFOdW0ucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MjE6InNyYy9EYXRhL0FscGhhTnVtLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTMxNjoiPD9waHAKLyoqCiAqIENsYXNzIEFscGhhTnVtCiAqCiAqIEBmaWxlc291cmNlICAgQWxwaGFOdW0ucGhwCiAqIEBjcmVhdGVkICAgICAgMjUuMTEuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXERhdGEKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxEYXRhOwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTsKCnVzZSBmdW5jdGlvbiBvcmQsIHNwcmludGY7CgovKioKICogQWxwaGFudW1lcmljIG1vZGU6IDAgdG8gOSwgQSB0byBaLCBzcGFjZSwgJCAlICogKyAtIC4gLyA6CiAqCiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguMy4zCiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguNC4zCiAqLwpmaW5hbCBjbGFzcyBBbHBoYU51bSBleHRlbmRzIFFSRGF0YUFic3RyYWN0ewoKCXByb3RlY3RlZCBpbnQgJGRhdGFtb2RlID0gUVJDb2RlOjpEQVRBX0FMUEhBTlVNOwoKCXByb3RlY3RlZCBhcnJheSAkbGVuZ3RoQml0cyA9IFs5LCAxMSwgMTNdOwoKCS8qKgoJICogQGluaGVyaXRkb2MKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHdyaXRlKHN0cmluZyAkZGF0YSk6dm9pZHsKCgkJZm9yKCRpID0gMDsgJGkgKyAxIDwgJHRoaXMtPnN0cmxlbjsgJGkgKz0gMil7CgkJCSR0aGlzLT5iaXRCdWZmZXItPnB1dCgkdGhpcy0+Z2V0Q2hhckNvZGUoJGRhdGFbJGldKSAqIDQ1ICsgJHRoaXMtPmdldENoYXJDb2RlKCRkYXRhWyRpICsgMV0pLCAxMSk7CgkJfQoKCQlpZigkaSA8ICR0aGlzLT5zdHJsZW4pewoJCQkkdGhpcy0+Yml0QnVmZmVyLT5wdXQoJHRoaXMtPmdldENoYXJDb2RlKCRkYXRhWyRpXSksIDYpOwoJCX0KCgl9CgoJLyoqCgkgKiBnZXQgdGhlIGNvZGUgZm9yIHRoZSBnaXZlbiBjaGFyYWN0ZXIKCSAqCgkgKiBAdGhyb3dzIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24gb24gYW4gaWxsZWdhbCBjaGFyYWN0ZXIgb2NjdXJlbmNlCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRDaGFyQ29kZShzdHJpbmcgJGNocik6aW50ewoKCQlpZighaXNzZXQoJHRoaXM6OkNIQVJfTUFQX0FMUEhBTlVNWyRjaHJdKSl7CgkJCXRocm93IG5ldyBRUkNvZGVEYXRhRXhjZXB0aW9uKHNwcmludGYoJ2lsbGVnYWwgY2hhcjogIiVzIiBbJWRdJywgJGNociwgb3JkKCRjaHIpKSk7CgkJfQoKCQlyZXR1cm4gJHRoaXM6OkNIQVJfTUFQX0FMUEhBTlVNWyRjaHJdOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjIzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IkRhdGEiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcQWxwaGFOdW0iO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiQWxwaGFOdW0iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU3OiJBbHBoYW51bWVyaWMgbW9kZTogMCB0byA5LCBBIHRvIFosIHNwYWNlLCAkICUgKiArIC0gLiAvIDoiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjU6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguMy4zCklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguNC4zIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjI6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJRUkRhdGFBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToyOntzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxBbHBoYU51bTo6JGRhdGFtb2RlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxBbHBoYU51bTo6JGRhdGFtb2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiZGF0YW1vZGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6REFUQV9BTFBIQU5VTSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtOjokbGVuZ3RoQml0cyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcQWxwaGFOdW06OiRsZW5ndGhCaXRzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Imxlbmd0aEJpdHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoxMToiWzksIDExLCAxM10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjI6e3M6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtOjp3cml0ZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdGRvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtOjp3cml0ZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToid3JpdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZGF0YSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtOjpnZXRDaGFyQ29kZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNjoiZ2V0IHRoZSBjb2RlIGZvciB0aGUgZ2l2ZW4gY2hhcmFjdGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6IlFSQ29kZURhdGFFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzM6Im9uIGFuIGlsbGVnYWwgY2hhcmFjdGVyIG9jY3VyZW5jZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEFscGhhTnVtOjpnZXRDaGFyQ29kZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6ImdldENoYXJDb2RlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6ImNociI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/K/D/2usSU7Slz67Vrje5pseA b/files/K/D/2usSU7Slz67Vrje5pseA deleted file mode 100644 index d1f991ae8..000000000 --- a/files/K/D/2usSU7Slz67Vrje5pseA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Aa1f6779869c09e75ad1f94f294dd9ca2-7e9da54c99553e1ee4de1c7d2747ab06 -s:55196:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzE6IkNsYXNzIERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6IkRhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3QucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMjQuMTEuMjAxNyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjY6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE3IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI3ZTlkYTU0Yzk5NTUzZTFlZTRkZTFjN2QyNzQ3YWIwNiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI5OiJEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjQwOiJ0ZXN0cy9EYXRhL0RhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3QucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czozMzc5OiI8P3BocAovKioKICogQ2xhc3MgRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdAogKgogKiBAZmlsZXNvdXJjZSAgIERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3QucGhwCiAqIEBjcmVhdGVkICAgICAgMjQuMTEuMjAxNwogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGE7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOwp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zOwp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CnVzZSBjaGlsbGVybGFuXFFSQ29kZVxEYXRhXHtRUkNvZGVEYXRhRXhjZXB0aW9uLCBRUkRhdGFJbnRlcmZhY2UsIFFSTWF0cml4fTsKdXNlIFJlZmxlY3Rpb25DbGFzczsKCnVzZSBmdW5jdGlvbiBzdHJfcmVwZWF0OwoKLyoqCiAqIFRoZSBkYXRhIGludGVyZmFjZSB0ZXN0IGFic3RyYWN0CiAqLwphYnN0cmFjdCBjbGFzcyBEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0IGV4dGVuZHMgVGVzdENhc2V7CgoJLyoqIEBpbnRlcm5hbCAqLwoJcHJvdGVjdGVkIFJlZmxlY3Rpb25DbGFzcyAkcmVmbGVjdGlvbjsKCS8qKiBAaW50ZXJuYWwgKi8KCXByb3RlY3RlZCBRUkRhdGFJbnRlcmZhY2UgJGRhdGFJbnRlcmZhY2U7CgkvKiogQGludGVybmFsICovCglwcm90ZWN0ZWQgc3RyaW5nICR0ZXN0ZGF0YTsKCS8qKiBAaW50ZXJuYWwgKi8KCXByb3RlY3RlZCBhcnJheSAgJGV4cGVjdGVkOwoKCS8qKgoJICogQGludGVybmFsCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRVcCgpOnZvaWR7CgkJJHRoaXMtPmRhdGFJbnRlcmZhY2UgPSAkdGhpcy0+Z2V0RGF0YUludGVyZmFjZUluc3RhbmNlKG5ldyBRUk9wdGlvbnMoWyd2ZXJzaW9uJyA9PiA0XSkpOwoJCSR0aGlzLT5yZWZsZWN0aW9uICAgID0gbmV3IFJlZmxlY3Rpb25DbGFzcygkdGhpcy0+ZGF0YUludGVyZmFjZSk7Cgl9CgoJLyoqCgkgKiBSZXR1cm5zIGEgZGF0YSBpbnRlcmZhY2UgaW5zdGFuY2UKCSAqCgkgKiBAaW50ZXJuYWwKCSAqLwoJYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldERhdGFJbnRlcmZhY2VJbnN0YW5jZShRUk9wdGlvbnMgJG9wdGlvbnMpOlFSRGF0YUludGVyZmFjZTsKCgkvKioKCSAqIFZlcmlmaWVzIHRoZSBkYXRhIGludGVyZmFjZSBpbnN0YW5jZQoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdEluc3RhbmNlKCk6dm9pZHsKCQkkdGhpczo6YXNzZXJ0SW5zdGFuY2VPZihRUkRhdGFJbnRlcmZhY2U6OmNsYXNzLCAkdGhpcy0+ZGF0YUludGVyZmFjZSk7Cgl9CgoJLyoqCgkgKiBUZXN0cyBlY2MgbWFza2luZyBhbmQgdmVyaWZpZXMgYWdhaW5zdCBhIHNhbXBsZQoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdE1hc2tFY2MoKTp2b2lkewoJCSR0aGlzLT5kYXRhSW50ZXJmYWNlLT5zZXREYXRhKCR0aGlzLT50ZXN0ZGF0YSk7CgoJCSRtYXNrRUNDID0gJHRoaXMtPnJlZmxlY3Rpb24tPmdldE1ldGhvZCgnbWFza0VDQycpOwoJCSRtYXNrRUNDLT5zZXRBY2Nlc3NpYmxlKHRydWUpOwoKCQkkdGhpczo6YXNzZXJ0U2FtZSgkdGhpcy0+ZXhwZWN0ZWQsICRtYXNrRUNDLT5pbnZva2UoJHRoaXMtPmRhdGFJbnRlcmZhY2UpKTsKCX0KCgkvKioKCSAqIEBzZWUgdGVzdEluaXRNYXRyaXgoKQoJICogQGludGVybmFsCgkgKiBAcmV0dXJuIGludFtdW10KCSAqLwoJcHVibGljIGZ1bmN0aW9uIE1hc2tQYXR0ZXJuUHJvdmlkZXIoKTphcnJheXsKCQlyZXR1cm4gW1swXSwgWzFdLCBbMl0sIFszXSwgWzRdLCBbNV0sIFs2XSwgWzddXTsKCX0KCgkvKioKCSAqIFRlc3RzIGluaXRpYWxpemluZyB0aGUgZGF0YSBtYXRyaXgKCSAqCgkgKiBAZGF0YVByb3ZpZGVyIE1hc2tQYXR0ZXJuUHJvdmlkZXIKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RJbml0TWF0cml4KGludCAkbWFza1BhdHRlcm4pOnZvaWR7CgkJJHRoaXMtPmRhdGFJbnRlcmZhY2UtPnNldERhdGEoJHRoaXMtPnRlc3RkYXRhKTsKCgkJJG1hdHJpeCA9ICR0aGlzLT5kYXRhSW50ZXJmYWNlLT5pbml0TWF0cml4KCRtYXNrUGF0dGVybik7CgoJCSR0aGlzOjphc3NlcnRJbnN0YW5jZU9mKFFSTWF0cml4OjpjbGFzcywgJG1hdHJpeCk7CgkJJHRoaXM6OmFzc2VydFNhbWUoJG1hc2tQYXR0ZXJuLCAkbWF0cml4LT5tYXNrUGF0dGVybigpKTsKCX0KCgkvKioKCSAqIFRlc3RzIGdldHRpbmcgdGhlIG1pbmltdW0gUVIgdmVyc2lvbiBmb3IgdGhlIGdpdmVuIGRhdGEKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRNaW5pbXVtVmVyc2lvbigpOnZvaWR7CgkJJHRoaXMtPmRhdGFJbnRlcmZhY2UtPnNldERhdGEoJHRoaXMtPnRlc3RkYXRhKTsKCgkJJGdldE1pbmltdW1WZXJzaW9uID0gJHRoaXMtPnJlZmxlY3Rpb24tPmdldE1ldGhvZCgnZ2V0TWluaW11bVZlcnNpb24nKTsKCQkkZ2V0TWluaW11bVZlcnNpb24tPnNldEFjY2Vzc2libGUodHJ1ZSk7CgoJCSR0aGlzOjphc3NlcnRTYW1lKDEsICRnZXRNaW5pbXVtVmVyc2lvbi0+aW52b2tlKCR0aGlzLT5kYXRhSW50ZXJmYWNlKSk7Cgl9CgoJLyoqCgkgKiBUZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIGRhdGEgZXhjZWVkcyB0aGUgbWF4aW11bSB2ZXJzaW9uIHdoaWxlIGF1dG8gZGV0ZWN0aW5nCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0TWluaW11bVZlcnNpb25FeGNlcHRpb24oKTp2b2lkewoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb24oUVJDb2RlRGF0YUV4Y2VwdGlvbjo6Y2xhc3MpOwoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb25NZXNzYWdlKCdkYXRhIGV4Y2VlZHMnKTsKCgkJJHRoaXMtPmRhdGFJbnRlcmZhY2UgPSAkdGhpcy0+Z2V0RGF0YUludGVyZmFjZUluc3RhbmNlKG5ldyBRUk9wdGlvbnMoWyd2ZXJzaW9uJyA9PiBRUkNvZGU6OlZFUlNJT05fQVVUT10pKTsKCQkkdGhpcy0+ZGF0YUludGVyZmFjZS0+c2V0RGF0YShzdHJfcmVwZWF0KCR0aGlzLT50ZXN0ZGF0YSwgMTMzNykpOwoJfQoKCS8qKgoJICogVGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBvbiBkYXRhIG92ZXJmbG93CgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29kZUxlbmd0aE92ZXJmbG93RXhjZXB0aW9uKCk6dm9pZHsKCQkkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uKFFSQ29kZURhdGFFeGNlcHRpb246OmNsYXNzKTsKCQkkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uTWVzc2FnZSgnY29kZSBsZW5ndGggb3ZlcmZsb3cnKTsKCgkJJHRoaXMtPmRhdGFJbnRlcmZhY2UtPnNldERhdGEoc3RyX3JlcGVhdCgkdGhpcy0+dGVzdGRhdGEsIDEzMzcpKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyNzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IkRhdGEiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo1MzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjU6IkRhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMyOiJUaGUgZGF0YSBpbnRlcmZhY2UgdGVzdCBhYnN0cmFjdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyNjoiY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjc6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO3M6OToiUVJPcHRpb25zIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6ODoiVGVzdENhc2UiO3M6MjY6IlBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlIjtzOjE5OiJRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjQyOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24iO3M6MTU6IlFSRGF0YUludGVyZmFjZSI7czozODoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2UiO3M6ODoiUVJNYXRyaXgiO3M6MzE6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MTU6IlJlZmxlY3Rpb25DbGFzcyI7czoxNToiUmVmbGVjdGlvbkNsYXNzIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjoxO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiVGVzdENhc2UiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6NDp7czo2NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OiRyZWZsZWN0aW9uIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdDo6JHJlZmxlY3Rpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoicmVmbGVjdGlvbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNjoiXFJlZmxlY3Rpb25DbGFzcyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJSZWZsZWN0aW9uQ2xhc3MiO319fXM6Njk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0OjokZGF0YUludGVyZmFjZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OiRkYXRhSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6ImRhdGFJbnRlcmZhY2UiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO319fXM6NjQ6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0OjokdGVzdGRhdGEiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjQ6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0OjokdGVzdGRhdGEiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0ZXN0ZGF0YSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NjQ6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0OjokZXhwZWN0ZWQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjQ6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0OjokZXhwZWN0ZWQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJleHBlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6OTp7czo2MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OnNldFVwKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OnNldFVwKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJzZXRVcCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6ODE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0OjpnZXREYXRhSW50ZXJmYWNlSW5zdGFuY2UoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzM6IlJldHVybnMgYSBkYXRhIGludGVyZmFjZSBpbnN0YW5jZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OmdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6ImdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjoxO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJvcHRpb25zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJRUk9wdGlvbnMiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlFSRGF0YUludGVyZmFjZSI7fX19czo2OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OnRlc3RJbnN0YW5jZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNjoiVmVyaWZpZXMgdGhlIGRhdGEgaW50ZXJmYWNlIGluc3RhbmNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ojp0ZXN0SW5zdGFuY2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJ0ZXN0SW5zdGFuY2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjY4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdDo6dGVzdE1hc2tFY2MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDc6IlRlc3RzIGVjYyBtYXNraW5nIGFuZCB2ZXJpZmllcyBhZ2FpbnN0IGEgc2FtcGxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ojp0ZXN0TWFza0VjYygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6InRlc3RNYXNrRWNjIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo3NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6Ok1hc2tQYXR0ZXJuUHJvdmlkZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXHRlc3RJbml0TWF0cml4KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoidGVzdEluaXRNYXRyaXgiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdDo6TWFza1BhdHRlcm5Qcm92aWRlcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6Ik1hc2tQYXR0ZXJuUHJvdmlkZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1zOjcxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdDo6dGVzdEluaXRNYXRyaXgoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzQ6IlRlc3RzIGluaXRpYWxpemluZyB0aGUgZGF0YSBtYXRyaXgiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMjoiZGF0YVByb3ZpZGVyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxOToiTWFza1BhdHRlcm5Qcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ojp0ZXN0SW5pdE1hdHJpeCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTQ6InRlc3RJbml0TWF0cml4Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6Nzg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ojp0ZXN0R2V0TWluaW11bVZlcnNpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTU6IlRlc3RzIGdldHRpbmcgdGhlIG1pbmltdW0gUVIgdmVyc2lvbiBmb3IgdGhlIGdpdmVuIGRhdGEiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OnRlc3RHZXRNaW5pbXVtVmVyc2lvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjE6InRlc3RHZXRNaW5pbXVtVmVyc2lvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6ODc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ojp0ZXN0R2V0TWluaW11bVZlcnNpb25FeGNlcHRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6OTQ6IlRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgZGF0YSBleGNlZWRzIHRoZSBtYXhpbXVtIHZlcnNpb24gd2hpbGUgYXV0byBkZXRlY3RpbmciO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ojp0ZXN0R2V0TWluaW11bVZlcnNpb25FeGNlcHRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjMwOiJ0ZXN0R2V0TWluaW11bVZlcnNpb25FeGNlcHRpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo4ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OnRlc3RDb2RlTGVuZ3RoT3ZlcmZsb3dFeGNlcHRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDg6IlRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gb24gZGF0YSBvdmVyZmxvdyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3Q6OnRlc3RDb2RlTGVuZ3RoT3ZlcmZsb3dFeGNlcHRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjMxOiJ0ZXN0Q29kZUxlbmd0aE92ZXJmbG93RXhjZXB0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/K/L/fZHuAP6-KlBaY1CAbrFg b/files/K/L/fZHuAP6-KlBaY1CAbrFg deleted file mode 100644 index 9fe4d885d..000000000 --- a/files/K/L/fZHuAP6-KlBaY1CAbrFg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ae0f9ff4335e7dcabde94b24b5b3d838d-2a3120ea49297fef44e19ec09a41fb3c -s:7448:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjU6IkNsYXNzIFFSQ29kZURhdGFFeGNlcHRpb24iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjM6IlFSQ29kZURhdGFFeGNlcHRpb24ucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMDkuMTIuMjAxNSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjI6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6NjoiU21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTUgU21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjJhMzEyMGVhNDkyOTdmZWY0NGUxOWVjMDlhNDFmYjNjIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MjM6IlFSQ29kZURhdGFFeGNlcHRpb24ucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MzI6InNyYy9EYXRhL1FSQ29kZURhdGFFeGNlcHRpb24ucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czozODE6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUkNvZGVEYXRhRXhjZXB0aW9uCiAqCiAqIEBmaWxlc291cmNlICAgUVJDb2RlRGF0YUV4Y2VwdGlvbi5waHAKICogQGNyZWF0ZWQgICAgICAwOS4xMi4yMDE1CiAqIEBwYWNrYWdlICAgICAgY2hpbGxlcmxhblxRUkNvZGVcRGF0YQogKiBAYXV0aG9yICAgICAgIFNtaWxleSA8c21pbGV5QGNoaWxsZXJsYW4ubmV0PgogKiBAY29weXJpZ2h0ICAgIDIwMTUgU21pbGV5CiAqIEBsaWNlbnNlICAgICAgTUlUCiAqLwoKbmFtZXNwYWNlIGNoaWxsZXJsYW5cUVJDb2RlXERhdGE7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlRXhjZXB0aW9uOwoKY2xhc3MgUVJDb2RlRGF0YUV4Y2VwdGlvbiBleHRlbmRzIFFSQ29kZUV4Y2VwdGlvbnt9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRGF0YSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6IlFSQ29kZURhdGFFeGNlcHRpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlFSQ29kZUV4Y2VwdGlvbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/M/I/0kPNtoyEiRWyw6jaVFDg b/files/M/I/0kPNtoyEiRWyw6jaVFDg deleted file mode 100644 index 57346e0a4..000000000 --- a/files/M/I/0kPNtoyEiRWyw6jaVFDg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Af26a0846c840be604a792acafaeee293-ccb04a6531246e8b73271d8cb0d80ed1 -s:21148:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTE6IkNsYXNzIEthbmppIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk6IkthbmppLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI1LjExLjIwMTUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIyOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE1IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJjY2IwNGE2NTMxMjQ2ZThiNzMyNzFkOGNiMGQ4MGVkMSI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjk6IkthbmppLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjE4OiJzcmMvRGF0YS9LYW5qaS5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjE0NDY6Ijw/cGhwCi8qKgogKiBDbGFzcyBLYW5qaQogKgogKiBAZmlsZXNvdXJjZSAgIEthbmppLnBocAogKiBAY3JlYXRlZCAgICAgIDI1LjExLjIwMTUKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVxEYXRhCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNSBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YTsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU7Cgp1c2UgZnVuY3Rpb24gbWJfc3RybGVuLCBvcmQsIHNwcmludGYsIHN0cmxlbjsKCi8qKgogKiBLYW5qaSBtb2RlOiBkb3VibGUtYnl0ZSBjaGFyYWN0ZXJzIGZyb20gdGhlIFNoaWZ0IEpJUyBjaGFyYWN0ZXIgc2V0CiAqCiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguMy41CiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguNC41CiAqLwpmaW5hbCBjbGFzcyBLYW5qaSBleHRlbmRzIFFSRGF0YUFic3RyYWN0ewoKCXByb3RlY3RlZCBpbnQgJGRhdGFtb2RlID0gUVJDb2RlOjpEQVRBX0tBTkpJOwoKCXByb3RlY3RlZCBhcnJheSAkbGVuZ3RoQml0cyA9IFs4LCAxMCwgMTJdOwoKCS8qKgoJICogQGluaGVyaXRkb2MKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldExlbmd0aChzdHJpbmcgJGRhdGEpOmludHsKCQlyZXR1cm4gbWJfc3RybGVuKCRkYXRhLCAnU0pJUycpOwoJfQoKCS8qKgoJICogQGluaGVyaXRkb2MKCSAqCgkgKiBAdGhyb3dzIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24gb24gYW4gaWxsZWdhbCBjaGFyYWN0ZXIgb2NjdXJlbmNlCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiB3cml0ZShzdHJpbmcgJGRhdGEpOnZvaWR7CgkJJGxlbiA9IHN0cmxlbigkZGF0YSk7CgoJCWZvcigkaSA9IDA7ICRpICsgMSA8ICRsZW47ICRpICs9IDIpewoJCQkkYyA9ICgoMHhmZiAmIG9yZCgkZGF0YVskaV0pKSA8PCA4KSB8ICgweGZmICYgb3JkKCRkYXRhWyRpICsgMV0pKTsKCgkJCWlmKCRjID49IDB4ODE0MCAmJiAkYyA8PSAweDlGRkMpewoJCQkJJGMgLT0gMHg4MTQwOwoJCQl9CgkJCWVsc2VpZigkYyA+PSAweEUwNDAgJiYgJGMgPD0gMHhFQkJGKXsKCQkJCSRjIC09IDB4QzE0MDsKCQkJfQoJCQllbHNlewoJCQkJdGhyb3cgbmV3IFFSQ29kZURhdGFFeGNlcHRpb24oc3ByaW50ZignaWxsZWdhbCBjaGFyIGF0ICVkIFslZF0nLCAkaSArIDEsICRjKSk7CgkJCX0KCgkJCSR0aGlzLT5iaXRCdWZmZXItPnB1dCgoKCgkYyA+PiA4KSAmIDB4ZmYpICogMHhDMCkgKyAoJGMgJiAweGZmKSwgMTMpOwoKCQl9CgoJCWlmKCRpIDwgJGxlbil7CgkJCXRocm93IG5ldyBRUkNvZGVEYXRhRXhjZXB0aW9uKHNwcmludGYoJ2lsbGVnYWwgY2hhciBhdCAlZCcsICRpICsgMSkpOwoJCX0KCgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRGF0YSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjI5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxLYW5qaSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcS2FuamkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJLYW5qaSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njc6IkthbmppIG1vZGU6IGRvdWJsZS1ieXRlIGNoYXJhY3RlcnMgZnJvbSB0aGUgU2hpZnQgSklTIGNoYXJhY3RlciBzZXQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjU6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguMy41CklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguNC41IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjI6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE6e3M6NjoiUVJDb2RlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJRUkRhdGFBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToyOntzOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxLYW5qaTo6JGRhdGFtb2RlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxLYW5qaTo6JGRhdGFtb2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiZGF0YW1vZGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czozNzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6REFUQV9LQU5KSSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEthbmppOjokbGVuZ3RoQml0cyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcS2Fuamk6OiRsZW5ndGhCaXRzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Imxlbmd0aEJpdHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoxMToiWzgsIDEwLCAxMl0iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjI6e3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEthbmppOjpnZXRMZW5ndGgoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXRkb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxLYW5qaTo6Z2V0TGVuZ3RoKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJnZXRMZW5ndGgiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZGF0YSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czozODoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcS2Fuamk6OndyaXRlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0ZG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToiUVJDb2RlRGF0YUV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMzoib24gYW4gaWxsZWdhbCBjaGFyYWN0ZXIgb2NjdXJlbmNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozODoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcS2Fuamk6OndyaXRlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJ3cml0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJkYXRhIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/M/M/wXV2gKJYrjfI30y0YfXA b/files/M/M/wXV2gKJYrjfI30y0YfXA deleted file mode 100644 index a7fcdc612..000000000 --- a/files/M/M/wXV2gKJYrjfI30y0YfXA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A3aa6c1954bc7440479ae9c89c6a6035c-4ab983d63128bc877422ad8887b683ef -s:53896:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjY6IkNsYXNzIFFST3V0cHV0VGVzdEFic3RyYWN0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0OiJRUk91dHB1dFRlc3RBYnN0cmFjdC5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIyNC4xMi4yMDE3IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyODoiY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNGFiOTgzZDYzMTI4YmM4Nzc0MjJhZDg4ODdiNjgzZWYiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoyNDoiUVJPdXRwdXRUZXN0QWJzdHJhY3QucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Mzc6InRlc3RzL091dHB1dC9RUk91dHB1dFRlc3RBYnN0cmFjdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjM4NTk6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUk91dHB1dFRlc3RBYnN0cmFjdAogKgogKiBAZmlsZXNvdXJjZSAgIFFST3V0cHV0VGVzdEFic3RyYWN0LnBocAogKiBAY3JlYXRlZCAgICAgIDI0LjEyLjIwMTcKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0CiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dDsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVx7UVJDb2RlLCBRUk9wdGlvbnN9Owp1c2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YVx7Qnl0ZSwgUVJNYXRyaXh9Owp1c2UgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XHtRUkNvZGVPdXRwdXRFeGNlcHRpb24sIFFST3V0cHV0SW50ZXJmYWNlfTsKdXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOwoKdXNlIGZ1bmN0aW9uIGZpbGVfZXhpc3RzLCBpbl9hcnJheSwgbWtkaXI7Cgp1c2UgY29uc3QgUEhQX09TX0ZBTUlMWSwgUEhQX1ZFUlNJT05fSUQ7CgovKioKICogVGVzdCBhYnN0cmFjdCBmb3IgdGhlIHNldmVyYWwgKGJ1aWx0LWluKSBvdXRwdXQgbW9kdWxlcywKICogc2hvdWxkIGFsc28gYmUgdXNlZCB0byB0ZXN0IGN1c3RvbSBvdXRwdXQgbW9kdWxlcwogKi8KYWJzdHJhY3QgY2xhc3MgUVJPdXRwdXRUZXN0QWJzdHJhY3QgZXh0ZW5kcyBUZXN0Q2FzZXsKCgkvKiogQGludGVybmFsICAqLwoJcHJvdGVjdGVkIHN0cmluZyAkYnVpbGRkaXIgPSBfX0RJUl9fLicvLi4vLi4vLmJ1aWxkL291dHB1dF90ZXN0JzsKCS8qKiBAaW50ZXJuYWwgICovCglwcm90ZWN0ZWQgUVJPdXRwdXRJbnRlcmZhY2UgJG91dHB1dEludGVyZmFjZTsKCS8qKiBAaW50ZXJuYWwgICovCglwcm90ZWN0ZWQgUVJPcHRpb25zICRvcHRpb25zOwoJLyoqIEBpbnRlcm5hbCAgKi8KCXByb3RlY3RlZCBRUk1hdHJpeCAkbWF0cml4OwoKCS8qKgoJICogQXR0ZW1wdHMgdG8gY3JlYXRlIGEgZGlyZWN0b3J5IHVuZGVyIC8uYnVpbGQgYW5kIGluc3RhbmNlcyBzZXZlcmFsIHJlcXVpcmVkIG9iamVjdHMKCSAqCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFVwKCk6dm9pZHsKCgkJaWYoIWZpbGVfZXhpc3RzKCR0aGlzLT5idWlsZGRpcikpewoJCQlta2RpcigkdGhpcy0+YnVpbGRkaXIsIDA3NzcsIHRydWUpOwoJCX0KCgkJJHRoaXMtPm9wdGlvbnMgICAgICAgICA9IG5ldyBRUk9wdGlvbnM7CgkJJHRoaXMtPm1hdHJpeCAgICAgICAgICA9IChuZXcgQnl0ZSgkdGhpcy0+b3B0aW9ucywgJ3Rlc3RkYXRhJykpLT5pbml0TWF0cml4KDApOwoJCSR0aGlzLT5vdXRwdXRJbnRlcmZhY2UgPSAkdGhpcy0+Z2V0T3V0cHV0SW50ZXJmYWNlKCR0aGlzLT5vcHRpb25zKTsKCX0KCgkvKioKCSAqIFJldHVybnMgYSBRUk91dHB1dEludGVyZmFjZSBpbnN0YW5jZSB3aXRoIHRoZSBnaXZlbiBvcHRpb25zIGFuZCB1c2luZyAkdGhpcy0+bWF0cml4CgkgKgoJICogQGludGVybmFsCgkgKi8KCWFic3RyYWN0IHByb3RlY3RlZCBmdW5jdGlvbiBnZXRPdXRwdXRJbnRlcmZhY2UoUVJPcHRpb25zICRvcHRpb25zKTpRUk91dHB1dEludGVyZmFjZTsKCgkvKioKCSAqIFZhbGlkYXRlIHRoZSBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0SW5zdGFuY2UoKTp2b2lkewoJCSR0aGlzOjphc3NlcnRJbnN0YW5jZU9mKFFST3V0cHV0SW50ZXJmYWNlOjpjbGFzcywgJHRoaXMtPm91dHB1dEludGVyZmFjZSk7Cgl9CgoJLyoqCgkgKiBUZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdHJ5aW5nIHRvIHdyaXRlIGEgY2FjaGUgZmlsZSB0byBhbiBpbnZhbGlkIGRlc3RpbmF0aW9uCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0U2F2ZUV4Y2VwdGlvbigpOnZvaWR7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihRUkNvZGVPdXRwdXRFeGNlcHRpb246OmNsYXNzKTsKCQkkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uTWVzc2FnZSgnQ291bGQgbm90IHdyaXRlIGRhdGEgdG8gY2FjaGUgZmlsZTogL2Zvby9iYXIudGVzdCcpOwoKCQkkdGhpcy0+b3B0aW9ucy0+Y2FjaGVmaWxlID0gJy9mb28vYmFyLnRlc3QnOwoJCSR0aGlzLT5vdXRwdXRJbnRlcmZhY2UgPSAkdGhpcy0+Z2V0T3V0cHV0SW50ZXJmYWNlKCR0aGlzLT5vcHRpb25zKTsKCQkkdGhpcy0+b3V0cHV0SW50ZXJmYWNlLT5kdW1wKCk7Cgl9CgoJLyoqCgkgKiBjb3ZlcnMgdGhlIG1vZHVsZSB2YWx1ZXMgc2V0dGluZ3MKCSAqLwoJYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRNb2R1bGVWYWx1ZXMoKTp2b2lkOwoKCS8qCgkgKiBhZGRpdGlvbmFsLCBub24tZXNzZW50aWFsLCBwb3RlbnRpYWxseSBpbmFjY3VyYXRlIGNvdmVyYWdlIHRlc3RzCgkgKi8KCgkvKioKCSAqIEBzZWUgdGVzdFN0cmluZ091dHB1dCgpCgkgKiBAcmV0dXJuIHN0cmluZ1tdW10KCSAqIEBpbnRlcm5hbAoJICovCglhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gdHlwZXMoKTphcnJheTsKCgkvKioKCSAqIGNvdmVyYWdlIG9mIHRoZSBidWlsdC1pbiBvdXRwdXQgbW9kdWxlcwoJICoKCSAqIEBkYXRhUHJvdmlkZXIgdHlwZXMKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RTdHJpbmdPdXRwdXQoc3RyaW5nICR0eXBlKTp2b2lkewoJCSR0aGlzLT5vcHRpb25zLT5vdXRwdXRUeXBlICA9ICR0eXBlOwoJCSR0aGlzLT5vcHRpb25zLT5jYWNoZWZpbGUgICA9ICR0aGlzLT5idWlsZGRpci4nL3Rlc3QuJy4kdHlwZTsKCQkkdGhpcy0+b3B0aW9ucy0+aW1hZ2VCYXNlNjQgPSBmYWxzZTsKCgkJJHRoaXMtPm91dHB1dEludGVyZmFjZSAgICAgPSAkdGhpcy0+Z2V0T3V0cHV0SW50ZXJmYWNlKCR0aGlzLT5vcHRpb25zKTsKCQkkZGF0YSAgICAgICAgICAgICAgICAgICAgICA9ICR0aGlzLT5vdXRwdXRJbnRlcmZhY2UtPmR1bXAoKTsgLy8gY3JlYXRlcyB0aGUgY2FjaGUgZmlsZQoKCQkkdGhpczo6YXNzZXJ0U2FtZSgkZGF0YSwgZmlsZV9nZXRfY29udGVudHMoJHRoaXMtPm9wdGlvbnMtPmNhY2hlZmlsZSkpOwoJfQoKCS8qKgoJICogY292ZXJzIHRoZSBidWlsdC1pbiBvdXRwdXQgbW9kdWxlcywgdGVzdHMgYWdhaW5zdCBwcmUtcmVuZGVyZWQgZGF0YQoJICoKCSAqIEBkYXRhUHJvdmlkZXIgdHlwZXMKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RSZW5kZXJJbWFnZShzdHJpbmcgJHR5cGUpOnZvaWR7CgoJCS8vIG1heSBmYWlsIG9uIENJLCBkaWZmZXJlbnQgUEhQIChwbGF0Zm9ybSkgdmVyc2lvbnMgcHJvZHVjZSBkaWZmZXJlbnQgb3V0cHV0CgkJLy8gdGhlIHNhbXBsZXMgd2VyZSBnZW5lcmF0ZWQgb24gcGhwLTcuNC4zLVdpbjMyLXZjMTUteDY0CgkJaWYoCgkJCShQSFBfT1NfRkFNSUxZICE9PSAnV2luZG93cycgfHwgUEhQX1ZFUlNJT05fSUQgPj0gODAxMDApCgkJCSYmIGluX2FycmF5KCR0eXBlLCBbUVJDb2RlOjpPVVRQVVRfSU1BR0VfSlBHLCBRUkNvZGU6Ok9VVFBVVF9JTUFHSUNLLCBRUkNvZGU6Ok9VVFBVVF9NQVJLVVBfU1ZHXSkKCQkpewoJCQkkdGhpczo6bWFya1Rlc3RTa2lwcGVkKCdtYXkgZmFpbCBvbiBDSScpOwoKCQkJLyoqIEBub2luc3BlY3Rpb24gUGhwVW5yZWFjaGFibGVTdGF0ZW1lbnRJbnNwZWN0aW9uICovCgkJCXJldHVybjsKCQl9CgoJCSR0aGlzLT5vcHRpb25zLT5vdXRwdXRUeXBlID0gJHR5cGU7CgoJCSR0aGlzOjphc3NlcnRTYW1lKAoJCQl0cmltKGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy9zYW1wbGVzLycuJHR5cGUpKSwKCQkJdHJpbSgobmV3IFFSQ29kZSgkdGhpcy0+b3B0aW9ucykpLT5yZW5kZXIoJ3Rlc3QnKSkKCQkpOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6Ik91dHB1dCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoiUVJPdXRwdXRUZXN0QWJzdHJhY3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEwNjoiVGVzdCBhYnN0cmFjdCBmb3IgdGhlIHNldmVyYWwgKGJ1aWx0LWluKSBvdXRwdXQgbW9kdWxlcywKc2hvdWxkIGFsc28gYmUgdXNlZCB0byB0ZXN0IGN1c3RvbSBvdXRwdXQgbW9kdWxlcyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyODoiY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6Nzp7czo2OiJRUkNvZGUiO3M6MjQ6ImNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZSI7czo5OiJRUk9wdGlvbnMiO3M6Mjc6ImNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czo0OiJCeXRlIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXEJ5dGUiO3M6ODoiUVJNYXRyaXgiO3M6MzE6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MjE6IlFSQ29kZU91dHB1dEV4Y2VwdGlvbiI7czo0NjoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSQ29kZU91dHB1dEV4Y2VwdGlvbiI7czoxNzoiUVJPdXRwdXRJbnRlcmZhY2UiO3M6NDI6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEludGVyZmFjZSI7czo4OiJUZXN0Q2FzZSI7czoyNjoiUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjE7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJUZXN0Q2FzZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTo0OntzOjYxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6JGJ1aWxkZGlyIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjYxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6JGJ1aWxkZGlyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiYnVpbGRkaXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjM3OiJfX0RJUl9fIC4gJy8uLi8uLi8uYnVpbGQvb3V0cHV0X3Rlc3QnIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo2ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3Q6OiRvdXRwdXRJbnRlcmZhY2UiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFST3V0cHV0VGVzdEFic3RyYWN0Ojokb3V0cHV0SW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6Im91dHB1dEludGVyZmFjZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJRUk91dHB1dEludGVyZmFjZSI7fX19czo2MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3Q6OiRvcHRpb25zIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjYwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6JG9wdGlvbnMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJvcHRpb25zIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiUVJPcHRpb25zIjt9fX1zOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6JG1hdHJpeCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3Q6OiRtYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJtYXRyaXgiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUVJNYXRyaXgiO319fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YTo4OntzOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6c2V0VXAoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6ODM6IkF0dGVtcHRzIHRvIGNyZWF0ZSBhIGRpcmVjdG9yeSB1bmRlciAvLmJ1aWxkIGFuZCBpbnN0YW5jZXMgc2V2ZXJhbCByZXF1aXJlZCBvYmplY3RzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6c2V0VXAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InNldFVwIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo3MjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3Q6OmdldE91dHB1dEludGVyZmFjZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo4MzoiUmV0dXJucyBhIFFST3V0cHV0SW50ZXJmYWNlIGluc3RhbmNlIHdpdGggdGhlIGdpdmVuIG9wdGlvbnMgYW5kIHVzaW5nICR0aGlzLT5tYXRyaXgiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFST3V0cHV0VGVzdEFic3RyYWN0OjpnZXRPdXRwdXRJbnRlcmZhY2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJnZXRPdXRwdXRJbnRlcmZhY2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MTtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Nzoib3B0aW9ucyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiUVJPcHRpb25zIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiUVJPdXRwdXRJbnRlcmZhY2UiO319fXM6NjY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFST3V0cHV0VGVzdEFic3RyYWN0Ojp0ZXN0SW5zdGFuY2UoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mzg6IlZhbGlkYXRlIHRoZSBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFST3V0cHV0VGVzdEFic3RyYWN0Ojp0ZXN0SW5zdGFuY2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJ0ZXN0SW5zdGFuY2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjcxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6dGVzdFNhdmVFeGNlcHRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6OTE6IlRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0cnlpbmcgdG8gd3JpdGUgYSBjYWNoZSBmaWxlIHRvIGFuIGludmFsaWQgZGVzdGluYXRpb24iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3Q6OnRlc3RTYXZlRXhjZXB0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoidGVzdFNhdmVFeGNlcHRpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjczOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6dGVzdFNldE1vZHVsZVZhbHVlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozMzoiY292ZXJzIHRoZSBtb2R1bGUgdmFsdWVzIHNldHRpbmdzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzM6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFST3V0cHV0VGVzdEFic3RyYWN0Ojp0ZXN0U2V0TW9kdWxlVmFsdWVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToidGVzdFNldE1vZHVsZVZhbHVlcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjoxO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFST3V0cHV0VGVzdEFic3RyYWN0Ojp0eXBlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFx0ZXN0U3RyaW5nT3V0cHV0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoidGVzdFN0cmluZ091dHB1dCI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcT3V0cHV0XFFST3V0cHV0VGVzdEFic3RyYWN0Ojp0eXBlcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToidHlwZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MTtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1zOjcwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6dGVzdFN0cmluZ091dHB1dCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozOToiY292ZXJhZ2Ugb2YgdGhlIGJ1aWx0LWluIG91dHB1dCBtb2R1bGVzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NToidHlwZXMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjcwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6dGVzdFN0cmluZ091dHB1dCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6InRlc3RTdHJpbmdPdXRwdXQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoidHlwZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjY5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XE91dHB1dFxRUk91dHB1dFRlc3RBYnN0cmFjdDo6dGVzdFJlbmRlckltYWdlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjY3OiJjb3ZlcnMgdGhlIGJ1aWx0LWluIG91dHB1dCBtb2R1bGVzLCB0ZXN0cyBhZ2FpbnN0IHByZS1yZW5kZXJlZCBkYXRhIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NToidHlwZXMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2OToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxPdXRwdXRcUVJPdXRwdXRUZXN0QWJzdHJhY3Q6OnRlc3RSZW5kZXJJbWFnZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6InRlc3RSZW5kZXJJbWFnZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ0eXBlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/P/+/yPMoahf38cwzB5+P-b8w b/files/P/+/yPMoahf38cwzB5+P-b8w deleted file mode 100644 index b21718dbf..000000000 --- a/files/P/+/yPMoahf38cwzB5+P-b8w +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A42d091db9bd6f5eff8687eb5f9cf707d-99a986b7695b8a1caf1e00269292482d -s:60632:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTk6IkNsYXNzIFFST3B0aW9uc1Rlc3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Nzp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTc6IlFST3B0aW9uc1Rlc3QucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMDguMTEuMjAxOCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjE6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJzbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxOCBzbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6Im5vaW5zcGVjdGlvbiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzI6IlBocFVudXNlZExvY2FsVmFyaWFibGVJbnNwZWN0aW9uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI5OWE5ODZiNzY5NWI4YTFjYWYxZTAwMjY5MjkyNDgyZCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE3OiJRUk9wdGlvbnNUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjIzOiJ0ZXN0cy9RUk9wdGlvbnNUZXN0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MzU5ODoiPD9waHAKLyoqCiAqIENsYXNzIFFST3B0aW9uc1Rlc3QKICoKICogQGZpbGVzb3VyY2UgICBRUk9wdGlvbnNUZXN0LnBocAogKiBAY3JlYXRlZCAgICAgIDA4LjExLjIwMTgKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZVRlc3QKICogQGF1dGhvciAgICAgICBzbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE4IHNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKgogKiBAbm9pbnNwZWN0aW9uIFBocFVudXNlZExvY2FsVmFyaWFibGVJbnNwZWN0aW9uCiAqLwoKbmFtZXNwYWNlIGNoaWxsZXJsYW5cUVJDb2RlVGVzdDsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVx7UVJDb2RlLCBRUkNvZGVFeGNlcHRpb24sIFFST3B0aW9uc307CnVzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKCi8qKgogKiBRUk9wdGlvbnMgdGVzdAogKi8KY2xhc3MgUVJPcHRpb25zVGVzdCBleHRlbmRzIFRlc3RDYXNlewoKCS8qKgoJICogQHNlZSB0ZXN0VmVyc2lvbkNsYW1wKCkKCSAqIEByZXR1cm4gaW50W11bXQoJICogQGludGVybmFsCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBWZXJzaW9uUHJvdmlkZXIoKTphcnJheXsKCQlyZXR1cm4gWwoJCQkndmFsdWVzID4gNDAgc2hvdWxkIGJlIGNsYW1wZWQgdG8gNDAnICAgICAgICA9PiBbNDIsIDQwXSwKCQkJJ3ZhbHVlcyA8IDEgc2hvdWxkIGJlIGNsYW1wZWQgdG8gMScgICAgICAgICAgPT4gWy00MiwgMV0sCgkJCSd2YWx1ZXMgaW4gYmV0d2VlbiBzaG9sZCBub3QgYmUgdG91Y2hlZCcgICAgID0+IFsyMSwgMjFdLAoJCQkndmFsdWUgLTEgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgaXMgKGRlZmF1bHQpJyA9PiBbUVJDb2RlOjpWRVJTSU9OX0FVVE8sIC0xXSwKCQldOwoJfQoKCS8qKgoJICogVGVzdHMgdGhlICR2ZXJzaW9uIGNsYW1waW5nCgkgKgoJICogQGRhdGFQcm92aWRlciBWZXJzaW9uUHJvdmlkZXIKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RWZXJzaW9uQ2xhbXAoaW50ICR2ZXJzaW9uLCBpbnQgJGV4cGVjdGVkKTp2b2lkewoJCSRvID0gbmV3IFFST3B0aW9ucyhbJ3ZlcnNpb24nID0+ICR2ZXJzaW9uXSk7CgoJCSR0aGlzOjphc3NlcnRTYW1lKCRleHBlY3RlZCwgJG8tPnZlcnNpb24pOwoJfQoKCS8qKgoJICogQHNlZSB0ZXN0VmVyc2lvbk1pbk1heENsYW1wKCkKCSAqIEByZXR1cm4gaW50W11bXQoJICogQGludGVybmFsCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBWZXJzaW9uTWluTWF4UHJvdmlkZXIoKTphcnJheXsKCQlyZXR1cm4gWwoJCQknbm9ybWFsIGNsYW1wJyAgICAgICAgID0+IFs1LCAxMCwgNSwgMTBdLAoJCQknZXhjZWVkaW5nIHZhbHVlcycgICAgID0+IFstNDIsIDQyLCAxLCA0MF0sCgkJCSdtaW4gPiBtYXgnICAgICAgICAgICAgPT4gWzEwLCA1LCA1LCAxMF0sCgkJCSdtaW4gPiBtYXgsIGV4Y2VlZGluZycgPT4gWzQyLCAtNDIsIDEsIDQwXSwKCQldOwoJfQoKCS8qKgoJICogVGVzdHMgdGhlICR2ZXJzaW9uTWluLyR2ZXJzaW9uTWF4IGNsYW1waW5nCgkgKgoJICogQGRhdGFQcm92aWRlciBWZXJzaW9uTWluTWF4UHJvdmlkZXIKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RWZXJzaW9uTWluTWF4Q2xhbXAoaW50ICR2ZXJzaW9uTWluLCBpbnQgJHZlcnNpb25NYXgsIGludCAkZXhwZWN0ZWRNaW4sIGludCAkZXhwZWN0ZWRNYXgpOnZvaWR7CgkJJG8gPSBuZXcgUVJPcHRpb25zKFsndmVyc2lvbk1pbicgPT4gJHZlcnNpb25NaW4sICd2ZXJzaW9uTWF4JyA9PiAkdmVyc2lvbk1heF0pOwoKCQkkdGhpczo6YXNzZXJ0U2FtZSgkZXhwZWN0ZWRNaW4sICRvLT52ZXJzaW9uTWluKTsKCQkkdGhpczo6YXNzZXJ0U2FtZSgkZXhwZWN0ZWRNYXgsICRvLT52ZXJzaW9uTWF4KTsKCX0KCgkvKioKCSAqIEBzZWUgdGVzdE1hc2tQYXR0ZXJuQ2xhbXAoKQoJICogQHJldHVybiBpbnRbXVtdCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHVibGljIGZ1bmN0aW9uIE1hc2tQYXR0ZXJuUHJvdmlkZXIoKTphcnJheXsKCQlyZXR1cm4gWwoJCQknZXhjZWVkIG1heCcgICA9PiBbNDIsIDcsXSwKCQkJJ2V4Y2VlZCBtaW4nICAgPT4gWy00MiwgMF0sCgkJCSdkZWZhdWx0ICgtMSknID0+IFtRUkNvZGU6Ok1BU0tfUEFUVEVSTl9BVVRPLCAtMV0sCgkJXTsKCX0KCgkvKioKCSAqIFRlc3RzIHRoZSAkbWFza1BhdHRlcm4gY2xhbXBpbmcKCSAqCgkgKiBAZGF0YVByb3ZpZGVyIE1hc2tQYXR0ZXJuUHJvdmlkZXIKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RNYXNrUGF0dGVybkNsYW1wKGludCAkbWFza1BhdHRlcm4sIGludCAkZXhwZWN0ZWQpOnZvaWR7CgkJJG8gPSBuZXcgUVJPcHRpb25zKFsnbWFza1BhdHRlcm4nID0+ICRtYXNrUGF0dGVybl0pOwoKCQkkdGhpczo6YXNzZXJ0U2FtZSgkZXhwZWN0ZWQsICRvLT5tYXNrUGF0dGVybik7Cgl9CgoJLyoqCgkgKiBUZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIG9uIGFuIGluY29ycmVjdCBFQ0MgbGV2ZWwKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkRWNjTGV2ZWxFeGNlcHRpb24oKTp2b2lkewoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb24oUVJDb2RlRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ0ludmFsaWQgZXJyb3IgY29ycmVjdCBsZXZlbDogNDInKTsKCgkJJG8gPSBuZXcgUVJPcHRpb25zKFsnZWNjTGV2ZWwnID0+IDQyXSk7Cgl9CgoJLyoqCgkgKiBAc2VlIHRlc3RDbGFtcFJHQlZhbHVlcygpCgkgKiBAcmV0dXJuIGludFtdW11bXQoJICogQGludGVybmFsCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBSR0JQcm92aWRlcigpOmFycmF5ewoJCXJldHVybiBbCgkJCSdleGNlZWRpbmcgdmFsdWVzJyA9PiBbWy0xLCAwLCA5OTldLCBbMCwgMCAsMjU1XV0sCgkJCSd0b28gZmV3IHZhbHVlcycgICA9PiBbWzEsIDJdLCBbMjU1LCAyNTUsIDI1NV1dLAoJCQkndG9vIG1hbnkgdmFsdWVzJyAgPT4gW1sxLCAyLCAzLCA0LCA1XSwgWzEsIDIsIDNdXSwKCQldOwoJfQoKCS8qKgoJICogVGVzdHMgY2xhbXBpbmcgb2YgdGhlIFJHQiB2YWx1ZXMgZm9yICRpbWFnZVRyYW5zcGFyZW5jeUJHCgkgKgoJICogQGRhdGFQcm92aWRlciBSR0JQcm92aWRlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdENsYW1wUkdCVmFsdWVzKGFycmF5ICRyZ2IsIGFycmF5ICRleHBlY3RlZCk6dm9pZHsKCQkkbyA9IG5ldyBRUk9wdGlvbnMoWydpbWFnZVRyYW5zcGFyZW5jeUJHJyA9PiAkcmdiXSk7CgoJCSR0aGlzOjphc3NlcnRTYW1lKCRleHBlY3RlZCwgJG8tPmltYWdlVHJhbnNwYXJlbmN5QkcpOwoJfQoKCS8qKgoJICogVGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGEgbm9uLW51bWVyaWMgUkdCIHZhbHVlIHdhcyBlbmNvdXRlcmVkCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZFJHQlZhbHVlRXhjZXB0aW9uKCk6dm9pZHsKCQkkdGhpcy0+ZXhwZWN0RXhjZXB0aW9uKFFSQ29kZUV4Y2VwdGlvbjo6Y2xhc3MpOwoJCSR0aGlzLT5leHBlY3RFeGNlcHRpb25NZXNzYWdlKCdJbnZhbGlkIFJHQiB2YWx1ZS4nKTsKCgkJJG8gPSBuZXcgUVJPcHRpb25zKFsnaW1hZ2VUcmFuc3BhcmVuY3lCRycgPT4gWydyJywgJ2cnLCAnYiddXSk7Cgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3QiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJRUkNvZGVUZXN0Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MzY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUk9wdGlvbnNUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6IlFST3B0aW9uc1Rlc3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE0OiJRUk9wdGlvbnMgdGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyMToiY2hpbGxlcmxhblxRUkNvZGVUZXN0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTo0OntzOjY6IlFSQ29kZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlIjtzOjE1OiJRUkNvZGVFeGNlcHRpb24iO3M6MzM6ImNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbiI7czo5OiJRUk9wdGlvbnMiO3M6Mjc6ImNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czo4OiJUZXN0Q2FzZSI7czoyNjoiUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJUZXN0Q2FzZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MTA6e3M6NTU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6VmVyc2lvblByb3ZpZGVyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcdGVzdFZlcnNpb25DbGFtcCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6InRlc3RWZXJzaW9uQ2xhbXAiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU1OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFST3B0aW9uc1Rlc3Q6OlZlcnNpb25Qcm92aWRlcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlZlcnNpb25Qcm92aWRlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NTY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6dGVzdFZlcnNpb25DbGFtcCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyNzoiVGVzdHMgdGhlICR2ZXJzaW9uIGNsYW1waW5nIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU6IlZlcnNpb25Qcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6dGVzdFZlcnNpb25DbGFtcCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6InRlc3RWZXJzaW9uQ2xhbXAiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoidmVyc2lvbiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJleHBlY3RlZCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NjE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6VmVyc2lvbk1pbk1heFByb3ZpZGVyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcdGVzdFZlcnNpb25NaW5NYXhDbGFtcCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjI6InRlc3RWZXJzaW9uTWluTWF4Q2xhbXAiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjYxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFST3B0aW9uc1Rlc3Q6OlZlcnNpb25NaW5NYXhQcm92aWRlcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjE6IlZlcnNpb25NaW5NYXhQcm92aWRlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NjI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6dGVzdFZlcnNpb25NaW5NYXhDbGFtcCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MjoiVGVzdHMgdGhlICR2ZXJzaW9uTWluLyR2ZXJzaW9uTWF4IGNsYW1waW5nIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6ImRhdGFQcm92aWRlciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjE6IlZlcnNpb25NaW5NYXhQcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjI6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6dGVzdFZlcnNpb25NaW5NYXhDbGFtcCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjI6InRlc3RWZXJzaW9uTWluTWF4Q2xhbXAiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6NDp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTA6InZlcnNpb25NaW4iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTA6InZlcnNpb25NYXgiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTE6ImV4cGVjdGVkTWluIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MztPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJleHBlY3RlZE1heCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6TWFza1BhdHRlcm5Qcm92aWRlcigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XHRlc3RNYXNrUGF0dGVybkNsYW1wKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoidGVzdE1hc2tQYXR0ZXJuQ2xhbXAiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU5OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFST3B0aW9uc1Rlc3Q6Ok1hc2tQYXR0ZXJuUHJvdmlkZXIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJNYXNrUGF0dGVyblByb3ZpZGVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjgxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19czo2MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUk9wdGlvbnNUZXN0Ojp0ZXN0TWFza1BhdHRlcm5DbGFtcCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozMToiVGVzdHMgdGhlICRtYXNrUGF0dGVybiBjbGFtcGluZyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJkYXRhUHJvdmlkZXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE5OiJNYXNrUGF0dGVyblByb3ZpZGVyIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUk9wdGlvbnNUZXN0Ojp0ZXN0TWFza1BhdHRlcm5DbGFtcCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6InRlc3RNYXNrUGF0dGVybkNsYW1wIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJleHBlY3RlZCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6Njg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6dGVzdEludmFsaWRFY2NMZXZlbEV4Y2VwdGlvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NzoiVGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBvbiBhbiBpbmNvcnJlY3QgRUNDIGxldmVsIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFST3B0aW9uc1Rlc3Q6OnRlc3RJbnZhbGlkRWNjTGV2ZWxFeGNlcHRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI4OiJ0ZXN0SW52YWxpZEVjY0xldmVsRXhjZXB0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcUVJPcHRpb25zVGVzdDo6UkdCUHJvdmlkZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFx0ZXN0Q2xhbXBSR0JWYWx1ZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJ0ZXN0Q2xhbXBSR0JWYWx1ZXMiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTEwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFST3B0aW9uc1Rlc3Q6OlJHQlByb3ZpZGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiUkdCUHJvdmlkZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19czo1ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUk9wdGlvbnNUZXN0Ojp0ZXN0Q2xhbXBSR0JWYWx1ZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTc6IlRlc3RzIGNsYW1waW5nIG9mIHRoZSBSR0IgdmFsdWVzIGZvciAkaW1hZ2VUcmFuc3BhcmVuY3lCRyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJkYXRhUHJvdmlkZXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiJSR0JQcm92aWRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFST3B0aW9uc1Rlc3Q6OnRlc3RDbGFtcFJHQlZhbHVlcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6InRlc3RDbGFtcFJHQlZhbHVlcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJyZ2IiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6ImV4cGVjdGVkIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjY4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XFFST3B0aW9uc1Rlc3Q6OnRlc3RJbnZhbGlkUkdCVmFsdWVFeGNlcHRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NzU6IlRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhIG5vbi1udW1lcmljIFJHQiB2YWx1ZSB3YXMgZW5jb3V0ZXJlZCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjczO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxRUk9wdGlvbnNUZXN0Ojp0ZXN0SW52YWxpZFJHQlZhbHVlRXhjZXB0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyODoidGVzdEludmFsaWRSR0JWYWx1ZUV4Y2VwdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMzc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/S/Q/Qqwu8PXc3EWvFRvYXlOQ b/files/S/Q/Qqwu8PXc3EWvFRvYXlOQ deleted file mode 100644 index 2a36afaa1..000000000 --- a/files/S/Q/Qqwu8PXc3EWvFRvYXlOQ +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Af3f46f468250a7a8e739390164fb97fe-3b575c260eed1bb4c63f674b8b1d6574 -s:15424:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjc6IkNsYXNzIE1hc2tQYXR0ZXJuVGVzdGVyVGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNToiTWFza1BhdHRlcm5UZXN0ZXJUZXN0LnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI0LjExLjIwMTciO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI2OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiM2I1NzVjMjYwZWVkMWJiNGM2M2Y2NzRiOGIxZDY1NzQiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoyNToiTWFza1BhdHRlcm5UZXN0ZXJUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjM2OiJ0ZXN0cy9EYXRhL01hc2tQYXR0ZXJuVGVzdGVyVGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjEwNDc6Ijw/cGhwCi8qKgogKiBDbGFzcyBNYXNrUGF0dGVyblRlc3RlclRlc3QKICoKICogQGZpbGVzb3VyY2UgICBNYXNrUGF0dGVyblRlc3RlclRlc3QucGhwCiAqIEBjcmVhdGVkICAgICAgMjQuMTEuMjAxNwogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGE7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zOwp1c2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YVx7Qnl0ZSwgTWFza1BhdHRlcm5UZXN0ZXJ9Owp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CgovKioKICogTWFza1BhdHRlcm5UZXN0ZXIgY292ZXJhZ2UgdGVzdAogKi8KZmluYWwgY2xhc3MgTWFza1BhdHRlcm5UZXN0ZXJUZXN0IGV4dGVuZHMgVGVzdENhc2V7CgoJLyoqCgkgKiBUZXN0cyBnZXR0aW5nIHRoZSBiZXN0IG1hc2sgcGF0dGVybgoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdE1hc2twYXR0ZXJuKCk6dm9pZHsKCQkkZGF0YUludGVyZmFjZSA9IG5ldyBCeXRlKG5ldyBRUk9wdGlvbnMoWyd2ZXJzaW9uJyA9PiAxMF0pLCAndGVzdCcpOwoKCQkkdGhpczo6YXNzZXJ0U2FtZSgzLCAobmV3IE1hc2tQYXR0ZXJuVGVzdGVyKCRkYXRhSW50ZXJmYWNlKSktPmdldEJlc3RNYXNrUGF0dGVybigpKTsKCX0KCgkvKioKCSAqIFRlc3RzIGdldHRpbmcgdGhlIHBlbmFsdHkgdmFsdWUgZm9yIGEgZ2l2ZW4gbWFzayBwYXR0ZXJuCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0TWFza3BhdHRlcm5JRCgpOnZvaWR7CgkJJGRhdGFJbnRlcmZhY2UgPSBuZXcgQnl0ZShuZXcgUVJPcHRpb25zKFsndmVyc2lvbicgPT4gMTBdKSwgJ3Rlc3QnKTsKCgkJJHRoaXM6OmFzc2VydFNhbWUoNDI0MywgKG5ldyBNYXNrUGF0dGVyblRlc3RlcigkZGF0YUludGVyZmFjZSkpLT50ZXN0UGF0dGVybigzKSk7Cgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6Mjc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGEiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJEYXRhIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxNYXNrUGF0dGVyblRlc3RlclRlc3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxNYXNrUGF0dGVyblRlc3RlclRlc3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMToiTWFza1BhdHRlcm5UZXN0ZXJUZXN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozMToiTWFza1BhdHRlcm5UZXN0ZXIgY292ZXJhZ2UgdGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyNjoiY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjQ6e3M6OToiUVJPcHRpb25zIjtzOjI3OiJjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6NDoiQnl0ZSI7czoyNzoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxCeXRlIjtzOjE3OiJNYXNrUGF0dGVyblRlc3RlciI7czo0MDoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxNYXNrUGF0dGVyblRlc3RlciI7czo4OiJUZXN0Q2FzZSI7czoyNjoiUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJUZXN0Q2FzZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mjp7czo2ODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXE1hc2tQYXR0ZXJuVGVzdGVyVGVzdDo6dGVzdE1hc2twYXR0ZXJuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM1OiJUZXN0cyBnZXR0aW5nIHRoZSBiZXN0IG1hc2sgcGF0dGVybiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcTWFza1BhdHRlcm5UZXN0ZXJUZXN0Ojp0ZXN0TWFza3BhdHRlcm4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJ0ZXN0TWFza3BhdHRlcm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjcwOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcTWFza1BhdHRlcm5UZXN0ZXJUZXN0Ojp0ZXN0TWFza3BhdHRlcm5JRCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NjoiVGVzdHMgZ2V0dGluZyB0aGUgcGVuYWx0eSB2YWx1ZSBmb3IgYSBnaXZlbiBtYXNrIHBhdHRlcm4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MDoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXE1hc2tQYXR0ZXJuVGVzdGVyVGVzdDo6dGVzdE1hc2twYXR0ZXJuSUQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJ0ZXN0TWFza3BhdHRlcm5JRCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/T/B/oP0gvbegD38IINjCLkhA b/files/T/B/oP0gvbegD38IINjCLkhA deleted file mode 100644 index 45a563902..000000000 --- a/files/T/B/oP0gvbegD38IINjCLkhA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A46061bb33edfde59b98188cceddc9b13-71f47014d4e8f9ac337f23786b6e3b10 -s:24032:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTY6IkNsYXNzIE51bWJlclRlc3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTQ6Ik51bWJlclRlc3QucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMjQuMTEuMjAxNyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjY6ImNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE3IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI3MWY0NzAxNGQ0ZThmOWFjMzM3ZjIzNzg2YjZlM2IxMCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE0OiJOdW1iZXJUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjI1OiJ0ZXN0cy9EYXRhL051bWJlclRlc3QucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxNTI4OiI8P3BocAovKioKICogQ2xhc3MgTnVtYmVyVGVzdAogKgogKiBAZmlsZXNvdXJjZSAgIE51bWJlclRlc3QucGhwCiAqIEBjcmVhdGVkICAgICAgMjQuMTEuMjAxNwogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGE7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zOwp1c2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YVx7TnVtYmVyLCBRUkNvZGVEYXRhRXhjZXB0aW9uLCBRUkRhdGFJbnRlcmZhY2V9OwoKLyoqCiAqIFRlc3RzIHRoZSBOdW1iZXIgY2xhc3MKICovCmZpbmFsIGNsYXNzIE51bWJlclRlc3QgZXh0ZW5kcyBEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0ewoKCS8qKiBAaW50ZXJuYWwgKi8KCXByb3RlY3RlZCBzdHJpbmcgJHRlc3RkYXRhICA9ICcwMTIzNDU2Nzg5JzsKCgkvKiogQGludGVybmFsICovCglwcm90ZWN0ZWQgYXJyYXkgJGV4cGVjdGVkID0gWwoJCTE2LCA0MCwgMTIsIDg2LCAxMDYsIDEwNSwgMCwgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTIwMSwgMTQxLCAxMDIsIDExNiwgMjM4LCAxNjIsIDIzOSwgMjMwLAoJCTIyMiwgMzcsIDc5LCAxOTIsIDQyLCAxMDksIDE4OCwgNzIsCgkJODksIDYzLCAxNjgsIDE1MQoJXTsKCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldERhdGFJbnRlcmZhY2VJbnN0YW5jZShRUk9wdGlvbnMgJG9wdGlvbnMpOlFSRGF0YUludGVyZmFjZXsKCQlyZXR1cm4gbmV3IE51bWJlcigkb3B0aW9ucyk7Cgl9CgoJLyoqCgkgKiBUZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gYW4gaW52YWxpZCBjaGFyYWN0ZXIgaXMgZW5jb3VudGVyZWQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRDaGFyQ29kZUV4Y2VwdGlvbigpOnZvaWR7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihRUkNvZGVEYXRhRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ2lsbGVnYWwgY2hhcjogIiMiIFszNV0nKTsKCgkJJHRoaXMtPmRhdGFJbnRlcmZhY2UtPnNldERhdGEoJyMnKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyNzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IkRhdGEiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozODoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXE51bWJlclRlc3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxOdW1iZXJUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Ik51bWJlclRlc3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIyOiJUZXN0cyB0aGUgTnVtYmVyIGNsYXNzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI2OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6NDp7czo5OiJRUk9wdGlvbnMiO3M6Mjc6ImNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czo2OiJOdW1iZXIiO3M6Mjk6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTnVtYmVyIjtzOjE5OiJRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjQyOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSQ29kZURhdGFFeGNlcHRpb24iO3M6MTU6IlFSRGF0YUludGVyZmFjZSI7czozODoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUzOiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI1OiJEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjI6e3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxOdW1iZXJUZXN0OjokdGVzdGRhdGEiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxOdW1iZXJUZXN0OjokdGVzdGRhdGEiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0ZXN0ZGF0YSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MTI6IicwMTIzNDU2Nzg5JyI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxOdW1iZXJUZXN0OjokZXhwZWN0ZWQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxOdW1iZXJUZXN0OjokZXhwZWN0ZWQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJleHBlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6NDUyOiJbMTYsIDQwLCAxMiwgODYsIDEwNiwgMTA1LCAwLCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDIwMSwgMTQxLCAxMDIsIDExNiwgMjM4LCAxNjIsIDIzOSwgMjMwLCAyMjIsIDM3LCA3OSwgMTkyLCA0MiwgMTA5LCAxODgsIDcyLCA4OSwgNjMsIDE2OCwgMTUxXSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mjp7czo2NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXE51bWJlclRlc3Q6OmdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcTnVtYmVyVGVzdDo6Z2V0RGF0YUludGVyZmFjZUluc3RhbmNlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNDoiZ2V0RGF0YUludGVyZmFjZUluc3RhbmNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6Im9wdGlvbnMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IlFST3B0aW9ucyI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUVJEYXRhSW50ZXJmYWNlIjt9fX1zOjY2OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcTnVtYmVyVGVzdDo6dGVzdEdldENoYXJDb2RlRXhjZXB0aW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjcyOiJUZXN0cyBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gYW4gaW52YWxpZCBjaGFyYWN0ZXIgaXMgZW5jb3VudGVyZWQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXE51bWJlclRlc3Q6OnRlc3RHZXRDaGFyQ29kZUV4Y2VwdGlvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6InRlc3RHZXRDaGFyQ29kZUV4Y2VwdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/U/5/51Uq4RqYKZa6Q3I8BRgA b/files/U/5/51Uq4RqYKZa6Q3I8BRgA deleted file mode 100644 index fea0ebe2a..000000000 --- a/files/U/5/51Uq4RqYKZa6Q3I8BRgA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Af4fbe9a5ba07da4c5dd136e0ca43f3de-97174e445a15851ee051607db188750a -s:56248:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTM6IkNsYXNzIFFSSW1hZ2UiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Nzp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IlFSSW1hZ2UucGhwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJjcmVhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiMDUuMTIuMjAxNSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjQ6ImNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6Im5vaW5zcGVjdGlvbiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzU6IlBocENvbXBvc2VyRXh0ZW5zaW9uU3R1YnNJbnNwZWN0aW9uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI5NzE3NGU0NDVhMTU4NTFlZTA1MTYwN2RiMTg4NzUwYSI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjExOiJRUkltYWdlLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjIyOiJzcmMvT3V0cHV0L1FSSW1hZ2UucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czo0OTkwOiI8P3BocAovKioKICogQ2xhc3MgUVJJbWFnZQogKgogKiBAZmlsZXNvdXJjZSAgIFFSSW1hZ2UucGhwCiAqIEBjcmVhdGVkICAgICAgMDUuMTIuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dAogKiBAYXV0aG9yICAgICAgIFNtaWxleSA8c21pbGV5QGNoaWxsZXJsYW4ubmV0PgogKiBAY29weXJpZ2h0ICAgIDIwMTUgU21pbGV5CiAqIEBsaWNlbnNlICAgICAgTUlUCiAqCiAqIEBub2luc3BlY3Rpb24gUGhwQ29tcG9zZXJFeHRlbnNpb25TdHVic0luc3BlY3Rpb24KICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0OwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg7CnVzZSBjaGlsbGVybGFuXFFSQ29kZVx7UVJDb2RlLCBRUkNvZGVFeGNlcHRpb259Owp1c2UgY2hpbGxlcmxhblxTZXR0aW5nc1xTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZTsKdXNlIEV4Y2VwdGlvbjsKCnVzZSBmdW5jdGlvbiBhcnJheV92YWx1ZXMsIGJhc2U2NF9lbmNvZGUsIGNhbGxfdXNlcl9mdW5jLCBjb3VudCwgZXh0ZW5zaW9uX2xvYWRlZCwgaW1hZ2Vjb2xvcmFsbG9jYXRlLCBpbWFnZWNvbG9ydHJhbnNwYXJlbnQsCglpbWFnZWNyZWF0ZXRydWVjb2xvciwgaW1hZ2VkZXN0cm95LCBpbWFnZWZpbGxlZHJlY3RhbmdsZSwgaW1hZ2VnaWYsIGltYWdlanBlZywgaW1hZ2VwbmcsIGluX2FycmF5LAoJaXNfYXJyYXksIG9iX2VuZF9jbGVhbiwgb2JfZ2V0X2NvbnRlbnRzLCBvYl9zdGFydCwgcmFuZ2UsIHNwcmludGY7CgovKioKICogQ29udmVydHMgdGhlIG1hdHJpeCBpbnRvIEdEIGltYWdlcywgcmF3IG9yIGJhc2U2NCBvdXRwdXQgKHJlcXVpcmVzIGV4dC1nZCkKICoKICogQHNlZSBodHRwOi8vcGhwLm5ldC9tYW51YWwvYm9vay5pbWFnZS5waHAKICovCmNsYXNzIFFSSW1hZ2UgZXh0ZW5kcyBRUk91dHB1dEFic3RyYWN0ewoKCS8qKgoJICogR0QgaW1hZ2UgdHlwZXMgdGhhdCBzdXBwb3J0IHRyYW5zcGFyZW5jeQoJICoKCSAqIEB2YXIgc3RyaW5nW10KCSAqLwoJcHJvdGVjdGVkIGNvbnN0IFRSQU5TUEFSRU5DWV9UWVBFUyA9IFsKCQlRUkNvZGU6Ok9VVFBVVF9JTUFHRV9QTkcsCgkJUVJDb2RlOjpPVVRQVVRfSU1BR0VfR0lGLAoJXTsKCglwcm90ZWN0ZWQgc3RyaW5nICRkZWZhdWx0TW9kZSA9IFFSQ29kZTo6T1VUUFVUX0lNQUdFX1BORzsKCgkvKioKCSAqIFRoZSBHRCBpbWFnZSByZXNvdXJjZQoJICoKCSAqIEBzZWUgaW1hZ2VjcmVhdGV0cnVlY29sb3IoKQoJICogQHZhciByZXNvdXJjZXxcR2RJbWFnZQoJICoKCSAqIEBwaGFuLXN1cHByZXNzIFBoYW5VbmRlY2xhcmVkVHlwZVByb3BlcnR5CgkgKi8KCXByb3RlY3RlZCAkaW1hZ2U7CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICoKCSAqIEB0aHJvd3MgXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbgoJICovCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UgJG9wdGlvbnMsIFFSTWF0cml4ICRtYXRyaXgpewoKCQlpZighZXh0ZW5zaW9uX2xvYWRlZCgnZ2QnKSl7CgkJCXRocm93IG5ldyBRUkNvZGVFeGNlcHRpb24oJ2V4dC1nZCBub3QgbG9hZGVkJyk7IC8vIEBjb2RlQ292ZXJhZ2VJZ25vcmUKCQl9CgoJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG9wdGlvbnMsICRtYXRyaXgpOwoJfQoKCS8qKgoJICogQGluaGVyaXREb2MKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNldE1vZHVsZVZhbHVlcygpOnZvaWR7CgoJCWZvcmVhY2goJHRoaXM6OkRFRkFVTFRfTU9EVUxFX1ZBTFVFUyBhcyAkTV9UWVBFID0+ICRkZWZhdWx0VmFsdWUpewoJCQkkdiA9ICR0aGlzLT5vcHRpb25zLT5tb2R1bGVWYWx1ZXNbJE1fVFlQRV0gPz8gbnVsbDsKCgkJCWlmKCFpc19hcnJheSgkdikgfHwgY291bnQoJHYpIDwgMyl7CgkJCQkkdGhpcy0+bW9kdWxlVmFsdWVzWyRNX1RZUEVdID0gJGRlZmF1bHRWYWx1ZQoJCQkJCT8gWzAsIDAsIDBdCgkJCQkJOiBbMjU1LCAyNTUsIDI1NV07CgkJCX0KCQkJZWxzZXsKCQkJCSR0aGlzLT5tb2R1bGVWYWx1ZXNbJE1fVFlQRV0gPSBhcnJheV92YWx1ZXMoJHYpOwoJCQl9CgoJCX0KCgl9CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICoKCSAqIEByZXR1cm4gc3RyaW5nfHJlc291cmNlfFxHZEltYWdlCgkgKgoJICogQHBoYW4tc3VwcHJlc3MgUGhhblVuZGVjbGFyZWRUeXBlUmV0dXJuVHlwZSwgUGhhblR5cGVNaXNtYXRjaFJldHVybgoJICovCglwdWJsaWMgZnVuY3Rpb24gZHVtcChzdHJpbmcgJGZpbGUgPSBudWxsKXsKCQkkZmlsZSA/Pz0gJHRoaXMtPm9wdGlvbnMtPmNhY2hlZmlsZTsKCgkJJHRoaXMtPmltYWdlID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHRoaXMtPmxlbmd0aCwgJHRoaXMtPmxlbmd0aCk7CgoJCS8vIGF2b2lkOiBJbmRpcmVjdCBtb2RpZmljYXRpb24gb2Ygb3ZlcmxvYWRlZCBwcm9wZXJ0eSAkaW1hZ2VUcmFuc3BhcmVuY3lCRyBoYXMgbm8gZWZmZWN0CgkJLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzEwNDU1MjE3CgkJJHRiZyAgICAgICAgPSAkdGhpcy0+b3B0aW9ucy0+aW1hZ2VUcmFuc3BhcmVuY3lCRzsKCQkvKiogQHBoYW4tc3VwcHJlc3MtbmV4dC1saW5lIFBoYW5QYXJhbVRvb0Zld0ludGVybmFsVW5wYWNrICovCgkJJGJhY2tncm91bmQgPSBpbWFnZWNvbG9yYWxsb2NhdGUoJHRoaXMtPmltYWdlLCAuLi4kdGJnKTsKCgkJaWYoKGJvb2wpJHRoaXMtPm9wdGlvbnMtPmltYWdlVHJhbnNwYXJlbnQgJiYgaW5fYXJyYXkoJHRoaXMtPm9wdGlvbnMtPm91dHB1dFR5cGUsICR0aGlzOjpUUkFOU1BBUkVOQ1lfVFlQRVMsIHRydWUpKXsKCQkJaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCR0aGlzLT5pbWFnZSwgJGJhY2tncm91bmQpOwoJCX0KCgkJaW1hZ2VmaWxsZWRyZWN0YW5nbGUoJHRoaXMtPmltYWdlLCAwLCAwLCAkdGhpcy0+bGVuZ3RoLCAkdGhpcy0+bGVuZ3RoLCAkYmFja2dyb3VuZCk7CgoJCWZvcmVhY2goJHRoaXMtPm1hdHJpeC0+bWF0cml4KCkgYXMgJHkgPT4gJHJvdyl7CgkJCWZvcmVhY2goJHJvdyBhcyAkeCA9PiAkTV9UWVBFKXsKCQkJCSR0aGlzLT5zZXRQaXhlbCgkeCwgJHksICR0aGlzLT5tb2R1bGVWYWx1ZXNbJE1fVFlQRV0pOwoJCQl9CgkJfQoKCQlpZigkdGhpcy0+b3B0aW9ucy0+cmV0dXJuUmVzb3VyY2UpewoJCQlyZXR1cm4gJHRoaXMtPmltYWdlOwoJCX0KCgkJJGltYWdlRGF0YSA9ICR0aGlzLT5kdW1wSW1hZ2UoKTsKCgkJaWYoJGZpbGUgIT09IG51bGwpewoJCQkkdGhpcy0+c2F2ZVRvRmlsZSgkaW1hZ2VEYXRhLCAkZmlsZSk7CgkJfQoKCQlpZigkdGhpcy0+b3B0aW9ucy0+aW1hZ2VCYXNlNjQpewoJCQkkaW1hZ2VEYXRhID0gc3ByaW50ZignZGF0YTppbWFnZS8lcztiYXNlNjQsJXMnLCAkdGhpcy0+b3B0aW9ucy0+b3V0cHV0VHlwZSwgYmFzZTY0X2VuY29kZSgkaW1hZ2VEYXRhKSk7CgkJfQoKCQlyZXR1cm4gJGltYWdlRGF0YTsKCX0KCgkvKioKCSAqIENyZWF0ZXMgYSBzaW5nbGUgUVIgcGl4ZWwgd2l0aCB0aGUgZ2l2ZW4gc2V0dGluZ3MKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFBpeGVsKGludCAkeCwgaW50ICR5LCBhcnJheSAkcmdiKTp2b2lkewoJCWltYWdlZmlsbGVkcmVjdGFuZ2xlKAoJCQkkdGhpcy0+aW1hZ2UsCgkJCSR4ICogJHRoaXMtPnNjYWxlLAoJCQkkeSAqICR0aGlzLT5zY2FsZSwKCQkJKCR4ICsgMSkgKiAkdGhpcy0+c2NhbGUsCgkJCSgkeSArIDEpICogJHRoaXMtPnNjYWxlLAoJCQkvKiogQHBoYW4tc3VwcHJlc3MtbmV4dC1saW5lIFBoYW5QYXJhbVRvb0Zld0ludGVybmFsVW5wYWNrICovCgkJCWltYWdlY29sb3JhbGxvY2F0ZSgkdGhpcy0+aW1hZ2UsIC4uLiRyZ2IpCgkJKTsKCX0KCgkvKioKCSAqIENyZWF0ZXMgdGhlIGZpbmFsIGltYWdlIGJ5IGNhbGxpbmcgdGhlIGRlc2lyZWQgR0Qgb3V0cHV0IGZ1bmN0aW9uCgkgKgoJICogQHRocm93cyBcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSQ29kZU91dHB1dEV4Y2VwdGlvbgoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gZHVtcEltYWdlKCk6c3RyaW5newoJCW9iX3N0YXJ0KCk7CgoJCXRyeXsKCQkJY2FsbF91c2VyX2Z1bmMoWyR0aGlzLCAkdGhpcy0+b3V0cHV0TW9kZSA/PyAkdGhpcy0+ZGVmYXVsdE1vZGVdKTsKCQl9CgkJLy8gbm90IGdvaW5nIHRvIGNvdmVyIGVkZ2UgY2FzZXMKCQkvLyBAY29kZUNvdmVyYWdlSWdub3JlU3RhcnQKCQljYXRjaChFeGNlcHRpb24gJGUpewoJCQl0aHJvdyBuZXcgUVJDb2RlT3V0cHV0RXhjZXB0aW9uKCRlLT5nZXRNZXNzYWdlKCkpOwoJCX0KCQkvLyBAY29kZUNvdmVyYWdlSWdub3JlRW5kCgoJCSRpbWFnZURhdGEgPSBvYl9nZXRfY29udGVudHMoKTsKCQlpbWFnZWRlc3Ryb3koJHRoaXMtPmltYWdlKTsKCgkJb2JfZW5kX2NsZWFuKCk7CgoJCXJldHVybiAkaW1hZ2VEYXRhOwoJfQoKCS8qKgoJICogUE5HIG91dHB1dAoJICoKCSAqIEByZXR1cm4gdm9pZAoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gcG5nKCk6dm9pZHsKCQlpbWFnZXBuZygKCQkJJHRoaXMtPmltYWdlLAoJCQludWxsLAoJCQlpbl9hcnJheSgkdGhpcy0+b3B0aW9ucy0+cG5nQ29tcHJlc3Npb24sIHJhbmdlKC0xLCA5KSwgdHJ1ZSkKCQkJCT8gJHRoaXMtPm9wdGlvbnMtPnBuZ0NvbXByZXNzaW9uCgkJCQk6IC0xCgkJKTsKCX0KCgkvKioKCSAqIEppZmYgLSBsaWtlLi4uIEppdEh1YiEKCSAqCgkgKiBAcmV0dXJuIHZvaWQKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdpZigpOnZvaWR7CgkJaW1hZ2VnaWYoJHRoaXMtPmltYWdlKTsKCX0KCgkvKioKCSAqIEpQRyBvdXRwdXQKCSAqCgkgKiBAcmV0dXJuIHZvaWQKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGpwZygpOnZvaWR7CgkJaW1hZ2VqcGVnKAoJCQkkdGhpcy0+aW1hZ2UsCgkJCW51bGwsCgkJCWluX2FycmF5KCR0aGlzLT5vcHRpb25zLT5qcGVnUXVhbGl0eSwgcmFuZ2UoMCwgMTAwKSwgdHJ1ZSkKCQkJCT8gJHRoaXMtPm9wdGlvbnMtPmpwZWdRdWFsaXR5CgkJCQk6IDg1CgkJKTsKCX0KCn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyNToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI1OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiT3V0cHV0Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MzM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnZSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiUVJJbWFnZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NzQ6IkNvbnZlcnRzIHRoZSBtYXRyaXggaW50byBHRCBpbWFnZXMsIHJhdyBvciBiYXNlNjQgb3V0cHV0IChyZXF1aXJlcyBleHQtZ2QpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjUyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsIjoxOntzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybAB1cmkiO3M6MzY6Imh0dHA6Ly9waHAubmV0L21hbnVhbC9ib29rLmltYWdlLnBocCI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTo1OntzOjg6IlFSTWF0cml4IjtzOjMxOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjY6IlFSQ29kZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlIjtzOjE1OiJRUkNvZGVFeGNlcHRpb24iO3M6MzM6ImNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbiI7czoyNjoiU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6NDY6ImNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6OToiRXhjZXB0aW9uIjtzOjk6IkV4Y2VwdGlvbiI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRBYnN0cmFjdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJRUk91dHB1dEFic3RyYWN0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MTp7czo1MzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpUUkFOU1BBUkVOQ1lfVFlQRVMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnZTo6VFJBTlNQQVJFTkNZX1RZUEVTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6IlRSQU5TUEFSRU5DWV9UWVBFUyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MDoiR0QgaW1hZ2UgdHlwZXMgdGhhdCBzdXBwb3J0IHRyYW5zcGFyZW5jeSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo5MDoiW1xjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6Ok9VVFBVVF9JTUFHRV9QTkcsIFxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGU6Ok9VVFBVVF9JTUFHRV9HSUZdIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToyOntzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2U6OiRkZWZhdWx0TW9kZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjokZGVmYXVsdE1vZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiZGVmYXVsdE1vZGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6T1VUUFVUX0lNQUdFX1BORyI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnZTo6JGltYWdlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2U6OiRpbWFnZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6ImltYWdlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIxOiJUaGUgR0QgaW1hZ2UgcmVzb3VyY2UiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XGltYWdlY3JlYXRldHJ1ZWNvbG9yKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoiaW1hZ2VjcmVhdGV0cnVlY29sb3IiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7Tzo0MDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFJlc291cmNlXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODoiXEdkSW1hZ2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJHZEltYWdlIjt9fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEzOiJwaGFuLXN1cHByZXNzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNjoiUGhhblVuZGVjbGFyZWRUeXBlUHJvcGVydHkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO319czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6ODp7czo0ODoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpfX2NvbnN0cnVjdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlFSQ29kZUV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2U6Ol9fY29uc3RydWN0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiX19jb25zdHJ1Y3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Nzoib3B0aW9ucyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxTZXR0aW5nc1xTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI2OiJTZXR0aW5nc0NvbnRhaW5lckludGVyZmFjZSI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJtYXRyaXgiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJRUk1hdHJpeCI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX1zOjUyOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2U6OnNldE1vZHVsZVZhbHVlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiaW5oZXJpdERvYyI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnZTo6c2V0TW9kdWxlVmFsdWVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToic2V0TW9kdWxlVmFsdWVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpkdW1wKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjM6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjQwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcUmVzb3VyY2VfIjowOnt9aToyO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4OiJcR2RJbWFnZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkdkSW1hZ2UiO319fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTM6InBoYW4tc3VwcHJlc3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUyOiJQaGFuVW5kZWNsYXJlZFR5cGVSZXR1cm5UeXBlLCBQaGFuVHlwZU1pc21hdGNoUmV0dXJuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpkdW1wKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJkdW1wIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpzZXRQaXhlbCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0OToiQ3JlYXRlcyBhIHNpbmdsZSBRUiBwaXhlbCB3aXRoIHRoZSBnaXZlbiBzZXR0aW5ncyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpzZXRQaXhlbCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoic2V0UGl4ZWwiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mzp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MToieCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxOiJ5IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6InJnYiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo0NjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpkdW1wSW1hZ2UoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NjU6IkNyZWF0ZXMgdGhlIGZpbmFsIGltYWdlIGJ5IGNhbGxpbmcgdGhlIGRlc2lyZWQgR0Qgb3V0cHV0IGZ1bmN0aW9uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSQ29kZU91dHB1dEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIxOiJRUkNvZGVPdXRwdXRFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnZTo6ZHVtcEltYWdlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJkdW1wSW1hZ2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2U6OnBuZygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMDoiUE5HIG91dHB1dCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpwbmcoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM6InBuZyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2U6OmdpZigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMjoiSmlmZiAtIGxpa2UuLi4gSml0SHViISI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpnaWYoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM6ImdpZiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjQwOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2U6OmpwZygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMDoiSlBHIG91dHB1dCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdlOjpqcGcoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM6ImpwZyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/U/9/pV6pi7GcuTA1YeP6WdGA b/files/U/9/pV6pi7GcuTA1YeP6WdGA deleted file mode 100644 index c1e0f5e5d..000000000 --- a/files/U/9/pV6pi7GcuTA1YeP6WdGA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ab35ca0c182d9df96f981d1ed731e6eff-d6c46773e5ba812445185ddd653b3f89 -s:7496:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjc6IkNsYXNzIFFSQ29kZU91dHB1dEV4Y2VwdGlvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNToiUVJDb2RlT3V0cHV0RXhjZXB0aW9uLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjA5LjEyLjIwMTUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6NjoiU21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTUgU21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImQ2YzQ2NzczZTViYTgxMjQ0NTE4NWRkZDY1M2IzZjg5IjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MjU6IlFSQ29kZU91dHB1dEV4Y2VwdGlvbi5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czozNjoic3JjL091dHB1dC9RUkNvZGVPdXRwdXRFeGNlcHRpb24ucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czozOTE6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUkNvZGVPdXRwdXRFeGNlcHRpb24KICoKICogQGZpbGVzb3VyY2UgICBRUkNvZGVPdXRwdXRFeGNlcHRpb24ucGhwCiAqIEBjcmVhdGVkICAgICAgMDkuMTIuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dAogKiBAYXV0aG9yICAgICAgIFNtaWxleSA8c21pbGV5QGNoaWxsZXJsYW4ubmV0PgogKiBAY29weXJpZ2h0ICAgIDIwMTUgU21pbGV5CiAqIEBsaWNlbnNlICAgICAgTUlUCiAqLwoKbmFtZXNwYWNlIGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dDsKCnVzZSBjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb247CgpjbGFzcyBRUkNvZGVPdXRwdXRFeGNlcHRpb24gZXh0ZW5kcyBRUkNvZGVFeGNlcHRpb257fQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI1OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjU6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJPdXRwdXQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkNvZGVPdXRwdXRFeGNlcHRpb24iO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJDb2RlT3V0cHV0RXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjE6IlFSQ29kZU91dHB1dEV4Y2VwdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzQ6IlxjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUVJDb2RlRXhjZXB0aW9uIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/U/K/RaQ-TSsjt1YT5hV9EDvg b/files/U/K/RaQ-TSsjt1YT5hV9EDvg deleted file mode 100644 index 961671800..000000000 --- a/files/U/K/RaQ-TSsjt1YT5hV9EDvg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A6efe3acfed58500c89222069397f57be-c90d0810bfa4c0ccf9adb96d493138c2 -s:29264:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTU6IkNsYXNzIFFSSW1hZ2ljayI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo3OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzoiUVJJbWFnaWNrLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjA0LjA3LjIwMTgiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0OiJjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6Njoic21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTggc21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjY7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJub2luc3BlY3Rpb24iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM1OiJQaHBDb21wb3NlckV4dGVuc2lvblN0dWJzSW5zcGVjdGlvbiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYzkwZDA4MTBiZmE0YzBjY2Y5YWRiOTZkNDkzMTM4YzIiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxMzoiUVJJbWFnaWNrLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjI0OiJzcmMvT3V0cHV0L1FSSW1hZ2ljay5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjI1NjA6Ijw/cGhwCi8qKgogKiBDbGFzcyBRUkltYWdpY2sKICoKICogQGZpbGVzb3VyY2UgICBRUkltYWdpY2sucGhwCiAqIEBjcmVhdGVkICAgICAgMDQuMDcuMjAxOAogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dAogKiBAYXV0aG9yICAgICAgIHNtaWxleSA8c21pbGV5QGNoaWxsZXJsYW4ubmV0PgogKiBAY29weXJpZ2h0ICAgIDIwMTggc21pbGV5CiAqIEBsaWNlbnNlICAgICAgTUlUCiAqCiAqIEBub2luc3BlY3Rpb24gUGhwQ29tcG9zZXJFeHRlbnNpb25TdHVic0luc3BlY3Rpb24KICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0OwoKdXNlIGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg7CnVzZSBjaGlsbGVybGFuXFFSQ29kZVxRUkNvZGVFeGNlcHRpb247CnVzZSBjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlOwp1c2UgSW1hZ2ljaywgSW1hZ2lja0RyYXcsIEltYWdpY2tQaXhlbDsKCnVzZSBmdW5jdGlvbiBleHRlbnNpb25fbG9hZGVkLCBpc19zdHJpbmc7CgovKioKICogSW1hZ2VNYWdpY2sgb3V0cHV0IG1vZHVsZSAocmVxdWlyZXMgZXh0LWltYWdpY2spCiAqCiAqIEBzZWUgaHR0cDovL3BocC5uZXQvbWFudWFsL2Jvb2suaW1hZ2ljay5waHAKICogQHNlZSBodHRwOi8vcGhwaW1hZ2ljay5jb20KICovCmNsYXNzIFFSSW1hZ2ljayBleHRlbmRzIFFST3V0cHV0QWJzdHJhY3R7CgoJcHJvdGVjdGVkIEltYWdpY2sgJGltYWdpY2s7CgoJLyoqCgkgKiBAaW5oZXJpdERvYwoJICovCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UgJG9wdGlvbnMsIFFSTWF0cml4ICRtYXRyaXgpewoKCQlpZighZXh0ZW5zaW9uX2xvYWRlZCgnaW1hZ2ljaycpKXsKCQkJdGhyb3cgbmV3IFFSQ29kZUV4Y2VwdGlvbignZXh0LWltYWdpY2sgbm90IGxvYWRlZCcpOyAvLyBAY29kZUNvdmVyYWdlSWdub3JlCgkJfQoKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRvcHRpb25zLCAkbWF0cml4KTsKCX0KCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRNb2R1bGVWYWx1ZXMoKTp2b2lkewoKCQlmb3JlYWNoKCR0aGlzOjpERUZBVUxUX01PRFVMRV9WQUxVRVMgYXMgJHR5cGUgPT4gJGRlZmF1bHRWYWx1ZSl7CgkJCSR2ID0gJHRoaXMtPm9wdGlvbnMtPm1vZHVsZVZhbHVlc1skdHlwZV0gPz8gbnVsbDsKCgkJCWlmKCFpc19zdHJpbmcoJHYpKXsKCQkJCSR0aGlzLT5tb2R1bGVWYWx1ZXNbJHR5cGVdID0gJGRlZmF1bHRWYWx1ZQoJCQkJCT8gbmV3IEltYWdpY2tQaXhlbCgkdGhpcy0+b3B0aW9ucy0+bWFya3VwRGFyaykKCQkJCQk6IG5ldyBJbWFnaWNrUGl4ZWwoJHRoaXMtPm9wdGlvbnMtPm1hcmt1cExpZ2h0KTsKCQkJfQoJCQllbHNlewoJCQkJJHRoaXMtPm1vZHVsZVZhbHVlc1skdHlwZV0gPSBuZXcgSW1hZ2lja1BpeGVsKCR2KTsKCQkJfQoJCX0KCX0KCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKgoJICogQHJldHVybiBzdHJpbmd8XEltYWdpY2sKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGR1bXAoc3RyaW5nICRmaWxlID0gbnVsbCl7CgkJJGZpbGUgPz89ICR0aGlzLT5vcHRpb25zLT5jYWNoZWZpbGU7CgkJJHRoaXMtPmltYWdpY2sgPSBuZXcgSW1hZ2ljazsKCgkJJHRoaXMtPmltYWdpY2stPm5ld0ltYWdlKAoJCQkkdGhpcy0+bGVuZ3RoLAoJCQkkdGhpcy0+bGVuZ3RoLAoJCQluZXcgSW1hZ2lja1BpeGVsKCR0aGlzLT5vcHRpb25zLT5pbWFnaWNrQkcgPz8gJ3RyYW5zcGFyZW50JyksCgkJCSR0aGlzLT5vcHRpb25zLT5pbWFnaWNrRm9ybWF0CgkJKTsKCgkJJHRoaXMtPmRyYXdJbWFnZSgpOwoKCQlpZigkdGhpcy0+b3B0aW9ucy0+cmV0dXJuUmVzb3VyY2UpewoJCQlyZXR1cm4gJHRoaXMtPmltYWdpY2s7CgkJfQoKCQkkaW1hZ2VEYXRhID0gJHRoaXMtPmltYWdpY2stPmdldEltYWdlQmxvYigpOwoKCQlpZigkZmlsZSAhPT0gbnVsbCl7CgkJCSR0aGlzLT5zYXZlVG9GaWxlKCRpbWFnZURhdGEsICRmaWxlKTsKCQl9CgoJCXJldHVybiAkaW1hZ2VEYXRhOwoJfQoKCS8qKgoJICogQ3JlYXRlcyB0aGUgUVIgaW1hZ2UgdmlhIEltYWdpY2tEcmF3CgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBkcmF3SW1hZ2UoKTp2b2lkewoJCSRkcmF3ID0gbmV3IEltYWdpY2tEcmF3OwoKCQlmb3JlYWNoKCR0aGlzLT5tYXRyaXgtPm1hdHJpeCgpIGFzICR5ID0+ICRyb3cpewoJCQlmb3JlYWNoKCRyb3cgYXMgJHggPT4gJE1fVFlQRSl7CgkJCQkkZHJhdy0+c2V0U3Ryb2tlQ29sb3IoJHRoaXMtPm1vZHVsZVZhbHVlc1skTV9UWVBFXSk7CgkJCQkkZHJhdy0+c2V0RmlsbENvbG9yKCR0aGlzLT5tb2R1bGVWYWx1ZXNbJE1fVFlQRV0pOwoJCQkJJGRyYXctPnJlY3RhbmdsZSgKCQkJCQkkeCAqICR0aGlzLT5zY2FsZSwKCQkJCQkkeSAqICR0aGlzLT5zY2FsZSwKCQkJCQkoJHggKyAxKSAqICR0aGlzLT5zY2FsZSwKCQkJCQkoJHkgKyAxKSAqICR0aGlzLT5zY2FsZQoJCQkJKTsKCgkJCX0KCQl9CgoJCSR0aGlzLT5pbWFnaWNrLT5kcmF3SW1hZ2UoJGRyYXcpOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI1OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjU6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJPdXRwdXQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozNToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdpY2siO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMTp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzU6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnaWNrIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiUVJJbWFnaWNrIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0ODoiSW1hZ2VNYWdpY2sgb3V0cHV0IG1vZHVsZSAocmVxdWlyZXMgZXh0LWltYWdpY2spIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjUyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsIjoxOntzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybAB1cmkiO3M6Mzg6Imh0dHA6Ly9waHAubmV0L21hbnVhbC9ib29rLmltYWdpY2sucGhwIjt9czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjUyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsIjoxOntzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybAB1cmkiO3M6MjE6Imh0dHA6Ly9waHBpbWFnaWNrLmNvbSI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoyNDoiY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTo2OntzOjg6IlFSTWF0cml4IjtzOjMxOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4IjtzOjE1OiJRUkNvZGVFeGNlcHRpb24iO3M6MzM6ImNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbiI7czoyNjoiU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6NDY6ImNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJJbnRlcmZhY2UiO3M6NzoiSW1hZ2ljayI7czo3OiJJbWFnaWNrIjtzOjExOiJJbWFnaWNrRHJhdyI7czoxMToiSW1hZ2lja0RyYXciO3M6MTI6IkltYWdpY2tQaXhlbCI7czoxMjoiSW1hZ2lja1BpeGVsIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEFic3RyYWN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6IlFST3V0cHV0QWJzdHJhY3QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MTp7czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdpY2s6OiRpbWFnaWNrIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2ljazo6JGltYWdpY2siO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJpbWFnaWNrIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4OiJcSW1hZ2ljayI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkltYWdpY2siO319fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YTo0OntzOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2ljazo6X19jb25zdHJ1Y3QoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjgzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2ljazo6X19jb25zdHJ1Y3QoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJfX2NvbnN0cnVjdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJvcHRpb25zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjY6IlNldHRpbmdzQ29udGFpbmVySW50ZXJmYWNlIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6Im1hdHJpeCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlFSTWF0cml4Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9fXM6NTQ6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnaWNrOjpzZXRNb2R1bGVWYWx1ZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjgzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU0OiJcY2hpbGxlcmxhblxRUkNvZGVcT3V0cHV0XFFSSW1hZ2ljazo6c2V0TW9kdWxlVmFsdWVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToic2V0TW9kdWxlVmFsdWVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdpY2s6OmR1bXAoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImluaGVyaXREb2MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4OiJcSW1hZ2ljayI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkltYWdpY2siO319fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnaWNrOjpkdW1wKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJkdW1wIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319czo0ODoiXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUkltYWdpY2s6OmRyYXdJbWFnZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNjoiQ3JlYXRlcyB0aGUgUVIgaW1hZ2UgdmlhIEltYWdpY2tEcmF3IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJJbWFnaWNrOjpkcmF3SW1hZ2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6ImRyYXdJbWFnZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/W/H/LP0oGPe-wWWVJ9cgd-0A b/files/W/H/LP0oGPe-wWWVJ9cgd-0A deleted file mode 100644 index 922c83bbe..000000000 --- a/files/W/H/LP0oGPe-wWWVJ9cgd-0A +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A3db9168bac2313bc61c4acfed1ce1036-23ece8e9f49503785f317a192a776613 -s:32628:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTU6IkNsYXNzIEJpdEJ1ZmZlciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzoiQml0QnVmZmVyLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI1LjExLjIwMTUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI1OiJjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjY6IlNtaWxleSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMToic21pbGV5QGNoaWxsZXJsYW4ubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aTo0O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiIyMDE1IFNtaWxleSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzoiTUlUIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiIyM2VjZThlOWY0OTUwMzc4NWYzMTdhMTkyYTc3NjYxMyI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEzOiJCaXRCdWZmZXIucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MjU6InNyYy9IZWxwZXJzL0JpdEJ1ZmZlci5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjE0MTE6Ijw/cGhwCi8qKgogKiBDbGFzcyBCaXRCdWZmZXIKICoKICogQGZpbGVzb3VyY2UgICBCaXRCdWZmZXIucGhwCiAqIEBjcmVhdGVkICAgICAgMjUuMTEuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnMKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzOwoKdXNlIGZ1bmN0aW9uIGNvdW50LCBmbG9vcjsKCi8qKgogKiBIb2xkcyB0aGUgcmF3IGJpbmFyeSBkYXRhCiAqLwpmaW5hbCBjbGFzcyBCaXRCdWZmZXJ7CgoJLyoqCgkgKiBUaGUgYnVmZmVyIGNvbnRlbnQKCSAqCgkgKiBAdmFyIGludFtdCgkgKi8KCXByb3RlY3RlZCBhcnJheSAkYnVmZmVyID0gW107CgoJLyoqCgkgKiBMZW5ndGggb2YgdGhlIGNvbnRlbnQgKGJpdHMpCgkgKi8KCXByb3RlY3RlZCBpbnQgJGxlbmd0aCA9IDA7CgoJLyoqCgkgKiBjbGVhcnMgdGhlIGJ1ZmZlcgoJICovCglwdWJsaWMgZnVuY3Rpb24gY2xlYXIoKTpCaXRCdWZmZXJ7CgkJJHRoaXMtPmJ1ZmZlciA9IFtdOwoJCSR0aGlzLT5sZW5ndGggPSAwOwoKCQlyZXR1cm4gJHRoaXM7Cgl9CgoJLyoqCgkgKiBhcHBlbmRzIGEgc2VxdWVuY2Ugb2YgYml0cwoJICovCglwdWJsaWMgZnVuY3Rpb24gcHV0KGludCAkbnVtLCBpbnQgJGxlbmd0aCk6Qml0QnVmZmVyewoKCQlmb3IoJGkgPSAwOyAkaSA8ICRsZW5ndGg7ICRpKyspewoJCQkkdGhpcy0+cHV0Qml0KCgoJG51bSA+PiAoJGxlbmd0aCAtICRpIC0gMSkpICYgMSkgPT09IDEpOwoJCX0KCgkJcmV0dXJuICR0aGlzOwoJfQoKCS8qKgoJICogYXBwZW5kcyBhIHNpbmdsZSBiaXQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHB1dEJpdChib29sICRiaXQpOkJpdEJ1ZmZlcnsKCQkkYnVmSW5kZXggPSBmbG9vcigkdGhpcy0+bGVuZ3RoIC8gOCk7CgoJCWlmKGNvdW50KCR0aGlzLT5idWZmZXIpIDw9ICRidWZJbmRleCl7CgkJCSR0aGlzLT5idWZmZXJbXSA9IDA7CgkJfQoKCQlpZigkYml0ID09PSB0cnVlKXsKCQkJJHRoaXMtPmJ1ZmZlclsoaW50KSRidWZJbmRleF0gfD0gKDB4ODAgPj4gKCR0aGlzLT5sZW5ndGggJSA4KSk7CgkJfQoKCQkkdGhpcy0+bGVuZ3RoKys7CgoJCXJldHVybiAkdGhpczsKCX0KCgkvKioKCSAqIHJldHVybnMgdGhlIGN1cnJlbnQgYnVmZmVyIGxlbmd0aAoJICovCglwdWJsaWMgZnVuY3Rpb24gZ2V0TGVuZ3RoKCk6aW50ewoJCXJldHVybiAkdGhpcy0+bGVuZ3RoOwoJfQoKCS8qKgoJICogcmV0dXJucyB0aGUgYnVmZmVyIGNvbnRlbnQKCSAqLwoJcHVibGljIGZ1bmN0aW9uIGdldEJ1ZmZlcigpOmFycmF5ewoJCXJldHVybiAkdGhpcy0+YnVmZmVyOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI2OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVycyI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI2OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVycyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkhlbHBlcnMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozNjoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcQml0QnVmZmVyIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xCaXRCdWZmZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJCaXRCdWZmZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI1OiJIb2xkcyB0aGUgcmF3IGJpbmFyeSBkYXRhIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI1OiJjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjoxO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjI6e3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlcjo6JGJ1ZmZlciI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcQml0QnVmZmVyOjokYnVmZmVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiYnVmZmVyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE4OiJUaGUgYnVmZmVyIGNvbnRlbnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MjoiW10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcQml0QnVmZmVyOjokbGVuZ3RoIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xCaXRCdWZmZXI6OiRsZW5ndGgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJsZW5ndGgiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjg6Ikxlbmd0aCBvZiB0aGUgY29udGVudCAoYml0cykiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoxOiIwIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjU6e3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlcjo6Y2xlYXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTc6ImNsZWFycyB0aGUgYnVmZmVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlcjo6Y2xlYXIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6ImNsZWFyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzY6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IkJpdEJ1ZmZlciI7fX19czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcQml0QnVmZmVyOjpwdXQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjY6ImFwcGVuZHMgYSBzZXF1ZW5jZSBvZiBiaXRzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlcjo6cHV0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozOiJwdXQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoibnVtIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6Imxlbmd0aCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xCaXRCdWZmZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJCaXRCdWZmZXIiO319fXM6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlcjo6cHV0Qml0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIwOiJhcHBlbmRzIGEgc2luZ2xlIGJpdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xCaXRCdWZmZXI6OnB1dEJpdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoicHV0Qml0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6ImJpdCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcY2hpbGxlcmxhblxRUkNvZGVcSGVscGVyc1xCaXRCdWZmZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJCaXRCdWZmZXIiO319fXM6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlcjo6Z2V0TGVuZ3RoKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMzOiJyZXR1cm5zIHRoZSBjdXJyZW50IGJ1ZmZlciBsZW5ndGgiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcQml0QnVmZmVyOjpnZXRMZW5ndGgoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6ImdldExlbmd0aCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXEhlbHBlcnNcQml0QnVmZmVyOjpnZXRCdWZmZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjY6InJldHVybnMgdGhlIGJ1ZmZlciBjb250ZW50IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxIZWxwZXJzXEJpdEJ1ZmZlcjo6Z2V0QnVmZmVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJnZXRCdWZmZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/W/I/-o5oNoZ2yc2-acWGhKAg b/files/W/I/-o5oNoZ2yc2-acWGhKAg deleted file mode 100644 index 2df2cff6d..000000000 --- a/files/W/I/-o5oNoZ2yc2-acWGhKAg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Adf42cd88fecffe804b2371f7c58a3f7f-fdf31860727e6f602019ed692bfd3547 -s:47152:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjM6IkNsYXNzIE1hc2tQYXR0ZXJuVGVzdGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjc6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIxOiJNYXNrUGF0dGVyblRlc3Rlci5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIyMi4xMS4yMDE3IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTI6Im5vaW5zcGVjdGlvbiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6OToiUGhwVW51c2VkIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJmZGYzMTg2MDcyN2U2ZjYwMjAxOWVkNjkyYmZkMzU0NyI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjIxOiJNYXNrUGF0dGVyblRlc3Rlci5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czozMDoic3JjL0RhdGEvTWFza1BhdHRlcm5UZXN0ZXIucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czo0MTAzOiI8P3BocAovKioKICogQ2xhc3MgTWFza1BhdHRlcm5UZXN0ZXIKICoKICogQGZpbGVzb3VyY2UgICBNYXNrUGF0dGVyblRlc3Rlci5waHAKICogQGNyZWF0ZWQgICAgICAyMi4xMS4yMDE3CiAqIEBwYWNrYWdlICAgICAgY2hpbGxlcmxhblxRUkNvZGVcRGF0YQogKiBAYXV0aG9yICAgICAgIFNtaWxleSA8c21pbGV5QGNoaWxsZXJsYW4ubmV0PgogKiBAY29weXJpZ2h0ICAgIDIwMTcgU21pbGV5CiAqIEBsaWNlbnNlICAgICAgTUlUCiAqCiAqIEBub2luc3BlY3Rpb24gUGhwVW51c2VkCiAqLwoKbmFtZXNwYWNlIGNoaWxsZXJsYW5cUVJDb2RlXERhdGE7Cgp1c2UgZnVuY3Rpb24gYWJzLCBhcnJheV9zZWFyY2gsIGNhbGxfdXNlcl9mdW5jX2FycmF5LCBtaW47CgovKioKICogUmVjZWl2ZXMgYSBRUkRhdGFJbnRlcmZhY2Ugb2JqZWN0IGFuZCBydW5zIHRoZSBtYXNrIHBhdHRlcm4gdGVzdHMgb24gaXQuCiAqCiAqIElTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguOC4yIC0gRXZhbHVhdGlvbiBvZiBtYXNraW5nIHJlc3VsdHMKICoKICogQHNlZSBodHRwOi8vd3d3LnRob25reS5jb20vcXItY29kZS10dXRvcmlhbC9kYXRhLW1hc2tpbmcKICovCmZpbmFsIGNsYXNzIE1hc2tQYXR0ZXJuVGVzdGVyewoKCS8qKgoJICogVGhlIGRhdGEgaW50ZXJmYWNlIHRoYXQgY29udGFpbnMgdGhlIGRhdGEgbWF0cml4IHRvIHRlc3QKCSAqLwoJcHJvdGVjdGVkIFFSRGF0YUludGVyZmFjZSAkZGF0YUludGVyZmFjZTsKCgkvKioKCSAqIFJlY2VpdmVzIHRoZSBRUkRhdGFJbnRlcmZhY2UKCSAqCgkgKiBAc2VlIFxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnM6OiRtYXNrUGF0dGVybgoJICogQHNlZSBcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6JG1hc2tQYXR0ZXJuCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChRUkRhdGFJbnRlcmZhY2UgJGRhdGFJbnRlcmZhY2UpewoJCSR0aGlzLT5kYXRhSW50ZXJmYWNlID0gJGRhdGFJbnRlcmZhY2U7Cgl9CgoJLyoqCgkgKiBzaG92ZXMgYSBRUk1hdHJpeCB0aHJvdWdoIHRoZSBNYXNrUGF0dGVyblRlc3RlciB0byBmaW5kIHRoZSBsb3dlc3QgcGVuYWx0eSBtYXNrIHBhdHRlcm4KCSAqCgkgKiBAc2VlIFxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE1hc2tQYXR0ZXJuVGVzdGVyCgkgKi8KCXB1YmxpYyBmdW5jdGlvbiBnZXRCZXN0TWFza1BhdHRlcm4oKTppbnR7CgkJJHBlbmFsdGllcyA9IFtdOwoKCQlmb3IoJHBhdHRlcm4gPSAwOyAkcGF0dGVybiA8IDg7ICRwYXR0ZXJuKyspewoJCQkkcGVuYWx0aWVzWyRwYXR0ZXJuXSA9ICR0aGlzLT50ZXN0UGF0dGVybigkcGF0dGVybik7CgkJfQoKCQlyZXR1cm4gYXJyYXlfc2VhcmNoKG1pbigkcGVuYWx0aWVzKSwgJHBlbmFsdGllcywgdHJ1ZSk7Cgl9CgoJLyoqCgkgKiBSZXR1cm5zIHRoZSBwZW5hbHR5IGZvciB0aGUgZ2l2ZW4gbWFzayBwYXR0ZXJuCgkgKgoJICogQHNlZSBcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zOjokbWFza1BhdHRlcm4KCSAqIEBzZWUgXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJNYXRyaXg6OiRtYXNrUGF0dGVybgoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdFBhdHRlcm4oaW50ICRwYXR0ZXJuKTppbnR7CgkJJG1hdHJpeCAgPSAkdGhpcy0+ZGF0YUludGVyZmFjZS0+aW5pdE1hdHJpeCgkcGF0dGVybiwgdHJ1ZSk7CgkJJHBlbmFsdHkgPSAwOwoKCQlmb3IoJGxldmVsID0gMTsgJGxldmVsIDw9IDQ7ICRsZXZlbCsrKXsKCQkJJHBlbmFsdHkgKz0gY2FsbF91c2VyX2Z1bmNfYXJyYXkoWyR0aGlzLCAndGVzdExldmVsJy4kbGV2ZWxdLCBbJG1hdHJpeC0+bWF0cml4KHRydWUpLCAkbWF0cml4LT5zaXplKCldKTsKCQl9CgoJCXJldHVybiAoaW50KSRwZW5hbHR5OwoJfQoKCS8qKgoJICogQ2hlY2tzIGZvciBlYWNoIGdyb3VwIG9mIGZpdmUgb3IgbW9yZSBzYW1lLWNvbG9yZWQgbW9kdWxlcyBpbiBhIHJvdyAob3IgY29sdW1uKQoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gdGVzdExldmVsMShhcnJheSAkbSwgaW50ICRzaXplKTppbnR7CgkJJHBlbmFsdHkgPSAwOwoKCQlmb3JlYWNoKCRtIGFzICR5ID0+ICRyb3cpewoJCQlmb3JlYWNoKCRyb3cgYXMgJHggPT4gJHZhbCl7CgkJCQkkY291bnQgPSAwOwoKCQkJCWZvcigkcnkgPSAtMTsgJHJ5IDw9IDE7ICRyeSsrKXsKCgkJCQkJaWYoJHkgKyAkcnkgPCAwIHx8ICRzaXplIDw9ICR5ICsgJHJ5KXsKCQkJCQkJY29udGludWU7CgkJCQkJfQoKCQkJCQlmb3IoJHJ4ID0gLTE7ICRyeCA8PSAxOyAkcngrKyl7CgoJCQkJCQlpZigoJHJ5ID09PSAwICYmICRyeCA9PT0gMCkgfHwgKCgkeCArICRyeCkgPCAwIHx8ICRzaXplIDw9ICgkeCArICRyeCkpKXsKCQkJCQkJCWNvbnRpbnVlOwoJCQkJCQl9CgoJCQkJCQlpZigkbVskeSArICRyeV1bJHggKyAkcnhdID09PSAkdmFsKXsKCQkJCQkJCSRjb3VudCsrOwoJCQkJCQl9CgoJCQkJCX0KCQkJCX0KCgkJCQlpZigkY291bnQgPiA1KXsKCQkJCQkkcGVuYWx0eSArPSAoMyArICRjb3VudCAtIDUpOwoJCQkJfQoKCQkJfQoJCX0KCgkJcmV0dXJuICRwZW5hbHR5OwoJfQoKCS8qKgoJICogQ2hlY2tzIGZvciBlYWNoIDJ4MiBhcmVhIG9mIHNhbWUtY29sb3JlZCBtb2R1bGVzIGluIHRoZSBtYXRyaXgKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHRlc3RMZXZlbDIoYXJyYXkgJG0sIGludCAkc2l6ZSk6aW50ewoJCSRwZW5hbHR5ID0gMDsKCgkJZm9yZWFjaCgkbSBhcyAkeSA9PiAkcm93KXsKCgkJCWlmKCR5ID4gJHNpemUgLSAyKXsKCQkJCWJyZWFrOwoJCQl9CgoJCQlmb3JlYWNoKCRyb3cgYXMgJHggPT4gJHZhbCl7CgoJCQkJaWYoJHggPiAkc2l6ZSAtIDIpewoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWlmKAoJCQkJCSAgICR2YWwgPT09ICRtWyR5XVskeCArIDFdCgkJCQkJJiYgJHZhbCA9PT0gJG1bJHkgKyAxXVskeF0KCQkJCQkmJiAkdmFsID09PSAkbVskeSArIDFdWyR4ICsgMV0KCQkJCSl7CgkJCQkJJHBlbmFsdHkrKzsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIDMgKiAkcGVuYWx0eTsKCX0KCgkvKioKCSAqIENoZWNrcyBpZiB0aGVyZSBhcmUgcGF0dGVybnMgdGhhdCBsb29rIHNpbWlsYXIgdG8gdGhlIGZpbmRlciBwYXR0ZXJucyAoMToxOjM6MToxIHJhdGlvKQoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gdGVzdExldmVsMyhhcnJheSAkbSwgaW50ICRzaXplKTppbnR7CgkJJHBlbmFsdGllcyA9IDA7CgoJCWZvcmVhY2goJG0gYXMgJHkgPT4gJHJvdyl7CgkJCWZvcmVhY2goJHJvdyBhcyAkeCA9PiAkdmFsKXsKCgkJCQlpZigKCQkJCQkkeCArIDYgPCAkc2l6ZQoJCQkJCSYmICAkdmFsCgkJCQkJJiYgISRtWyR5XVskeCArIDFdCgkJCQkJJiYgICRtWyR5XVskeCArIDJdCgkJCQkJJiYgICRtWyR5XVskeCArIDNdCgkJCQkJJiYgICRtWyR5XVskeCArIDRdCgkJCQkJJiYgISRtWyR5XVskeCArIDVdCgkJCQkJJiYgICRtWyR5XVskeCArIDZdCgkJCQkpewoJCQkJCSRwZW5hbHRpZXMrKzsKCQkJCX0KCgkJCQlpZigKCQkJCQkkeSArIDYgPCAkc2l6ZQoJCQkJCSYmICAkdmFsCgkJCQkJJiYgISRtWyR5ICsgMV1bJHhdCgkJCQkJJiYgICRtWyR5ICsgMl1bJHhdCgkJCQkJJiYgICRtWyR5ICsgM11bJHhdCgkJCQkJJiYgICRtWyR5ICsgNF1bJHhdCgkJCQkJJiYgISRtWyR5ICsgNV1bJHhdCgkJCQkJJiYgICRtWyR5ICsgNl1bJHhdCgkJCQkpewoJCQkJCSRwZW5hbHRpZXMrKzsKCQkJCX0KCgkJCX0KCQl9CgoJCXJldHVybiAkcGVuYWx0aWVzICogNDA7Cgl9CgoJLyoqCgkgKiBDaGVja3MgaWYgbW9yZSB0aGFuIGhhbGYgb2YgdGhlIG1vZHVsZXMgYXJlIGRhcmsgb3IgbGlnaHQsIHdpdGggYSBsYXJnZXIgcGVuYWx0eSBmb3IgYSBsYXJnZXIgZGlmZmVyZW5jZQoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gdGVzdExldmVsNChhcnJheSAkbSwgaW50ICRzaXplKTpmbG9hdHsKCQkkY291bnQgPSAwOwoKCQlmb3JlYWNoKCRtIGFzICR5ID0+ICRyb3cpewoJCQlmb3JlYWNoKCRyb3cgYXMgJHggPT4gJHZhbCl7CgkJCQlpZigkdmFsKXsKCQkJCQkkY291bnQrKzsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIChhYnMoMTAwICogJGNvdW50IC8gJHNpemUgLyAkc2l6ZSAtIDUwKSAvIDUpICogMTA7Cgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRGF0YSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjQxOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxNYXNrUGF0dGVyblRlc3RlciI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiTWFza1BhdHRlcm5UZXN0ZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjcyOiJSZWNlaXZlcyBhIFFSRGF0YUludGVyZmFjZSBvYmplY3QgYW5kIHJ1bnMgdGhlIG1hc2sgcGF0dGVybiB0ZXN0cyBvbiBpdC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjQ6IklTTy9JRUMgMTgwMDQ6MjAwMCBTZWN0aW9uIDguOC4yIC0gRXZhbHVhdGlvbiBvZiBtYXNraW5nIHJlc3VsdHMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjUxOiJodHRwOi8vd3d3LnRob25reS5jb20vcXItY29kZS10dXRvcmlhbC9kYXRhLW1hc2tpbmciO31zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjI6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MTp7czo1NzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXI6OiRkYXRhSW50ZXJmYWNlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU3OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxNYXNrUGF0dGVyblRlc3Rlcjo6JGRhdGFJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoiZGF0YUludGVyZmFjZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NjoiVGhlIGRhdGEgaW50ZXJmYWNlIHRoYXQgY29udGFpbnMgdGhlIGRhdGEgbWF0cml4IHRvIHRlc3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUVJEYXRhSW50ZXJmYWNlIjt9fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Nzp7czo1NjoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXI6Ol9fY29uc3RydWN0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI4OiJSZWNlaXZlcyB0aGUgUVJEYXRhSW50ZXJmYWNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uczo6JG1hc2tQYXR0ZXJuIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Im1hc2tQYXR0ZXJuIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSTWF0cml4OjokbWFza1BhdHRlcm4iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToibWFza1BhdHRlcm4iO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTY6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE1hc2tQYXR0ZXJuVGVzdGVyOjpfX2NvbnN0cnVjdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Il9fY29uc3RydWN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEzOiJkYXRhSW50ZXJmYWNlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319czo2MzoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXI6OmdldEJlc3RNYXNrUGF0dGVybigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo4Nzoic2hvdmVzIGEgUVJNYXRyaXggdGhyb3VnaCB0aGUgTWFza1BhdHRlcm5UZXN0ZXIgdG8gZmluZCB0aGUgbG93ZXN0IHBlbmFsdHkgbWFzayBwYXR0ZXJuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiTWFza1BhdHRlcm5UZXN0ZXIiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE1hc2tQYXR0ZXJuVGVzdGVyOjpnZXRCZXN0TWFza1BhdHRlcm4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJnZXRCZXN0TWFza1BhdHRlcm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTY6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE1hc2tQYXR0ZXJuVGVzdGVyOjp0ZXN0UGF0dGVybigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NjoiUmV0dXJucyB0aGUgcGVuYWx0eSBmb3IgdGhlIGdpdmVuIG1hc2sgcGF0dGVybiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnM6OiRtYXNrUGF0dGVybiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeDo6JG1hc2tQYXR0ZXJuIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Im1hc2tQYXR0ZXJuIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU2OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxNYXNrUGF0dGVyblRlc3Rlcjo6dGVzdFBhdHRlcm4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJ0ZXN0UGF0dGVybiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJwYXR0ZXJuIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjU1OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxNYXNrUGF0dGVyblRlc3Rlcjo6dGVzdExldmVsMSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3OToiQ2hlY2tzIGZvciBlYWNoIGdyb3VwIG9mIGZpdmUgb3IgbW9yZSBzYW1lLWNvbG9yZWQgbW9kdWxlcyBpbiBhIHJvdyAob3IgY29sdW1uKSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU1OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxNYXNrUGF0dGVyblRlc3Rlcjo6dGVzdExldmVsMSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6InRlc3RMZXZlbDEiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MToibSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoic2l6ZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1NToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXI6OnRlc3RMZXZlbDIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NjI6IkNoZWNrcyBmb3IgZWFjaCAyeDIgYXJlYSBvZiBzYW1lLWNvbG9yZWQgbW9kdWxlcyBpbiB0aGUgbWF0cml4IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU1OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxNYXNrUGF0dGVyblRlc3Rlcjo6dGVzdExldmVsMigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6InRlc3RMZXZlbDIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MToibSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoic2l6ZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTU6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE1hc2tQYXR0ZXJuVGVzdGVyOjp0ZXN0TGV2ZWwzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjg3OiJDaGVja3MgaWYgdGhlcmUgYXJlIHBhdHRlcm5zIHRoYXQgbG9vayBzaW1pbGFyIHRvIHRoZSBmaW5kZXIgcGF0dGVybnMgKDE6MTozOjE6MSByYXRpbykiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTU6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXE1hc2tQYXR0ZXJuVGVzdGVyOjp0ZXN0TGV2ZWwzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoidGVzdExldmVsMyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxOiJtIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJzaXplIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE0ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1NToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXI6OnRlc3RMZXZlbDQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTA0OiJDaGVja3MgaWYgbW9yZSB0aGFuIGhhbGYgb2YgdGhlIG1vZHVsZXMgYXJlIGRhcmsgb3IgbGlnaHQsIHdpdGggYSBsYXJnZXIgcGVuYWx0eSBmb3IgYSBsYXJnZXIgZGlmZmVyZW5jZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcTWFza1BhdHRlcm5UZXN0ZXI6OnRlc3RMZXZlbDQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJ0ZXN0TGV2ZWw0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE6Im0iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InNpemUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTg5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcRmxvYXRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/X/J/RohjfFkFjlwsDy6kxPdw b/files/X/J/RohjfFkFjlwsDy6kxPdw deleted file mode 100644 index da0f3b9b1..000000000 --- a/files/X/J/RohjfFkFjlwsDy6kxPdw +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ae821eb855be9bafd757aab41d206fdb2-c976d852ca5b8a0c6985c77c30f654e2 -s:134944:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjA6IlRyYWl0IFFST3B0aW9uc1RyYWl0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjc6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTA6ImZpbGVzb3VyY2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE4OiJRUk9wdGlvbnNUcmFpdC5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIxMC4wMy4yMDE4IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNzoiY2hpbGxlcmxhblxRUkNvZGUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6Njoic21pbGV5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjIxOiJzbWlsZXlAY2hpbGxlcmxhbi5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IjIwMTggc21pbGV5IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo1O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOiJNSVQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjY7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEyOiJub2luc3BlY3Rpb24iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk6IlBocFVudXNlZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYzk3NmQ4NTJjYTViOGEwYzY5ODVjNzdjMzBmNjU0ZTIiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxODoiUVJPcHRpb25zVHJhaXQucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MjI6InNyYy9RUk9wdGlvbnNUcmFpdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjcxMjI6Ijw/cGhwCi8qKgogKiBUcmFpdCBRUk9wdGlvbnNUcmFpdAogKgogKiBAZmlsZXNvdXJjZSAgIFFST3B0aW9uc1RyYWl0LnBocAogKiBAY3JlYXRlZCAgICAgIDEwLjAzLjIwMTgKICogQHBhY2thZ2UgICAgICBjaGlsbGVybGFuXFFSQ29kZQogKiBAYXV0aG9yICAgICAgIHNtaWxleSA8c21pbGV5QGNoaWxsZXJsYW4ubmV0PgogKiBAY29weXJpZ2h0ICAgIDIwMTggc21pbGV5CiAqIEBsaWNlbnNlICAgICAgTUlUCiAqCiAqIEBub2luc3BlY3Rpb24gUGhwVW51c2VkCiAqLwoKbmFtZXNwYWNlIGNoaWxsZXJsYW5cUVJDb2RlOwoKdXNlIGZ1bmN0aW9uIGFycmF5X3ZhbHVlcywgY291bnQsIGluX2FycmF5LCBpc19udW1lcmljLCBtYXgsIG1pbiwgc3ByaW50Ziwgc3RydG9sb3dlcjsKCi8qKgogKiBUaGUgUVJDb2RlIHBsdWctaW4gc2V0dGluZ3MgJiBzZXR0ZXIgZnVuY3Rpb25hbGl0eQogKi8KdHJhaXQgUVJPcHRpb25zVHJhaXR7CgoJLyoqCgkgKiBRUiBDb2RlIHZlcnNpb24gbnVtYmVyCgkgKgoJICogWzEgLi4uIDQwXSBvciBRUkNvZGU6OlZFUlNJT05fQVVUTwoJICovCglwcm90ZWN0ZWQgaW50ICR2ZXJzaW9uID0gUVJDb2RlOjpWRVJTSU9OX0FVVE87CgoJLyoqCgkgKiBNaW5pbXVtIFFSIHZlcnNpb24KCSAqCgkgKiBpZiAkdmVyc2lvbiA9IFFSQ29kZTo6VkVSU0lPTl9BVVRPCgkgKi8KCXByb3RlY3RlZCBpbnQgJHZlcnNpb25NaW4gPSAxOwoKCS8qKgoJICogTWF4aW11bSBRUiB2ZXJzaW9uCgkgKi8KCXByb3RlY3RlZCBpbnQgJHZlcnNpb25NYXggPSA0MDsKCgkvKioKCSAqIEVycm9yIGNvcnJlY3QgbGV2ZWwKCSAqCgkgKiBRUkNvZGU6OkVDQ19YIHdoZXJlIFggaXM6CgkgKgoJICogICAtIEwgPT4gIDclCgkgKiAgIC0gTSA9PiAxNSUKCSAqICAgLSBRID0+IDI1JQoJICogICAtIEggPT4gMzAlCgkgKi8KCXByb3RlY3RlZCBpbnQgJGVjY0xldmVsID0gUVJDb2RlOjpFQ0NfTDsKCgkvKioKCSAqIE1hc2sgUGF0dGVybiB0byB1c2UKCSAqCgkgKiBbMC4uLjddIG9yIFFSQ29kZTo6TUFTS19QQVRURVJOX0FVVE8KCSAqLwoJcHJvdGVjdGVkIGludCAkbWFza1BhdHRlcm4gPSBRUkNvZGU6Ok1BU0tfUEFUVEVSTl9BVVRPOwoKCS8qKgoJICogQWRkIGEgInF1aWV0IHpvbmUiIChtYXJnaW4pIGFjY29yZGluZyB0byB0aGUgUVIgY29kZSBzcGVjCgkgKi8KCXByb3RlY3RlZCBib29sICRhZGRRdWlldHpvbmUgPSB0cnVlOwoKCS8qKgoJICogU2l6ZSBvZiB0aGUgcXVpZXQgem9uZQoJICoKCSAqIGludGVybmFsbHkgY2xhbXBlZCB0byBbMCAuLi4gJG1vZHVsZUNvdW50IC8gMl0sIGRlZmF1bHRzIHRvIDQgbW9kdWxlcwoJICovCglwcm90ZWN0ZWQgaW50ICRxdWlldHpvbmVTaXplID0gNDsKCgkvKioKCSAqIFVzZSB0aGlzIHRvIGNpcmN1bXZlbnQgdGhlIGRhdGEgbW9kZSBkZXRlY3Rpb24gYW5kIGZvcmNlIHRoZSB1c2FnZSBvZiB0aGUgZ2l2ZW4gbW9kZS4KCSAqCgkgKiB2YWxpZCBtb2RlcyBhcmU6IE51bWJlciwgQWxwaGFOdW0sIEthbmppLCBCeXRlIChjYXNlIGluc2Vuc2l0aXZlKQoJICoKCSAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NoaWxsZXJsYW4vcGhwLXFyY29kZS9pc3N1ZXMvMzkKCSAqLwoJcHJvdGVjdGVkID9zdHJpbmcgJGRhdGFNb2RlT3ZlcnJpZGUgPSBudWxsOwoKCS8qKgoJICogVGhlIG91dHB1dCB0eXBlCgkgKgoJICogICAtIFFSQ29kZTo6T1VUUFVUX01BUktVUF9YWFhYIHdoZXJlIFhYWFggPSBIVE1MLCBTVkcKCSAqICAgLSBRUkNvZGU6Ok9VVFBVVF9JTUFHRV9YWFggd2hlcmUgWFhYID0gUE5HLCBHSUYsIEpQRwoJICogICAtIFFSQ29kZTo6T1VUUFVUX1NUUklOR19YWFhYIHdoZXJlIFhYWFggPSBURVhULCBKU09OCgkgKiAgIC0gUVJDb2RlOjpPVVRQVVRfQ1VTVE9NCgkgKi8KCXByb3RlY3RlZCBzdHJpbmcgJG91dHB1dFR5cGUgPSBRUkNvZGU6Ok9VVFBVVF9JTUFHRV9QTkc7CgoJLyoqCgkgKiB0aGUgRlFDTiBvZiB0aGUgY3VzdG9tIFFST3V0cHV0SW50ZXJmYWNlIGlmICRvdXRwdXRUeXBlIGlzIHNldCB0byBRUkNvZGU6Ok9VVFBVVF9DVVNUT00KCSAqLwoJcHJvdGVjdGVkID9zdHJpbmcgJG91dHB1dEludGVyZmFjZSA9IG51bGw7CgoJLyoqCgkgKiAvcGF0aC90by9jYWNoZS5maWxlCgkgKi8KCXByb3RlY3RlZCA/c3RyaW5nICRjYWNoZWZpbGUgPSBudWxsOwoKCS8qKgoJICogbmV3bGluZSBzdHJpbmcgW0hUTUwsIFNWRywgVEVYVF0KCSAqLwoJcHJvdGVjdGVkIHN0cmluZyAkZW9sID0gUEhQX0VPTDsKCgkvKioKCSAqIHNpemUgb2YgYSBRUiBjb2RlIHBpeGVsIFtTVkcsIElNQUdFXypdLCBIVE1MIHZpYSBDU1MKCSAqLwoJcHJvdGVjdGVkIGludCAkc2NhbGUgPSA1OwoKCS8qKgoJICogYSBjb21tb24gY3NzIGNsYXNzCgkgKi8KCXByb3RlY3RlZCBzdHJpbmcgJGNzc0NsYXNzID0gJyc7CgoJLyoqCgkgKiBTVkcgb3BhY2l0eQoJICovCglwcm90ZWN0ZWQgZmxvYXQgJHN2Z09wYWNpdHkgPSAxLjA7CgoJLyoqCgkgKiBhbnl0aGluZyBiZXR3ZWVuIDxkZWZzPgoJICoKCSAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvU1ZHL0VsZW1lbnQvZGVmcwoJICovCglwcm90ZWN0ZWQgc3RyaW5nICRzdmdEZWZzID0gJzxzdHlsZT5yZWN0e3NoYXBlLXJlbmRlcmluZzpjcmlzcEVkZ2VzfTwvc3R5bGU+JzsKCgkvKioKCSAqIFNWRyB2aWV3Qm94IHNpemUuIGEgc2luZ2xlIGludGVnZXIgbnVtYmVyIHdoaWNoIGRlZmluZXMgd2lkdGgvaGVpZ2h0IG9mIHRoZSB2aWV3Qm94IGF0dHJpYnV0ZS4KCSAqCgkgKiB2aWV3Qm94PSIwIDAgeCB4IgoJICoKCSAqIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zY2FsZS1zdmcvI2FydGljbGUtaGVhZGVyLWlkLTMKCSAqLwoJcHJvdGVjdGVkID9pbnQgJHN2Z1ZpZXdCb3hTaXplID0gbnVsbDsKCgkvKioKCSAqIHN0cmluZyBzdWJzdGl0dXRlIGZvciBkYXJrCgkgKi8KCXByb3RlY3RlZCBzdHJpbmcgJHRleHREYXJrID0gJ/CflLQnOwoKCS8qKgoJICogc3RyaW5nIHN1YnN0aXR1dGUgZm9yIGxpZ2h0CgkgKi8KCXByb3RlY3RlZCBzdHJpbmcgJHRleHRMaWdodCA9ICfirZUnOwoKCS8qKgoJICogbWFya3VwIHN1YnN0aXR1dGUgZm9yIGRhcmsgKENTUyB2YWx1ZSkKCSAqLwoJcHJvdGVjdGVkIHN0cmluZyAkbWFya3VwRGFyayA9ICcjMDAwJzsKCgkvKioKCSAqIG1hcmt1cCBzdWJzdGl0dXRlIGZvciBsaWdodCAoQ1NTIHZhbHVlKQoJICovCglwcm90ZWN0ZWQgc3RyaW5nICRtYXJrdXBMaWdodCA9ICcjZmZmJzsKCgkvKioKCSAqIFJldHVybiB0aGUgaW1hZ2UgcmVzb3VyY2UgaW5zdGVhZCBvZiBhIHJlbmRlciBpZiBhcHBsaWNhYmxlLgoJICogVGhpcyBvcHRpb24gb3ZlcnJpZGVzIG90aGVyIG91dHB1dCBvcHRpb25zLCBzdWNoIGFzICRjYWNoZWZpbGUgYW5kICRpbWFnZUJhc2U2NC4KCSAqCgkgKiBTdXBwb3J0ZWQgYnkgdGhlIGZvbGxvd2luZyBtb2R1bGVzOgoJICoKCSAqIC0gUVJJbWFnZTogICByZXNvdXJjZSAoUEhQIDwgOCksIEdkSW1hZ2UKCSAqIC0gUVJJbWFnaWNrOiBJbWFnaWNrCgkgKiAtIFFSRnBkZjogICAgRlBERgoJICoKCSAqIEBzZWUgXGNoaWxsZXJsYW5cUVJDb2RlXE91dHB1dFxRUk91dHB1dEludGVyZmFjZTo6ZHVtcCgpCgkgKgoJICogQHZhciBib29sCgkgKi8KCXByb3RlY3RlZCBib29sICRyZXR1cm5SZXNvdXJjZSA9IGZhbHNlOwoKCS8qKgoJICogdG9nZ2xlIGJhc2U2NCBvciByYXcgaW1hZ2UgZGF0YQoJICovCglwcm90ZWN0ZWQgYm9vbCAkaW1hZ2VCYXNlNjQgPSB0cnVlOwoKCS8qKgoJICogdG9nZ2xlIHRyYW5zcGFyZW5jeSwgbm90IHN1cHBvcnRlZCBieSBqcGcKCSAqLwoJcHJvdGVjdGVkIGJvb2wgJGltYWdlVHJhbnNwYXJlbnQgPSB0cnVlOwoKCS8qKgoJICogQHNlZSBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoKQoJICoKCSAqIFtSLCBHLCBCXQoJICovCglwcm90ZWN0ZWQgYXJyYXkgJGltYWdlVHJhbnNwYXJlbmN5QkcgPSBbMjU1LCAyNTUsIDI1NV07CgoJLyoqCgkgKiBAc2VlIGltYWdlcG5nKCkKCSAqLwoJcHJvdGVjdGVkIGludCAkcG5nQ29tcHJlc3Npb24gPSAtMTsKCgkvKioKCSAqIEBzZWUgaW1hZ2VqcGVnKCkKCSAqLwoJcHJvdGVjdGVkIGludCAkanBlZ1F1YWxpdHkgPSA4NTsKCgkvKioKCSAqIEltYWdpY2sgb3V0cHV0IGZvcm1hdAoJICoKCSAqIEBzZWUgXEltYWdpY2s6OnNldFR5cGUoKQoJICovCglwcm90ZWN0ZWQgc3RyaW5nICRpbWFnaWNrRm9ybWF0ID0gJ3BuZyc7CgoJLyoqCgkgKiBJbWFnaWNrIGJhY2tncm91bmQgY29sb3IgKGRlZmF1bHRzIHRvICJ0cmFuc3BhcmVudCIpCgkgKgoJICogQHNlZSBcSW1hZ2lja1BpeGVsOjpfX2NvbnN0cnVjdCgpCgkgKi8KCXByb3RlY3RlZCA/c3RyaW5nICRpbWFnaWNrQkcgPSBudWxsOwoKCS8qKgoJICogTWVhc3VyZW1lbnQgdW5pdCBmb3IgRlBERiBvdXRwdXQ6IHB0LCBtbSwgY20sIGluIChkZWZhdWx0cyB0byAicHQiKQoJICoKCSAqIEBzZWUgXEZQREY6Ol9fY29uc3RydWN0KCkKCSAqLwoJcHJvdGVjdGVkIHN0cmluZyAkZnBkZk1lYXN1cmVVbml0ID0gJ3B0JzsKCgkvKioKCSAqIE1vZHVsZSB2YWx1ZXMgbWFwCgkgKgoJICogICAtIEhUTUwsIElNQUdJQ0s6ICNBQkNERUYsIGNzc25hbWUsIHJnYigpLCByZ2JhKCkuLi4KCSAqICAgLSBJTUFHRTogWzYzLCAxMjcsIDI1NV0gLy8gUiwgRywgQgoJICovCglwcm90ZWN0ZWQgP2FycmF5ICRtb2R1bGVWYWx1ZXMgPSBudWxsOwoKCS8qKgoJICogY2xhbXAgbWluL21heCB2ZXJzaW9uIG51bWJlcgoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0TWluTWF4VmVyc2lvbihpbnQgJHZlcnNpb25NaW4sIGludCAkdmVyc2lvbk1heCk6dm9pZHsKCQkkbWluID0gbWF4KDEsIG1pbig0MCwgJHZlcnNpb25NaW4pKTsKCQkkbWF4ID0gbWF4KDEsIG1pbig0MCwgJHZlcnNpb25NYXgpKTsKCgkJJHRoaXMtPnZlcnNpb25NaW4gPSBtaW4oJG1pbiwgJG1heCk7CgkJJHRoaXMtPnZlcnNpb25NYXggPSBtYXgoJG1pbiwgJG1heCk7Cgl9CgoJLyoqCgkgKiBzZXRzIHRoZSBtaW5pbXVtIHZlcnNpb24gbnVtYmVyCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRfdmVyc2lvbk1pbihpbnQgJHZlcnNpb24pOnZvaWR7CgkJJHRoaXMtPnNldE1pbk1heFZlcnNpb24oJHZlcnNpb24sICR0aGlzLT52ZXJzaW9uTWF4KTsKCX0KCgkvKioKCSAqIHNldHMgdGhlIG1heGltdW0gdmVyc2lvbiBudW1iZXIKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIHNldF92ZXJzaW9uTWF4KGludCAkdmVyc2lvbik6dm9pZHsKCQkkdGhpcy0+c2V0TWluTWF4VmVyc2lvbigkdGhpcy0+dmVyc2lvbk1pbiwgJHZlcnNpb24pOwoJfQoKCS8qKgoJICogc2V0cyB0aGUgZXJyb3IgY29ycmVjdGlvbiBsZXZlbAoJICoKCSAqIEB0aHJvd3MgXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbgoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X2VjY0xldmVsKGludCAkZWNjTGV2ZWwpOnZvaWR7CgoJCWlmKCFpc3NldChRUkNvZGU6OkVDQ19NT0RFU1skZWNjTGV2ZWxdKSl7CgkJCXRocm93IG5ldyBRUkNvZGVFeGNlcHRpb24oc3ByaW50ZignSW52YWxpZCBlcnJvciBjb3JyZWN0IGxldmVsOiAlcycsICRlY2NMZXZlbCkpOwoJCX0KCgkJJHRoaXMtPmVjY0xldmVsID0gJGVjY0xldmVsOwoJfQoKCS8qKgoJICogc2V0cy9jbGFtcHMgdGhlIG1hc2sgcGF0dGVybgoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X21hc2tQYXR0ZXJuKGludCAkbWFza1BhdHRlcm4pOnZvaWR7CgoJCWlmKCRtYXNrUGF0dGVybiAhPT0gUVJDb2RlOjpNQVNLX1BBVFRFUk5fQVVUTyl7CgkJCSR0aGlzLT5tYXNrUGF0dGVybiA9IG1heCgwLCBtaW4oNywgJG1hc2tQYXR0ZXJuKSk7CgkJfQoKCX0KCgkvKioKCSAqIHNldHMgdGhlIHRyYW5zcGFyZW5jeSBiYWNrZ3JvdW5kIGNvbG9yCgkgKgoJICogQHRocm93cyBcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlRXhjZXB0aW9uCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRfaW1hZ2VUcmFuc3BhcmVuY3lCRyhhcnJheSAkaW1hZ2VUcmFuc3BhcmVuY3lCRyk6dm9pZHsKCgkJLy8gaW52YWxpZCB2YWx1ZSAtIHNldCB0byB3aGl0ZSBhcyBkZWZhdWx0CgkJaWYoY291bnQoJGltYWdlVHJhbnNwYXJlbmN5QkcpIDwgMyl7CgkJCSR0aGlzLT5pbWFnZVRyYW5zcGFyZW5jeUJHID0gWzI1NSwgMjU1LCAyNTVdOwoKCQkJcmV0dXJuOwoJCX0KCgkJZm9yZWFjaCgkaW1hZ2VUcmFuc3BhcmVuY3lCRyBhcyAkayA9PiAkdil7CgoJCQkvLyBjdXQgb2ZmIGV4Y2VlZGluZyBpdGVtcwoJCQlpZigkayA+IDIpewoJCQkJYnJlYWs7CgkJCX0KCgkJCWlmKCFpc19udW1lcmljKCR2KSl7CgkJCQl0aHJvdyBuZXcgUVJDb2RlRXhjZXB0aW9uKCdJbnZhbGlkIFJHQiB2YWx1ZS4nKTsKCQkJfQoKCQkJLy8gY2xhbXAgdGhlIHZhbHVlcwoJCQkkdGhpcy0+aW1hZ2VUcmFuc3BhcmVuY3lCR1ska10gPSBtYXgoMCwgbWluKDI1NSwgKGludCkkdikpOwoJCX0KCgkJLy8gdXNlIHRoZSBhcnJheSB2YWx1ZXMgdG8gbm90IHJ1biBpbnRvIGVycm9ycyB3aXRoIHRoZSBzcHJlYWQgb3BlcmF0b3IgKC4uLiRhcnIpCgkJJHRoaXMtPmltYWdlVHJhbnNwYXJlbmN5QkcgPSBhcnJheV92YWx1ZXMoJHRoaXMtPmltYWdlVHJhbnNwYXJlbmN5QkcpOwoJfQoKCS8qKgoJICogc2V0cy9jbGFtcHMgdGhlIHZlcnNpb24gbnVtYmVyCgkgKi8KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRfdmVyc2lvbihpbnQgJHZlcnNpb24pOnZvaWR7CgoJCWlmKCR2ZXJzaW9uICE9PSBRUkNvZGU6OlZFUlNJT05fQVVUTyl7CgkJCSR0aGlzLT52ZXJzaW9uID0gbWF4KDEsIG1pbig0MCwgJHZlcnNpb24pKTsKCQl9CgoJfQoKCS8qKgoJICogc2V0cyB0aGUgRlBERiBtZWFzdXJlbWVudCB1bml0CgkgKgoJICogQGNvZGVDb3ZlcmFnZUlnbm9yZQoJICovCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X2ZwZGZNZWFzdXJlVW5pdChzdHJpbmcgJHVuaXQpOnZvaWR7CgkJJHVuaXQgPSBzdHJ0b2xvd2VyKCR1bml0KTsKCgkJaWYoaW5fYXJyYXkoJHVuaXQsIFsnY20nLCAnaW4nLCAnbW0nLCAncHQnXSwgdHJ1ZSkpewoJCQkkdGhpcy0+ZnBkZk1lYXN1cmVVbml0ID0gJHVuaXQ7CgkJfQoKCQkvLyBAdG9kbyB0aHJvdyBvciBpZ25vcmUgc2lsZW50bHk/Cgl9Cgp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MTg6IlxjaGlsbGVybGFuXFFSQ29kZSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE4OiJcY2hpbGxlcmxhblxRUkNvZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJRUkNvZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MTp7czozMzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XyI6Njp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzM6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJRUk9wdGlvbnNUcmFpdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTA6IlRoZSBRUkNvZGUgcGx1Zy1pbiBzZXR0aW5ncyAmIHNldHRlciBmdW5jdGlvbmFsaXR5IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjE3OiJjaGlsbGVybGFuXFFSQ29kZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AcHJvcGVydGllcyI7YTozMTp7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokdmVyc2lvbiI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokdmVyc2lvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InZlcnNpb24iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjI6IlFSIENvZGUgdmVyc2lvbiBudW1iZXIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzQ6IlsxIC4uLiA0MF0gb3IgUVJDb2RlOjpWRVJTSU9OX0FVVE8iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpWRVJTSU9OX0FVVE8iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiR2ZXJzaW9uTWluIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiR2ZXJzaW9uTWluIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6InZlcnNpb25NaW4iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6Ik1pbmltdW0gUVIgdmVyc2lvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozNDoiaWYgJHZlcnNpb24gPSBRUkNvZGU6OlZFUlNJT05fQVVUTyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MToiMSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHZlcnNpb25NYXgiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDY6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHZlcnNpb25NYXgiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoidmVyc2lvbk1heCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxODoiTWF4aW11bSBRUiB2ZXJzaW9uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mzg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MjoiNDAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRlY2NMZXZlbCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokZWNjTGV2ZWwiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJlY2NMZXZlbCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxOToiRXJyb3IgY29ycmVjdCBsZXZlbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3NDoiUVJDb2RlOjpFQ0NfWCB3aGVyZSBYIGlzOgoKLSBMID0+ICA3JSUKLSBNID0+IDE1JSUKLSBRID0+IDI1JSUKLSBIID0+IDMwJSUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpFQ0NfTCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JG1hc2tQYXR0ZXJuIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRtYXNrUGF0dGVybiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxOToiTWFzayBQYXR0ZXJuIHRvIHVzZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozNjoiWzAuLi43XSBvciBRUkNvZGU6Ok1BU0tfUEFUVEVSTl9BVVRPIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3NTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0NDoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZTo6TUFTS19QQVRURVJOX0FVVE8iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRhZGRRdWlldHpvbmUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGFkZFF1aWV0em9uZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJhZGRRdWlldHpvbmUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTc6IkFkZCBhICJxdWlldCB6b25lIiAobWFyZ2luKSBhY2NvcmRpbmcgdG8gdGhlIFFSIGNvZGUgc3BlYyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6InRydWUiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fX1zOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRxdWlldHpvbmVTaXplIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRxdWlldHpvbmVTaXplIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6InF1aWV0em9uZVNpemUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjI6IlNpemUgb2YgdGhlIHF1aWV0IHpvbmUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Njk6ImludGVybmFsbHkgY2xhbXBlZCB0byBbMCAuLi4gJG1vZHVsZUNvdW50IC8gMl0sIGRlZmF1bHRzIHRvIDQgbW9kdWxlcyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MToiNCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGRhdGFNb2RlT3ZlcnJpZGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGRhdGFNb2RlT3ZlcnJpZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiZGF0YU1vZGVPdmVycmlkZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo4NToiVXNlIHRoaXMgdG8gY2lyY3VtdmVudCB0aGUgZGF0YSBtb2RlIGRldGVjdGlvbiBhbmQgZm9yY2UgdGhlIHVzYWdlIG9mIHRoZSBnaXZlbiBtb2RlLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NToidmFsaWQgbW9kZXMgYXJlOiBOdW1iZXIsIEFscGhhTnVtLCBLYW5qaSwgQnl0ZSAoY2FzZSBpbnNlbnNpdGl2ZSkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjUwOiJodHRwczovL2dpdGh1Yi5jb20vY2hpbGxlcmxhbi9waHAtcXJjb2RlL2lzc3Vlcy8zOSI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fX1zOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRvdXRwdXRUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRvdXRwdXRUeXBlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Im91dHB1dFR5cGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTU6IlRoZSBvdXRwdXQgdHlwZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxODE6Ii0gUVJDb2RlOjpPVVRQVVRfTUFSS1VQX1hYWFggd2hlcmUgWFhYWCA9IEhUTUwsIFNWRwotIFFSQ29kZTo6T1VUUFVUX0lNQUdFX1hYWCB3aGVyZSBYWFggPSBQTkcsIEdJRiwgSlBHCi0gUVJDb2RlOjpPVVRQVVRfU1RSSU5HX1hYWFggd2hlcmUgWFhYWCA9IFRFWFQsIEpTT04KLSBRUkNvZGU6Ok9VVFBVVF9DVVNUT00iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjgzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQzOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlOjpPVVRQVVRfSU1BR0VfUE5HIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0Ojokb3V0cHV0SW50ZXJmYWNlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRvdXRwdXRJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToib3V0cHV0SW50ZXJmYWNlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjg3OiJ0aGUgRlFDTiBvZiB0aGUgY3VzdG9tIFFST3V0cHV0SW50ZXJmYWNlIGlmICRvdXRwdXRUeXBlIGlzIHNldCB0byBRUkNvZGU6Ok9VVFBVVF9DVVNUT00iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3NTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0OiJudWxsIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX19czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokY2FjaGVmaWxlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRjYWNoZWZpbGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJjYWNoZWZpbGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTk6Ii9wYXRoL3RvL2NhY2hlLmZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3NTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0OiJudWxsIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319fXM6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGVvbCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokZW9sIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoiZW9sIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMyOiJuZXdsaW5lIHN0cmluZyBbSFRNTCwgU1ZHLCBURVhUXSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo3OiJQSFBfRU9MIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NDE6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHNjYWxlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRzY2FsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InNjYWxlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjUyOiJzaXplIG9mIGEgUVIgY29kZSBwaXhlbCBbU1ZHLCBJTUFHRV8qXSwgSFRNTCB2aWEgQ1NTIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjE6IjUiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo0NDoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokY3NzQ2xhc3MiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGNzc0NsYXNzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiY3NzQ2xhc3MiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6ImEgY29tbW9uIGNzcyBjbGFzcyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoyOiInJyI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRzdmdPcGFjaXR5IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRzdmdPcGFjaXR5IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6InN2Z09wYWNpdHkiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTE6IlNWRyBvcGFjaXR5IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjM6IjEuMCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcRmxvYXRfIjowOnt9fXM6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHN2Z0RlZnMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHN2Z0RlZnMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJzdmdEZWZzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIzOiJhbnl0aGluZyBiZXR3ZWVuIDxkZWZzPiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjU1OiJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9TVkcvRWxlbWVudC9kZWZzIjt9czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ5OiInPHN0eWxlPnJlY3R7c2hhcGUtcmVuZGVyaW5nOmNyaXNwRWRnZXN9PC9zdHlsZT4nIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTI4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fXM6NTA6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHN2Z1ZpZXdCb3hTaXplIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRzdmdWaWV3Qm94U2l6ZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJzdmdWaWV3Qm94U2l6ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo5NDoiU1ZHIHZpZXdCb3ggc2l6ZS4gYSBzaW5nbGUgaW50ZWdlciBudW1iZXIgd2hpY2ggZGVmaW5lcyB3aWR0aC9oZWlnaHQgb2YgdGhlIHZpZXdCb3ggYXR0cmlidXRlLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNzoidmlld0JveD0iMCAwIHggeCIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjUzOiJodHRwczovL2Nzcy10cmlja3MuY29tL3NjYWxlLXN2Zy8jYXJ0aWNsZS1oZWFkZXItaWQtMyI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0OiJudWxsIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTM3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319fXM6NDQ6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHRleHREYXJrIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiR0ZXh0RGFyayI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InRleHREYXJrIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI2OiJzdHJpbmcgc3Vic3RpdHV0ZSBmb3IgZGFyayI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo2OiIn8J+UtCciO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo0NToiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokdGV4dExpZ2h0IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiR0ZXh0TGlnaHQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJ0ZXh0TGlnaHQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjc6InN0cmluZyBzdWJzdGl0dXRlIGZvciBsaWdodCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE0NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo1OiIn4q2VJyI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRtYXJrdXBEYXJrIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRtYXJrdXBEYXJrIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Im1hcmt1cERhcmsiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mzg6Im1hcmt1cCBzdWJzdGl0dXRlIGZvciBkYXJrIChDU1MgdmFsdWUpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQ5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjY6IicjMDAwJyI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE1MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRtYXJrdXBMaWdodCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokbWFya3VwTGlnaHQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToibWFya3VwTGlnaHQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mzk6Im1hcmt1cCBzdWJzdGl0dXRlIGZvciBsaWdodCAoQ1NTIHZhbHVlKSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE1NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo2OiInI2ZmZiciO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokcmV0dXJuUmVzb3VyY2UiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTA6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHJldHVyblJlc291cmNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTQ6InJldHVyblJlc291cmNlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjYwOiJSZXR1cm4gdGhlIGltYWdlIHJlc291cmNlIGluc3RlYWQgb2YgYSByZW5kZXIgaWYgYXBwbGljYWJsZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTk4OiJUaGlzIG9wdGlvbiBvdmVycmlkZXMgb3RoZXIgb3V0cHV0IG9wdGlvbnMsIHN1Y2ggYXMgJGNhY2hlZmlsZSBhbmQgJGltYWdlQmFzZTY0LgoKU3VwcG9ydGVkIGJ5IHRoZSBmb2xsb3dpbmcgbW9kdWxlczoKCi0gUVJJbWFnZTogICByZXNvdXJjZSAoUEhQIDwgOCksIEdkSW1hZ2UKLSBRUkltYWdpY2s6IEltYWdpY2sKLSBRUkZwZGY6ICAgIEZQREYiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxPdXRwdXRcUVJPdXRwdXRJbnRlcmZhY2U6OmR1bXAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6ImR1bXAiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3NTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6NToiZmFsc2UiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e319czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokaW1hZ2VCYXNlNjQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGltYWdlQmFzZTY0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6ImltYWdlQmFzZTY0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMxOiJ0b2dnbGUgYmFzZTY0IG9yIHJhdyBpbWFnZSBkYXRhIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTc1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6InRydWUiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e319czo1MjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokaW1hZ2VUcmFuc3BhcmVudCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokaW1hZ2VUcmFuc3BhcmVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJpbWFnZVRyYW5zcGFyZW50Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQxOiJ0b2dnbGUgdHJhbnNwYXJlbmN5LCBub3Qgc3VwcG9ydGVkIGJ5IGpwZyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0OiJ0cnVlIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTgzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9fXM6NTU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGltYWdlVHJhbnNwYXJlbmN5QkciO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGltYWdlVHJhbnNwYXJlbmN5QkciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToiaW1hZ2VUcmFuc3BhcmVuY3lCRyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcY2hpbGxlcmxhblxRUkNvZGVcaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMToiaW1hZ2Vjb2xvcnRyYW5zcGFyZW50Ijt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk6IltSLCBHLCBCXSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTg1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjE1OiJbMjU1LCAyNTUsIDI1NV0iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fXM6NTA6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JHBuZ0NvbXByZXNzaW9uIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRwbmdDb21wcmVzc2lvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJwbmdDb21wcmVzc2lvbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI5OiJcY2hpbGxlcmxhblxRUkNvZGVcaW1hZ2VwbmcoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6ImltYWdlcG5nIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoyOiItMSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQ3OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRqcGVnUXVhbGl0eSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokanBlZ1F1YWxpdHkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToianBlZ1F1YWxpdHkiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMDoiXGNoaWxsZXJsYW5cUVJDb2RlXGltYWdlanBlZygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiaW1hZ2VqcGVnIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoyOiI4NSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRpbWFnaWNrRm9ybWF0IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRpbWFnaWNrRm9ybWF0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6ImltYWdpY2tGb3JtYXQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjE6IkltYWdpY2sgb3V0cHV0IGZvcm1hdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTk6IlxJbWFnaWNrOjpzZXRUeXBlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJzZXRUeXBlIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo1OiIncG5nJyI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjQ1OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRpbWFnaWNrQkciO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6JGltYWdpY2tCRyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6ImltYWdpY2tCRyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MjoiSW1hZ2ljayBiYWNrZ3JvdW5kIGNvbG9yIChkZWZhdWx0cyB0byAidHJhbnNwYXJlbnQiKSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxJbWFnaWNrUGl4ZWw6Ol9fY29uc3RydWN0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiX19jb25zdHJ1Y3QiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX19czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokZnBkZk1lYXN1cmVVbml0IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRmcGRmTWVhc3VyZVVuaXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiZnBkZk1lYXN1cmVVbml0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjY3OiJNZWFzdXJlbWVudCB1bml0IGZvciBGUERGIG91dHB1dDogcHQsIG1tLCBjbSwgaW4gKGRlZmF1bHRzIHRvICJwdCIpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMDoiXEZQREY6Ol9fY29uc3RydWN0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiX19jb25zdHJ1Y3QiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6IidwdCciO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo0ODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjokbW9kdWxlVmFsdWVzIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OiRtb2R1bGVWYWx1ZXMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoibW9kdWxlVmFsdWVzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE3OiJNb2R1bGUgdmFsdWVzIG1hcCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4NjoiLSBIVE1MLCBJTUFHSUNLOiAjQUJDREVGLCBjc3NuYW1lLCByZ2IoKSwgcmdiYSgpLi4uCi0gSU1BR0U6IFs2MywgMTI3LCAyNTVdIC8vIFIsIEcsIEIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIyMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0OiJudWxsIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjI5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAG1ldGhvZHMiO2E6ODp7czo1MzoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjpzZXRNaW5NYXhWZXJzaW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI4OiJjbGFtcCBtaW4vbWF4IHZlcnNpb24gbnVtYmVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUzOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OnNldE1pbk1heFZlcnNpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJzZXRNaW5NYXhWZXJzaW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEwOiJ2ZXJzaW9uTWluIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEwOiJ2ZXJzaW9uTWF4IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIzNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6c2V0X3ZlcnNpb25NaW4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzE6InNldHMgdGhlIG1pbmltdW0gdmVyc2lvbiBudW1iZXIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3NTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6c2V0X3ZlcnNpb25NaW4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJzZXRfdmVyc2lvbk1pbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJ2ZXJzaW9uIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6c2V0X3ZlcnNpb25NYXgoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzE6InNldHMgdGhlIG1heGltdW0gdmVyc2lvbiBudW1iZXIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3NTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6c2V0X3ZlcnNpb25NYXgoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJzZXRfdmVyc2lvbk1heCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJ2ZXJzaW9uIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fXM6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6c2V0X2VjY0xldmVsKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMxOiJzZXRzIHRoZSBlcnJvciBjb3JyZWN0aW9uIGxldmVsIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM0OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJDb2RlRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlFSQ29kZUV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjpzZXRfZWNjTGV2ZWwoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJzZXRfZWNjTGV2ZWwiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoiZWNjTGV2ZWwiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjYxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo1MjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjpzZXRfbWFza1BhdHRlcm4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjg6InNldHMvY2xhbXBzIHRoZSBtYXNrIHBhdHRlcm4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3NTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6c2V0X21hc2tQYXR0ZXJuKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToic2V0X21hc2tQYXR0ZXJuIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjYwOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OnNldF9pbWFnZVRyYW5zcGFyZW5jeUJHKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM4OiJzZXRzIHRoZSB0cmFuc3BhcmVuY3kgYmFja2dyb3VuZCBjb2xvciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNDoiXGNoaWxsZXJsYW5cUVJDb2RlXFFSQ29kZUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJRUkNvZGVFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3NTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjA6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdDo6c2V0X2ltYWdlVHJhbnNwYXJlbmN5QkcoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIzOiJzZXRfaW1hZ2VUcmFuc3BhcmVuY3lCRyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxOToiaW1hZ2VUcmFuc3BhcmVuY3lCRyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjg2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo0ODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjpzZXRfdmVyc2lvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozMDoic2V0cy9jbGFtcHMgdGhlIHZlcnNpb24gbnVtYmVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzU7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OnNldF92ZXJzaW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToic2V0X3ZlcnNpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoidmVyc2lvbiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjU2OiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQ6OnNldF9mcGRmTWVhc3VyZVVuaXQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjk6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzA6InNldHMgdGhlIEZQREYgbWVhc3VyZW1lbnQgdW5pdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjE4OiJjb2RlQ292ZXJhZ2VJZ25vcmUiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc1O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMyNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NjoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9uc1RyYWl0OjpzZXRfZnBkZk1lYXN1cmVVbml0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToic2V0X2ZwZGZNZWFzdXJlVW5pdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ1bml0IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMzMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fX0="; \ No newline at end of file diff --git a/files/X/J/sVBoHyeKZYMcKqcUooWw b/files/X/J/sVBoHyeKZYMcKqcUooWw deleted file mode 100644 index 039981a7f..000000000 --- a/files/X/J/sVBoHyeKZYMcKqcUooWw +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Af59b8ac8a723058061167f1458eba522-686db30a4277633da5a475b5834ba241 -s:27176:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTU6IkNsYXNzIEthbmppVGVzdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzoiS2FuamlUZXN0LnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjI0LjExLjIwMTciO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI2OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNyBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNjg2ZGIzMGE0Mjc3NjMzZGE1YTQ3NWI1ODM0YmEyNDEiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxMzoiS2FuamlUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjI0OiJ0ZXN0cy9EYXRhL0thbmppVGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjE4MzQ6Ijw/cGhwCi8qKgogKiBDbGFzcyBLYW5qaVRlc3QKICoKICogQGZpbGVzb3VyY2UgICBLYW5qaVRlc3QucGhwCiAqIEBjcmVhdGVkICAgICAgMjQuMTEuMjAxNwogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhCiAqIEBhdXRob3IgICAgICAgU21pbGV5IDxzbWlsZXlAY2hpbGxlcmxhbi5uZXQ+CiAqIEBjb3B5cmlnaHQgICAgMjAxNyBTbWlsZXkKICogQGxpY2Vuc2UgICAgICBNSVQKICovCgpuYW1lc3BhY2UgY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGE7Cgp1c2UgY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zOwp1c2UgY2hpbGxlcmxhblxRUkNvZGVcRGF0YVx7S2FuamksIFFSQ29kZURhdGFFeGNlcHRpb24sIFFSRGF0YUludGVyZmFjZX07CgovKioKICogVGVzdHMgdGhlIEthbmppIGNsYXNzCiAqLwpmaW5hbCBjbGFzcyBLYW5qaVRlc3QgZXh0ZW5kcyBEYXRhaW50ZXJmYWNlVGVzdEFic3RyYWN0ewoKCS8qKiBAaW50ZXJuYWwgKi8KCXByb3RlY3RlZCBzdHJpbmcgJHRlc3RkYXRhID0gJ+iMl+iNt+iMl+iNt+iMl+iNt+iMl+iNt+iMl+iNtyc7CgoJLyoqIEBpbnRlcm5hbCAqLwoJcHJvdGVjdGVkIGFycmF5ICAkZXhwZWN0ZWQgPSBbCgkJMTI4LCAxNzMsIDg1LCAyNiwgOTUsIDg1LCA3MCwgMTUxLAoJCTIxMywgODEsIDE2NSwgMjQ1LCA4NCwgMTA1LCAxMjUsIDg1LAoJCTI2LCA5MiwgMCwgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwKCQkxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LCAxNywgMjM2LAoJCTE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsIDE3LCAyMzYsCgkJMTk1LCAxMSwgMjIxLCA5MSwgMTQxLCAyMjAsIDE2MywgNDYsCgkJMTY1LCAzNywgMTYzLCAxNzYsIDc5LCAwLCA2NCwgNjgsCgkJOTYsIDExMywgNTQsIDE5MQoJXTsKCgkvKioKCSAqIEBpbmhlcml0RG9jCgkgKiBAaW50ZXJuYWwKCSAqLwoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldERhdGFJbnRlcmZhY2VJbnN0YW5jZShRUk9wdGlvbnMgJG9wdGlvbnMpOlFSRGF0YUludGVyZmFjZXsKCQlyZXR1cm4gbmV3IEthbmppKCRvcHRpb25zKTsKCX0KCgkvKioKCSAqIFRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhbiBpbnZhbGlkIGNoYXJhY3RlciBpcyBlbmNvdW50ZXJlZAoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdElsbGVnYWxDaGFyRXhjZXB0aW9uMSgpOnZvaWR7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihRUkNvZGVEYXRhRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ2lsbGVnYWwgY2hhciBhdCAxIFsxNjE5MV0nKTsKCgkJJHRoaXMtPmRhdGFJbnRlcmZhY2UtPnNldERhdGEoJ8ODw4MnKTsKCX0KCgkvKioKCSAqIFRlc3RzIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhbiBpbnZhbGlkIGNoYXJhY3RlciBpcyBlbmNvdW50ZXJlZAoJICovCglwdWJsaWMgZnVuY3Rpb24gdGVzdElsbGVnYWxDaGFyRXhjZXB0aW9uMigpOnZvaWR7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbihRUkNvZGVEYXRhRXhjZXB0aW9uOjpjbGFzcyk7CgkJJHRoaXMtPmV4cGVjdEV4Y2VwdGlvbk1lc3NhZ2UoJ2lsbGVnYWwgY2hhciBhdCAxJyk7CgoJCSR0aGlzLT5kYXRhSW50ZXJmYWNlLT5zZXREYXRhKCfDgycpOwoJfQoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjI3OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGEiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRGF0YSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjM3OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcS2FuamlUZXN0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTE6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM3OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcS2FuamlUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiS2FuamlUZXN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMToiVGVzdHMgdGhlIEthbmppIGNsYXNzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI2OiJjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6NDp7czo5OiJRUk9wdGlvbnMiO3M6Mjc6ImNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czo1OiJLYW5qaSI7czoyODoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxLYW5qaSI7czoxOToiUVJDb2RlRGF0YUV4Y2VwdGlvbiI7czo0MjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkNvZGVEYXRhRXhjZXB0aW9uIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO3M6Mzg6ImNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjoxO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MzoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXERhdGFpbnRlcmZhY2VUZXN0QWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNToiRGF0YWludGVyZmFjZVRlc3RBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToyOntzOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcS2FuamlUZXN0OjokdGVzdGRhdGEiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxLYW5qaVRlc3Q6OiR0ZXN0ZGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InRlc3RkYXRhIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czozMjoiJ+iMl+iNt+iMl+iNt+iMl+iNt+iMl+iNt+iMl+iNtyciO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjQ4OiJcY2hpbGxlcmxhblxRUkNvZGVUZXN0XERhdGFcS2FuamlUZXN0OjokZXhwZWN0ZWQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxLYW5qaVRlc3Q6OiRleHBlY3RlZCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6ImV4cGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0NDc6IlsxMjgsIDE3MywgODUsIDI2LCA5NSwgODUsIDcwLCAxNTEsIDIxMywgODEsIDE2NSwgMjQ1LCA4NCwgMTA1LCAxMjUsIDg1LCAyNiwgOTIsIDAsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTcsIDIzNiwgMTk1LCAxMSwgMjIxLCA5MSwgMTQxLCAyMjAsIDE2MywgNDYsIDE2NSwgMzcsIDE2MywgMTc2LCA3OSwgMCwgNjQsIDY4LCA5NiwgMTEzLCA1NCwgMTkxXSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mzp7czo2NToiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXEthbmppVGVzdDo6Z2V0RGF0YUludGVyZmFjZUluc3RhbmNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJpbmhlcml0RG9jIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJpbnRlcm5hbCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjU6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxLYW5qaVRlc3Q6OmdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6ImdldERhdGFJbnRlcmZhY2VJbnN0YW5jZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJvcHRpb25zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJRUk9wdGlvbnMiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlFSRGF0YUludGVyZmFjZSI7fX19czo2NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXEthbmppVGVzdDo6dGVzdElsbGVnYWxDaGFyRXhjZXB0aW9uMSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3MjoiVGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGFuIGludmFsaWQgY2hhcmFjdGVyIGlzIGVuY291bnRlcmVkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxLYW5qaVRlc3Q6OnRlc3RJbGxlZ2FsQ2hhckV4Y2VwdGlvbjEoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI1OiJ0ZXN0SWxsZWdhbENoYXJFeGNlcHRpb24xIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319czo2NjoiXGNoaWxsZXJsYW5cUVJDb2RlVGVzdFxEYXRhXEthbmppVGVzdDo6dGVzdElsbGVnYWxDaGFyRXhjZXB0aW9uMigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3MjoiVGVzdHMgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGFuIGludmFsaWQgY2hhcmFjdGVyIGlzIGVuY291bnRlcmVkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjY6IlxjaGlsbGVybGFuXFFSQ29kZVRlc3RcRGF0YVxLYW5qaVRlc3Q6OnRlc3RJbGxlZ2FsQ2hhckV4Y2VwdGlvbjIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI1OiJ0ZXN0SWxsZWdhbENoYXJFeGNlcHRpb24yIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9fQ=="; \ No newline at end of file diff --git a/files/Y/6/Mw+CGbkB7tfHmBLyTBdA b/files/Y/6/Mw+CGbkB7tfHmBLyTBdA deleted file mode 100644 index a3e241226..000000000 --- a/files/Y/6/Mw+CGbkB7tfHmBLyTBdA +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3Ad8b72682d00611500144fd349e7e2b22-a3579531f65919ac15172dd9862ce73c -s:30664:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTU6IkNsYXNzIFFST3B0aW9ucyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjEwOiJmaWxlc291cmNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzoiUVJPcHRpb25zLnBocCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiY3JlYXRlZCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IjA4LjEyLjIwMTUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE3OiJjaGlsbGVybGFuXFFSQ29kZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYTM1Nzk1MzFmNjU5MTlhYzE1MTcyZGQ5ODYyY2U3M2MiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxMzoiUVJPcHRpb25zLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjE3OiJzcmMvUVJPcHRpb25zLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTYwNjoiPD9waHAKLyoqCiAqIENsYXNzIFFST3B0aW9ucwogKgogKiBAZmlsZXNvdXJjZSAgIFFST3B0aW9ucy5waHAKICogQGNyZWF0ZWQgICAgICAwOC4xMi4yMDE1CiAqIEBwYWNrYWdlICAgICAgY2hpbGxlcmxhblxRUkNvZGUKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZTsKCnVzZSBjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVyQWJzdHJhY3Q7CgovKioKICogVGhlIFFSQ29kZSBzZXR0aW5ncyBjb250YWluZXIKICoKICogQHByb3BlcnR5IGludCAgICAgICAgICR2ZXJzaW9uCiAqIEBwcm9wZXJ0eSBpbnQgICAgICAgICAkdmVyc2lvbk1pbgogKiBAcHJvcGVydHkgaW50ICAgICAgICAgJHZlcnNpb25NYXgKICogQHByb3BlcnR5IGludCAgICAgICAgICRlY2NMZXZlbAogKiBAcHJvcGVydHkgaW50ICAgICAgICAgJG1hc2tQYXR0ZXJuCiAqIEBwcm9wZXJ0eSBib29sICAgICAgICAkYWRkUXVpZXR6b25lCiAqIEBwcm9wZXJ0eSBpbnQgICAgICAgICAkcXVpZXR6b25lU2l6ZQogKiBAcHJvcGVydHkgc3RyaW5nfG51bGwgJGRhdGFNb2RlT3ZlcnJpZGUKICogQHByb3BlcnR5IHN0cmluZyAgICAgICRvdXRwdXRUeXBlCiAqIEBwcm9wZXJ0eSBzdHJpbmd8bnVsbCAkb3V0cHV0SW50ZXJmYWNlCiAqIEBwcm9wZXJ0eSBzdHJpbmd8bnVsbCAkY2FjaGVmaWxlCiAqIEBwcm9wZXJ0eSBzdHJpbmcgICAgICAkZW9sCiAqIEBwcm9wZXJ0eSBpbnQgICAgICAgICAkc2NhbGUKICogQHByb3BlcnR5IHN0cmluZyAgICAgICRjc3NDbGFzcwogKiBAcHJvcGVydHkgZmxvYXQgICAgICAgJHN2Z09wYWNpdHkKICogQHByb3BlcnR5IHN0cmluZyAgICAgICRzdmdEZWZzCiAqIEBwcm9wZXJ0eSBpbnQgICAgICAgICAkc3ZnVmlld0JveFNpemUKICogQHByb3BlcnR5IHN0cmluZyAgICAgICR0ZXh0RGFyawogKiBAcHJvcGVydHkgc3RyaW5nICAgICAgJHRleHRMaWdodAogKiBAcHJvcGVydHkgc3RyaW5nICAgICAgJG1hcmt1cERhcmsKICogQHByb3BlcnR5IHN0cmluZyAgICAgICRtYXJrdXBMaWdodAogKiBAcHJvcGVydHkgYm9vbCAgICAgICAgJHJldHVyblJlc291cmNlCiAqIEBwcm9wZXJ0eSBib29sICAgICAgICAkaW1hZ2VCYXNlNjQKICogQHByb3BlcnR5IGJvb2wgICAgICAgICRpbWFnZVRyYW5zcGFyZW50CiAqIEBwcm9wZXJ0eSBhcnJheSAgICAgICAkaW1hZ2VUcmFuc3BhcmVuY3lCRwogKiBAcHJvcGVydHkgaW50ICAgICAgICAgJHBuZ0NvbXByZXNzaW9uCiAqIEBwcm9wZXJ0eSBpbnQgICAgICAgICAkanBlZ1F1YWxpdHkKICogQHByb3BlcnR5IHN0cmluZyAgICAgICRpbWFnaWNrRm9ybWF0CiAqIEBwcm9wZXJ0eSBzdHJpbmd8bnVsbCAkaW1hZ2lja0JHCiAqIEBwcm9wZXJ0eSBzdHJpbmcgICAgICAkZnBkZk1lYXN1cmVVbml0CiAqIEBwcm9wZXJ0eSBhcnJheXxudWxsICAkbW9kdWxlVmFsdWVzCiAqLwpjbGFzcyBRUk9wdGlvbnMgZXh0ZW5kcyBTZXR0aW5nc0NvbnRhaW5lckFic3RyYWN0ewoJdXNlIFFST3B0aW9uc1RyYWl0Owp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MTg6IlxjaGlsbGVybGFuXFFSQ29kZSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE4OiJcY2hpbGxlcmxhblxRUkNvZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJRUkNvZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czoyODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjExOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyODoiXGNoaWxsZXJsYW5cUVJDb2RlXFFST3B0aW9ucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IlFST3B0aW9ucyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjk6IlRoZSBRUkNvZGUgc2V0dGluZ3MgY29udGFpbmVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjMxOntpOjA7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo3OiJ2ZXJzaW9uIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxMDoidmVyc2lvbk1pbiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTA6InZlcnNpb25NYXgiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjg6ImVjY0xldmVsIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxMToibWFza1BhdHRlcm4iO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjEyOiJhZGRRdWlldHpvbmUiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NjtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjEzOiJxdWlldHpvbmVTaXplIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjc7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxNjoiZGF0YU1vZGVPdmVycmlkZSI7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6ODtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjEwOiJvdXRwdXRUeXBlIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjk7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxNToib3V0cHV0SW50ZXJmYWNlIjtzOjc6IgAqAHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxMDtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjk6ImNhY2hlZmlsZSI7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTE7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czozOiJlb2wiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTI7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo1OiJzY2FsZSI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxMztPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjg6ImNzc0NsYXNzIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE0O086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTA6InN2Z09wYWNpdHkiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEZsb2F0XyI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxNTtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjc6InN2Z0RlZnMiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTY7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxNDoic3ZnVmlld0JveFNpemUiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTc7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo4OiJ0ZXh0RGFyayI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxODtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjk6InRleHRMaWdodCI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxOTtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjEwOiJtYXJrdXBEYXJrIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjIwO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTE6Im1hcmt1cExpZ2h0IjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjIxO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTQ6InJldHVyblJlc291cmNlIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjIyO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTE6ImltYWdlQmFzZTY0IjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjIzO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTY6ImltYWdlVHJhbnNwYXJlbnQiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjQ7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxOToiaW1hZ2VUcmFuc3BhcmVuY3lCRyI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjU7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxNDoicG5nQ29tcHJlc3Npb24iO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjY7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxMToianBlZ1F1YWxpdHkiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6Mjc7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxMzoiaW1hZ2lja0Zvcm1hdCI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyODtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjk6ImltYWdpY2tCRyI7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6Mjk7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxNToiZnBkZk1lYXN1cmVVbml0IjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjMwO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTI6Im1vZHVsZVZhbHVlcyI7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fWk6MTtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbF8iOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoxNzoiY2hpbGxlcmxhblxRUkNvZGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE6e3M6MjU6IlNldHRpbmdzQ29udGFpbmVyQWJzdHJhY3QiO3M6NDU6ImNoaWxsZXJsYW5cU2V0dGluZ3NcU2V0dGluZ3NDb250YWluZXJBYnN0cmFjdCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDY6IlxjaGlsbGVybGFuXFNldHRpbmdzXFNldHRpbmdzQ29udGFpbmVyQWJzdHJhY3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNToiU2V0dGluZ3NDb250YWluZXJBYnN0cmFjdCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjE6e3M6MzM6IlxjaGlsbGVybGFuXFFSQ29kZVxRUk9wdGlvbnNUcmFpdCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMzOiJcY2hpbGxlcmxhblxRUkNvZGVcUVJPcHRpb25zVHJhaXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiUVJPcHRpb25zVHJhaXQiO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fX0="; \ No newline at end of file diff --git a/files/Z/A/ceCaotasOUz8I1ZGmVOg b/files/Z/A/ceCaotasOUz8I1ZGmVOg deleted file mode 100644 index 228846bc5..000000000 --- a/files/Z/A/ceCaotasOUz8I1ZGmVOg +++ /dev/null @@ -1,3 +0,0 @@ -1668785499 -AwuilbDvXz%3A726e195427c9d19fd16b85863921fb3d-7a01fa2d74aa3ba6ece6214d6f8d689d -s:60508:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxMjp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjU6IkludGVyZmFjZSBRUkRhdGFJbnRlcmZhY2UiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxMDoiZmlsZXNvdXJjZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTk6IlFSRGF0YUludGVyZmFjZS5waHAiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImNyZWF0ZWQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEwOiIwMS4xMi4yMDE1IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjoiY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czo2OiJTbWlsZXkiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjE6InNtaWxleUBjaGlsbGVybGFuLm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiMjAxNSBTbWlsZXkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM6Ik1JVCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiN2EwMWZhMmQ3NGFhM2JhNmVjZTYyMTRkNmY4ZDY4OWQiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoxOToiUVJEYXRhSW50ZXJmYWNlLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjI4OiJzcmMvRGF0YS9RUkRhdGFJbnRlcmZhY2UucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxMTkzMzoiPD9waHAKLyoqCiAqIEludGVyZmFjZSBRUkRhdGFJbnRlcmZhY2UKICoKICogQGZpbGVzb3VyY2UgICBRUkRhdGFJbnRlcmZhY2UucGhwCiAqIEBjcmVhdGVkICAgICAgMDEuMTIuMjAxNQogKiBAcGFja2FnZSAgICAgIGNoaWxsZXJsYW5cUVJDb2RlXERhdGEKICogQGF1dGhvciAgICAgICBTbWlsZXkgPHNtaWxleUBjaGlsbGVybGFuLm5ldD4KICogQGNvcHlyaWdodCAgICAyMDE1IFNtaWxleQogKiBAbGljZW5zZSAgICAgIE1JVAogKi8KCm5hbWVzcGFjZSBjaGlsbGVybGFuXFFSQ29kZVxEYXRhOwoKLyoqCiAqIFNwZWNpZmllcyB0aGUgbWV0aG9kcyByZXFpcmVkIGZvciB0aGUgZGF0YSBtb2R1bGVzIChOdW1iZXIsIEFscGhhbnVtLCBCeXRlIGFuZCBLYW5qaSkKICogYW5kIGhvbGRzIHZlcnNpb24gaW5mb3JtYXRpb24gaW4gc2V2ZXJhbCBjb25zdGFudHMKICovCmludGVyZmFjZSBRUkRhdGFJbnRlcmZhY2V7CgoJLyoqCgkgKiBAdmFyIGludFtdCgkgKi8KCWNvbnN0IENIQVJfTUFQX05VTUJFUiA9IFsKCQknMCcgPT4gMCwgJzEnID0+IDEsICcyJyA9PiAyLCAnMycgPT4gMywgJzQnID0+IDQsICc1JyA9PiA1LCAnNicgPT4gNiwgJzcnID0+IDcsICc4JyA9PiA4LCAnOScgPT4gOSwKCV07CgoJLyoqCgkgKiBJU08vSUVDIDE4MDA0OjIwMDAgVGFibGUgNQoJICoKCSAqIEB2YXIgaW50W10KCSAqLwoJY29uc3QgQ0hBUl9NQVBfQUxQSEFOVU0gPSBbCgkJJzAnID0+ICAwLCAnMScgPT4gIDEsICcyJyA9PiAgMiwgJzMnID0+ICAzLCAnNCcgPT4gIDQsICc1JyA9PiAgNSwgJzYnID0+ICA2LCAnNycgPT4gIDcsCgkJJzgnID0+ICA4LCAnOScgPT4gIDksICdBJyA9PiAxMCwgJ0InID0+IDExLCAnQycgPT4gMTIsICdEJyA9PiAxMywgJ0UnID0+IDE0LCAnRicgPT4gMTUsCgkJJ0cnID0+IDE2LCAnSCcgPT4gMTcsICdJJyA9PiAxOCwgJ0onID0+IDE5LCAnSycgPT4gMjAsICdMJyA9PiAyMSwgJ00nID0+IDIyLCAnTicgPT4gMjMsCgkJJ08nID0+IDI0LCAnUCcgPT4gMjUsICdRJyA9PiAyNiwgJ1InID0+IDI3LCAnUycgPT4gMjgsICdUJyA9PiAyOSwgJ1UnID0+IDMwLCAnVicgPT4gMzEsCgkJJ1cnID0+IDMyLCAnWCcgPT4gMzMsICdZJyA9PiAzNCwgJ1onID0+IDM1LCAnICcgPT4gMzYsICckJyA9PiAzNywgJyUnID0+IDM4LCAnKicgPT4gMzksCgkJJysnID0+IDQwLCAnLScgPT4gNDEsICcuJyA9PiA0MiwgJy8nID0+IDQzLCAnOicgPT4gNDQsCgldOwoKCS8qKgoJICogSVNPL0lFQyAxODAwNDoyMDAwIFRhYmxlcyA3LTExIC0gTnVtYmVyIG9mIHN5bWJvbCBjaGFyYWN0ZXJzIGFuZCBpbnB1dCBkYXRhIGNhcGFjaXR5IGZvciB2ZXJzaW9ucyAxIHRvIDQwCgkgKgoJICogQHNlZSBodHRwOi8vd3d3LnFyY29kZS5jb20vZW4vYWJvdXQvdmVyc2lvbi5odG1sCgkgKgoJICogQHZhciBpbnQgW11bXVtdCgkgKi8KCWNvbnN0IE1BWF9MRU5HVEggPVsKCS8vCXYgID0+IFtOVU1FUklDID0+IFtMLCBNLCBRLCBIIF0sIEFMUEhBTlVNID0+IFtMLCBNLCBRLCBIXSwgQklOQVJZID0+IFtMLCBNLCBRLCBIICBdLCBLQU5KSSA9PiBbTCwgTSwgUSwgSCAgIF1dICAvLyBtb2R1bGVzCgkJMSAgPT4gW1sgIDQxLCAgIDM0LCAgIDI3LCAgIDE3XSwgWyAgMjUsICAgMjAsICAgMTYsICAgMTBdLCBbICAxNywgICAxNCwgICAxMSwgICAgN10sIFsgIDEwLCAgICA4LCAgICA3LCAgICA0XV0sIC8vICAyMQoJCTIgID0+IFtbICA3NywgICA2MywgICA0OCwgICAzNF0sIFsgIDQ3LCAgIDM4LCAgIDI5LCAgIDIwXSwgWyAgMzIsICAgMjYsICAgMjAsICAgMTRdLCBbICAyMCwgICAxNiwgICAxMiwgICAgOF1dLCAvLyAgMjUKCQkzICA9PiBbWyAxMjcsICAxMDEsICAgNzcsICAgNThdLCBbICA3NywgICA2MSwgICA0NywgICAzNV0sIFsgIDUzLCAgIDQyLCAgIDMyLCAgIDI0XSwgWyAgMzIsICAgMjYsICAgMjAsICAgMTVdXSwgLy8gIDI5CgkJNCAgPT4gW1sgMTg3LCAgMTQ5LCAgMTExLCAgIDgyXSwgWyAxMTQsICAgOTAsICAgNjcsICAgNTBdLCBbICA3OCwgICA2MiwgICA0NiwgICAzNF0sIFsgIDQ4LCAgIDM4LCAgIDI4LCAgIDIxXV0sIC8vICAzMwoJCTUgID0+IFtbIDI1NSwgIDIwMiwgIDE0NCwgIDEwNl0sIFsgMTU0LCAgMTIyLCAgIDg3LCAgIDY0XSwgWyAxMDYsICAgODQsICAgNjAsICAgNDRdLCBbICA2NSwgICA1MiwgICAzNywgICAyN11dLCAvLyAgMzcKCQk2ICA9PiBbWyAzMjIsICAyNTUsICAxNzgsICAxMzldLCBbIDE5NSwgIDE1NCwgIDEwOCwgICA4NF0sIFsgMTM0LCAgMTA2LCAgIDc0LCAgIDU4XSwgWyAgODIsICAgNjUsICAgNDUsICAgMzZdXSwgLy8gIDQxCgkJNyAgPT4gW1sgMzcwLCAgMjkzLCAgMjA3LCAgMTU0XSwgWyAyMjQsICAxNzgsICAxMjUsICAgOTNdLCBbIDE1NCwgIDEyMiwgICA4NiwgICA2NF0sIFsgIDk1LCAgIDc1LCAgIDUzLCAgIDM5XV0sIC8vICA0NQoJCTggID0+IFtbIDQ2MSwgIDM2NSwgIDI1OSwgIDIwMl0sIFsgMjc5LCAgMjIxLCAgMTU3LCAgMTIyXSwgWyAxOTIsICAxNTIsICAxMDgsICAgODRdLCBbIDExOCwgICA5MywgICA2NiwgICA1Ml1dLCAvLyAgNDkKCQk5ICA9PiBbWyA1NTIsICA0MzIsICAzMTIsICAyMzVdLCBbIDMzNSwgIDI2MiwgIDE4OSwgIDE0M10sIFsgMjMwLCAgMTgwLCAgMTMwLCAgIDk4XSwgWyAxNDEsICAxMTEsICAgODAsICAgNjBdXSwgLy8gIDUzCgkJMTAgPT4gW1sgNjUyLCAgNTEzLCAgMzY0LCAgMjg4XSwgWyAzOTUsICAzMTEsICAyMjEsICAxNzRdLCBbIDI3MSwgIDIxMywgIDE1MSwgIDExOV0sIFsgMTY3LCAgMTMxLCAgIDkzLCAgIDc0XV0sIC8vICA1NwoJCTExID0+IFtbIDc3MiwgIDYwNCwgIDQyNywgIDMzMV0sIFsgNDY4LCAgMzY2LCAgMjU5LCAgMjAwXSwgWyAzMjEsICAyNTEsICAxNzcsICAxMzddLCBbIDE5OCwgIDE1NSwgIDEwOSwgICA4NV1dLCAvLyAgNjEKCQkxMiA9PiBbWyA4ODMsICA2OTEsICA0ODksICAzNzRdLCBbIDUzNSwgIDQxOSwgIDI5NiwgIDIyN10sIFsgMzY3LCAgMjg3LCAgMjAzLCAgMTU1XSwgWyAyMjYsICAxNzcsICAxMjUsICAgOTZdXSwgLy8gIDY1CgkJMTMgPT4gW1sxMDIyLCAgNzk2LCAgNTgwLCAgNDI3XSwgWyA2MTksICA0ODMsICAzNTIsICAyNTldLCBbIDQyNSwgIDMzMSwgIDI0MSwgIDE3N10sIFsgMjYyLCAgMjA0LCAgMTQ5LCAgMTA5XV0sIC8vICA2OSBOSUNFIQoJCTE0ID0+IFtbMTEwMSwgIDg3MSwgIDYyMSwgIDQ2OF0sIFsgNjY3LCAgNTI4LCAgMzc2LCAgMjgzXSwgWyA0NTgsICAzNjIsICAyNTgsICAxOTRdLCBbIDI4MiwgIDIyMywgIDE1OSwgIDEyMF1dLCAvLyAgNzMKCQkxNSA9PiBbWzEyNTAsICA5OTEsICA3MDMsICA1MzBdLCBbIDc1OCwgIDYwMCwgIDQyNiwgIDMyMV0sIFsgNTIwLCAgNDEyLCAgMjkyLCAgMjIwXSwgWyAzMjAsICAyNTQsICAxODAsICAxMzZdXSwgLy8gIDc3CgkJMTYgPT4gW1sxNDA4LCAxMDgyLCAgNzc1LCAgNjAyXSwgWyA4NTQsICA2NTYsICA0NzAsICAzNjVdLCBbIDU4NiwgIDQ1MCwgIDMyMiwgIDI1MF0sIFsgMzYxLCAgMjc3LCAgMTk4LCAgMTU0XV0sIC8vICA4MQoJCTE3ID0+IFtbMTU0OCwgMTIxMiwgIDg3NiwgIDY3NF0sIFsgOTM4LCAgNzM0LCAgNTMxLCAgNDA4XSwgWyA2NDQsICA1MDQsICAzNjQsICAyODBdLCBbIDM5NywgIDMxMCwgIDIyNCwgIDE3M11dLCAvLyAgODUKCQkxOCA9PiBbWzE3MjUsIDEzNDYsICA5NDgsICA3NDZdLCBbMTA0NiwgIDgxNiwgIDU3NCwgIDQ1Ml0sIFsgNzE4LCAgNTYwLCAgMzk0LCAgMzEwXSwgWyA0NDIsICAzNDUsICAyNDMsICAxOTFdXSwgLy8gIDg5CgkJMTkgPT4gW1sxOTAzLCAxNTAwLCAxMDYzLCAgODEzXSwgWzExNTMsICA5MDksICA2NDQsICA0OTNdLCBbIDc5MiwgIDYyNCwgIDQ0MiwgIDMzOF0sIFsgNDg4LCAgMzg0LCAgMjcyLCAgMjA4XV0sIC8vICA5MwoJCTIwID0+IFtbMjA2MSwgMTYwMCwgMTE1OSwgIDkxOV0sIFsxMjQ5LCAgOTcwLCAgNzAyLCAgNTU3XSwgWyA4NTgsICA2NjYsICA0ODIsICAzODJdLCBbIDUyOCwgIDQxMCwgIDI5NywgIDIzNV1dLCAvLyAgOTcKCQkyMSA9PiBbWzIyMzIsIDE3MDgsIDEyMjQsICA5NjldLCBbMTM1MiwgMTAzNSwgIDc0MiwgIDU4N10sIFsgOTI5LCAgNzExLCAgNTA5LCAgNDAzXSwgWyA1NzIsICA0MzgsICAzMTQsICAyNDhdXSwgLy8gMTAxCgkJMjIgPT4gW1syNDA5LCAxODcyLCAxMzU4LCAxMDU2XSwgWzE0NjAsIDExMzQsICA4MjMsICA2NDBdLCBbMTAwMywgIDc3OSwgIDU2NSwgIDQzOV0sIFsgNjE4LCAgNDgwLCAgMzQ4LCAgMjcwXV0sIC8vIDEwNQoJCTIzID0+IFtbMjYyMCwgMjA1OSwgMTQ2OCwgMTEwOF0sIFsxNTg4LCAxMjQ4LCAgODkwLCAgNjcyXSwgWzEwOTEsICA4NTcsICA2MTEsICA0NjFdLCBbIDY3MiwgIDUyOCwgIDM3NiwgIDI4NF1dLCAvLyAxMDkKCQkyNCA9PiBbWzI4MTIsIDIxODgsIDE1ODgsIDEyMjhdLCBbMTcwNCwgMTMyNiwgIDk2MywgIDc0NF0sIFsxMTcxLCAgOTExLCAgNjYxLCAgNTExXSwgWyA3MjEsICA1NjEsICA0MDcsICAzMTVdXSwgLy8gMTEzCgkJMjUgPT4gW1szMDU3LCAyMzk1LCAxNzE4LCAxMjg2XSwgWzE4NTMsIDE0NTEsIDEwNDEsICA3NzldLCBbMTI3MywgIDk5NywgIDcxNSwgIDUzNV0sIFsgNzg0LCAgNjE0LCAgNDQwLCAgMzMwXV0sIC8vIDExNwoJCTI2ID0+IFtbMzI4MywgMjU0NCwgMTgwNCwgMTQyNV0sIFsxOTkwLCAxNTQyLCAxMDk0LCAgODY0XSwgWzEzNjcsIDEwNTksICA3NTEsICA1OTNdLCBbIDg0MiwgIDY1MiwgIDQ2MiwgIDM2NV1dLCAvLyAxMjEKCQkyNyA9PiBbWzM1MTcsIDI3MDEsIDE5MzMsIDE1MDFdLCBbMjEzMiwgMTYzNywgMTE3MiwgIDkxMF0sIFsxNDY1LCAxMTI1LCAgODA1LCAgNjI1XSwgWyA5MDIsICA2OTIsICA0OTYsICAzODVdXSwgLy8gMTI1CgkJMjggPT4gW1szNjY5LCAyODU3LCAyMDg1LCAxNTgxXSwgWzIyMjMsIDE3MzIsIDEyNjMsICA5NThdLCBbMTUyOCwgMTE5MCwgIDg2OCwgIDY1OF0sIFsgOTQwLCAgNzMyLCAgNTM0LCAgNDA1XV0sIC8vIDEyOQoJCTI5ID0+IFtbMzkwOSwgMzAzNSwgMjE4MSwgMTY3N10sIFsyMzY5LCAxODM5LCAxMzIyLCAxMDE2XSwgWzE2MjgsIDEyNjQsICA5MDgsICA2OThdLCBbMTAwMiwgIDc3OCwgIDU1OSwgIDQzMF1dLCAvLyAxMzMKCQkzMCA9PiBbWzQxNTgsIDMyODksIDIzNTgsIDE3ODJdLCBbMjUyMCwgMTk5NCwgMTQyOSwgMTA4MF0sIFsxNzMyLCAxMzcwLCAgOTgyLCAgNzQyXSwgWzEwNjYsICA4NDMsICA2MDQsICA0NTddXSwgLy8gMTM3CgkJMzEgPT4gW1s0NDE3LCAzNDg2LCAyNDczLCAxODk3XSwgWzI2NzcsIDIxMTMsIDE0OTksIDExNTBdLCBbMTg0MCwgMTQ1MiwgMTAzMCwgIDc5MF0sIFsxMTMyLCAgODk0LCAgNjM0LCAgNDg2XV0sIC8vIDE0MQoJCTMyID0+IFtbNDY4NiwgMzY5MywgMjY3MCwgMjAyMl0sIFsyODQwLCAyMjM4LCAxNjE4LCAxMjI2XSwgWzE5NTIsIDE1MzgsIDExMTIsICA4NDJdLCBbMTIwMSwgIDk0NywgIDY4NCwgIDUxOF1dLCAvLyAxNDUKCQkzMyA9PiBbWzQ5NjUsIDM5MDksIDI4MDUsIDIxNTddLCBbMzAwOSwgMjM2OSwgMTcwMCwgMTMwN10sIFsyMDY4LCAxNjI4LCAxMTY4LCAgODk4XSwgWzEyNzMsIDEwMDIsICA3MTksICA1NTNdXSwgLy8gMTQ5CgkJMzQgPT4gW1s1MjUzLCA0MTM0LCAyOTQ5LCAyMzAxXSwgWzMxODMsIDI1MDYsIDE3ODcsIDEzOTRdLCBbMjE4OCwgMTcyMiwgMTIyOCwgIDk1OF0sIFsxMzQ3LCAxMDYwLCAgNzU2LCAgNTkwXV0sIC8vIDE1MwoJCTM1ID0+IFtbNTUyOSwgNDM0MywgMzA4MSwgMjM2MV0sIFszMzUxLCAyNjMyLCAxODY3LCAxNDMxXSwgWzIzMDMsIDE4MDksIDEyODMsICA5ODNdLCBbMTQxNywgMTExMywgIDc5MCwgIDYwNV1dLCAvLyAxNTcKCQkzNiA9PiBbWzU4MzYsIDQ1ODgsIDMyNDQsIDI1MjRdLCBbMzUzNywgMjc4MCwgMTk2NiwgMTUzMF0sIFsyNDMxLCAxOTExLCAxMzUxLCAxMDUxXSwgWzE0OTYsIDExNzYsICA4MzIsICA2NDddXSwgLy8gMTYxCgkJMzcgPT4gW1s2MTUzLCA0Nzc1LCAzNDE3LCAyNjI1XSwgWzM3MjksIDI4OTQsIDIwNzEsIDE1OTFdLCBbMjU2MywgMTk4OSwgMTQyMywgMTA5M10sIFsxNTc3LCAxMjI0LCAgODc2LCAgNjczXV0sIC8vIDE2NQoJCTM4ID0+IFtbNjQ3OSwgNTAzOSwgMzU5OSwgMjczNV0sIFszOTI3LCAzMDU0LCAyMTgxLCAxNjU4XSwgWzI2OTksIDIwOTksIDE0OTksIDExMzldLCBbMTY2MSwgMTI5MiwgIDkyMywgIDcwMV1dLCAvLyAxNjkKCQkzOSA9PiBbWzY3NDMsIDUzMTMsIDM3OTEsIDI5MjddLCBbNDA4NywgMzIyMCwgMjI5OCwgMTc3NF0sIFsyODA5LCAyMjEzLCAxNTc5LCAxMjE5XSwgWzE3MjksIDEzNjIsICA5NzIsICA3NTBdXSwgLy8gMTczCgkJNDAgPT4gW1s3MDg5LCA1NTk2LCAzOTkzLCAzMDU3XSwgWzQyOTYsIDMzOTEsIDI0MjAsIDE4NTJdLCBbMjk1MywgMjMzMSwgMTY2MywgMTI3M10sIFsxODE3LCAxNDM1LCAxMDI0LCAgNzg0XV0sIC8vIDE3NwoJXTsKCgkvKioKCSAqIElTTy9JRUMgMTgwMDQ6MjAwMCBUYWJsZXMgNy0xMSAtIE51bWJlciBvZiBzeW1ib2wgY2hhcmFjdGVycyBhbmQgaW5wdXQgZGF0YSBjYXBhY2l0eSBmb3IgdmVyc2lvbnMgMSB0byA0MAoJICoKCSAqIEB2YXIgaW50IFtdW10KCSAqLwoJY29uc3QgTUFYX0JJVFMgPSBbCgkJLy8gdmVyc2lvbiA9PiBbTCwgTSwgUSwgSCBdCgkJMSAgPT4gWyAgMTUyLCAgIDEyOCwgICAxMDQsICAgIDcyXSwKCQkyICA9PiBbICAyNzIsICAgMjI0LCAgIDE3NiwgICAxMjhdLAoJCTMgID0+IFsgIDQ0MCwgICAzNTIsICAgMjcyLCAgIDIwOF0sCgkJNCAgPT4gWyAgNjQwLCAgIDUxMiwgICAzODQsICAgMjg4XSwKCQk1ICA9PiBbICA4NjQsICAgNjg4LCAgIDQ5NiwgICAzNjhdLAoJCTYgID0+IFsgMTA4OCwgICA4NjQsICAgNjA4LCAgIDQ4MF0sCgkJNyAgPT4gWyAxMjQ4LCAgIDk5MiwgICA3MDQsICAgNTI4XSwKCQk4ICA9PiBbIDE1NTIsICAxMjMyLCAgIDg4MCwgICA2ODhdLAoJCTkgID0+IFsgMTg1NiwgIDE0NTYsICAxMDU2LCAgIDgwMF0sCgkJMTAgPT4gWyAyMTkyLCAgMTcyOCwgIDEyMzIsICAgOTc2XSwKCQkxMSA9PiBbIDI1OTIsICAyMDMyLCAgMTQ0MCwgIDExMjBdLAoJCTEyID0+IFsgMjk2MCwgIDIzMjAsICAxNjQ4LCAgMTI2NF0sCgkJMTMgPT4gWyAzNDI0LCAgMjY3MiwgIDE5NTIsICAxNDQwXSwKCQkxNCA9PiBbIDM2ODgsICAyOTIwLCAgMjA4OCwgIDE1NzZdLAoJCTE1ID0+IFsgNDE4NCwgIDMzMjAsICAyMzYwLCAgMTc4NF0sCgkJMTYgPT4gWyA0NzEyLCAgMzYyNCwgIDI2MDAsICAyMDI0XSwKCQkxNyA9PiBbIDUxNzYsICA0MDU2LCAgMjkzNiwgIDIyNjRdLAoJCTE4ID0+IFsgNTc2OCwgIDQ1MDQsICAzMTc2LCAgMjUwNF0sCgkJMTkgPT4gWyA2MzYwLCAgNTAxNiwgIDM1NjAsICAyNzI4XSwKCQkyMCA9PiBbIDY4ODgsICA1MzUyLCAgMzg4MCwgIDMwODBdLAoJCTIxID0+IFsgNzQ1NiwgIDU3MTIsICA0MDk2LCAgMzI0OF0sCgkJMjIgPT4gWyA4MDQ4LCAgNjI1NiwgIDQ1NDQsICAzNTM2XSwKCQkyMyA9PiBbIDg3NTIsICA2ODgwLCAgNDkxMiwgIDM3MTJdLAoJCTI0ID0+IFsgOTM5MiwgIDczMTIsICA1MzEyLCAgNDExMl0sCgkJMjUgPT4gWzEwMjA4LCAgODAwMCwgIDU3NDQsICA0MzA0XSwKCQkyNiA9PiBbMTA5NjAsICA4NDk2LCAgNjAzMiwgIDQ3NjhdLAoJCTI3ID0+IFsxMTc0NCwgIDkwMjQsICA2NDY0LCAgNTAyNF0sCgkJMjggPT4gWzEyMjQ4LCAgOTU0NCwgIDY5NjgsICA1Mjg4XSwKCQkyOSA9PiBbMTMwNDgsIDEwMTM2LCAgNzI4OCwgIDU2MDhdLAoJCTMwID0+IFsxMzg4MCwgMTA5ODQsICA3ODgwLCAgNTk2MF0sCgkJMzEgPT4gWzE0NzQ0LCAxMTY0MCwgIDgyNjQsICA2MzQ0XSwKCQkzMiA9PiBbMTU2NDAsIDEyMzI4LCAgODkyMCwgIDY3NjBdLAoJCTMzID0+IFsxNjU2OCwgMTMwNDgsICA5MzY4LCAgNzIwOF0sCgkJMzQgPT4gWzE3NTI4LCAxMzgwMCwgIDk4NDgsICA3Njg4XSwKCQkzNSA9PiBbMTg0NDgsIDE0NDk2LCAxMDI4OCwgIDc4ODhdLAoJCTM2ID0+IFsxOTQ3MiwgMTUzMTIsIDEwODMyLCAgODQzMl0sCgkJMzcgPT4gWzIwNTI4LCAxNTkzNiwgMTE0MDgsICA4NzY4XSwKCQkzOCA9PiBbMjE2MTYsIDE2ODE2LCAxMjAxNiwgIDkxMzZdLAoJCTM5ID0+IFsyMjQ5NiwgMTc3MjgsIDEyNjU2LCAgOTc3Nl0sCgkJNDAgPT4gWzIzNjQ4LCAxODY3MiwgMTMzMjgsIDEwMjA4XSwKCV07CgoJLyoqCgkgKiBAc2VlIGh0dHA6Ly93d3cudGhvbmt5LmNvbS9xci1jb2RlLXR1dG9yaWFsL2Vycm9yLWNvcnJlY3Rpb24tdGFibGUKCSAqCgkgKiBAdmFyIGludCBbXVtdW10KCSAqLwoJY29uc3QgUlNCTE9DS1MgPSBbCgkJMSAgPT4gW1sgMSwgIDAsICAyNiwgIDE5XSwgWyAxLCAgMCwgMjYsIDE2XSwgWyAxLCAgMCwgMjYsIDEzXSwgWyAxLCAgMCwgMjYsICA5XV0sCgkJMiAgPT4gW1sgMSwgIDAsICA0NCwgIDM0XSwgWyAxLCAgMCwgNDQsIDI4XSwgWyAxLCAgMCwgNDQsIDIyXSwgWyAxLCAgMCwgNDQsIDE2XV0sCgkJMyAgPT4gW1sgMSwgIDAsICA3MCwgIDU1XSwgWyAxLCAgMCwgNzAsIDQ0XSwgWyAyLCAgMCwgMzUsIDE3XSwgWyAyLCAgMCwgMzUsIDEzXV0sCgkJNCAgPT4gW1sgMSwgIDAsIDEwMCwgIDgwXSwgWyAyLCAgMCwgNTAsIDMyXSwgWyAyLCAgMCwgNTAsIDI0XSwgWyA0LCAgMCwgMjUsICA5XV0sCgkJNSAgPT4gW1sgMSwgIDAsIDEzNCwgMTA4XSwgWyAyLCAgMCwgNjcsIDQzXSwgWyAyLCAgMiwgMzMsIDE1XSwgWyAyLCAgMiwgMzMsIDExXV0sCgkJNiAgPT4gW1sgMiwgIDAsICA4NiwgIDY4XSwgWyA0LCAgMCwgNDMsIDI3XSwgWyA0LCAgMCwgNDMsIDE5XSwgWyA0LCAgMCwgNDMsIDE1XV0sCgkJNyAgPT4gW1sgMiwgIDAsICA5OCwgIDc4XSwgWyA0LCAgMCwgNDksIDMxXSwgWyAyLCAgNCwgMzIsIDE0XSwgWyA0LCAgMSwgMzksIDEzXV0sCgkJOCAgPT4gW1sgMiwgIDAsIDEyMSwgIDk3XSwgWyAyLCAgMiwgNjAsIDM4XSwgWyA0LCAgMiwgNDAsIDE4XSwgWyA0LCAgMiwgNDAsIDE0XV0sCgkJOSAgPT4gW1sgMiwgIDAsIDE0NiwgMTE2XSwgWyAzLCAgMiwgNTgsIDM2XSwgWyA0LCAgNCwgMzYsIDE2XSwgWyA0LCAgNCwgMzYsIDEyXV0sCgkJMTAgPT4gW1sgMiwgIDIsICA4NiwgIDY4XSwgWyA0LCAgMSwgNjksIDQzXSwgWyA2LCAgMiwgNDMsIDE5XSwgWyA2LCAgMiwgNDMsIDE1XV0sCgkJMTEgPT4gW1sgNCwgIDAsIDEwMSwgIDgxXSwgWyAxLCAgNCwgODAsIDUwXSwgWyA0LCAgNCwgNTAsIDIyXSwgWyAzLCAgOCwgMzYsIDEyXV0sCgkJMTIgPT4gW1sgMiwgIDIsIDExNiwgIDkyXSwgWyA2LCAgMiwgNTgsIDM2XSwgWyA0LCAgNiwgNDYsIDIwXSwgWyA3LCAgNCwgNDIsIDE0XV0sCgkJMTMgPT4gW1sgNCwgIDAsIDEzMywgMTA3XSwgWyA4LCAgMSwgNTksIDM3XSwgWyA4LCAgNCwgNDQsIDIwXSwgWzEyLCAgNCwgMzMsIDExXV0sCgkJMTQgPT4gW1sgMywgIDEsIDE0NSwgMTE1XSwgWyA0LCAgNSwgNjQsIDQwXSwgWzExLCAgNSwgMzYsIDE2XSwgWzExLCAgNSwgMzYsIDEyXV0sCgkJMTUgPT4gW1sgNSwgIDEsIDEwOSwgIDg3XSwgWyA1LCAgNSwgNjUsIDQxXSwgWyA1LCAgNywgNTQsIDI0XSwgWzExLCAgNywgMzYsIDEyXV0sCgkJMTYgPT4gW1sgNSwgIDEsIDEyMiwgIDk4XSwgWyA3LCAgMywgNzMsIDQ1XSwgWzE1LCAgMiwgNDMsIDE5XSwgWyAzLCAxMywgNDUsIDE1XV0sCgkJMTcgPT4gW1sgMSwgIDUsIDEzNSwgMTA3XSwgWzEwLCAgMSwgNzQsIDQ2XSwgWyAxLCAxNSwgNTAsIDIyXSwgWyAyLCAxNywgNDIsIDE0XV0sCgkJMTggPT4gW1sgNSwgIDEsIDE1MCwgMTIwXSwgWyA5LCAgNCwgNjksIDQzXSwgWzE3LCAgMSwgNTAsIDIyXSwgWyAyLCAxOSwgNDIsIDE0XV0sCgkJMTkgPT4gW1sgMywgIDQsIDE0MSwgMTEzXSwgWyAzLCAxMSwgNzAsIDQ0XSwgWzE3LCAgNCwgNDcsIDIxXSwgWyA5LCAxNiwgMzksIDEzXV0sCgkJMjAgPT4gW1sgMywgIDUsIDEzNSwgMTA3XSwgWyAzLCAxMywgNjcsIDQxXSwgWzE1LCAgNSwgNTQsIDI0XSwgWzE1LCAxMCwgNDMsIDE1XV0sCgkJMjEgPT4gW1sgNCwgIDQsIDE0NCwgMTE2XSwgWzE3LCAgMCwgNjgsIDQyXSwgWzE3LCAgNiwgNTAsIDIyXSwgWzE5LCAgNiwgNDYsIDE2XV0sCgkJMjIgPT4gW1sgMiwgIDcsIDEzOSwgMTExXSwgWzE3LCAgMCwgNzQsIDQ2XSwgWyA3LCAxNiwgNTQsIDI0XSwgWzM0LCAgMCwgMzcsIDEzXV0sCgkJMjMgPT4gW1sgNCwgIDUsIDE1MSwgMTIxXSwgWyA0LCAxNCwgNzUsIDQ3XSwgWzExLCAxNCwgNTQsIDI0XSwgWzE2LCAxNCwgNDUsIDE1XV0sCgkJMjQgPT4gW1sgNiwgIDQsIDE0NywgMTE3XSwgWyA2LCAxNCwgNzMsIDQ1XSwgWzExLCAxNiwgNTQsIDI0XSwgWzMwLCAgMiwgNDYsIDE2XV0sCgkJMjUgPT4gW1sgOCwgIDQsIDEzMiwgMTA2XSwgWyA4LCAxMywgNzUsIDQ3XSwgWyA3LCAyMiwgNTQsIDI0XSwgWzIyLCAxMywgNDUsIDE1XV0sCgkJMjYgPT4gW1sxMCwgIDIsIDE0MiwgMTE0XSwgWzE5LCAgNCwgNzQsIDQ2XSwgWzI4LCAgNiwgNTAsIDIyXSwgWzMzLCAgNCwgNDYsIDE2XV0sCgkJMjcgPT4gW1sgOCwgIDQsIDE1MiwgMTIyXSwgWzIyLCAgMywgNzMsIDQ1XSwgWyA4LCAyNiwgNTMsIDIzXSwgWzEyLCAyOCwgNDUsIDE1XV0sCgkJMjggPT4gW1sgMywgMTAsIDE0NywgMTE3XSwgWyAzLCAyMywgNzMsIDQ1XSwgWyA0LCAzMSwgNTQsIDI0XSwgWzExLCAzMSwgNDUsIDE1XV0sCgkJMjkgPT4gW1sgNywgIDcsIDE0NiwgMTE2XSwgWzIxLCAgNywgNzMsIDQ1XSwgWyAxLCAzNywgNTMsIDIzXSwgWzE5LCAyNiwgNDUsIDE1XV0sCgkJMzAgPT4gW1sgNSwgMTAsIDE0NSwgMTE1XSwgWzE5LCAxMCwgNzUsIDQ3XSwgWzE1LCAyNSwgNTQsIDI0XSwgWzIzLCAyNSwgNDUsIDE1XV0sCgkJMzEgPT4gW1sxMywgIDMsIDE0NSwgMTE1XSwgWyAyLCAyOSwgNzQsIDQ2XSwgWzQyLCAgMSwgNTQsIDI0XSwgWzIzLCAyOCwgNDUsIDE1XV0sCgkJMzIgPT4gW1sxNywgIDAsIDE0NSwgMTE1XSwgWzEwLCAyMywgNzQsIDQ2XSwgWzEwLCAzNSwgNTQsIDI0XSwgWzE5LCAzNSwgNDUsIDE1XV0sCgkJMzMgPT4gW1sxNywgIDEsIDE0NSwgMTE1XSwgWzE0LCAyMSwgNzQsIDQ2XSwgWzI5LCAxOSwgNTQsIDI0XSwgWzExLCA0NiwgNDUsIDE1XV0sCgkJMzQgPT4gW1sxMywgIDYsIDE0NSwgMTE1XSwgWzE0LCAyMywgNzQsIDQ2XSwgWzQ0LCAgNywgNTQsIDI0XSwgWzU5LCAgMSwgNDYsIDE2XV0sCgkJMzUgPT4gW1sxMiwgIDcsIDE1MSwgMTIxXSwgWzEyLCAyNiwgNzUsIDQ3XSwgWzM5LCAxNCwgNTQsIDI0XSwgWzIyLCA0MSwgNDUsIDE1XV0sCgkJMzYgPT4gW1sgNiwgMTQsIDE1MSwgMTIxXSwgWyA2LCAzNCwgNzUsIDQ3XSwgWzQ2LCAxMCwgNTQsIDI0XSwgWyAyLCA2NCwgNDUsIDE1XV0sCgkJMzcgPT4gW1sxNywgIDQsIDE1MiwgMTIyXSwgWzI5LCAxNCwgNzQsIDQ2XSwgWzQ5LCAxMCwgNTQsIDI0XSwgWzI0LCA0NiwgNDUsIDE1XV0sCgkJMzggPT4gW1sgNCwgMTgsIDE1MiwgMTIyXSwgWzEzLCAzMiwgNzQsIDQ2XSwgWzQ4LCAxNCwgNTQsIDI0XSwgWzQyLCAzMiwgNDUsIDE1XV0sCgkJMzkgPT4gW1syMCwgIDQsIDE0NywgMTE3XSwgWzQwLCAgNywgNzUsIDQ3XSwgWzQzLCAyMiwgNTQsIDI0XSwgWzEwLCA2NywgNDUsIDE1XV0sCgkJNDAgPT4gW1sxOSwgIDYsIDE0OCwgMTE4XSwgWzE4LCAzMSwgNzUsIDQ3XSwgWzM0LCAzNCwgNTQsIDI0XSwgWzIwLCA2MSwgNDUsIDE1XV0sCgldOwoKCS8qKgoJICogU2V0cyB0aGUgZGF0YSBzdHJpbmcgKGludGVybmFsbHkgY2FsbGVkIGJ5IHRoZSBjb25zdHJ1Y3RvcikKCSAqLwoJcHVibGljIGZ1bmN0aW9uIHNldERhdGEoc3RyaW5nICRkYXRhKTpRUkRhdGFJbnRlcmZhY2U7CgoJLyoqCgkgKiByZXR1cm5zIGEgZnJlc2ggbWF0cml4IG9iamVjdCB3aXRoIHRoZSBkYXRhIHdyaXR0ZW4gZm9yIHRoZSBnaXZlbiAkbWFza1BhdHRlcm4KCSAqLwoJcHVibGljIGZ1bmN0aW9uIGluaXRNYXRyaXgoaW50ICRtYXNrUGF0dGVybiwgYm9vbCAkdGVzdCA9IG51bGwpOlFSTWF0cml4OwoKfQoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjIzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IkRhdGEiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YToxOntzOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2UiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXyI6Njp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUVJEYXRhSW50ZXJmYWNlIjt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTM2OiJTcGVjaWZpZXMgdGhlIG1ldGhvZHMgcmVxaXJlZCBmb3IgdGhlIGRhdGEgbW9kdWxlcyAoTnVtYmVyLCBBbHBoYW51bSwgQnl0ZSBhbmQgS2FuamkpCmFuZCBob2xkcyB2ZXJzaW9uIGluZm9ybWF0aW9uIGluIHNldmVyYWwgY29uc3RhbnRzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjIyOiJjaGlsbGVybGFuXFFSQ29kZVxEYXRhIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEludGVyZmFjZV8AY29uc3RhbnRzIjthOjU6e3M6NTY6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZTo6Q0hBUl9NQVBfTlVNQkVSIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU2OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2U6OkNIQVJfTUFQX05VTUJFUiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJDSEFSX01BUF9OVU1CRVIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjEwMDoiWycwJyA9PiAwLCAnMScgPT4gMSwgJzInID0+IDIsICczJyA9PiAzLCAnNCcgPT4gNCwgJzUnID0+IDUsICc2JyA9PiA2LCAnNycgPT4gNywgJzgnID0+IDgsICc5JyA9PiA5XSI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fX1zOjU4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2U6OkNIQVJfTUFQX0FMUEhBTlVNIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo1OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU4OiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2U6OkNIQVJfTUFQX0FMUEhBTlVNIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IkNIQVJfTUFQX0FMUEhBTlVNIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI2OiJJU08vSUVDIDE4MDA0OjIwMDAgVGFibGUgNSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7czo0ODU6IlsnMCcgPT4gMCwgJzEnID0+IDEsICcyJyA9PiAyLCAnMycgPT4gMywgJzQnID0+IDQsICc1JyA9PiA1LCAnNicgPT4gNiwgJzcnID0+IDcsICc4JyA9PiA4LCAnOScgPT4gOSwgJ0EnID0+IDEwLCAnQicgPT4gMTEsICdDJyA9PiAxMiwgJ0QnID0+IDEzLCAnRScgPT4gMTQsICdGJyA9PiAxNSwgJ0cnID0+IDE2LCAnSCcgPT4gMTcsICdJJyA9PiAxOCwgJ0onID0+IDE5LCAnSycgPT4gMjAsICdMJyA9PiAyMSwgJ00nID0+IDIyLCAnTicgPT4gMjMsICdPJyA9PiAyNCwgJ1AnID0+IDI1LCAnUScgPT4gMjYsICdSJyA9PiAyNywgJ1MnID0+IDI4LCAnVCcgPT4gMjksICdVJyA9PiAzMCwgJ1YnID0+IDMxLCAnVycgPT4gMzIsICdYJyA9PiAzMywgJ1knID0+IDM0LCAnWicgPT4gMzUsICcgJyA9PiAzNiwgJyQnID0+IDM3LCAnJScgPT4gMzgsICcqJyA9PiAzOSwgJysnID0+IDQwLCAnLScgPT4gNDEsICcuJyA9PiA0MiwgJy8nID0+IDQzLCAnOicgPT4gNDRdIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NTE6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZTo6TUFYX0xFTkdUSCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlOjpNQVhfTEVOR1RIIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6Ik1BWF9MRU5HVEgiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTA1OiJJU08vSUVDIDE4MDA0OjIwMDAgVGFibGVzIDctMTEgLSBOdW1iZXIgb2Ygc3ltYm9sIGNoYXJhY3RlcnMgYW5kIGlucHV0IGRhdGEgY2FwYWNpdHkgZm9yIHZlcnNpb25zIDEgdG8gNDAiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwiOjE6e3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsAHVyaSI7czo0MzoiaHR0cDovL3d3dy5xcmNvZGUuY29tL2VuL2Fib3V0L3ZlcnNpb24uaHRtbCI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY6IltdW11bXSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6NDY5NzoiWwogICAgLy8JdiAgPT4gW05VTUVSSUMgPT4gW0wsIE0sIFEsIEggXSwgQUxQSEFOVU0gPT4gW0wsIE0sIFEsIEhdLCBCSU5BUlkgPT4gW0wsIE0sIFEsIEggIF0sIEtBTkpJID0+IFtMLCBNLCBRLCBIICAgXV0gIC8vIG1vZHVsZXMKICAgIDEgPT4gW1s0MSwgMzQsIDI3LCAxN10sIFsyNSwgMjAsIDE2LCAxMF0sIFsxNywgMTQsIDExLCA3XSwgWzEwLCA4LCA3LCA0XV0sCiAgICAvLyAgMjEKICAgIDIgPT4gW1s3NywgNjMsIDQ4LCAzNF0sIFs0NywgMzgsIDI5LCAyMF0sIFszMiwgMjYsIDIwLCAxNF0sIFsyMCwgMTYsIDEyLCA4XV0sCiAgICAvLyAgMjUKICAgIDMgPT4gW1sxMjcsIDEwMSwgNzcsIDU4XSwgWzc3LCA2MSwgNDcsIDM1XSwgWzUzLCA0MiwgMzIsIDI0XSwgWzMyLCAyNiwgMjAsIDE1XV0sCiAgICAvLyAgMjkKICAgIDQgPT4gW1sxODcsIDE0OSwgMTExLCA4Ml0sIFsxMTQsIDkwLCA2NywgNTBdLCBbNzgsIDYyLCA0NiwgMzRdLCBbNDgsIDM4LCAyOCwgMjFdXSwKICAgIC8vICAzMwogICAgNSA9PiBbWzI1NSwgMjAyLCAxNDQsIDEwNl0sIFsxNTQsIDEyMiwgODcsIDY0XSwgWzEwNiwgODQsIDYwLCA0NF0sIFs2NSwgNTIsIDM3LCAyN11dLAogICAgLy8gIDM3CiAgICA2ID0+IFtbMzIyLCAyNTUsIDE3OCwgMTM5XSwgWzE5NSwgMTU0LCAxMDgsIDg0XSwgWzEzNCwgMTA2LCA3NCwgNThdLCBbODIsIDY1LCA0NSwgMzZdXSwKICAgIC8vICA0MQogICAgNyA9PiBbWzM3MCwgMjkzLCAyMDcsIDE1NF0sIFsyMjQsIDE3OCwgMTI1LCA5M10sIFsxNTQsIDEyMiwgODYsIDY0XSwgWzk1LCA3NSwgNTMsIDM5XV0sCiAgICAvLyAgNDUKICAgIDggPT4gW1s0NjEsIDM2NSwgMjU5LCAyMDJdLCBbMjc5LCAyMjEsIDE1NywgMTIyXSwgWzE5MiwgMTUyLCAxMDgsIDg0XSwgWzExOCwgOTMsIDY2LCA1Ml1dLAogICAgLy8gIDQ5CiAgICA5ID0+IFtbNTUyLCA0MzIsIDMxMiwgMjM1XSwgWzMzNSwgMjYyLCAxODksIDE0M10sIFsyMzAsIDE4MCwgMTMwLCA5OF0sIFsxNDEsIDExMSwgODAsIDYwXV0sCiAgICAvLyAgNTMKICAgIDEwID0+IFtbNjUyLCA1MTMsIDM2NCwgMjg4XSwgWzM5NSwgMzExLCAyMjEsIDE3NF0sIFsyNzEsIDIxMywgMTUxLCAxMTldLCBbMTY3LCAxMzEsIDkzLCA3NF1dLAogICAgLy8gIDU3CiAgICAxMSA9PiBbWzc3MiwgNjA0LCA0MjcsIDMzMV0sIFs0NjgsIDM2NiwgMjU5LCAyMDBdLCBbMzIxLCAyNTEsIDE3NywgMTM3XSwgWzE5OCwgMTU1LCAxMDksIDg1XV0sCiAgICAvLyAgNjEKICAgIDEyID0+IFtbODgzLCA2OTEsIDQ4OSwgMzc0XSwgWzUzNSwgNDE5LCAyOTYsIDIyN10sIFszNjcsIDI4NywgMjAzLCAxNTVdLCBbMjI2LCAxNzcsIDEyNSwgOTZdXSwKICAgIC8vICA2NQogICAgMTMgPT4gW1sxMDIyLCA3OTYsIDU4MCwgNDI3XSwgWzYxOSwgNDgzLCAzNTIsIDI1OV0sIFs0MjUsIDMzMSwgMjQxLCAxNzddLCBbMjYyLCAyMDQsIDE0OSwgMTA5XV0sCiAgICAvLyAgNjkgTklDRSEKICAgIDE0ID0+IFtbMTEwMSwgODcxLCA2MjEsIDQ2OF0sIFs2NjcsIDUyOCwgMzc2LCAyODNdLCBbNDU4LCAzNjIsIDI1OCwgMTk0XSwgWzI4MiwgMjIzLCAxNTksIDEyMF1dLAogICAgLy8gIDczCiAgICAxNSA9PiBbWzEyNTAsIDk5MSwgNzAzLCA1MzBdLCBbNzU4LCA2MDAsIDQyNiwgMzIxXSwgWzUyMCwgNDEyLCAyOTIsIDIyMF0sIFszMjAsIDI1NCwgMTgwLCAxMzZdXSwKICAgIC8vICA3NwogICAgMTYgPT4gW1sxNDA4LCAxMDgyLCA3NzUsIDYwMl0sIFs4NTQsIDY1NiwgNDcwLCAzNjVdLCBbNTg2LCA0NTAsIDMyMiwgMjUwXSwgWzM2MSwgMjc3LCAxOTgsIDE1NF1dLAogICAgLy8gIDgxCiAgICAxNyA9PiBbWzE1NDgsIDEyMTIsIDg3NiwgNjc0XSwgWzkzOCwgNzM0LCA1MzEsIDQwOF0sIFs2NDQsIDUwNCwgMzY0LCAyODBdLCBbMzk3LCAzMTAsIDIyNCwgMTczXV0sCiAgICAvLyAgODUKICAgIDE4ID0+IFtbMTcyNSwgMTM0NiwgOTQ4LCA3NDZdLCBbMTA0NiwgODE2LCA1NzQsIDQ1Ml0sIFs3MTgsIDU2MCwgMzk0LCAzMTBdLCBbNDQyLCAzNDUsIDI0MywgMTkxXV0sCiAgICAvLyAgODkKICAgIDE5ID0+IFtbMTkwMywgMTUwMCwgMTA2MywgODEzXSwgWzExNTMsIDkwOSwgNjQ0LCA0OTNdLCBbNzkyLCA2MjQsIDQ0MiwgMzM4XSwgWzQ4OCwgMzg0LCAyNzIsIDIwOF1dLAogICAgLy8gIDkzCiAgICAyMCA9PiBbWzIwNjEsIDE2MDAsIDExNTksIDkxOV0sIFsxMjQ5LCA5NzAsIDcwMiwgNTU3XSwgWzg1OCwgNjY2LCA0ODIsIDM4Ml0sIFs1MjgsIDQxMCwgMjk3LCAyMzVdXSwKICAgIC8vICA5NwogICAgMjEgPT4gW1syMjMyLCAxNzA4LCAxMjI0LCA5NjldLCBbMTM1MiwgMTAzNSwgNzQyLCA1ODddLCBbOTI5LCA3MTEsIDUwOSwgNDAzXSwgWzU3MiwgNDM4LCAzMTQsIDI0OF1dLAogICAgLy8gMTAxCiAgICAyMiA9PiBbWzI0MDksIDE4NzIsIDEzNTgsIDEwNTZdLCBbMTQ2MCwgMTEzNCwgODIzLCA2NDBdLCBbMTAwMywgNzc5LCA1NjUsIDQzOV0sIFs2MTgsIDQ4MCwgMzQ4LCAyNzBdXSwKICAgIC8vIDEwNQogICAgMjMgPT4gW1syNjIwLCAyMDU5LCAxNDY4LCAxMTA4XSwgWzE1ODgsIDEyNDgsIDg5MCwgNjcyXSwgWzEwOTEsIDg1NywgNjExLCA0NjFdLCBbNjcyLCA1MjgsIDM3NiwgMjg0XV0sCiAgICAvLyAxMDkKICAgIDI0ID0+IFtbMjgxMiwgMjE4OCwgMTU4OCwgMTIyOF0sIFsxNzA0LCAxMzI2LCA5NjMsIDc0NF0sIFsxMTcxLCA5MTEsIDY2MSwgNTExXSwgWzcyMSwgNTYxLCA0MDcsIDMxNV1dLAogICAgLy8gMTEzCiAgICAyNSA9PiBbWzMwNTcsIDIzOTUsIDE3MTgsIDEyODZdLCBbMTg1MywgMTQ1MSwgMTA0MSwgNzc5XSwgWzEyNzMsIDk5NywgNzE1LCA1MzVdLCBbNzg0LCA2MTQsIDQ0MCwgMzMwXV0sCiAgICAvLyAxMTcKICAgIDI2ID0+IFtbMzI4MywgMjU0NCwgMTgwNCwgMTQyNV0sIFsxOTkwLCAxNTQyLCAxMDk0LCA4NjRdLCBbMTM2NywgMTA1OSwgNzUxLCA1OTNdLCBbODQyLCA2NTIsIDQ2MiwgMzY1XV0sCiAgICAvLyAxMjEKICAgIDI3ID0+IFtbMzUxNywgMjcwMSwgMTkzMywgMTUwMV0sIFsyMTMyLCAxNjM3LCAxMTcyLCA5MTBdLCBbMTQ2NSwgMTEyNSwgODA1LCA2MjVdLCBbOTAyLCA2OTIsIDQ5NiwgMzg1XV0sCiAgICAvLyAxMjUKICAgIDI4ID0+IFtbMzY2OSwgMjg1NywgMjA4NSwgMTU4MV0sIFsyMjIzLCAxNzMyLCAxMjYzLCA5NThdLCBbMTUyOCwgMTE5MCwgODY4LCA2NThdLCBbOTQwLCA3MzIsIDUzNCwgNDA1XV0sCiAgICAvLyAxMjkKICAgIDI5ID0+IFtbMzkwOSwgMzAzNSwgMjE4MSwgMTY3N10sIFsyMzY5LCAxODM5LCAxMzIyLCAxMDE2XSwgWzE2MjgsIDEyNjQsIDkwOCwgNjk4XSwgWzEwMDIsIDc3OCwgNTU5LCA0MzBdXSwKICAgIC8vIDEzMwogICAgMzAgPT4gW1s0MTU4LCAzMjg5LCAyMzU4LCAxNzgyXSwgWzI1MjAsIDE5OTQsIDE0MjksIDEwODBdLCBbMTczMiwgMTM3MCwgOTgyLCA3NDJdLCBbMTA2NiwgODQzLCA2MDQsIDQ1N11dLAogICAgLy8gMTM3CiAgICAzMSA9PiBbWzQ0MTcsIDM0ODYsIDI0NzMsIDE4OTddLCBbMjY3NywgMjExMywgMTQ5OSwgMTE1MF0sIFsxODQwLCAxNDUyLCAxMDMwLCA3OTBdLCBbMTEzMiwgODk0LCA2MzQsIDQ4Nl1dLAogICAgLy8gMTQxCiAgICAzMiA9PiBbWzQ2ODYsIDM2OTMsIDI2NzAsIDIwMjJdLCBbMjg0MCwgMjIzOCwgMTYxOCwgMTIyNl0sIFsxOTUyLCAxNTM4LCAxMTEyLCA4NDJdLCBbMTIwMSwgOTQ3LCA2ODQsIDUxOF1dLAogICAgLy8gMTQ1CiAgICAzMyA9PiBbWzQ5NjUsIDM5MDksIDI4MDUsIDIxNTddLCBbMzAwOSwgMjM2OSwgMTcwMCwgMTMwN10sIFsyMDY4LCAxNjI4LCAxMTY4LCA4OThdLCBbMTI3MywgMTAwMiwgNzE5LCA1NTNdXSwKICAgIC8vIDE0OQogICAgMzQgPT4gW1s1MjUzLCA0MTM0LCAyOTQ5LCAyMzAxXSwgWzMxODMsIDI1MDYsIDE3ODcsIDEzOTRdLCBbMjE4OCwgMTcyMiwgMTIyOCwgOTU4XSwgWzEzNDcsIDEwNjAsIDc1NiwgNTkwXV0sCiAgICAvLyAxNTMKICAgIDM1ID0+IFtbNTUyOSwgNDM0MywgMzA4MSwgMjM2MV0sIFszMzUxLCAyNjMyLCAxODY3LCAxNDMxXSwgWzIzMDMsIDE4MDksIDEyODMsIDk4M10sIFsxNDE3LCAxMTEzLCA3OTAsIDYwNV1dLAogICAgLy8gMTU3CiAgICAzNiA9PiBbWzU4MzYsIDQ1ODgsIDMyNDQsIDI1MjRdLCBbMzUzNywgMjc4MCwgMTk2NiwgMTUzMF0sIFsyNDMxLCAxOTExLCAxMzUxLCAxMDUxXSwgWzE0OTYsIDExNzYsIDgzMiwgNjQ3XV0sCiAgICAvLyAxNjEKICAgIDM3ID0+IFtbNjE1MywgNDc3NSwgMzQxNywgMjYyNV0sIFszNzI5LCAyODk0LCAyMDcxLCAxNTkxXSwgWzI1NjMsIDE5ODksIDE0MjMsIDEwOTNdLCBbMTU3NywgMTIyNCwgODc2LCA2NzNdXSwKICAgIC8vIDE2NQogICAgMzggPT4gW1s2NDc5LCA1MDM5LCAzNTk5LCAyNzM1XSwgWzM5MjcsIDMwNTQsIDIxODEsIDE2NThdLCBbMjY5OSwgMjA5OSwgMTQ5OSwgMTEzOV0sIFsxNjYxLCAxMjkyLCA5MjMsIDcwMV1dLAogICAgLy8gMTY5CiAgICAzOSA9PiBbWzY3NDMsIDUzMTMsIDM3OTEsIDI5MjddLCBbNDA4NywgMzIyMCwgMjI5OCwgMTc3NF0sIFsyODA5LCAyMjEzLCAxNTc5LCAxMjE5XSwgWzE3MjksIDEzNjIsIDk3MiwgNzUwXV0sCiAgICAvLyAxNzMKICAgIDQwID0+IFtbNzA4OSwgNTU5NiwgMzk5MywgMzA1N10sIFs0Mjk2LCAzMzkxLCAyNDIwLCAxODUyXSwgWzI5NTMsIDIzMzEsIDE2NjMsIDEyNzNdLCBbMTgxNywgMTQzNSwgMTAyNCwgNzg0XV0sCl0iO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO319czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlOjpNQVhfQklUUyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6NTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlOjpNQVhfQklUUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6Ik1BWF9CSVRTIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEwNToiSVNPL0lFQyAxODAwNDoyMDAwIFRhYmxlcyA3LTExIC0gTnVtYmVyIG9mIHN5bWJvbCBjaGFyYWN0ZXJzIGFuZCBpbnB1dCBkYXRhIGNhcGFjaXR5IGZvciB2ZXJzaW9ucyAxIHRvIDQwIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDoiW11bXSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MTQ3MDoiWwogICAgLy8gdmVyc2lvbiA9PiBbTCwgTSwgUSwgSCBdCiAgICAxID0+IFsxNTIsIDEyOCwgMTA0LCA3Ml0sCiAgICAyID0+IFsyNzIsIDIyNCwgMTc2LCAxMjhdLAogICAgMyA9PiBbNDQwLCAzNTIsIDI3MiwgMjA4XSwKICAgIDQgPT4gWzY0MCwgNTEyLCAzODQsIDI4OF0sCiAgICA1ID0+IFs4NjQsIDY4OCwgNDk2LCAzNjhdLAogICAgNiA9PiBbMTA4OCwgODY0LCA2MDgsIDQ4MF0sCiAgICA3ID0+IFsxMjQ4LCA5OTIsIDcwNCwgNTI4XSwKICAgIDggPT4gWzE1NTIsIDEyMzIsIDg4MCwgNjg4XSwKICAgIDkgPT4gWzE4NTYsIDE0NTYsIDEwNTYsIDgwMF0sCiAgICAxMCA9PiBbMjE5MiwgMTcyOCwgMTIzMiwgOTc2XSwKICAgIDExID0+IFsyNTkyLCAyMDMyLCAxNDQwLCAxMTIwXSwKICAgIDEyID0+IFsyOTYwLCAyMzIwLCAxNjQ4LCAxMjY0XSwKICAgIDEzID0+IFszNDI0LCAyNjcyLCAxOTUyLCAxNDQwXSwKICAgIDE0ID0+IFszNjg4LCAyOTIwLCAyMDg4LCAxNTc2XSwKICAgIDE1ID0+IFs0MTg0LCAzMzIwLCAyMzYwLCAxNzg0XSwKICAgIDE2ID0+IFs0NzEyLCAzNjI0LCAyNjAwLCAyMDI0XSwKICAgIDE3ID0+IFs1MTc2LCA0MDU2LCAyOTM2LCAyMjY0XSwKICAgIDE4ID0+IFs1NzY4LCA0NTA0LCAzMTc2LCAyNTA0XSwKICAgIDE5ID0+IFs2MzYwLCA1MDE2LCAzNTYwLCAyNzI4XSwKICAgIDIwID0+IFs2ODg4LCA1MzUyLCAzODgwLCAzMDgwXSwKICAgIDIxID0+IFs3NDU2LCA1NzEyLCA0MDk2LCAzMjQ4XSwKICAgIDIyID0+IFs4MDQ4LCA2MjU2LCA0NTQ0LCAzNTM2XSwKICAgIDIzID0+IFs4NzUyLCA2ODgwLCA0OTEyLCAzNzEyXSwKICAgIDI0ID0+IFs5MzkyLCA3MzEyLCA1MzEyLCA0MTEyXSwKICAgIDI1ID0+IFsxMDIwOCwgODAwMCwgNTc0NCwgNDMwNF0sCiAgICAyNiA9PiBbMTA5NjAsIDg0OTYsIDYwMzIsIDQ3NjhdLAogICAgMjcgPT4gWzExNzQ0LCA5MDI0LCA2NDY0LCA1MDI0XSwKICAgIDI4ID0+IFsxMjI0OCwgOTU0NCwgNjk2OCwgNTI4OF0sCiAgICAyOSA9PiBbMTMwNDgsIDEwMTM2LCA3Mjg4LCA1NjA4XSwKICAgIDMwID0+IFsxMzg4MCwgMTA5ODQsIDc4ODAsIDU5NjBdLAogICAgMzEgPT4gWzE0NzQ0LCAxMTY0MCwgODI2NCwgNjM0NF0sCiAgICAzMiA9PiBbMTU2NDAsIDEyMzI4LCA4OTIwLCA2NzYwXSwKICAgIDMzID0+IFsxNjU2OCwgMTMwNDgsIDkzNjgsIDcyMDhdLAogICAgMzQgPT4gWzE3NTI4LCAxMzgwMCwgOTg0OCwgNzY4OF0sCiAgICAzNSA9PiBbMTg0NDgsIDE0NDk2LCAxMDI4OCwgNzg4OF0sCiAgICAzNiA9PiBbMTk0NzIsIDE1MzEyLCAxMDgzMiwgODQzMl0sCiAgICAzNyA9PiBbMjA1MjgsIDE1OTM2LCAxMTQwOCwgODc2OF0sCiAgICAzOCA9PiBbMjE2MTYsIDE2ODE2LCAxMjAxNiwgOTEzNl0sCiAgICAzOSA9PiBbMjI0OTYsIDE3NzI4LCAxMjY1NiwgOTc3Nl0sCiAgICA0MCA9PiBbMjM2NDgsIDE4NjcyLCAxMzMyOCwgMTAyMDhdLApdIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fXM6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZTo6UlNCTE9DS1MiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjU6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZTo6UlNCTE9DS1MiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJSU0JMT0NLUyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwiOjE6e3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcVXJsAHVyaSI7czo2MToiaHR0cDovL3d3dy50aG9ua3kuY29tL3FyLWNvZGUtdHV0b3JpYWwvZXJyb3ItY29ycmVjdGlvbi10YWJsZSI7fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY6IltdW11bXSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjMwNTU6IlsxID0+IFtbMSwgMCwgMjYsIDE5XSwgWzEsIDAsIDI2LCAxNl0sIFsxLCAwLCAyNiwgMTNdLCBbMSwgMCwgMjYsIDldXSwgMiA9PiBbWzEsIDAsIDQ0LCAzNF0sIFsxLCAwLCA0NCwgMjhdLCBbMSwgMCwgNDQsIDIyXSwgWzEsIDAsIDQ0LCAxNl1dLCAzID0+IFtbMSwgMCwgNzAsIDU1XSwgWzEsIDAsIDcwLCA0NF0sIFsyLCAwLCAzNSwgMTddLCBbMiwgMCwgMzUsIDEzXV0sIDQgPT4gW1sxLCAwLCAxMDAsIDgwXSwgWzIsIDAsIDUwLCAzMl0sIFsyLCAwLCA1MCwgMjRdLCBbNCwgMCwgMjUsIDldXSwgNSA9PiBbWzEsIDAsIDEzNCwgMTA4XSwgWzIsIDAsIDY3LCA0M10sIFsyLCAyLCAzMywgMTVdLCBbMiwgMiwgMzMsIDExXV0sIDYgPT4gW1syLCAwLCA4NiwgNjhdLCBbNCwgMCwgNDMsIDI3XSwgWzQsIDAsIDQzLCAxOV0sIFs0LCAwLCA0MywgMTVdXSwgNyA9PiBbWzIsIDAsIDk4LCA3OF0sIFs0LCAwLCA0OSwgMzFdLCBbMiwgNCwgMzIsIDE0XSwgWzQsIDEsIDM5LCAxM11dLCA4ID0+IFtbMiwgMCwgMTIxLCA5N10sIFsyLCAyLCA2MCwgMzhdLCBbNCwgMiwgNDAsIDE4XSwgWzQsIDIsIDQwLCAxNF1dLCA5ID0+IFtbMiwgMCwgMTQ2LCAxMTZdLCBbMywgMiwgNTgsIDM2XSwgWzQsIDQsIDM2LCAxNl0sIFs0LCA0LCAzNiwgMTJdXSwgMTAgPT4gW1syLCAyLCA4NiwgNjhdLCBbNCwgMSwgNjksIDQzXSwgWzYsIDIsIDQzLCAxOV0sIFs2LCAyLCA0MywgMTVdXSwgMTEgPT4gW1s0LCAwLCAxMDEsIDgxXSwgWzEsIDQsIDgwLCA1MF0sIFs0LCA0LCA1MCwgMjJdLCBbMywgOCwgMzYsIDEyXV0sIDEyID0+IFtbMiwgMiwgMTE2LCA5Ml0sIFs2LCAyLCA1OCwgMzZdLCBbNCwgNiwgNDYsIDIwXSwgWzcsIDQsIDQyLCAxNF1dLCAxMyA9PiBbWzQsIDAsIDEzMywgMTA3XSwgWzgsIDEsIDU5LCAzN10sIFs4LCA0LCA0NCwgMjBdLCBbMTIsIDQsIDMzLCAxMV1dLCAxNCA9PiBbWzMsIDEsIDE0NSwgMTE1XSwgWzQsIDUsIDY0LCA0MF0sIFsxMSwgNSwgMzYsIDE2XSwgWzExLCA1LCAzNiwgMTJdXSwgMTUgPT4gW1s1LCAxLCAxMDksIDg3XSwgWzUsIDUsIDY1LCA0MV0sIFs1LCA3LCA1NCwgMjRdLCBbMTEsIDcsIDM2LCAxMl1dLCAxNiA9PiBbWzUsIDEsIDEyMiwgOThdLCBbNywgMywgNzMsIDQ1XSwgWzE1LCAyLCA0MywgMTldLCBbMywgMTMsIDQ1LCAxNV1dLCAxNyA9PiBbWzEsIDUsIDEzNSwgMTA3XSwgWzEwLCAxLCA3NCwgNDZdLCBbMSwgMTUsIDUwLCAyMl0sIFsyLCAxNywgNDIsIDE0XV0sIDE4ID0+IFtbNSwgMSwgMTUwLCAxMjBdLCBbOSwgNCwgNjksIDQzXSwgWzE3LCAxLCA1MCwgMjJdLCBbMiwgMTksIDQyLCAxNF1dLCAxOSA9PiBbWzMsIDQsIDE0MSwgMTEzXSwgWzMsIDExLCA3MCwgNDRdLCBbMTcsIDQsIDQ3LCAyMV0sIFs5LCAxNiwgMzksIDEzXV0sIDIwID0+IFtbMywgNSwgMTM1LCAxMDddLCBbMywgMTMsIDY3LCA0MV0sIFsxNSwgNSwgNTQsIDI0XSwgWzE1LCAxMCwgNDMsIDE1XV0sIDIxID0+IFtbNCwgNCwgMTQ0LCAxMTZdLCBbMTcsIDAsIDY4LCA0Ml0sIFsxNywgNiwgNTAsIDIyXSwgWzE5LCA2LCA0NiwgMTZdXSwgMjIgPT4gW1syLCA3LCAxMzksIDExMV0sIFsxNywgMCwgNzQsIDQ2XSwgWzcsIDE2LCA1NCwgMjRdLCBbMzQsIDAsIDM3LCAxM11dLCAyMyA9PiBbWzQsIDUsIDE1MSwgMTIxXSwgWzQsIDE0LCA3NSwgNDddLCBbMTEsIDE0LCA1NCwgMjRdLCBbMTYsIDE0LCA0NSwgMTVdXSwgMjQgPT4gW1s2LCA0LCAxNDcsIDExN10sIFs2LCAxNCwgNzMsIDQ1XSwgWzExLCAxNiwgNTQsIDI0XSwgWzMwLCAyLCA0NiwgMTZdXSwgMjUgPT4gW1s4LCA0LCAxMzIsIDEwNl0sIFs4LCAxMywgNzUsIDQ3XSwgWzcsIDIyLCA1NCwgMjRdLCBbMjIsIDEzLCA0NSwgMTVdXSwgMjYgPT4gW1sxMCwgMiwgMTQyLCAxMTRdLCBbMTksIDQsIDc0LCA0Nl0sIFsyOCwgNiwgNTAsIDIyXSwgWzMzLCA0LCA0NiwgMTZdXSwgMjcgPT4gW1s4LCA0LCAxNTIsIDEyMl0sIFsyMiwgMywgNzMsIDQ1XSwgWzgsIDI2LCA1MywgMjNdLCBbMTIsIDI4LCA0NSwgMTVdXSwgMjggPT4gW1szLCAxMCwgMTQ3LCAxMTddLCBbMywgMjMsIDczLCA0NV0sIFs0LCAzMSwgNTQsIDI0XSwgWzExLCAzMSwgNDUsIDE1XV0sIDI5ID0+IFtbNywgNywgMTQ2LCAxMTZdLCBbMjEsIDcsIDczLCA0NV0sIFsxLCAzNywgNTMsIDIzXSwgWzE5LCAyNiwgNDUsIDE1XV0sIDMwID0+IFtbNSwgMTAsIDE0NSwgMTE1XSwgWzE5LCAxMCwgNzUsIDQ3XSwgWzE1LCAyNSwgNTQsIDI0XSwgWzIzLCAyNSwgNDUsIDE1XV0sIDMxID0+IFtbMTMsIDMsIDE0NSwgMTE1XSwgWzIsIDI5LCA3NCwgNDZdLCBbNDIsIDEsIDU0LCAyNF0sIFsyMywgMjgsIDQ1LCAxNV1dLCAzMiA9PiBbWzE3LCAwLCAxNDUsIDExNV0sIFsxMCwgMjMsIDc0LCA0Nl0sIFsxMCwgMzUsIDU0LCAyNF0sIFsxOSwgMzUsIDQ1LCAxNV1dLCAzMyA9PiBbWzE3LCAxLCAxNDUsIDExNV0sIFsxNCwgMjEsIDc0LCA0Nl0sIFsyOSwgMTksIDU0LCAyNF0sIFsxMSwgNDYsIDQ1LCAxNV1dLCAzNCA9PiBbWzEzLCA2LCAxNDUsIDExNV0sIFsxNCwgMjMsIDc0LCA0Nl0sIFs0NCwgNywgNTQsIDI0XSwgWzU5LCAxLCA0NiwgMTZdXSwgMzUgPT4gW1sxMiwgNywgMTUxLCAxMjFdLCBbMTIsIDI2LCA3NSwgNDddLCBbMzksIDE0LCA1NCwgMjRdLCBbMjIsIDQxLCA0NSwgMTVdXSwgMzYgPT4gW1s2LCAxNCwgMTUxLCAxMjFdLCBbNiwgMzQsIDc1LCA0N10sIFs0NiwgMTAsIDU0LCAyNF0sIFsyLCA2NCwgNDUsIDE1XV0sIDM3ID0+IFtbMTcsIDQsIDE1MiwgMTIyXSwgWzI5LCAxNCwgNzQsIDQ2XSwgWzQ5LCAxMCwgNTQsIDI0XSwgWzI0LCA0NiwgNDUsIDE1XV0sIDM4ID0+IFtbNCwgMTgsIDE1MiwgMTIyXSwgWzEzLCAzMiwgNzQsIDQ2XSwgWzQ4LCAxNCwgNTQsIDI0XSwgWzQyLCAzMiwgNDUsIDE1XV0sIDM5ID0+IFtbMjAsIDQsIDE0NywgMTE3XSwgWzQwLCA3LCA3NSwgNDddLCBbNDMsIDIyLCA1NCwgMjRdLCBbMTAsIDY3LCA0NSwgMTVdXSwgNDAgPT4gW1sxOSwgNiwgMTQ4LCAxMThdLCBbMTgsIDMxLCA3NSwgNDddLCBbMzQsIDM0LCA1NCwgMjRdLCBbMjAsIDYxLCA0NSwgMTVdXV0iO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9fX1zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxJbnRlcmZhY2VfAG1ldGhvZHMiO2E6Mjp7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlOjpzZXREYXRhKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjo5OntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU5OiJTZXRzIHRoZSBkYXRhIHN0cmluZyAoaW50ZXJuYWxseSBjYWxsZWQgYnkgdGhlIGNvbnN0cnVjdG9yKSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXGNoaWxsZXJsYW5cUVJDb2RlXERhdGFcUVJEYXRhSW50ZXJmYWNlOjpzZXREYXRhKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJzZXREYXRhIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTkzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJRUkRhdGFJbnRlcmZhY2UiO319fXM6NTM6IlxjaGlsbGVybGFuXFFSQ29kZVxEYXRhXFFSRGF0YUludGVyZmFjZTo6aW5pdE1hdHJpeCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6OTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3ODoicmV0dXJucyBhIGZyZXNoIG1hdHJpeCBvYmplY3Qgd2l0aCB0aGUgZGF0YSB3cml0dGVuIGZvciB0aGUgZ2l2ZW4gJG1hc2tQYXR0ZXJuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUzOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUkRhdGFJbnRlcmZhY2U6OmluaXRNYXRyaXgoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJpbml0TWF0cml4Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJtYXNrUGF0dGVybiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ0ZXN0IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcY2hpbGxlcmxhblxRUkNvZGVcRGF0YVxRUk1hdHJpeCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlFSTWF0cml4Ijt9fX19czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcSW50ZXJmYWNlXwBwYXJlbnRzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxJbnRlcmZhY2VfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO319fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e319"; \ No newline at end of file diff --git a/files/src-data-alphanum.html b/files/src-data-alphanum.html deleted file mode 100644 index 976c003c5..000000000 --- a/files/src-data-alphanum.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                  -

                                                                                  Documentation

                                                                                  - - - - - -
                                                                                  - -
                                                                                  -
                                                                                  - - - - -
                                                                                  -
                                                                                    -
                                                                                  - -
                                                                                  -

                                                                                  AlphaNum.php

                                                                                  - - - -

                                                                                  - Interfaces, Classes and Traits - -

                                                                                  - -
                                                                                  - -
                                                                                  AlphaNum
                                                                                  -
                                                                                  Alphanumeric mode: 0 to 9, A to Z, space, $ % * + - . / :
                                                                                  - -
                                                                                  - - - - - - - -
                                                                                  -
                                                                                  -
                                                                                  -
                                                                                  -

                                                                                  Search results

                                                                                  - -
                                                                                  -
                                                                                  -
                                                                                    -
                                                                                    -
                                                                                    -
                                                                                    -
                                                                                    -
                                                                                    - - -
                                                                                    - - - - diff --git a/files/src-data-byte.html b/files/src-data-byte.html deleted file mode 100644 index df0d06619..000000000 --- a/files/src-data-byte.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                    -

                                                                                    Documentation

                                                                                    - - - - - -
                                                                                    - -
                                                                                    -
                                                                                    - - - - -
                                                                                    -
                                                                                      -
                                                                                    - -
                                                                                    -

                                                                                    Byte.php

                                                                                    - - - -

                                                                                    - Interfaces, Classes and Traits - -

                                                                                    - -
                                                                                    - -
                                                                                    Byte
                                                                                    -
                                                                                    Byte mode, ISO-8859-1 or UTF-8
                                                                                    - -
                                                                                    - - - - - - - -
                                                                                    -
                                                                                    -
                                                                                    -
                                                                                    -

                                                                                    Search results

                                                                                    - -
                                                                                    -
                                                                                    -
                                                                                      -
                                                                                      -
                                                                                      -
                                                                                      -
                                                                                      -
                                                                                      - - -
                                                                                      - - - - diff --git a/files/src-data-kanji.html b/files/src-data-kanji.html deleted file mode 100644 index 74a4f1b48..000000000 --- a/files/src-data-kanji.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                      -

                                                                                      Documentation

                                                                                      - - - - - -
                                                                                      - -
                                                                                      -
                                                                                      - - - - -
                                                                                      -
                                                                                        -
                                                                                      - -
                                                                                      -

                                                                                      Kanji.php

                                                                                      - - - -

                                                                                      - Interfaces, Classes and Traits - -

                                                                                      - -
                                                                                      - -
                                                                                      Kanji
                                                                                      -
                                                                                      Kanji mode: double-byte characters from the Shift JIS character set
                                                                                      - -
                                                                                      - - - - - - - -
                                                                                      -
                                                                                      -
                                                                                      -
                                                                                      -

                                                                                      Search results

                                                                                      - -
                                                                                      -
                                                                                      -
                                                                                        -
                                                                                        -
                                                                                        -
                                                                                        -
                                                                                        -
                                                                                        - - -
                                                                                        - - - - diff --git a/files/src-data-maskpatterntester.html b/files/src-data-maskpatterntester.html deleted file mode 100644 index 940f2d58d..000000000 --- a/files/src-data-maskpatterntester.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                        -

                                                                                        Documentation

                                                                                        - - - - - -
                                                                                        - -
                                                                                        -
                                                                                        - - - - -
                                                                                        -
                                                                                          -
                                                                                        - -
                                                                                        -

                                                                                        MaskPatternTester.php

                                                                                        - - - -

                                                                                        - Interfaces, Classes and Traits - -

                                                                                        - -
                                                                                        - -
                                                                                        MaskPatternTester
                                                                                        -
                                                                                        Receives a QRDataInterface object and runs the mask pattern tests on it.
                                                                                        - -
                                                                                        - - - - - - - -
                                                                                        -
                                                                                        -
                                                                                        -
                                                                                        -

                                                                                        Search results

                                                                                        - -
                                                                                        -
                                                                                        -
                                                                                          -
                                                                                          -
                                                                                          -
                                                                                          -
                                                                                          -
                                                                                          - - -
                                                                                          - - - - diff --git a/files/src-data-number.html b/files/src-data-number.html deleted file mode 100644 index bce5b6b0d..000000000 --- a/files/src-data-number.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                          -

                                                                                          Documentation

                                                                                          - - - - - -
                                                                                          - -
                                                                                          -
                                                                                          - - - - -
                                                                                          -
                                                                                            -
                                                                                          - -
                                                                                          -

                                                                                          Number.php

                                                                                          - - - -

                                                                                          - Interfaces, Classes and Traits - -

                                                                                          - -
                                                                                          - -
                                                                                          Number
                                                                                          -
                                                                                          Numeric mode: decimal digits 0 to 9
                                                                                          - -
                                                                                          - - - - - - - -
                                                                                          -
                                                                                          -
                                                                                          -
                                                                                          -

                                                                                          Search results

                                                                                          - -
                                                                                          -
                                                                                          -
                                                                                            -
                                                                                            -
                                                                                            -
                                                                                            -
                                                                                            -
                                                                                            - - -
                                                                                            - - - - diff --git a/files/src-data-qrcodedataexception.html b/files/src-data-qrcodedataexception.html deleted file mode 100644 index 92c1c6652..000000000 --- a/files/src-data-qrcodedataexception.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                            -

                                                                                            Documentation

                                                                                            - - - - - -
                                                                                            - -
                                                                                            -
                                                                                            - - - - -
                                                                                            -
                                                                                              -
                                                                                            - -
                                                                                            -

                                                                                            QRCodeDataException.php

                                                                                            - - - -

                                                                                            - Interfaces, Classes and Traits - -

                                                                                            - -
                                                                                            - -
                                                                                            QRCodeDataException
                                                                                            -
                                                                                            An exception container
                                                                                            - -
                                                                                            - - - - - - - -
                                                                                            -
                                                                                            -
                                                                                            -
                                                                                            -

                                                                                            Search results

                                                                                            - -
                                                                                            -
                                                                                            -
                                                                                              -
                                                                                              -
                                                                                              -
                                                                                              -
                                                                                              -
                                                                                              - - -
                                                                                              - - - - diff --git a/files/src-data-qrdataabstract.html b/files/src-data-qrdataabstract.html deleted file mode 100644 index 43992c788..000000000 --- a/files/src-data-qrdataabstract.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                              -

                                                                                              Documentation

                                                                                              - - - - - -
                                                                                              - -
                                                                                              -
                                                                                              - - - - -
                                                                                              -
                                                                                                -
                                                                                              - -
                                                                                              -

                                                                                              QRDataAbstract.php

                                                                                              - - - -

                                                                                              - Interfaces, Classes and Traits - -

                                                                                              - -
                                                                                              - -
                                                                                              QRDataAbstract
                                                                                              -
                                                                                              Processes the binary data and maps it on a matrix which is then being returned
                                                                                              - -
                                                                                              - - - - - - - -
                                                                                              -
                                                                                              -
                                                                                              -
                                                                                              -

                                                                                              Search results

                                                                                              - -
                                                                                              -
                                                                                              -
                                                                                                -
                                                                                                -
                                                                                                -
                                                                                                -
                                                                                                -
                                                                                                - - -
                                                                                                - - - - diff --git a/files/src-data-qrdatainterface.html b/files/src-data-qrdatainterface.html deleted file mode 100644 index aed109b47..000000000 --- a/files/src-data-qrdatainterface.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                -

                                                                                                Documentation

                                                                                                - - - - - -
                                                                                                - -
                                                                                                -
                                                                                                - - - - -
                                                                                                -
                                                                                                  -
                                                                                                - -
                                                                                                -

                                                                                                QRDataInterface.php

                                                                                                - - - -

                                                                                                - Interfaces, Classes and Traits - -

                                                                                                - -
                                                                                                -
                                                                                                QRDataInterface
                                                                                                -
                                                                                                Specifies the methods reqired for the data modules (Number, Alphanum, Byte and Kanji) -and holds version information in several constants
                                                                                                - - -
                                                                                                - - - - - - - -
                                                                                                -
                                                                                                -
                                                                                                -
                                                                                                -

                                                                                                Search results

                                                                                                - -
                                                                                                -
                                                                                                -
                                                                                                  -
                                                                                                  -
                                                                                                  -
                                                                                                  -
                                                                                                  -
                                                                                                  - - -
                                                                                                  - - - - diff --git a/files/src-data-qrmatrix.html b/files/src-data-qrmatrix.html deleted file mode 100644 index 28f6d9754..000000000 --- a/files/src-data-qrmatrix.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                  -

                                                                                                  Documentation

                                                                                                  - - - - - -
                                                                                                  - -
                                                                                                  -
                                                                                                  - - - - -
                                                                                                  -
                                                                                                    -
                                                                                                  - -
                                                                                                  -

                                                                                                  QRMatrix.php

                                                                                                  - - - -

                                                                                                  - Interfaces, Classes and Traits - -

                                                                                                  - -
                                                                                                  - -
                                                                                                  QRMatrix
                                                                                                  -
                                                                                                  Holds a numerical representation of the final QR Code; -maps the ECC coded binary data and applies the mask pattern
                                                                                                  - -
                                                                                                  - - - - - - - -
                                                                                                  -
                                                                                                  -
                                                                                                  -
                                                                                                  -

                                                                                                  Search results

                                                                                                  - -
                                                                                                  -
                                                                                                  -
                                                                                                    -
                                                                                                    -
                                                                                                    -
                                                                                                    -
                                                                                                    -
                                                                                                    - - -
                                                                                                    - - - - diff --git a/files/src-helpers-bitbuffer.html b/files/src-helpers-bitbuffer.html deleted file mode 100644 index 956179fab..000000000 --- a/files/src-helpers-bitbuffer.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                    -

                                                                                                    Documentation

                                                                                                    - - - - - -
                                                                                                    - -
                                                                                                    -
                                                                                                    - - - - -
                                                                                                    -
                                                                                                      -
                                                                                                    - -
                                                                                                    -

                                                                                                    BitBuffer.php

                                                                                                    - - - -

                                                                                                    - Interfaces, Classes and Traits - -

                                                                                                    - -
                                                                                                    - -
                                                                                                    BitBuffer
                                                                                                    -
                                                                                                    Holds the raw binary data
                                                                                                    - -
                                                                                                    - - - - - - - -
                                                                                                    -
                                                                                                    -
                                                                                                    -
                                                                                                    -

                                                                                                    Search results

                                                                                                    - -
                                                                                                    -
                                                                                                    -
                                                                                                      -
                                                                                                      -
                                                                                                      -
                                                                                                      -
                                                                                                      -
                                                                                                      - - -
                                                                                                      - - - - diff --git a/files/src-helpers-polynomial.html b/files/src-helpers-polynomial.html deleted file mode 100644 index 377db96cd..000000000 --- a/files/src-helpers-polynomial.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                      -

                                                                                                      Documentation

                                                                                                      - - - - - -
                                                                                                      - -
                                                                                                      -
                                                                                                      - - - - -
                                                                                                      -
                                                                                                        -
                                                                                                      - -
                                                                                                      -

                                                                                                      Polynomial.php

                                                                                                      - - - -

                                                                                                      - Interfaces, Classes and Traits - -

                                                                                                      - -
                                                                                                      - -
                                                                                                      Polynomial
                                                                                                      -
                                                                                                      Polynomial long division helpers
                                                                                                      - -
                                                                                                      - - - - - - - -
                                                                                                      -
                                                                                                      -
                                                                                                      -
                                                                                                      -

                                                                                                      Search results

                                                                                                      - -
                                                                                                      -
                                                                                                      -
                                                                                                        -
                                                                                                        -
                                                                                                        -
                                                                                                        -
                                                                                                        -
                                                                                                        - - -
                                                                                                        - - - - diff --git a/files/src-output-qrcodeoutputexception.html b/files/src-output-qrcodeoutputexception.html deleted file mode 100644 index 0f35c89a6..000000000 --- a/files/src-output-qrcodeoutputexception.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                        -

                                                                                                        Documentation

                                                                                                        - - - - - -
                                                                                                        - -
                                                                                                        -
                                                                                                        - - - - -
                                                                                                        -
                                                                                                          -
                                                                                                        - -
                                                                                                        -

                                                                                                        QRCodeOutputException.php

                                                                                                        - - - -

                                                                                                        - Interfaces, Classes and Traits - -

                                                                                                        - -
                                                                                                        - -
                                                                                                        QRCodeOutputException
                                                                                                        -
                                                                                                        An exception container
                                                                                                        - -
                                                                                                        - - - - - - - -
                                                                                                        -
                                                                                                        -
                                                                                                        -
                                                                                                        -

                                                                                                        Search results

                                                                                                        - -
                                                                                                        -
                                                                                                        -
                                                                                                          -
                                                                                                          -
                                                                                                          -
                                                                                                          -
                                                                                                          -
                                                                                                          - - -
                                                                                                          - - - - diff --git a/files/src-output-qrfpdf.html b/files/src-output-qrfpdf.html deleted file mode 100644 index 80933957b..000000000 --- a/files/src-output-qrfpdf.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                          -

                                                                                                          Documentation

                                                                                                          - - - - - -
                                                                                                          - -
                                                                                                          -
                                                                                                          - - - - -
                                                                                                          -
                                                                                                            -
                                                                                                          - -
                                                                                                          -

                                                                                                          QRFpdf.php

                                                                                                          - - - -

                                                                                                          - Interfaces, Classes and Traits - -

                                                                                                          - -
                                                                                                          - -
                                                                                                          QRFpdf
                                                                                                          -
                                                                                                          QRFpdf output module (requires fpdf)
                                                                                                          - -
                                                                                                          - - - - - - - -
                                                                                                          -
                                                                                                          -
                                                                                                          -
                                                                                                          -

                                                                                                          Search results

                                                                                                          - -
                                                                                                          -
                                                                                                          -
                                                                                                            -
                                                                                                            -
                                                                                                            -
                                                                                                            -
                                                                                                            -
                                                                                                            - - -
                                                                                                            - - - - diff --git a/files/src-output-qrimage.html b/files/src-output-qrimage.html deleted file mode 100644 index 0df3dea87..000000000 --- a/files/src-output-qrimage.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                            -

                                                                                                            Documentation

                                                                                                            - - - - - -
                                                                                                            - -
                                                                                                            -
                                                                                                            - - - - -
                                                                                                            -
                                                                                                              -
                                                                                                            - -
                                                                                                            -

                                                                                                            QRImage.php

                                                                                                            - - - -

                                                                                                            - Interfaces, Classes and Traits - -

                                                                                                            - -
                                                                                                            - -
                                                                                                            QRImage
                                                                                                            -
                                                                                                            Converts the matrix into GD images, raw or base64 output (requires ext-gd)
                                                                                                            - -
                                                                                                            - - - - - - - -
                                                                                                            -
                                                                                                            -
                                                                                                            -
                                                                                                            -

                                                                                                            Search results

                                                                                                            - -
                                                                                                            -
                                                                                                            -
                                                                                                              -
                                                                                                              -
                                                                                                              -
                                                                                                              -
                                                                                                              -
                                                                                                              - - -
                                                                                                              - - - - diff --git a/files/src-output-qrimagick.html b/files/src-output-qrimagick.html deleted file mode 100644 index 481164307..000000000 --- a/files/src-output-qrimagick.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                              -

                                                                                                              Documentation

                                                                                                              - - - - - -
                                                                                                              - -
                                                                                                              -
                                                                                                              - - - - -
                                                                                                              -
                                                                                                                -
                                                                                                              - -
                                                                                                              -

                                                                                                              QRImagick.php

                                                                                                              - - - -

                                                                                                              - Interfaces, Classes and Traits - -

                                                                                                              - -
                                                                                                              - -
                                                                                                              QRImagick
                                                                                                              -
                                                                                                              ImageMagick output module (requires ext-imagick)
                                                                                                              - -
                                                                                                              - - - - - - - -
                                                                                                              -
                                                                                                              -
                                                                                                              -
                                                                                                              -

                                                                                                              Search results

                                                                                                              - -
                                                                                                              -
                                                                                                              -
                                                                                                                -
                                                                                                                -
                                                                                                                -
                                                                                                                -
                                                                                                                -
                                                                                                                - - -
                                                                                                                - - - - diff --git a/files/src-output-qrmarkup.html b/files/src-output-qrmarkup.html deleted file mode 100644 index 680462532..000000000 --- a/files/src-output-qrmarkup.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                -

                                                                                                                Documentation

                                                                                                                - - - - - -
                                                                                                                - -
                                                                                                                -
                                                                                                                - - - - -
                                                                                                                -
                                                                                                                  -
                                                                                                                - -
                                                                                                                -

                                                                                                                QRMarkup.php

                                                                                                                - - - -

                                                                                                                - Interfaces, Classes and Traits - -

                                                                                                                - -
                                                                                                                - -
                                                                                                                QRMarkup
                                                                                                                -
                                                                                                                Converts the matrix into markup types: HTML, SVG, .
                                                                                                                - -
                                                                                                                - - - - - - - -
                                                                                                                -
                                                                                                                -
                                                                                                                -
                                                                                                                -

                                                                                                                Search results

                                                                                                                - -
                                                                                                                -
                                                                                                                -
                                                                                                                  -
                                                                                                                  -
                                                                                                                  -
                                                                                                                  -
                                                                                                                  -
                                                                                                                  - - -
                                                                                                                  - - - - diff --git a/files/src-output-qroutputabstract.html b/files/src-output-qroutputabstract.html deleted file mode 100644 index cc105fcbc..000000000 --- a/files/src-output-qroutputabstract.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                  -

                                                                                                                  Documentation

                                                                                                                  - - - - - -
                                                                                                                  - -
                                                                                                                  -
                                                                                                                  - - - - -
                                                                                                                  -
                                                                                                                    -
                                                                                                                  - -
                                                                                                                  -

                                                                                                                  QROutputAbstract.php

                                                                                                                  - - - -

                                                                                                                  - Interfaces, Classes and Traits - -

                                                                                                                  - -
                                                                                                                  - -
                                                                                                                  QROutputAbstract
                                                                                                                  -
                                                                                                                  common output abstract
                                                                                                                  - -
                                                                                                                  - - - - - - - -
                                                                                                                  -
                                                                                                                  -
                                                                                                                  -
                                                                                                                  -

                                                                                                                  Search results

                                                                                                                  - -
                                                                                                                  -
                                                                                                                  -
                                                                                                                    -
                                                                                                                    -
                                                                                                                    -
                                                                                                                    -
                                                                                                                    -
                                                                                                                    - - -
                                                                                                                    - - - - diff --git a/files/src-output-qroutputinterface.html b/files/src-output-qroutputinterface.html deleted file mode 100644 index f34a0ada2..000000000 --- a/files/src-output-qroutputinterface.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                    -

                                                                                                                    Documentation

                                                                                                                    - - - - - -
                                                                                                                    - -
                                                                                                                    -
                                                                                                                    - - - - -
                                                                                                                    -
                                                                                                                      -
                                                                                                                    - -
                                                                                                                    -

                                                                                                                    QROutputInterface.php

                                                                                                                    - - - -

                                                                                                                    - Interfaces, Classes and Traits - -

                                                                                                                    - -
                                                                                                                    -
                                                                                                                    QROutputInterface
                                                                                                                    -
                                                                                                                    Converts the data matrix into readable output
                                                                                                                    - - -
                                                                                                                    - - - - - - - -
                                                                                                                    -
                                                                                                                    -
                                                                                                                    -
                                                                                                                    -

                                                                                                                    Search results

                                                                                                                    - -
                                                                                                                    -
                                                                                                                    -
                                                                                                                      -
                                                                                                                      -
                                                                                                                      -
                                                                                                                      -
                                                                                                                      -
                                                                                                                      - - -
                                                                                                                      - - - - diff --git a/files/src-output-qrstring.html b/files/src-output-qrstring.html deleted file mode 100644 index ec21e3737..000000000 --- a/files/src-output-qrstring.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                      -

                                                                                                                      Documentation

                                                                                                                      - - - - - -
                                                                                                                      - -
                                                                                                                      -
                                                                                                                      - - - - -
                                                                                                                      -
                                                                                                                        -
                                                                                                                      - -
                                                                                                                      -

                                                                                                                      QRString.php

                                                                                                                      - - - -

                                                                                                                      - Interfaces, Classes and Traits - -

                                                                                                                      - -
                                                                                                                      - -
                                                                                                                      QRString
                                                                                                                      -
                                                                                                                      Converts the matrix data into string types
                                                                                                                      - -
                                                                                                                      - - - - - - - -
                                                                                                                      -
                                                                                                                      -
                                                                                                                      -
                                                                                                                      -

                                                                                                                      Search results

                                                                                                                      - -
                                                                                                                      -
                                                                                                                      -
                                                                                                                        -
                                                                                                                        -
                                                                                                                        -
                                                                                                                        -
                                                                                                                        -
                                                                                                                        - - -
                                                                                                                        - - - - diff --git a/files/src-qrcode.html b/files/src-qrcode.html deleted file mode 100644 index cccfcb565..000000000 --- a/files/src-qrcode.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                        -

                                                                                                                        Documentation

                                                                                                                        - - - - - -
                                                                                                                        - -
                                                                                                                        -
                                                                                                                        - - - - -
                                                                                                                        -
                                                                                                                          -
                                                                                                                        - -
                                                                                                                        -

                                                                                                                        QRCode.php

                                                                                                                        - - - -

                                                                                                                        - Interfaces, Classes and Traits - -

                                                                                                                        - -
                                                                                                                        - -
                                                                                                                        QRCode
                                                                                                                        -
                                                                                                                        Turns a text string into a Model 2 QR Code
                                                                                                                        - -
                                                                                                                        - - - - - - - -
                                                                                                                        -
                                                                                                                        -
                                                                                                                        -
                                                                                                                        -

                                                                                                                        Search results

                                                                                                                        - -
                                                                                                                        -
                                                                                                                        -
                                                                                                                          -
                                                                                                                          -
                                                                                                                          -
                                                                                                                          -
                                                                                                                          -
                                                                                                                          - - -
                                                                                                                          - - - - diff --git a/files/src-qrcodeexception.html b/files/src-qrcodeexception.html deleted file mode 100644 index 23750c738..000000000 --- a/files/src-qrcodeexception.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                          -

                                                                                                                          Documentation

                                                                                                                          - - - - - -
                                                                                                                          - -
                                                                                                                          -
                                                                                                                          - - - - -
                                                                                                                          -
                                                                                                                            -
                                                                                                                          - -
                                                                                                                          -

                                                                                                                          QRCodeException.php

                                                                                                                          - - - -

                                                                                                                          - Interfaces, Classes and Traits - -

                                                                                                                          - -
                                                                                                                          - -
                                                                                                                          QRCodeException
                                                                                                                          -
                                                                                                                          An exception container
                                                                                                                          - -
                                                                                                                          - - - - - - - -
                                                                                                                          -
                                                                                                                          -
                                                                                                                          -
                                                                                                                          -

                                                                                                                          Search results

                                                                                                                          - -
                                                                                                                          -
                                                                                                                          -
                                                                                                                            -
                                                                                                                            -
                                                                                                                            -
                                                                                                                            -
                                                                                                                            -
                                                                                                                            - - -
                                                                                                                            - - - - diff --git a/files/src-qroptions.html b/files/src-qroptions.html deleted file mode 100644 index 8fe85632b..000000000 --- a/files/src-qroptions.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                            -

                                                                                                                            Documentation

                                                                                                                            - - - - - -
                                                                                                                            - -
                                                                                                                            -
                                                                                                                            - - - - -
                                                                                                                            -
                                                                                                                              -
                                                                                                                            - -
                                                                                                                            -

                                                                                                                            QROptions.php

                                                                                                                            - - - -

                                                                                                                            - Interfaces, Classes and Traits - -

                                                                                                                            - -
                                                                                                                            - -
                                                                                                                            QROptions
                                                                                                                            -
                                                                                                                            The QRCode settings container
                                                                                                                            - -
                                                                                                                            - - - - - - - -
                                                                                                                            -
                                                                                                                            -
                                                                                                                            -
                                                                                                                            -

                                                                                                                            Search results

                                                                                                                            - -
                                                                                                                            -
                                                                                                                            -
                                                                                                                              -
                                                                                                                              -
                                                                                                                              -
                                                                                                                              -
                                                                                                                              -
                                                                                                                              - - -
                                                                                                                              - - - - diff --git a/files/src-qroptionstrait.html b/files/src-qroptionstrait.html deleted file mode 100644 index 6379b1070..000000000 --- a/files/src-qroptionstrait.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                              -

                                                                                                                              Documentation

                                                                                                                              - - - - - -
                                                                                                                              - -
                                                                                                                              -
                                                                                                                              - - - - -
                                                                                                                              -
                                                                                                                                -
                                                                                                                              - -
                                                                                                                              -

                                                                                                                              QROptionsTrait.php

                                                                                                                              - - - -

                                                                                                                              - Interfaces, Classes and Traits - -

                                                                                                                              - -
                                                                                                                              - - -
                                                                                                                              QROptionsTrait
                                                                                                                              -
                                                                                                                              The QRCode plug-in settings & setter functionality
                                                                                                                              -
                                                                                                                              - - - - - - - -
                                                                                                                              -
                                                                                                                              -
                                                                                                                              -
                                                                                                                              -

                                                                                                                              Search results

                                                                                                                              - -
                                                                                                                              -
                                                                                                                              -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                - - -
                                                                                                                                - - - - diff --git a/files/tests-data-alphanumtest.html b/files/tests-data-alphanumtest.html deleted file mode 100644 index 94fdbf428..000000000 --- a/files/tests-data-alphanumtest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                -

                                                                                                                                Documentation

                                                                                                                                - - - - - -
                                                                                                                                - -
                                                                                                                                -
                                                                                                                                - - - - -
                                                                                                                                -
                                                                                                                                  -
                                                                                                                                - -
                                                                                                                                -

                                                                                                                                AlphaNumTest.php

                                                                                                                                - - - -

                                                                                                                                - Interfaces, Classes and Traits - -

                                                                                                                                - -
                                                                                                                                - -
                                                                                                                                AlphaNumTest
                                                                                                                                -
                                                                                                                                Tests the AlphaNum class
                                                                                                                                - -
                                                                                                                                - - - - - - - -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                -

                                                                                                                                Search results

                                                                                                                                - -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  - - -
                                                                                                                                  - - - - diff --git a/files/tests-data-bytetest.html b/files/tests-data-bytetest.html deleted file mode 100644 index 97ac45e02..000000000 --- a/files/tests-data-bytetest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                  -

                                                                                                                                  Documentation

                                                                                                                                  - - - - - -
                                                                                                                                  - -
                                                                                                                                  -
                                                                                                                                  - - - - -
                                                                                                                                  -
                                                                                                                                    -
                                                                                                                                  - -
                                                                                                                                  -

                                                                                                                                  ByteTest.php

                                                                                                                                  - - - -

                                                                                                                                  - Interfaces, Classes and Traits - -

                                                                                                                                  - -
                                                                                                                                  - -
                                                                                                                                  ByteTest
                                                                                                                                  -
                                                                                                                                  Tests the Byte class
                                                                                                                                  - -
                                                                                                                                  - - - - - - - -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  -

                                                                                                                                  Search results

                                                                                                                                  - -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    - - -
                                                                                                                                    - - - - diff --git a/files/tests-data-datainterfacetestabstract.html b/files/tests-data-datainterfacetestabstract.html deleted file mode 100644 index cad5ee554..000000000 --- a/files/tests-data-datainterfacetestabstract.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                    -

                                                                                                                                    Documentation

                                                                                                                                    - - - - - -
                                                                                                                                    - -
                                                                                                                                    -
                                                                                                                                    - - - - -
                                                                                                                                    -
                                                                                                                                      -
                                                                                                                                    - -
                                                                                                                                    -

                                                                                                                                    DatainterfaceTestAbstract.php

                                                                                                                                    - - - -

                                                                                                                                    - Interfaces, Classes and Traits - -

                                                                                                                                    - -
                                                                                                                                    - -
                                                                                                                                    DatainterfaceTestAbstract
                                                                                                                                    -
                                                                                                                                    The data interface test abstract
                                                                                                                                    - -
                                                                                                                                    - - - - - - - -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    -

                                                                                                                                    Search results

                                                                                                                                    - -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      - - -
                                                                                                                                      - - - - diff --git a/files/tests-data-kanjitest.html b/files/tests-data-kanjitest.html deleted file mode 100644 index c8c750ab4..000000000 --- a/files/tests-data-kanjitest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                      -

                                                                                                                                      Documentation

                                                                                                                                      - - - - - -
                                                                                                                                      - -
                                                                                                                                      -
                                                                                                                                      - - - - -
                                                                                                                                      -
                                                                                                                                        -
                                                                                                                                      - -
                                                                                                                                      -

                                                                                                                                      KanjiTest.php

                                                                                                                                      - - - -

                                                                                                                                      - Interfaces, Classes and Traits - -

                                                                                                                                      - -
                                                                                                                                      - -
                                                                                                                                      KanjiTest
                                                                                                                                      -
                                                                                                                                      Tests the Kanji class
                                                                                                                                      - -
                                                                                                                                      - - - - - - - -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      -

                                                                                                                                      Search results

                                                                                                                                      - -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        - - -
                                                                                                                                        - - - - diff --git a/files/tests-data-maskpatterntestertest.html b/files/tests-data-maskpatterntestertest.html deleted file mode 100644 index 1e107fe9d..000000000 --- a/files/tests-data-maskpatterntestertest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                        -

                                                                                                                                        Documentation

                                                                                                                                        - - - - - -
                                                                                                                                        - -
                                                                                                                                        -
                                                                                                                                        - - - - -
                                                                                                                                        -
                                                                                                                                          -
                                                                                                                                        - -
                                                                                                                                        -

                                                                                                                                        MaskPatternTesterTest.php

                                                                                                                                        - - - -

                                                                                                                                        - Interfaces, Classes and Traits - -

                                                                                                                                        - -
                                                                                                                                        - -
                                                                                                                                        MaskPatternTesterTest
                                                                                                                                        -
                                                                                                                                        MaskPatternTester coverage test
                                                                                                                                        - -
                                                                                                                                        - - - - - - - -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        -

                                                                                                                                        Search results

                                                                                                                                        - -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          - - -
                                                                                                                                          - - - - diff --git a/files/tests-data-numbertest.html b/files/tests-data-numbertest.html deleted file mode 100644 index a94d1ef4d..000000000 --- a/files/tests-data-numbertest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                          -

                                                                                                                                          Documentation

                                                                                                                                          - - - - - -
                                                                                                                                          - -
                                                                                                                                          -
                                                                                                                                          - - - - -
                                                                                                                                          -
                                                                                                                                            -
                                                                                                                                          - -
                                                                                                                                          -

                                                                                                                                          NumberTest.php

                                                                                                                                          - - - -

                                                                                                                                          - Interfaces, Classes and Traits - -

                                                                                                                                          - -
                                                                                                                                          - -
                                                                                                                                          NumberTest
                                                                                                                                          -
                                                                                                                                          Tests the Number class
                                                                                                                                          - -
                                                                                                                                          - - - - - - - -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          -

                                                                                                                                          Search results

                                                                                                                                          - -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            - - -
                                                                                                                                            - - - - diff --git a/files/tests-data-qrmatrixtest.html b/files/tests-data-qrmatrixtest.html deleted file mode 100644 index d97a01936..000000000 --- a/files/tests-data-qrmatrixtest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                            -

                                                                                                                                            Documentation

                                                                                                                                            - - - - - -
                                                                                                                                            - -
                                                                                                                                            -
                                                                                                                                            - - - - -
                                                                                                                                            -
                                                                                                                                              -
                                                                                                                                            - -
                                                                                                                                            -

                                                                                                                                            QRMatrixTest.php

                                                                                                                                            - - - -

                                                                                                                                            - Interfaces, Classes and Traits - -

                                                                                                                                            - -
                                                                                                                                            - -
                                                                                                                                            QRMatrixTest
                                                                                                                                            -
                                                                                                                                            Tests the QRMatix class
                                                                                                                                            - -
                                                                                                                                            - - - - - - - -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            -

                                                                                                                                            Search results

                                                                                                                                            - -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              - - -
                                                                                                                                              - - - - diff --git a/files/tests-helpers-bitbuffertest.html b/files/tests-helpers-bitbuffertest.html deleted file mode 100644 index f334fdeb3..000000000 --- a/files/tests-helpers-bitbuffertest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                              -

                                                                                                                                              Documentation

                                                                                                                                              - - - - - -
                                                                                                                                              - -
                                                                                                                                              -
                                                                                                                                              - - - - -
                                                                                                                                              -
                                                                                                                                                -
                                                                                                                                              - -
                                                                                                                                              -

                                                                                                                                              BitBufferTest.php

                                                                                                                                              - - - -

                                                                                                                                              - Interfaces, Classes and Traits - -

                                                                                                                                              - -
                                                                                                                                              - -
                                                                                                                                              BitBufferTest
                                                                                                                                              -
                                                                                                                                              BitBuffer coverage test
                                                                                                                                              - -
                                                                                                                                              - - - - - - - -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              -

                                                                                                                                              Search results

                                                                                                                                              - -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                - - -
                                                                                                                                                - - - - diff --git a/files/tests-helpers-polynomialtest.html b/files/tests-helpers-polynomialtest.html deleted file mode 100644 index 236aa13c9..000000000 --- a/files/tests-helpers-polynomialtest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                -

                                                                                                                                                Documentation

                                                                                                                                                - - - - - -
                                                                                                                                                - -
                                                                                                                                                -
                                                                                                                                                - - - - -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                - -
                                                                                                                                                -

                                                                                                                                                PolynomialTest.php

                                                                                                                                                - - - -

                                                                                                                                                - Interfaces, Classes and Traits - -

                                                                                                                                                - -
                                                                                                                                                - -
                                                                                                                                                PolynomialTest
                                                                                                                                                -
                                                                                                                                                Polynomial coverage test
                                                                                                                                                - -
                                                                                                                                                - - - - - - - -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -

                                                                                                                                                Search results

                                                                                                                                                - -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  - - -
                                                                                                                                                  - - - - diff --git a/files/tests-output-qrfpdftest.html b/files/tests-output-qrfpdftest.html deleted file mode 100644 index 6fccefd22..000000000 --- a/files/tests-output-qrfpdftest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                  -

                                                                                                                                                  Documentation

                                                                                                                                                  - - - - - -
                                                                                                                                                  - -
                                                                                                                                                  -
                                                                                                                                                  - - - - -
                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                  - -
                                                                                                                                                  -

                                                                                                                                                  QRFpdfTest.php

                                                                                                                                                  - - - -

                                                                                                                                                  - Interfaces, Classes and Traits - -

                                                                                                                                                  - -
                                                                                                                                                  - -
                                                                                                                                                  QRFpdfTest
                                                                                                                                                  -
                                                                                                                                                  Tests the QRFpdf output module
                                                                                                                                                  - -
                                                                                                                                                  - - - - - - - -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  -

                                                                                                                                                  Search results

                                                                                                                                                  - -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    - - -
                                                                                                                                                    - - - - diff --git a/files/tests-output-qrimagetest.html b/files/tests-output-qrimagetest.html deleted file mode 100644 index 28a3b0f7e..000000000 --- a/files/tests-output-qrimagetest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                    -

                                                                                                                                                    Documentation

                                                                                                                                                    - - - - - -
                                                                                                                                                    - -
                                                                                                                                                    -
                                                                                                                                                    - - - - -
                                                                                                                                                    -
                                                                                                                                                      -
                                                                                                                                                    - -
                                                                                                                                                    -

                                                                                                                                                    QRImageTest.php

                                                                                                                                                    - - - -

                                                                                                                                                    - Interfaces, Classes and Traits - -

                                                                                                                                                    - -
                                                                                                                                                    - -
                                                                                                                                                    QRImageTest
                                                                                                                                                    -
                                                                                                                                                    Tests the QRImage output module
                                                                                                                                                    - -
                                                                                                                                                    - - - - - - - -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    -

                                                                                                                                                    Search results

                                                                                                                                                    - -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                      - - -
                                                                                                                                                      - - - - diff --git a/files/tests-output-qrimagicktest.html b/files/tests-output-qrimagicktest.html deleted file mode 100644 index 5f05c46c8..000000000 --- a/files/tests-output-qrimagicktest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                      -

                                                                                                                                                      Documentation

                                                                                                                                                      - - - - - -
                                                                                                                                                      - -
                                                                                                                                                      -
                                                                                                                                                      - - - - -
                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                      - -
                                                                                                                                                      -

                                                                                                                                                      QRImagickTest.php

                                                                                                                                                      - - - -

                                                                                                                                                      - Interfaces, Classes and Traits - -

                                                                                                                                                      - -
                                                                                                                                                      - -
                                                                                                                                                      QRImagickTest
                                                                                                                                                      -
                                                                                                                                                      Tests the QRImagick output module
                                                                                                                                                      - -
                                                                                                                                                      - - - - - - - -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                      -

                                                                                                                                                      Search results

                                                                                                                                                      - -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        - - -
                                                                                                                                                        - - - - diff --git a/files/tests-output-qrmarkuptest.html b/files/tests-output-qrmarkuptest.html deleted file mode 100644 index e393a5241..000000000 --- a/files/tests-output-qrmarkuptest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                        -

                                                                                                                                                        Documentation

                                                                                                                                                        - - - - - -
                                                                                                                                                        - -
                                                                                                                                                        -
                                                                                                                                                        - - - - -
                                                                                                                                                        -
                                                                                                                                                          -
                                                                                                                                                        - -
                                                                                                                                                        -

                                                                                                                                                        QRMarkupTest.php

                                                                                                                                                        - - - -

                                                                                                                                                        - Interfaces, Classes and Traits - -

                                                                                                                                                        - -
                                                                                                                                                        - -
                                                                                                                                                        QRMarkupTest
                                                                                                                                                        -
                                                                                                                                                        Tests the QRMarkup output module
                                                                                                                                                        - -
                                                                                                                                                        - - - - - - - -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        -

                                                                                                                                                        Search results

                                                                                                                                                        - -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                          - - -
                                                                                                                                                          - - - - diff --git a/files/tests-output-qroutputtestabstract.html b/files/tests-output-qroutputtestabstract.html deleted file mode 100644 index 1e0e1e9ea..000000000 --- a/files/tests-output-qroutputtestabstract.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                          -

                                                                                                                                                          Documentation

                                                                                                                                                          - - - - - -
                                                                                                                                                          - -
                                                                                                                                                          -
                                                                                                                                                          - - - - -
                                                                                                                                                          -
                                                                                                                                                            -
                                                                                                                                                          - -
                                                                                                                                                          -

                                                                                                                                                          QROutputTestAbstract.php

                                                                                                                                                          - - - -

                                                                                                                                                          - Interfaces, Classes and Traits - -

                                                                                                                                                          - -
                                                                                                                                                          - -
                                                                                                                                                          QROutputTestAbstract
                                                                                                                                                          -
                                                                                                                                                          Test abstract for the several (built-in) output modules, -should also be used to test custom output modules
                                                                                                                                                          - -
                                                                                                                                                          - - - - - - - -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                          -

                                                                                                                                                          Search results

                                                                                                                                                          - -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            - - -
                                                                                                                                                            - - - - diff --git a/files/tests-output-qrstringtest.html b/files/tests-output-qrstringtest.html deleted file mode 100644 index b8a04c9f6..000000000 --- a/files/tests-output-qrstringtest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                            -

                                                                                                                                                            Documentation

                                                                                                                                                            - - - - - -
                                                                                                                                                            - -
                                                                                                                                                            -
                                                                                                                                                            - - - - -
                                                                                                                                                            -
                                                                                                                                                              -
                                                                                                                                                            - -
                                                                                                                                                            -

                                                                                                                                                            QRStringTest.php

                                                                                                                                                            - - - -

                                                                                                                                                            - Interfaces, Classes and Traits - -

                                                                                                                                                            - -
                                                                                                                                                            - -
                                                                                                                                                            QRStringTest
                                                                                                                                                            -
                                                                                                                                                            Tests the QRString output module
                                                                                                                                                            - -
                                                                                                                                                            - - - - - - - -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            -

                                                                                                                                                            Search results

                                                                                                                                                            - -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                              - - -
                                                                                                                                                              - - - - diff --git a/files/tests-qrcodetest.html b/files/tests-qrcodetest.html deleted file mode 100644 index 95c5fa98f..000000000 --- a/files/tests-qrcodetest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                              -

                                                                                                                                                              Documentation

                                                                                                                                                              - - - - - -
                                                                                                                                                              - -
                                                                                                                                                              -
                                                                                                                                                              - - - - -
                                                                                                                                                              -
                                                                                                                                                                -
                                                                                                                                                              - -
                                                                                                                                                              -

                                                                                                                                                              QRCodeTest.php

                                                                                                                                                              - - - -

                                                                                                                                                              - Interfaces, Classes and Traits - -

                                                                                                                                                              - -
                                                                                                                                                              - -
                                                                                                                                                              QRCodeTest
                                                                                                                                                              -
                                                                                                                                                              Tests basic functions of the QRCode class
                                                                                                                                                              - -
                                                                                                                                                              - - - - - - - -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                              -

                                                                                                                                                              Search results

                                                                                                                                                              - -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                - - -
                                                                                                                                                                - - - - diff --git a/files/tests-qroptionstest.html b/files/tests-qroptionstest.html deleted file mode 100644 index 053c5fa3b..000000000 --- a/files/tests-qroptionstest.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                -

                                                                                                                                                                Documentation

                                                                                                                                                                - - - - - -
                                                                                                                                                                - -
                                                                                                                                                                -
                                                                                                                                                                - - - - -
                                                                                                                                                                -
                                                                                                                                                                  -
                                                                                                                                                                - -
                                                                                                                                                                -

                                                                                                                                                                QROptionsTest.php

                                                                                                                                                                - - - -

                                                                                                                                                                - Interfaces, Classes and Traits - -

                                                                                                                                                                - -
                                                                                                                                                                - -
                                                                                                                                                                QROptionsTest
                                                                                                                                                                -
                                                                                                                                                                QROptions test
                                                                                                                                                                - -
                                                                                                                                                                - - - - - - - -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                -

                                                                                                                                                                Search results

                                                                                                                                                                - -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                  -
                                                                                                                                                                  -
                                                                                                                                                                  -
                                                                                                                                                                  -
                                                                                                                                                                  -
                                                                                                                                                                  - - -
                                                                                                                                                                  - - - - diff --git a/graphs/classes.html b/graphs/classes.html deleted file mode 100644 index d1e1557aa..000000000 --- a/graphs/classes.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - Documentation - - - - - - - - -
                                                                                                                                                                  -

                                                                                                                                                                  Documentation

                                                                                                                                                                  - - - - - -
                                                                                                                                                                  - -
                                                                                                                                                                  -
                                                                                                                                                                  - - - - -
                                                                                                                                                                  -
                                                                                                                                                                  - -
                                                                                                                                                                  - -
                                                                                                                                                                  -
                                                                                                                                                                  -
                                                                                                                                                                  -

                                                                                                                                                                  Search results

                                                                                                                                                                  - -
                                                                                                                                                                  -
                                                                                                                                                                  -
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                    - - -
                                                                                                                                                                    - - - - diff --git a/index.html b/index.html deleted file mode 100644 index 359e455a6..000000000 --- a/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                    -

                                                                                                                                                                    Documentation

                                                                                                                                                                    - - - - - -
                                                                                                                                                                    - -
                                                                                                                                                                    -
                                                                                                                                                                    - - - - -
                                                                                                                                                                    -

                                                                                                                                                                    Documentation

                                                                                                                                                                    - - - -

                                                                                                                                                                    - Namespaces - -

                                                                                                                                                                    - -
                                                                                                                                                                    -
                                                                                                                                                                    chillerlan
                                                                                                                                                                    -
                                                                                                                                                                    - - - - - - - -
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                    -

                                                                                                                                                                    Search results

                                                                                                                                                                    - -
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      - - -
                                                                                                                                                                      - - - - diff --git a/indices/files.html b/indices/files.html deleted file mode 100644 index 54e98f36f..000000000 --- a/indices/files.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                      -

                                                                                                                                                                      Documentation

                                                                                                                                                                      - - - - - -
                                                                                                                                                                      - -
                                                                                                                                                                      - - - -
                                                                                                                                                                      - - - - diff --git a/js/search.js b/js/search.js deleted file mode 100644 index a7e359548..000000000 --- a/js/search.js +++ /dev/null @@ -1,173 +0,0 @@ -// Search module for phpDocumentor -// -// This module is a wrapper around fuse.js that will use a given index and attach itself to a -// search form and to a search results pane identified by the following data attributes: -// -// 1. data-search-form -// 2. data-search-results -// -// The data-search-form is expected to have a single input element of type 'search' that will trigger searching for -// a series of results, were the data-search-results pane is expected to have a direct UL child that will be populated -// with rendered results. -// -// The search has various stages, upon loading this stage the data-search-form receives the CSS class -// 'phpdocumentor-search--enabled'; this indicates that JS is allowed and indices are being loaded. It is recommended -// to hide the form by default and show it when it receives this class to achieve progressive enhancement for this -// feature. -// -// After loading this module, it is expected to load a search index asynchronously, for example: -// -// -// -// In this script the generated index should attach itself to the search module using the `appendIndex` function. By -// doing it like this the page will continue loading, unhindered by the loading of the search. -// -// After the page has fully loaded, and all these deferred indexes loaded, the initialization of the search module will -// be called and the form will receive the class 'phpdocumentor-search--active', indicating search is ready. At this -// point, the input field will also have it's 'disabled' attribute removed. -var Search = (function () { - var fuse; - var index = []; - var options = { - shouldSort: true, - threshold: 0.6, - location: 0, - distance: 100, - maxPatternLength: 32, - minMatchCharLength: 1, - keys: [ - "fqsen", - "name", - "summary", - "url" - ] - }; - - // Credit David Walsh (https://davidwalsh.name/javascript-debounce-function) - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - function debounce(func, wait, immediate) { - var timeout; - - return function executedFunction() { - var context = this; - var args = arguments; - - var later = function () { - timeout = null; - if (!immediate) func.apply(context, args); - }; - - var callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) func.apply(context, args); - }; - } - - function close() { - // Start scroll prevention: https://css-tricks.com/prevent-page-scrolling-when-a-modal-is-open/ - const scrollY = document.body.style.top; - document.body.style.position = ''; - document.body.style.top = ''; - window.scrollTo(0, parseInt(scrollY || '0') * -1); - // End scroll prevention - - var form = document.querySelector('[data-search-form]'); - var searchResults = document.querySelector('[data-search-results]'); - - form.classList.toggle('phpdocumentor-search--has-results', false); - searchResults.classList.add('phpdocumentor-search-results--hidden'); - var searchField = document.querySelector('[data-search-form] input[type="search"]'); - searchField.blur(); - } - - function search(event) { - // Start scroll prevention: https://css-tricks.com/prevent-page-scrolling-when-a-modal-is-open/ - document.body.style.position = 'fixed'; - document.body.style.top = `-${window.scrollY}px`; - // End scroll prevention - - // prevent enter's from autosubmitting - event.stopPropagation(); - - var form = document.querySelector('[data-search-form]'); - var searchResults = document.querySelector('[data-search-results]'); - var searchResultEntries = document.querySelector('[data-search-results] .phpdocumentor-search-results__entries'); - - searchResultEntries.innerHTML = ''; - - if (!event.target.value) { - close(); - return; - } - - form.classList.toggle('phpdocumentor-search--has-results', true); - searchResults.classList.remove('phpdocumentor-search-results--hidden'); - var results = fuse.search(event.target.value, {limit: 25}); - - results.forEach(function (result) { - var entry = document.createElement("li"); - entry.classList.add("phpdocumentor-search-results__entry"); - entry.innerHTML += '

                                                                                                                                                                      ' + result.name + "

                                                                                                                                                                      \n"; - entry.innerHTML += '' + result.fqsen + "\n"; - entry.innerHTML += '
                                                                                                                                                                      ' + result.summary + '
                                                                                                                                                                      '; - searchResultEntries.appendChild(entry) - }); - } - - function appendIndex(added) { - index = index.concat(added); - - // re-initialize search engine when appending an index after initialisation - if (typeof fuse !== 'undefined') { - fuse = new Fuse(index, options); - } - } - - function init() { - fuse = new Fuse(index, options); - - var form = document.querySelector('[data-search-form]'); - var searchField = document.querySelector('[data-search-form] input[type="search"]'); - - var closeButton = document.querySelector('.phpdocumentor-search-results__close'); - closeButton.addEventListener('click', function() { close() }.bind(this)); - - var searchResults = document.querySelector('[data-search-results]'); - searchResults.addEventListener('click', function() { close() }.bind(this)); - - form.classList.add('phpdocumentor-search--active'); - - searchField.setAttribute('placeholder', 'Search (Press "/" to focus)'); - searchField.removeAttribute('disabled'); - searchField.addEventListener('keyup', debounce(search, 300)); - - window.addEventListener('keyup', function (event) { - if (event.key === '/') { - searchField.focus(); - } - if (event.code === 'Escape') { - close(); - } - }.bind(this)); - } - - return { - appendIndex, - init - } -})(); - -window.addEventListener('DOMContentLoaded', function () { - var form = document.querySelector('[data-search-form]'); - - // When JS is supported; show search box. Must be before including the search for it to take effect immediately - form.classList.add('phpdocumentor-search--enabled'); -}); - -window.addEventListener('load', function () { - Search.init(); -}); diff --git a/js/searchIndex.js b/js/searchIndex.js deleted file mode 100644 index df43f8b01..000000000 --- a/js/searchIndex.js +++ /dev/null @@ -1,1709 +0,0 @@ -Search.appendIndex( - [ - { - "fqsen": "\\chillerlan\\QRCode\\Data\\AlphaNum", - "name": "AlphaNum", - "summary": "Alphanumeric\u0020mode\u003A\u00200\u0020to\u00209,\u0020A\u0020to\u0020Z,\u0020space,\u0020\u0024\u0020\u0025\u0020\u002A\u0020\u002B\u0020\u002D\u0020.\u0020\/\u0020\u003A", - "url": "classes/chillerlan-QRCode-Data-AlphaNum.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\AlphaNum\u003A\u003Awrite\u0028\u0029", - "name": "write", - "summary": "writes\u0020the\u0020actual\u0020data\u0020string\u0020to\u0020the\u0020BitBuffer", - "url": "classes/chillerlan-QRCode-Data-AlphaNum.html#method_write" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\AlphaNum\u003A\u003AgetCharCode\u0028\u0029", - "name": "getCharCode", - "summary": "get\u0020the\u0020code\u0020for\u0020the\u0020given\u0020character", - "url": "classes/chillerlan-QRCode-Data-AlphaNum.html#method_getCharCode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\AlphaNum\u003A\u003A\u0024datamode", - "name": "datamode", - "summary": "the\u0020current\u0020data\u0020mode\u003A\u0020Num,\u0020Alphanum,\u0020Kanji,\u0020Byte", - "url": "classes/chillerlan-QRCode-Data-AlphaNum.html#property_datamode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\AlphaNum\u003A\u003A\u0024lengthBits", - "name": "lengthBits", - "summary": "mode\u0020length\u0020bits\u0020for\u0020the\u0020version\u0020breakpoints\u00201\u002D9,\u002010\u002D26\u0020and\u002027\u002D40", - "url": "classes/chillerlan-QRCode-Data-AlphaNum.html#property_lengthBits" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Byte", - "name": "Byte", - "summary": "Byte\u0020mode,\u0020ISO\u002D8859\u002D1\u0020or\u0020UTF\u002D8", - "url": "classes/chillerlan-QRCode-Data-Byte.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Byte\u003A\u003Awrite\u0028\u0029", - "name": "write", - "summary": "writes\u0020the\u0020actual\u0020data\u0020string\u0020to\u0020the\u0020BitBuffer", - "url": "classes/chillerlan-QRCode-Data-Byte.html#method_write" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Byte\u003A\u003A\u0024datamode", - "name": "datamode", - "summary": "the\u0020current\u0020data\u0020mode\u003A\u0020Num,\u0020Alphanum,\u0020Kanji,\u0020Byte", - "url": "classes/chillerlan-QRCode-Data-Byte.html#property_datamode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Byte\u003A\u003A\u0024lengthBits", - "name": "lengthBits", - "summary": "mode\u0020length\u0020bits\u0020for\u0020the\u0020version\u0020breakpoints\u00201\u002D9,\u002010\u002D26\u0020and\u002027\u002D40", - "url": "classes/chillerlan-QRCode-Data-Byte.html#property_lengthBits" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Kanji", - "name": "Kanji", - "summary": "Kanji\u0020mode\u003A\u0020double\u002Dbyte\u0020characters\u0020from\u0020the\u0020Shift\u0020JIS\u0020character\u0020set", - "url": "classes/chillerlan-QRCode-Data-Kanji.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Kanji\u003A\u003AgetLength\u0028\u0029", - "name": "getLength", - "summary": "returns\u0020the\u0020byte\u0020count\u0020of\u0020the\u0020\u0024data\u0020string", - "url": "classes/chillerlan-QRCode-Data-Kanji.html#method_getLength" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Kanji\u003A\u003Awrite\u0028\u0029", - "name": "write", - "summary": "writes\u0020the\u0020actual\u0020data\u0020string\u0020to\u0020the\u0020BitBuffer", - "url": "classes/chillerlan-QRCode-Data-Kanji.html#method_write" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Kanji\u003A\u003A\u0024datamode", - "name": "datamode", - "summary": "the\u0020current\u0020data\u0020mode\u003A\u0020Num,\u0020Alphanum,\u0020Kanji,\u0020Byte", - "url": "classes/chillerlan-QRCode-Data-Kanji.html#property_datamode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Kanji\u003A\u003A\u0024lengthBits", - "name": "lengthBits", - "summary": "mode\u0020length\u0020bits\u0020for\u0020the\u0020version\u0020breakpoints\u00201\u002D9,\u002010\u002D26\u0020and\u002027\u002D40", - "url": "classes/chillerlan-QRCode-Data-Kanji.html#property_lengthBits" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester", - "name": "MaskPatternTester", - "summary": "Receives\u0020a\u0020QRDataInterface\u0020object\u0020and\u0020runs\u0020the\u0020mask\u0020pattern\u0020tests\u0020on\u0020it.", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "Receives\u0020the\u0020QRDataInterface", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester\u003A\u003AgetBestMaskPattern\u0028\u0029", - "name": "getBestMaskPattern", - "summary": "shoves\u0020a\u0020QRMatrix\u0020through\u0020the\u0020MaskPatternTester\u0020to\u0020find\u0020the\u0020lowest\u0020penalty\u0020mask\u0020pattern", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html#method_getBestMaskPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester\u003A\u003AtestPattern\u0028\u0029", - "name": "testPattern", - "summary": "Returns\u0020the\u0020penalty\u0020for\u0020the\u0020given\u0020mask\u0020pattern", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html#method_testPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester\u003A\u003AtestLevel1\u0028\u0029", - "name": "testLevel1", - "summary": "Checks\u0020for\u0020each\u0020group\u0020of\u0020five\u0020or\u0020more\u0020same\u002Dcolored\u0020modules\u0020in\u0020a\u0020row\u0020\u0028or\u0020column\u0029", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html#method_testLevel1" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester\u003A\u003AtestLevel2\u0028\u0029", - "name": "testLevel2", - "summary": "Checks\u0020for\u0020each\u00202x2\u0020area\u0020of\u0020same\u002Dcolored\u0020modules\u0020in\u0020the\u0020matrix", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html#method_testLevel2" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester\u003A\u003AtestLevel3\u0028\u0029", - "name": "testLevel3", - "summary": "Checks\u0020if\u0020there\u0020are\u0020patterns\u0020that\u0020look\u0020similar\u0020to\u0020the\u0020finder\u0020patterns\u0020\u00281\u003A1\u003A3\u003A1\u003A1\u0020ratio\u0029", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html#method_testLevel3" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester\u003A\u003AtestLevel4\u0028\u0029", - "name": "testLevel4", - "summary": "Checks\u0020if\u0020more\u0020than\u0020half\u0020of\u0020the\u0020modules\u0020are\u0020dark\u0020or\u0020light,\u0020with\u0020a\u0020larger\u0020penalty\u0020for\u0020a\u0020larger\u0020difference", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html#method_testLevel4" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\MaskPatternTester\u003A\u003A\u0024dataInterface", - "name": "dataInterface", - "summary": "The\u0020data\u0020interface\u0020that\u0020contains\u0020the\u0020data\u0020matrix\u0020to\u0020test", - "url": "classes/chillerlan-QRCode-Data-MaskPatternTester.html#property_dataInterface" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Number", - "name": "Number", - "summary": "Numeric\u0020mode\u003A\u0020decimal\u0020digits\u00200\u0020to\u00209", - "url": "classes/chillerlan-QRCode-Data-Number.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Number\u003A\u003Awrite\u0028\u0029", - "name": "write", - "summary": "writes\u0020the\u0020actual\u0020data\u0020string\u0020to\u0020the\u0020BitBuffer", - "url": "classes/chillerlan-QRCode-Data-Number.html#method_write" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Number\u003A\u003AparseInt\u0028\u0029", - "name": "parseInt", - "summary": "get\u0020the\u0020code\u0020for\u0020the\u0020given\u0020numeric\u0020string", - "url": "classes/chillerlan-QRCode-Data-Number.html#method_parseInt" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Number\u003A\u003A\u0024datamode", - "name": "datamode", - "summary": "the\u0020current\u0020data\u0020mode\u003A\u0020Num,\u0020Alphanum,\u0020Kanji,\u0020Byte", - "url": "classes/chillerlan-QRCode-Data-Number.html#property_datamode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\Number\u003A\u003A\u0024lengthBits", - "name": "lengthBits", - "summary": "mode\u0020length\u0020bits\u0020for\u0020the\u0020version\u0020breakpoints\u00201\u002D9,\u002010\u002D26\u0020and\u002027\u002D40", - "url": "classes/chillerlan-QRCode-Data-Number.html#property_lengthBits" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRCodeDataException", - "name": "QRCodeDataException", - "summary": "An\u0020exception\u0020container", - "url": "classes/chillerlan-QRCode-Data-QRCodeDataException.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract", - "name": "QRDataAbstract", - "summary": "Processes\u0020the\u0020binary\u0020data\u0020and\u0020maps\u0020it\u0020on\u0020a\u0020matrix\u0020which\u0020is\u0020then\u0020being\u0020returned", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "QRDataInterface\u0020constructor.", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003AsetData\u0028\u0029", - "name": "setData", - "summary": "Sets\u0020the\u0020data\u0020string\u0020\u0028internally\u0020called\u0020by\u0020the\u0020constructor\u0029", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_setData" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003AinitMatrix\u0028\u0029", - "name": "initMatrix", - "summary": "returns\u0020a\u0020fresh\u0020matrix\u0020object\u0020with\u0020the\u0020data\u0020written\u0020for\u0020the\u0020given\u0020\u0024maskPattern", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_initMatrix" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003AgetLengthBits\u0028\u0029", - "name": "getLengthBits", - "summary": "returns\u0020the\u0020length\u0020bits\u0020for\u0020the\u0020version\u0020breakpoints\u00201\u002D9,\u002010\u002D26\u0020and\u002027\u002D40", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_getLengthBits" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003AgetLength\u0028\u0029", - "name": "getLength", - "summary": "returns\u0020the\u0020byte\u0020count\u0020of\u0020the\u0020\u0024data\u0020string", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_getLength" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003AgetMinimumVersion\u0028\u0029", - "name": "getMinimumVersion", - "summary": "returns\u0020the\u0020minimum\u0020version\u0020number\u0020for\u0020the\u0020given\u0020string", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_getMinimumVersion" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003Awrite\u0028\u0029", - "name": "write", - "summary": "writes\u0020the\u0020actual\u0020data\u0020string\u0020to\u0020the\u0020BitBuffer", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_write" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003AwriteBitBuffer\u0028\u0029", - "name": "writeBitBuffer", - "summary": "creates\u0020a\u0020BitBuffer\u0020and\u0020writes\u0020the\u0020string\u0020data\u0020to\u0020it", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_writeBitBuffer" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003AmaskECC\u0028\u0029", - "name": "maskECC", - "summary": "ECC\u0020masking", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_maskECC" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003Apoly\u0028\u0029", - "name": "poly", - "summary": "helper\u0020method\u0020for\u0020the\u0020polynomial\u0020operations", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#method_poly" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A\u0024strlen", - "name": "strlen", - "summary": "the\u0020string\u0020byte\u0020count", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#property_strlen" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A\u0024datamode", - "name": "datamode", - "summary": "the\u0020current\u0020data\u0020mode\u003A\u0020Num,\u0020Alphanum,\u0020Kanji,\u0020Byte", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#property_datamode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A\u0024lengthBits", - "name": "lengthBits", - "summary": "mode\u0020length\u0020bits\u0020for\u0020the\u0020version\u0020breakpoints\u00201\u002D9,\u002010\u002D26\u0020and\u002027\u002D40", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#property_lengthBits" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A\u0024version", - "name": "version", - "summary": "current\u0020QR\u0020Code\u0020version", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#property_version" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A\u0024ecdata", - "name": "ecdata", - "summary": "ECC\u0020temp\u0020data", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#property_ecdata" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A\u0024dcdata", - "name": "dcdata", - "summary": "ECC\u0020temp\u0020data", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#property_dcdata" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A\u0024options", - "name": "options", - "summary": "the\u0020options\u0020instance", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#property_options" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataAbstract\u003A\u003A\u0024bitBuffer", - "name": "bitBuffer", - "summary": "a\u0020BitBuffer\u0020instance", - "url": "classes/chillerlan-QRCode-Data-QRDataAbstract.html#property_bitBuffer" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataInterface", - "name": "QRDataInterface", - "summary": "Specifies\u0020the\u0020methods\u0020reqired\u0020for\u0020the\u0020data\u0020modules\u0020\u0028Number,\u0020Alphanum,\u0020Byte\u0020and\u0020Kanji\u0029\nand\u0020holds\u0020version\u0020information\u0020in\u0020several\u0020constants", - "url": "classes/chillerlan-QRCode-Data-QRDataInterface.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataInterface\u003A\u003AsetData\u0028\u0029", - "name": "setData", - "summary": "Sets\u0020the\u0020data\u0020string\u0020\u0028internally\u0020called\u0020by\u0020the\u0020constructor\u0029", - "url": "classes/chillerlan-QRCode-Data-QRDataInterface.html#method_setData" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataInterface\u003A\u003AinitMatrix\u0028\u0029", - "name": "initMatrix", - "summary": "returns\u0020a\u0020fresh\u0020matrix\u0020object\u0020with\u0020the\u0020data\u0020written\u0020for\u0020the\u0020given\u0020\u0024maskPattern", - "url": "classes/chillerlan-QRCode-Data-QRDataInterface.html#method_initMatrix" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataInterface\u003A\u003ACHAR_MAP_NUMBER", - "name": "CHAR_MAP_NUMBER", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRDataInterface.html#constant_CHAR_MAP_NUMBER" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataInterface\u003A\u003ACHAR_MAP_ALPHANUM", - "name": "CHAR_MAP_ALPHANUM", - "summary": "ISO\/IEC\u002018004\u003A2000\u0020Table\u00205", - "url": "classes/chillerlan-QRCode-Data-QRDataInterface.html#constant_CHAR_MAP_ALPHANUM" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataInterface\u003A\u003AMAX_LENGTH", - "name": "MAX_LENGTH", - "summary": "ISO\/IEC\u002018004\u003A2000\u0020Tables\u00207\u002D11\u0020\u002D\u0020Number\u0020of\u0020symbol\u0020characters\u0020and\u0020input\u0020data\u0020capacity\u0020for\u0020versions\u00201\u0020to\u002040", - "url": "classes/chillerlan-QRCode-Data-QRDataInterface.html#constant_MAX_LENGTH" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataInterface\u003A\u003AMAX_BITS", - "name": "MAX_BITS", - "summary": "ISO\/IEC\u002018004\u003A2000\u0020Tables\u00207\u002D11\u0020\u002D\u0020Number\u0020of\u0020symbol\u0020characters\u0020and\u0020input\u0020data\u0020capacity\u0020for\u0020versions\u00201\u0020to\u002040", - "url": "classes/chillerlan-QRCode-Data-QRDataInterface.html#constant_MAX_BITS" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRDataInterface\u003A\u003ARSBLOCKS", - "name": "RSBLOCKS", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRDataInterface.html#constant_RSBLOCKS" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix", - "name": "QRMatrix", - "summary": "Holds\u0020a\u0020numerical\u0020representation\u0020of\u0020the\u0020final\u0020QR\u0020Code\u003B\nmaps\u0020the\u0020ECC\u0020coded\u0020binary\u0020data\u0020and\u0020applies\u0020the\u0020mask\u0020pattern", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "QRMatrix\u0020constructor.", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003Ainit\u0028\u0029", - "name": "init", - "summary": "shortcut\u0020to\u0020initialize\u0020the\u0020matrix", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_init" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003A\u0024matrix", - "name": "matrix", - "summary": "the\u0020actual\u0020matrix\u0020data\u0020array", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#property_matrix" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003A\u0024version", - "name": "version", - "summary": "the\u0020current\u0020QR\u0020Code\u0020version\u0020number", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#property_version" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AeccLevel\u0028\u0029", - "name": "eccLevel", - "summary": "Returns\u0020the\u0020current\u0020ECC\u0020level", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_eccLevel" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003A\u0024maskPattern", - "name": "maskPattern", - "summary": "the\u0020used\u0020mask\u0020pattern,\u0020set\u0020via\u0020QRMatrix\u003A\u003AmapData\u0028\u0029", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#property_maskPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003Asize\u0028\u0029", - "name": "size", - "summary": "Returns\u0020the\u0020absoulute\u0020size\u0020of\u0020the\u0020matrix,\u0020including\u0020quiet\u0020zone\u0020\u0028after\u0020setting\u0020it\u0029.", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_size" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003Aget\u0028\u0029", - "name": "get", - "summary": "Returns\u0020the\u0020value\u0020of\u0020the\u0020module\u0020at\u0020position\u0020\u005B\u0024x,\u0020\u0024y\u005D", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_get" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003Aset\u0028\u0029", - "name": "set", - "summary": "Sets\u0020the\u0020\u0024M_TYPE\u0020value\u0020for\u0020the\u0020module\u0020at\u0020position\u0020\u005B\u0024x,\u0020\u0024y\u005D", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_set" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003Acheck\u0028\u0029", - "name": "check", - "summary": "Checks\u0020whether\u0020a\u0020module\u0020is\u0020true\u0020\u0028dark\u0029\u0020or\u0020false\u0020\u0028light\u0029", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_check" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetDarkModule\u0028\u0029", - "name": "setDarkModule", - "summary": "Sets\u0020the\u0020\u0022dark\u0020module\u0022,\u0020that\u0020is\u0020always\u0020on\u0020the\u0020same\u0020position\u00201x1px\u0020away\u0020from\u0020the\u0020bottom\u0020left\u0020finder", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setDarkModule" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetFinderPattern\u0028\u0029", - "name": "setFinderPattern", - "summary": "Draws\u0020the\u00207x7\u0020finder\u0020patterns\u0020in\u0020the\u0020corners\u0020top\u0020left\/right\u0020and\u0020bottom\u0020left", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setFinderPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetSeparators\u0028\u0029", - "name": "setSeparators", - "summary": "Draws\u0020the\u0020separator\u0020lines\u0020around\u0020the\u0020finder\u0020patterns", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setSeparators" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetAlignmentPattern\u0028\u0029", - "name": "setAlignmentPattern", - "summary": "Draws\u0020the\u00205x5\u0020alignment\u0020patterns", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setAlignmentPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetTimingPattern\u0028\u0029", - "name": "setTimingPattern", - "summary": "Draws\u0020the\u0020timing\u0020pattern\u0020\u0028h\/v\u0020checkered\u0020line\u0020between\u0020the\u0020finder\u0020patterns\u0029", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setTimingPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetVersionNumber\u0028\u0029", - "name": "setVersionNumber", - "summary": "Draws\u0020the\u0020version\u0020information,\u00202x\u00203x6\u0020pixel", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setVersionNumber" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetFormatInfo\u0028\u0029", - "name": "setFormatInfo", - "summary": "Draws\u0020the\u0020format\u0020info\u0020along\u0020the\u0020finder\u0020patterns", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setFormatInfo" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetQuietZone\u0028\u0029", - "name": "setQuietZone", - "summary": "Draws\u0020the\u0020\u0022quiet\u0020zone\u0022\u0020of\u0020\u0024size\u0020around\u0020the\u0020matrix", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setQuietZone" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AsetLogoSpace\u0028\u0029", - "name": "setLogoSpace", - "summary": "Clears\u0020a\u0020space\u0020of\u0020\u0024width\u0020\u002A\u0020\u0024height\u0020in\u0020order\u0020to\u0020add\u0020a\u0020logo\u0020or\u0020text.", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_setLogoSpace" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AmapData\u0028\u0029", - "name": "mapData", - "summary": "Maps\u0020the\u0020binary\u0020\u0024data\u0020array\u0020from\u0020QRDataInterface\u003A\u003AmaskECC\u0028\u0029\u0020on\u0020the\u0020matrix,\nmasking\u0020the\u0020data\u0020using\u0020\u0024maskPattern\u0020\u0028ISO\/IEC\u002018004\u003A2000\u0020Section\u00208.8\u0029", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#method_mapData" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_NULL", - "name": "M_NULL", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_NULL" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_DARKMODULE", - "name": "M_DARKMODULE", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_DARKMODULE" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_DATA", - "name": "M_DATA", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_DATA" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_FINDER", - "name": "M_FINDER", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_FINDER" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_SEPARATOR", - "name": "M_SEPARATOR", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_SEPARATOR" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_ALIGNMENT", - "name": "M_ALIGNMENT", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_ALIGNMENT" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_TIMING", - "name": "M_TIMING", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_TIMING" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_FORMAT", - "name": "M_FORMAT", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_FORMAT" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_VERSION", - "name": "M_VERSION", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_VERSION" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_QUIETZONE", - "name": "M_QUIETZONE", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_QUIETZONE" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_LOGO", - "name": "M_LOGO", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_LOGO" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_FINDER_DOT", - "name": "M_FINDER_DOT", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_FINDER_DOT" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AM_TEST", - "name": "M_TEST", - "summary": "", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_M_TEST" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AalignmentPattern", - "name": "alignmentPattern", - "summary": "ISO\/IEC\u002018004\u003A2000\u0020Annex\u0020E,\u0020Table\u0020E.1\u0020\u002D\u0020Row\/column\u0020coordinates\u0020of\u0020center\u0020module\u0020of\u0020Alignment\u0020Patterns", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_alignmentPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AversionPattern", - "name": "versionPattern", - "summary": "ISO\/IEC\u002018004\u003A2000\u0020Annex\u0020D,\u0020Table\u0020D.1\u0020\u002D\u0020Version\u0020information\u0020bit\u0020stream\u0020for\u0020each\u0020version", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_versionPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003AformatPattern", - "name": "formatPattern", - "summary": "ISO\/IEC\u002018004\u003A2000\u0020Section\u00208.9\u0020\u002D\u0020Format\u0020Information", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#constant_formatPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003A\u0024eclevel", - "name": "eclevel", - "summary": "the\u0020current\u0020ECC\u0020level", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#property_eclevel" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data\\QRMatrix\u003A\u003A\u0024moduleCount", - "name": "moduleCount", - "summary": "the\u0020size\u0020\u0028side\u0020length\u0029\u0020of\u0020the\u0020matrix", - "url": "classes/chillerlan-QRCode-Data-QRMatrix.html#property_moduleCount" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\BitBuffer", - "name": "BitBuffer", - "summary": "Holds\u0020the\u0020raw\u0020binary\u0020data", - "url": "classes/chillerlan-QRCode-Helpers-BitBuffer.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\BitBuffer\u003A\u003Aclear\u0028\u0029", - "name": "clear", - "summary": "clears\u0020the\u0020buffer", - "url": "classes/chillerlan-QRCode-Helpers-BitBuffer.html#method_clear" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\BitBuffer\u003A\u003Aput\u0028\u0029", - "name": "put", - "summary": "appends\u0020a\u0020sequence\u0020of\u0020bits", - "url": "classes/chillerlan-QRCode-Helpers-BitBuffer.html#method_put" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\BitBuffer\u003A\u003AputBit\u0028\u0029", - "name": "putBit", - "summary": "appends\u0020a\u0020single\u0020bit", - "url": "classes/chillerlan-QRCode-Helpers-BitBuffer.html#method_putBit" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\BitBuffer\u003A\u003AgetLength\u0028\u0029", - "name": "getLength", - "summary": "returns\u0020the\u0020current\u0020buffer\u0020length", - "url": "classes/chillerlan-QRCode-Helpers-BitBuffer.html#method_getLength" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\BitBuffer\u003A\u003AgetBuffer\u0028\u0029", - "name": "getBuffer", - "summary": "returns\u0020the\u0020buffer\u0020content", - "url": "classes/chillerlan-QRCode-Helpers-BitBuffer.html#method_getBuffer" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\BitBuffer\u003A\u003A\u0024buffer", - "name": "buffer", - "summary": "The\u0020buffer\u0020content", - "url": "classes/chillerlan-QRCode-Helpers-BitBuffer.html#property_buffer" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\BitBuffer\u003A\u003A\u0024length", - "name": "length", - "summary": "Length\u0020of\u0020the\u0020content\u0020\u0028bits\u0029", - "url": "classes/chillerlan-QRCode-Helpers-BitBuffer.html#property_length" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial", - "name": "Polynomial", - "summary": "Polynomial\u0020long\u0020division\u0020helpers", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "Polynomial\u0020constructor.", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003AgetNum\u0028\u0029", - "name": "getNum", - "summary": "", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#method_getNum" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003AsetNum\u0028\u0029", - "name": "setNum", - "summary": "", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#method_setNum" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003Amultiply\u0028\u0029", - "name": "multiply", - "summary": "", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#method_multiply" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003Amod\u0028\u0029", - "name": "mod", - "summary": "", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#method_mod" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003Aglog\u0028\u0029", - "name": "glog", - "summary": "", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#method_glog" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003Agexp\u0028\u0029", - "name": "gexp", - "summary": "", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#method_gexp" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003Atable", - "name": "table", - "summary": "", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#constant_table" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers\\Polynomial\u003A\u003A\u0024num", - "name": "num", - "summary": "", - "url": "classes/chillerlan-QRCode-Helpers-Polynomial.html#property_num" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRCodeOutputException", - "name": "QRCodeOutputException", - "summary": "An\u0020exception\u0020container", - "url": "classes/chillerlan-QRCode-Output-QRCodeOutputException.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRFpdf", - "name": "QRFpdf", - "summary": "QRFpdf\u0020output\u0020module\u0020\u0028requires\u0020fpdf\u0029", - "url": "classes/chillerlan-QRCode-Output-QRFpdf.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRFpdf\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "QROutputAbstract\u0020constructor.", - "url": "classes/chillerlan-QRCode-Output-QRFpdf.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRFpdf\u003A\u003AsetModuleValues\u0028\u0029", - "name": "setModuleValues", - "summary": "Sets\u0020the\u0020initial\u0020module\u0020values\u0020\u0028clean\u002Dup\u0020\u0026\u0020defaults\u0029", - "url": "classes/chillerlan-QRCode-Output-QRFpdf.html#method_setModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRFpdf\u003A\u003Adump\u0028\u0029", - "name": "dump", - "summary": "generates\u0020the\u0020output,\u0020optionally\u0020dumps\u0020it\u0020to\u0020a\u0020file,\u0020and\u0020returns\u0020it", - "url": "classes/chillerlan-QRCode-Output-QRFpdf.html#method_dump" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage", - "name": "QRImage", - "summary": "Converts\u0020the\u0020matrix\u0020into\u0020GD\u0020images,\u0020raw\u0020or\u0020base64\u0020output\u0020\u0028requires\u0020ext\u002Dgd\u0029", - "url": "classes/chillerlan-QRCode-Output-QRImage.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "QROutputAbstract\u0020constructor.", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003AsetModuleValues\u0028\u0029", - "name": "setModuleValues", - "summary": "Sets\u0020the\u0020initial\u0020module\u0020values\u0020\u0028clean\u002Dup\u0020\u0026\u0020defaults\u0029", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#method_setModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003Adump\u0028\u0029", - "name": "dump", - "summary": "generates\u0020the\u0020output,\u0020optionally\u0020dumps\u0020it\u0020to\u0020a\u0020file,\u0020and\u0020returns\u0020it", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#method_dump" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003AsetPixel\u0028\u0029", - "name": "setPixel", - "summary": "Creates\u0020a\u0020single\u0020QR\u0020pixel\u0020with\u0020the\u0020given\u0020settings", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#method_setPixel" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003AdumpImage\u0028\u0029", - "name": "dumpImage", - "summary": "Creates\u0020the\u0020final\u0020image\u0020by\u0020calling\u0020the\u0020desired\u0020GD\u0020output\u0020function", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#method_dumpImage" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003Apng\u0028\u0029", - "name": "png", - "summary": "PNG\u0020output", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#method_png" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003Agif\u0028\u0029", - "name": "gif", - "summary": "Jiff\u0020\u002D\u0020like...\u0020JitHub\u0021", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#method_gif" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003Ajpg\u0028\u0029", - "name": "jpg", - "summary": "JPG\u0020output", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#method_jpg" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003ATRANSPARENCY_TYPES", - "name": "TRANSPARENCY_TYPES", - "summary": "GD\u0020image\u0020types\u0020that\u0020support\u0020transparency", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#constant_TRANSPARENCY_TYPES" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003A\u0024defaultMode", - "name": "defaultMode", - "summary": "the\u0020default\u0020output\u0020mode\u0020of\u0020the\u0020current\u0020output\u0020module", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#property_defaultMode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImage\u003A\u003A\u0024image", - "name": "image", - "summary": "The\u0020GD\u0020image\u0020resource", - "url": "classes/chillerlan-QRCode-Output-QRImage.html#property_image" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImagick", - "name": "QRImagick", - "summary": "ImageMagick\u0020output\u0020module\u0020\u0028requires\u0020ext\u002Dimagick\u0029", - "url": "classes/chillerlan-QRCode-Output-QRImagick.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImagick\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "QROutputAbstract\u0020constructor.", - "url": "classes/chillerlan-QRCode-Output-QRImagick.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImagick\u003A\u003AsetModuleValues\u0028\u0029", - "name": "setModuleValues", - "summary": "Sets\u0020the\u0020initial\u0020module\u0020values\u0020\u0028clean\u002Dup\u0020\u0026\u0020defaults\u0029", - "url": "classes/chillerlan-QRCode-Output-QRImagick.html#method_setModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImagick\u003A\u003Adump\u0028\u0029", - "name": "dump", - "summary": "generates\u0020the\u0020output,\u0020optionally\u0020dumps\u0020it\u0020to\u0020a\u0020file,\u0020and\u0020returns\u0020it", - "url": "classes/chillerlan-QRCode-Output-QRImagick.html#method_dump" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImagick\u003A\u003AdrawImage\u0028\u0029", - "name": "drawImage", - "summary": "Creates\u0020the\u0020QR\u0020image\u0020via\u0020ImagickDraw", - "url": "classes/chillerlan-QRCode-Output-QRImagick.html#method_drawImage" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRImagick\u003A\u003A\u0024imagick", - "name": "imagick", - "summary": "", - "url": "classes/chillerlan-QRCode-Output-QRImagick.html#property_imagick" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRMarkup", - "name": "QRMarkup", - "summary": "Converts\u0020the\u0020matrix\u0020into\u0020markup\u0020types\u003A\u0020HTML,\u0020SVG,\u0020.", - "url": "classes/chillerlan-QRCode-Output-QRMarkup.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRMarkup\u003A\u003AsetModuleValues\u0028\u0029", - "name": "setModuleValues", - "summary": "Sets\u0020the\u0020initial\u0020module\u0020values\u0020\u0028clean\u002Dup\u0020\u0026\u0020defaults\u0029", - "url": "classes/chillerlan-QRCode-Output-QRMarkup.html#method_setModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRMarkup\u003A\u003Ahtml\u0028\u0029", - "name": "html", - "summary": "HTML\u0020output", - "url": "classes/chillerlan-QRCode-Output-QRMarkup.html#method_html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRMarkup\u003A\u003Asvg\u0028\u0029", - "name": "svg", - "summary": "SVG\u0020output", - "url": "classes/chillerlan-QRCode-Output-QRMarkup.html#method_svg" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRMarkup\u003A\u003A\u0024defaultMode", - "name": "defaultMode", - "summary": "the\u0020default\u0020output\u0020mode\u0020of\u0020the\u0020current\u0020output\u0020module", - "url": "classes/chillerlan-QRCode-Output-QRMarkup.html#property_defaultMode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRMarkup\u003A\u003A\u0024svgHeader", - "name": "svgHeader", - "summary": "", - "url": "classes/chillerlan-QRCode-Output-QRMarkup.html#property_svgHeader" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract", - "name": "QROutputAbstract", - "summary": "common\u0020output\u0020abstract", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "QROutputAbstract\u0020constructor.", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003AsetModuleValues\u0028\u0029", - "name": "setModuleValues", - "summary": "Sets\u0020the\u0020initial\u0020module\u0020values\u0020\u0028clean\u002Dup\u0020\u0026\u0020defaults\u0029", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#method_setModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003AsaveToFile\u0028\u0029", - "name": "saveToFile", - "summary": "saves\u0020the\u0020qr\u0020data\u0020to\u0020a\u0020file", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#method_saveToFile" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003Adump\u0028\u0029", - "name": "dump", - "summary": "generates\u0020the\u0020output,\u0020optionally\u0020dumps\u0020it\u0020to\u0020a\u0020file,\u0020and\u0020returns\u0020it", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#method_dump" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A\u0024moduleCount", - "name": "moduleCount", - "summary": "the\u0020current\u0020size\u0020of\u0020the\u0020QR\u0020matrix", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#property_moduleCount" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A\u0024outputMode", - "name": "outputMode", - "summary": "the\u0020current\u0020output\u0020mode", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#property_outputMode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A\u0024defaultMode", - "name": "defaultMode", - "summary": "the\u0020default\u0020output\u0020mode\u0020of\u0020the\u0020current\u0020output\u0020module", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#property_defaultMode" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A\u0024scale", - "name": "scale", - "summary": "the\u0020current\u0020scaling\u0020for\u0020a\u0020QR\u0020pixel", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#property_scale" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A\u0024length", - "name": "length", - "summary": "the\u0020side\u0020length\u0020of\u0020the\u0020QR\u0020image\u0020\u0028modules\u0020\u002A\u0020scale\u0029", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#property_length" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A\u0024moduleValues", - "name": "moduleValues", - "summary": "an\u0020\u0028optional\u0029\u0020array\u0020of\u0020color\u0020values\u0020for\u0020the\u0020several\u0020QR\u0020matrix\u0020parts", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#property_moduleValues" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A\u0024matrix", - "name": "matrix", - "summary": "the\u0020\u0028filled\u0029\u0020data\u0020matrix\u0020object", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#property_matrix" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputAbstract\u003A\u003A\u0024options", - "name": "options", - "summary": "", - "url": "classes/chillerlan-QRCode-Output-QROutputAbstract.html#property_options" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputInterface", - "name": "QROutputInterface", - "summary": "Converts\u0020the\u0020data\u0020matrix\u0020into\u0020readable\u0020output", - "url": "classes/chillerlan-QRCode-Output-QROutputInterface.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputInterface\u003A\u003Adump\u0028\u0029", - "name": "dump", - "summary": "generates\u0020the\u0020output,\u0020optionally\u0020dumps\u0020it\u0020to\u0020a\u0020file,\u0020and\u0020returns\u0020it", - "url": "classes/chillerlan-QRCode-Output-QROutputInterface.html#method_dump" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QROutputInterface\u003A\u003ADEFAULT_MODULE_VALUES", - "name": "DEFAULT_MODULE_VALUES", - "summary": "", - "url": "classes/chillerlan-QRCode-Output-QROutputInterface.html#constant_DEFAULT_MODULE_VALUES" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRString", - "name": "QRString", - "summary": "Converts\u0020the\u0020matrix\u0020data\u0020into\u0020string\u0020types", - "url": "classes/chillerlan-QRCode-Output-QRString.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRString\u003A\u003AsetModuleValues\u0028\u0029", - "name": "setModuleValues", - "summary": "Sets\u0020the\u0020initial\u0020module\u0020values\u0020\u0028clean\u002Dup\u0020\u0026\u0020defaults\u0029", - "url": "classes/chillerlan-QRCode-Output-QRString.html#method_setModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRString\u003A\u003Atext\u0028\u0029", - "name": "text", - "summary": "string\u0020output", - "url": "classes/chillerlan-QRCode-Output-QRString.html#method_text" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRString\u003A\u003Ajson\u0028\u0029", - "name": "json", - "summary": "JSON\u0020output", - "url": "classes/chillerlan-QRCode-Output-QRString.html#method_json" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output\\QRString\u003A\u003A\u0024defaultMode", - "name": "defaultMode", - "summary": "the\u0020default\u0020output\u0020mode\u0020of\u0020the\u0020current\u0020output\u0020module", - "url": "classes/chillerlan-QRCode-Output-QRString.html#property_defaultMode" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode", - "name": "QRCode", - "summary": "Turns\u0020a\u0020text\u0020string\u0020into\u0020a\u0020Model\u00202\u0020QR\u0020Code", - "url": "classes/chillerlan-QRCode-QRCode.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003A__construct\u0028\u0029", - "name": "__construct", - "summary": "QRCode\u0020constructor.", - "url": "classes/chillerlan-QRCode-QRCode.html#method___construct" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003Arender\u0028\u0029", - "name": "render", - "summary": "Renders\u0020a\u0020QR\u0020Code\u0020for\u0020the\u0020given\u0020\u0024data\u0020and\u0020QROptions", - "url": "classes/chillerlan-QRCode-QRCode.html#method_render" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AgetMatrix\u0028\u0029", - "name": "getMatrix", - "summary": "Returns\u0020a\u0020QRMatrix\u0020object\u0020for\u0020the\u0020given\u0020\u0024data\u0020and\u0020current\u0020QROptions", - "url": "classes/chillerlan-QRCode-QRCode.html#method_getMatrix" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AinitDataInterface\u0028\u0029", - "name": "initDataInterface", - "summary": "returns\u0020a\u0020fresh\u0020QRDataInterface\u0020for\u0020the\u0020given\u0020\u0024data", - "url": "classes/chillerlan-QRCode-QRCode.html#method_initDataInterface" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AinitOutputInterface\u0028\u0029", - "name": "initOutputInterface", - "summary": "returns\u0020a\u0020fresh\u0020\u0028built\u002Din\u0029\u0020QROutputInterface", - "url": "classes/chillerlan-QRCode-QRCode.html#method_initOutputInterface" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AisNumber\u0028\u0029", - "name": "isNumber", - "summary": "checks\u0020if\u0020a\u0020string\u0020qualifies\u0020as\u0020numeric", - "url": "classes/chillerlan-QRCode-QRCode.html#method_isNumber" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AisAlphaNum\u0028\u0029", - "name": "isAlphaNum", - "summary": "checks\u0020if\u0020a\u0020string\u0020qualifies\u0020as\u0020alphanumeric", - "url": "classes/chillerlan-QRCode-QRCode.html#method_isAlphaNum" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AcheckString\u0028\u0029", - "name": "checkString", - "summary": "checks\u0020is\u0020a\u0020given\u0020\u0024string\u0020matches\u0020the\u0020characters\u0020of\u0020a\u0020given\u0020\u0024charmap,\u0020returns\u0020false\u0020on\u0020the\u0020first\u0020invalid\u0020occurence.", - "url": "classes/chillerlan-QRCode-QRCode.html#method_checkString" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AisKanji\u0028\u0029", - "name": "isKanji", - "summary": "checks\u0020if\u0020a\u0020string\u0020qualifies\u0020as\u0020Kanji", - "url": "classes/chillerlan-QRCode-QRCode.html#method_isKanji" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AisByte\u0028\u0029", - "name": "isByte", - "summary": "a\u0020dummy", - "url": "classes/chillerlan-QRCode-QRCode.html#method_isByte" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AVERSION_AUTO", - "name": "VERSION_AUTO", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_VERSION_AUTO" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AMASK_PATTERN_AUTO", - "name": "MASK_PATTERN_AUTO", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_MASK_PATTERN_AUTO" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003ADATA_NUMBER", - "name": "DATA_NUMBER", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_DATA_NUMBER" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003ADATA_ALPHANUM", - "name": "DATA_ALPHANUM", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_DATA_ALPHANUM" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003ADATA_BYTE", - "name": "DATA_BYTE", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_DATA_BYTE" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003ADATA_KANJI", - "name": "DATA_KANJI", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_DATA_KANJI" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003ADATA_MODES", - "name": "DATA_MODES", - "summary": "References\u0020to\u0020the\u0020keys\u0020of\u0020the\u0020following\u0020tables\u003A", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_DATA_MODES" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AECC_L", - "name": "ECC_L", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_ECC_L" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AECC_M", - "name": "ECC_M", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_ECC_M" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AECC_Q", - "name": "ECC_Q", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_ECC_Q" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AECC_H", - "name": "ECC_H", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_ECC_H" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AECC_MODES", - "name": "ECC_MODES", - "summary": "References\u0020to\u0020the\u0020keys\u0020of\u0020the\u0020following\u0020tables\u003A", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_ECC_MODES" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_MARKUP_HTML", - "name": "OUTPUT_MARKUP_HTML", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_MARKUP_HTML" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_MARKUP_SVG", - "name": "OUTPUT_MARKUP_SVG", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_MARKUP_SVG" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_IMAGE_PNG", - "name": "OUTPUT_IMAGE_PNG", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_IMAGE_PNG" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_IMAGE_JPG", - "name": "OUTPUT_IMAGE_JPG", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_IMAGE_JPG" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_IMAGE_GIF", - "name": "OUTPUT_IMAGE_GIF", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_IMAGE_GIF" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_STRING_JSON", - "name": "OUTPUT_STRING_JSON", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_STRING_JSON" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_STRING_TEXT", - "name": "OUTPUT_STRING_TEXT", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_STRING_TEXT" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_IMAGICK", - "name": "OUTPUT_IMAGICK", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_IMAGICK" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_FPDF", - "name": "OUTPUT_FPDF", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_FPDF" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_CUSTOM", - "name": "OUTPUT_CUSTOM", - "summary": "", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_CUSTOM" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003AOUTPUT_MODES", - "name": "OUTPUT_MODES", - "summary": "Map\u0020of\u0020built\u002Din\u0020output\u0020modules\u0020\u003D\u003E\u0020capabilities", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_OUTPUT_MODES" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003ADATA_INTERFACES", - "name": "DATA_INTERFACES", - "summary": "Map\u0020of\u0020data\u0020mode\u0020\u003D\u003E\u0020interface", - "url": "classes/chillerlan-QRCode-QRCode.html#constant_DATA_INTERFACES" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003A\u0024options", - "name": "options", - "summary": "The\u0020settings\u0020container", - "url": "classes/chillerlan-QRCode-QRCode.html#property_options" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCode\u003A\u003A\u0024dataInterface", - "name": "dataInterface", - "summary": "The\u0020selected\u0020data\u0020interface\u0020\u0028Number,\u0020AlphaNum,\u0020Kanji,\u0020Byte\u0029", - "url": "classes/chillerlan-QRCode-QRCode.html#property_dataInterface" - }, { - "fqsen": "\\chillerlan\\QRCode\\QRCodeException", - "name": "QRCodeException", - "summary": "An\u0020exception\u0020container", - "url": "classes/chillerlan-QRCode-QRCodeException.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptions", - "name": "QROptions", - "summary": "The\u0020QRCode\u0020settings\u0020container", - "url": "classes/chillerlan-QRCode-QROptions.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait", - "name": "QROptionsTrait", - "summary": "The\u0020QRCode\u0020plug\u002Din\u0020settings\u0020\u0026\u0020setter\u0020functionality", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003AsetMinMaxVersion\u0028\u0029", - "name": "setMinMaxVersion", - "summary": "clamp\u0020min\/max\u0020version\u0020number", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#method_setMinMaxVersion" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003Aset_versionMin\u0028\u0029", - "name": "set_versionMin", - "summary": "sets\u0020the\u0020minimum\u0020version\u0020number", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#method_set_versionMin" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003Aset_versionMax\u0028\u0029", - "name": "set_versionMax", - "summary": "sets\u0020the\u0020maximum\u0020version\u0020number", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#method_set_versionMax" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003Aset_eccLevel\u0028\u0029", - "name": "set_eccLevel", - "summary": "sets\u0020the\u0020error\u0020correction\u0020level", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#method_set_eccLevel" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003Aset_maskPattern\u0028\u0029", - "name": "set_maskPattern", - "summary": "sets\/clamps\u0020the\u0020mask\u0020pattern", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#method_set_maskPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003Aset_imageTransparencyBG\u0028\u0029", - "name": "set_imageTransparencyBG", - "summary": "sets\u0020the\u0020transparency\u0020background\u0020color", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#method_set_imageTransparencyBG" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003Aset_version\u0028\u0029", - "name": "set_version", - "summary": "sets\/clamps\u0020the\u0020version\u0020number", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#method_set_version" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003Aset_fpdfMeasureUnit\u0028\u0029", - "name": "set_fpdfMeasureUnit", - "summary": "sets\u0020the\u0020FPDF\u0020measurement\u0020unit", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#method_set_fpdfMeasureUnit" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024version", - "name": "version", - "summary": "QR\u0020Code\u0020version\u0020number", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_version" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024versionMin", - "name": "versionMin", - "summary": "Minimum\u0020QR\u0020version", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_versionMin" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024versionMax", - "name": "versionMax", - "summary": "Maximum\u0020QR\u0020version", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_versionMax" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024eccLevel", - "name": "eccLevel", - "summary": "Error\u0020correct\u0020level", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_eccLevel" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024maskPattern", - "name": "maskPattern", - "summary": "Mask\u0020Pattern\u0020to\u0020use", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_maskPattern" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024addQuietzone", - "name": "addQuietzone", - "summary": "Add\u0020a\u0020\u0022quiet\u0020zone\u0022\u0020\u0028margin\u0029\u0020according\u0020to\u0020the\u0020QR\u0020code\u0020spec", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_addQuietzone" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024quietzoneSize", - "name": "quietzoneSize", - "summary": "Size\u0020of\u0020the\u0020quiet\u0020zone", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_quietzoneSize" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024dataModeOverride", - "name": "dataModeOverride", - "summary": "Use\u0020this\u0020to\u0020circumvent\u0020the\u0020data\u0020mode\u0020detection\u0020and\u0020force\u0020the\u0020usage\u0020of\u0020the\u0020given\u0020mode.", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_dataModeOverride" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024outputType", - "name": "outputType", - "summary": "The\u0020output\u0020type", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_outputType" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024outputInterface", - "name": "outputInterface", - "summary": "the\u0020FQCN\u0020of\u0020the\u0020custom\u0020QROutputInterface\u0020if\u0020\u0024outputType\u0020is\u0020set\u0020to\u0020QRCode\u003A\u003AOUTPUT_CUSTOM", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_outputInterface" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024cachefile", - "name": "cachefile", - "summary": "\/path\/to\/cache.file", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_cachefile" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024eol", - "name": "eol", - "summary": "newline\u0020string\u0020\u005BHTML,\u0020SVG,\u0020TEXT\u005D", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_eol" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024scale", - "name": "scale", - "summary": "size\u0020of\u0020a\u0020QR\u0020code\u0020pixel\u0020\u005BSVG,\u0020IMAGE_\u002A\u005D,\u0020HTML\u0020via\u0020CSS", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_scale" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024cssClass", - "name": "cssClass", - "summary": "a\u0020common\u0020css\u0020class", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_cssClass" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024svgOpacity", - "name": "svgOpacity", - "summary": "SVG\u0020opacity", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_svgOpacity" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024svgDefs", - "name": "svgDefs", - "summary": "anything\u0020between\u0020\u003Cdefs\u003E", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_svgDefs" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024svgViewBoxSize", - "name": "svgViewBoxSize", - "summary": "SVG\u0020viewBox\u0020size.\u0020a\u0020single\u0020integer\u0020number\u0020which\u0020defines\u0020width\/height\u0020of\u0020the\u0020viewBox\u0020attribute.", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_svgViewBoxSize" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024textDark", - "name": "textDark", - "summary": "string\u0020substitute\u0020for\u0020dark", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_textDark" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024textLight", - "name": "textLight", - "summary": "string\u0020substitute\u0020for\u0020light", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_textLight" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024markupDark", - "name": "markupDark", - "summary": "markup\u0020substitute\u0020for\u0020dark\u0020\u0028CSS\u0020value\u0029", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_markupDark" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024markupLight", - "name": "markupLight", - "summary": "markup\u0020substitute\u0020for\u0020light\u0020\u0028CSS\u0020value\u0029", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_markupLight" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024returnResource", - "name": "returnResource", - "summary": "Return\u0020the\u0020image\u0020resource\u0020instead\u0020of\u0020a\u0020render\u0020if\u0020applicable.", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_returnResource" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024imageBase64", - "name": "imageBase64", - "summary": "toggle\u0020base64\u0020or\u0020raw\u0020image\u0020data", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_imageBase64" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024imageTransparent", - "name": "imageTransparent", - "summary": "toggle\u0020transparency,\u0020not\u0020supported\u0020by\u0020jpg", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_imageTransparent" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024imageTransparencyBG", - "name": "imageTransparencyBG", - "summary": "", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_imageTransparencyBG" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024pngCompression", - "name": "pngCompression", - "summary": "", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_pngCompression" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024jpegQuality", - "name": "jpegQuality", - "summary": "", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_jpegQuality" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024imagickFormat", - "name": "imagickFormat", - "summary": "Imagick\u0020output\u0020format", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_imagickFormat" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024imagickBG", - "name": "imagickBG", - "summary": "Imagick\u0020background\u0020color\u0020\u0028defaults\u0020to\u0020\u0022transparent\u0022\u0029", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_imagickBG" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024fpdfMeasureUnit", - "name": "fpdfMeasureUnit", - "summary": "Measurement\u0020unit\u0020for\u0020FPDF\u0020output\u003A\u0020pt,\u0020mm,\u0020cm,\u0020in\u0020\u0028defaults\u0020to\u0020\u0022pt\u0022\u0029", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_fpdfMeasureUnit" - }, { - "fqsen": "\\chillerlan\\QRCode\\QROptionsTrait\u003A\u003A\u0024moduleValues", - "name": "moduleValues", - "summary": "Module\u0020values\u0020map", - "url": "classes/chillerlan-QRCode-QROptionsTrait.html#property_moduleValues" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\AlphaNumTest", - "name": "AlphaNumTest", - "summary": "Tests\u0020the\u0020AlphaNum\u0020class", - "url": "classes/chillerlan-QRCodeTest-Data-AlphaNumTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\AlphaNumTest\u003A\u003AtestGetCharCodeException\u0028\u0029", - "name": "testGetCharCodeException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020an\u0020invalid\u0020character\u0020is\u0020encountered", - "url": "classes/chillerlan-QRCodeTest-Data-AlphaNumTest.html#method_testGetCharCodeException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\ByteTest", - "name": "ByteTest", - "summary": "Tests\u0020the\u0020Byte\u0020class", - "url": "classes/chillerlan-QRCodeTest-Data-ByteTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\DatainterfaceTestAbstract", - "name": "DatainterfaceTestAbstract", - "summary": "The\u0020data\u0020interface\u0020test\u0020abstract", - "url": "classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\DatainterfaceTestAbstract\u003A\u003AtestInstance\u0028\u0029", - "name": "testInstance", - "summary": "Verifies\u0020the\u0020data\u0020interface\u0020instance", - "url": "classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html#method_testInstance" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\DatainterfaceTestAbstract\u003A\u003AtestMaskEcc\u0028\u0029", - "name": "testMaskEcc", - "summary": "Tests\u0020ecc\u0020masking\u0020and\u0020verifies\u0020against\u0020a\u0020sample", - "url": "classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html#method_testMaskEcc" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\DatainterfaceTestAbstract\u003A\u003AtestInitMatrix\u0028\u0029", - "name": "testInitMatrix", - "summary": "Tests\u0020initializing\u0020the\u0020data\u0020matrix", - "url": "classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html#method_testInitMatrix" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\DatainterfaceTestAbstract\u003A\u003AtestGetMinimumVersion\u0028\u0029", - "name": "testGetMinimumVersion", - "summary": "Tests\u0020getting\u0020the\u0020minimum\u0020QR\u0020version\u0020for\u0020the\u0020given\u0020data", - "url": "classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html#method_testGetMinimumVersion" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\DatainterfaceTestAbstract\u003A\u003AtestGetMinimumVersionException\u0028\u0029", - "name": "testGetMinimumVersionException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020the\u0020data\u0020exceeds\u0020the\u0020maximum\u0020version\u0020while\u0020auto\u0020detecting", - "url": "classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html#method_testGetMinimumVersionException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\DatainterfaceTestAbstract\u003A\u003AtestCodeLengthOverflowException\u0028\u0029", - "name": "testCodeLengthOverflowException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020on\u0020data\u0020overflow", - "url": "classes/chillerlan-QRCodeTest-Data-DatainterfaceTestAbstract.html#method_testCodeLengthOverflowException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\KanjiTest", - "name": "KanjiTest", - "summary": "Tests\u0020the\u0020Kanji\u0020class", - "url": "classes/chillerlan-QRCodeTest-Data-KanjiTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\KanjiTest\u003A\u003AtestIllegalCharException1\u0028\u0029", - "name": "testIllegalCharException1", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020an\u0020invalid\u0020character\u0020is\u0020encountered", - "url": "classes/chillerlan-QRCodeTest-Data-KanjiTest.html#method_testIllegalCharException1" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\KanjiTest\u003A\u003AtestIllegalCharException2\u0028\u0029", - "name": "testIllegalCharException2", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020an\u0020invalid\u0020character\u0020is\u0020encountered", - "url": "classes/chillerlan-QRCodeTest-Data-KanjiTest.html#method_testIllegalCharException2" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\MaskPatternTesterTest", - "name": "MaskPatternTesterTest", - "summary": "MaskPatternTester\u0020coverage\u0020test", - "url": "classes/chillerlan-QRCodeTest-Data-MaskPatternTesterTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\MaskPatternTesterTest\u003A\u003AtestMaskpattern\u0028\u0029", - "name": "testMaskpattern", - "summary": "Tests\u0020getting\u0020the\u0020best\u0020mask\u0020pattern", - "url": "classes/chillerlan-QRCodeTest-Data-MaskPatternTesterTest.html#method_testMaskpattern" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\MaskPatternTesterTest\u003A\u003AtestMaskpatternID\u0028\u0029", - "name": "testMaskpatternID", - "summary": "Tests\u0020getting\u0020the\u0020penalty\u0020value\u0020for\u0020a\u0020given\u0020mask\u0020pattern", - "url": "classes/chillerlan-QRCodeTest-Data-MaskPatternTesterTest.html#method_testMaskpatternID" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\NumberTest", - "name": "NumberTest", - "summary": "Tests\u0020the\u0020Number\u0020class", - "url": "classes/chillerlan-QRCodeTest-Data-NumberTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\NumberTest\u003A\u003AtestGetCharCodeException\u0028\u0029", - "name": "testGetCharCodeException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020an\u0020invalid\u0020character\u0020is\u0020encountered", - "url": "classes/chillerlan-QRCodeTest-Data-NumberTest.html#method_testGetCharCodeException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest", - "name": "QRMatrixTest", - "summary": "Tests\u0020the\u0020QRMatix\u0020class", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestInstance\u0028\u0029", - "name": "testInstance", - "summary": "Validates\u0020the\u0020QRMatrix\u0020instance", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testInstance" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestInvalidVersionException\u0028\u0029", - "name": "testInvalidVersionException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020an\u0020invalid\u0020QR\u0020version\u0020was\u0020given", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testInvalidVersionException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestInvalidEccException\u0028\u0029", - "name": "testInvalidEccException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020an\u0020invalid\u0020ECC\u0020level\u0020was\u0020given", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testInvalidEccException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSize\u0028\u0029", - "name": "testSize", - "summary": "Tests\u0020if\u0020size\u0028\u0029\u0020returns\u0020the\u0020actual\u0020matrix\u0020size\/count", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSize" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestVersion\u0028\u0029", - "name": "testVersion", - "summary": "Tests\u0020if\u0020version\u0028\u0029\u0020returns\u0020the\u0020current\u0020\u0028given\u0029\u0020version", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testVersion" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestECC\u0028\u0029", - "name": "testECC", - "summary": "Tests\u0020if\u0020eccLevel\u0028\u0029\u0020returns\u0020the\u0020current\u0020\u0028given\u0029\u0020ECC\u0020level", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testECC" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestMaskPattern\u0028\u0029", - "name": "testMaskPattern", - "summary": "Tests\u0020if\u0020maskPattern\u0028\u0029\u0020returns\u0020the\u0020current\u0020\u0028or\u0020default\u0029\u0020mask\u0020pattern", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testMaskPattern" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestGetSetCheck\u0028\u0029", - "name": "testGetSetCheck", - "summary": "Tests\u0020the\u0020set\u0028\u0029,\u0020get\u0028\u0029\u0020and\u0020check\u0028\u0029\u0020methods", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testGetSetCheck" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetDarkModule\u0028\u0029", - "name": "testSetDarkModule", - "summary": "Tests\u0020setting\u0020the\u0020dark\u0020module\u0020and\u0020verifies\u0020its\u0020position", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetDarkModule" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetFinderPattern\u0028\u0029", - "name": "testSetFinderPattern", - "summary": "Tests\u0020setting\u0020the\u0020finder\u0020patterns\u0020and\u0020verifies\u0020their\u0020positions", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetFinderPattern" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetSeparators\u0028\u0029", - "name": "testSetSeparators", - "summary": "Tests\u0020the\u0020separator\u0020patterns\u0020and\u0020verifies\u0020their\u0020positions", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetSeparators" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetAlignmentPattern\u0028\u0029", - "name": "testSetAlignmentPattern", - "summary": "Tests\u0020the\u0020alignment\u0020patterns\u0020and\u0020verifies\u0020their\u0020positions\u0020\u002D\u0020version\u00201\u0020\u0028no\u0020pattern\u0029\u0020skipped", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetAlignmentPattern" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetTimingPattern\u0028\u0029", - "name": "testSetTimingPattern", - "summary": "Tests\u0020the\u0020timing\u0020patterns\u0020and\u0020verifies\u0020their\u0020positions", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetTimingPattern" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetVersionNumber\u0028\u0029", - "name": "testSetVersionNumber", - "summary": "Tests\u0020the\u0020version\u0020patterns\u0020and\u0020verifies\u0020their\u0020positions\u0020\u002D\u0020version\u0020\u003C\u00207\u0020skipped", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetVersionNumber" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetFormatInfo\u0028\u0029", - "name": "testSetFormatInfo", - "summary": "Tests\u0020the\u0020format\u0020patterns\u0020and\u0020verifies\u0020their\u0020positions", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetFormatInfo" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetQuietZone\u0028\u0029", - "name": "testSetQuietZone", - "summary": "Tests\u0020the\u0020quiet\u0020zone\u0020pattern\u0020and\u0020verifies\u0020its\u0020position", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetQuietZone" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetQuietZoneException\u0028\u0029", - "name": "testSetQuietZoneException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020in\u0020an\u0020attempt\u0020to\u0020create\u0020it\u0020before\u0020data\u0020was\u0020written", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetQuietZoneException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetLogoSpaceOrientation\u0028\u0029", - "name": "testSetLogoSpaceOrientation", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetLogoSpaceOrientation" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetLogoSpacePosition\u0028\u0029", - "name": "testSetLogoSpacePosition", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetLogoSpacePosition" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetLogoSpaceInvalidEccException\u0028\u0029", - "name": "testSetLogoSpaceInvalidEccException", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetLogoSpaceInvalidEccException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data\\QRMatrixTest\u003A\u003AtestSetLogoSpaceMaxSizeException\u0028\u0029", - "name": "testSetLogoSpaceMaxSizeException", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Data-QRMatrixTest.html#method_testSetLogoSpaceMaxSizeException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\BitBufferTest", - "name": "BitBufferTest", - "summary": "BitBuffer\u0020coverage\u0020test", - "url": "classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\BitBufferTest\u003A\u003AsetUp\u0028\u0029", - "name": "setUp", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html#method_setUp" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\BitBufferTest\u003A\u003AbitProvider\u0028\u0029", - "name": "bitProvider", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html#method_bitProvider" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\BitBufferTest\u003A\u003AtestPut\u0028\u0029", - "name": "testPut", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html#method_testPut" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\BitBufferTest\u003A\u003AtestClear\u0028\u0029", - "name": "testClear", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html#method_testClear" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\BitBufferTest\u003A\u003A\u0024bitBuffer", - "name": "bitBuffer", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-BitBufferTest.html#property_bitBuffer" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\PolynomialTest", - "name": "PolynomialTest", - "summary": "Polynomial\u0020coverage\u0020test", - "url": "classes/chillerlan-QRCodeTest-Helpers-PolynomialTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\PolynomialTest\u003A\u003AsetUp\u0028\u0029", - "name": "setUp", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-PolynomialTest.html#method_setUp" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\PolynomialTest\u003A\u003AtestGexp\u0028\u0029", - "name": "testGexp", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-PolynomialTest.html#method_testGexp" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\PolynomialTest\u003A\u003AtestGlogException\u0028\u0029", - "name": "testGlogException", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-PolynomialTest.html#method_testGlogException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers\\PolynomialTest\u003A\u003A\u0024polynomial", - "name": "polynomial", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Helpers-PolynomialTest.html#property_polynomial" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRFpdfTest", - "name": "QRFpdfTest", - "summary": "Tests\u0020the\u0020QRFpdf\u0020output\u0020module", - "url": "classes/chillerlan-QRCodeTest-Output-QRFpdfTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRFpdfTest\u003A\u003AtestSetModuleValues\u0028\u0029", - "name": "testSetModuleValues", - "summary": "covers\u0020the\u0020module\u0020values\u0020settings", - "url": "classes/chillerlan-QRCodeTest-Output-QRFpdfTest.html#method_testSetModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRFpdfTest\u003A\u003AtestRenderImage\u0028\u0029", - "name": "testRenderImage", - "summary": "covers\u0020the\u0020built\u002Din\u0020output\u0020modules,\u0020tests\u0020against\u0020pre\u002Drendered\u0020data", - "url": "classes/chillerlan-QRCodeTest-Output-QRFpdfTest.html#method_testRenderImage" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRFpdfTest\u003A\u003AtestOutputGetResource\u0028\u0029", - "name": "testOutputGetResource", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Output-QRFpdfTest.html#method_testOutputGetResource" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRImageTest", - "name": "QRImageTest", - "summary": "Tests\u0020the\u0020QRImage\u0020output\u0020module", - "url": "classes/chillerlan-QRCodeTest-Output-QRImageTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRImageTest\u003A\u003AtestSetModuleValues\u0028\u0029", - "name": "testSetModuleValues", - "summary": "covers\u0020the\u0020module\u0020values\u0020settings", - "url": "classes/chillerlan-QRCodeTest-Output-QRImageTest.html#method_testSetModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRImageTest\u003A\u003AtestOutputGetResource\u0028\u0029", - "name": "testOutputGetResource", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Output-QRImageTest.html#method_testOutputGetResource" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRImagickTest", - "name": "QRImagickTest", - "summary": "Tests\u0020the\u0020QRImagick\u0020output\u0020module", - "url": "classes/chillerlan-QRCodeTest-Output-QRImagickTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRImagickTest\u003A\u003AtestSetModuleValues\u0028\u0029", - "name": "testSetModuleValues", - "summary": "covers\u0020the\u0020module\u0020values\u0020settings", - "url": "classes/chillerlan-QRCodeTest-Output-QRImagickTest.html#method_testSetModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRImagickTest\u003A\u003AtestOutputGetResource\u0028\u0029", - "name": "testOutputGetResource", - "summary": "", - "url": "classes/chillerlan-QRCodeTest-Output-QRImagickTest.html#method_testOutputGetResource" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRMarkupTest", - "name": "QRMarkupTest", - "summary": "Tests\u0020the\u0020QRMarkup\u0020output\u0020module", - "url": "classes/chillerlan-QRCodeTest-Output-QRMarkupTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRMarkupTest\u003A\u003AtestSetModuleValues\u0028\u0029", - "name": "testSetModuleValues", - "summary": "covers\u0020the\u0020module\u0020values\u0020settings", - "url": "classes/chillerlan-QRCodeTest-Output-QRMarkupTest.html#method_testSetModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QROutputTestAbstract", - "name": "QROutputTestAbstract", - "summary": "Test\u0020abstract\u0020for\u0020the\u0020several\u0020\u0028built\u002Din\u0029\u0020output\u0020modules,\nshould\u0020also\u0020be\u0020used\u0020to\u0020test\u0020custom\u0020output\u0020modules", - "url": "classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QROutputTestAbstract\u003A\u003AtestInstance\u0028\u0029", - "name": "testInstance", - "summary": "Validate\u0020the\u0020instance\u0020of\u0020the\u0020interface", - "url": "classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html#method_testInstance" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QROutputTestAbstract\u003A\u003AtestSaveException\u0028\u0029", - "name": "testSaveException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020trying\u0020to\u0020write\u0020a\u0020cache\u0020file\u0020to\u0020an\u0020invalid\u0020destination", - "url": "classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html#method_testSaveException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QROutputTestAbstract\u003A\u003AtestSetModuleValues\u0028\u0029", - "name": "testSetModuleValues", - "summary": "covers\u0020the\u0020module\u0020values\u0020settings", - "url": "classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html#method_testSetModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QROutputTestAbstract\u003A\u003AtestStringOutput\u0028\u0029", - "name": "testStringOutput", - "summary": "coverage\u0020of\u0020the\u0020built\u002Din\u0020output\u0020modules", - "url": "classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html#method_testStringOutput" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QROutputTestAbstract\u003A\u003AtestRenderImage\u0028\u0029", - "name": "testRenderImage", - "summary": "covers\u0020the\u0020built\u002Din\u0020output\u0020modules,\u0020tests\u0020against\u0020pre\u002Drendered\u0020data", - "url": "classes/chillerlan-QRCodeTest-Output-QROutputTestAbstract.html#method_testRenderImage" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRStringTest", - "name": "QRStringTest", - "summary": "Tests\u0020the\u0020QRString\u0020output\u0020module", - "url": "classes/chillerlan-QRCodeTest-Output-QRStringTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRStringTest\u003A\u003AtestSetModuleValues\u0028\u0029", - "name": "testSetModuleValues", - "summary": "covers\u0020the\u0020module\u0020values\u0020settings", - "url": "classes/chillerlan-QRCodeTest-Output-QRStringTest.html#method_testSetModuleValues" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output\\QRStringTest\u003A\u003AtestCustomOutput\u0028\u0029", - "name": "testCustomOutput", - "summary": "covers\u0020the\u0020custom\u0020output\u0020functionality\u0020via\u0020an\u0020example", - "url": "classes/chillerlan-QRCodeTest-Output-QRStringTest.html#method_testCustomOutput" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest", - "name": "QRCodeTest", - "summary": "Tests\u0020basic\u0020functions\u0020of\u0020the\u0020QRCode\u0020class", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestIsNumber\u0028\u0029", - "name": "testIsNumber", - "summary": "isNumber\u0028\u0029\u0020should\u0020pass\u0020on\u0020any\u0020number\u0020and\u0020fail\u0020on\u0020anything\u0020else", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testIsNumber" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestIsAlphaNum\u0028\u0029", - "name": "testIsAlphaNum", - "summary": "isAlphaNum\u0028\u0029\u0020should\u0020pass\u0020on\u0020the\u002045\u0020defined\u0020characters\u0020and\u0020fail\u0020on\u0020anything\u0020else\u0020\u0028e.g.\u0020lowercase\u0029", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testIsAlphaNum" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestIsKanji\u0028\u0029", - "name": "testIsKanji", - "summary": "isKanji\u0028\u0029\u0020should\u0020pass\u0020on\u0020Kanji\/SJIS\u0020characters\u0020and\u0020fail\u0020on\u0020everything\u0020else", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testIsKanji" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestIsByte\u0028\u0029", - "name": "testIsByte", - "summary": "isByte\u0028\u0029\u0020passses\u0020any\u0020binary\u0020string\u0020and\u0020only\u0020fails\u0020on\u0020empty\u0020strings", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testIsByte" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestInitDataInterfaceException\u0028\u0029", - "name": "testInitDataInterfaceException", - "summary": "tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020an\u0020invalid\u0020\u0028built\u002Din\u0029\u0020output\u0020type\u0020is\u0020specified", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testInitDataInterfaceException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestGetMatrixException\u0028\u0029", - "name": "testGetMatrixException", - "summary": "tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020trying\u0020to\u0020call\u0020getMatrix\u0028\u0029\u0020without\u0020data\u0020\u0028empty\u0020string,\u0020no\u0020data\u0020set\u0029", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testGetMatrixException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestAvoidTrimming\u0028\u0029", - "name": "testAvoidTrimming", - "summary": "test\u0020whether\u0020stings\u0020are\u0020trimmed\u0020\u0028they\u0020are\u0020not\u0029\u0020\u002D\u0020i\u0027m\u0020still\u0020torn\u0020on\u0020that\u0020\u0028see\u0020isByte\u0029", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testAvoidTrimming" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestDataModeOverride\u0028\u0029", - "name": "testDataModeOverride", - "summary": "tests\u0020if\u0020the\u0020data\u0020mode\u0020is\u0020overriden\u0020if\u0020QROptions\u003A\u003A\u0024dataModeOverride\u0020is\u0020set\u0020to\u0020a\u0020valid\u0020value", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testDataModeOverride" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QRCodeTest\u003A\u003AtestDataModeOverrideError\u0028\u0029", - "name": "testDataModeOverrideError", - "summary": "tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020an\u0020invalid\u0020character\u0020occurs\u0020when\u0020forcing\u0020a\u0020data\u0020mode\u0020other\u0020than\u0020Byte", - "url": "classes/chillerlan-QRCodeTest-QRCodeTest.html#method_testDataModeOverrideError" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QROptionsTest", - "name": "QROptionsTest", - "summary": "QROptions\u0020test", - "url": "classes/chillerlan-QRCodeTest-QROptionsTest.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QROptionsTest\u003A\u003AtestVersionClamp\u0028\u0029", - "name": "testVersionClamp", - "summary": "Tests\u0020the\u0020\u0024version\u0020clamping", - "url": "classes/chillerlan-QRCodeTest-QROptionsTest.html#method_testVersionClamp" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QROptionsTest\u003A\u003AtestVersionMinMaxClamp\u0028\u0029", - "name": "testVersionMinMaxClamp", - "summary": "Tests\u0020the\u0020\u0024versionMin\/\u0024versionMax\u0020clamping", - "url": "classes/chillerlan-QRCodeTest-QROptionsTest.html#method_testVersionMinMaxClamp" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QROptionsTest\u003A\u003AtestMaskPatternClamp\u0028\u0029", - "name": "testMaskPatternClamp", - "summary": "Tests\u0020the\u0020\u0024maskPattern\u0020clamping", - "url": "classes/chillerlan-QRCodeTest-QROptionsTest.html#method_testMaskPatternClamp" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QROptionsTest\u003A\u003AtestInvalidEccLevelException\u0028\u0029", - "name": "testInvalidEccLevelException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020on\u0020an\u0020incorrect\u0020ECC\u0020level", - "url": "classes/chillerlan-QRCodeTest-QROptionsTest.html#method_testInvalidEccLevelException" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QROptionsTest\u003A\u003AtestClampRGBValues\u0028\u0029", - "name": "testClampRGBValues", - "summary": "Tests\u0020clamping\u0020of\u0020the\u0020RGB\u0020values\u0020for\u0020\u0024imageTransparencyBG", - "url": "classes/chillerlan-QRCodeTest-QROptionsTest.html#method_testClampRGBValues" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\QROptionsTest\u003A\u003AtestInvalidRGBValueException\u0028\u0029", - "name": "testInvalidRGBValueException", - "summary": "Tests\u0020if\u0020an\u0020exception\u0020is\u0020thrown\u0020when\u0020a\u0020non\u002Dnumeric\u0020RGB\u0020value\u0020was\u0020encoutered", - "url": "classes/chillerlan-QRCodeTest-QROptionsTest.html#method_testInvalidRGBValueException" - }, { - "fqsen": "\\", - "name": "\\", - "summary": "", - "url": "namespaces/default.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Data", - "name": "Data", - "summary": "", - "url": "namespaces/chillerlan-qrcode-data.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Helpers", - "name": "Helpers", - "summary": "", - "url": "namespaces/chillerlan-qrcode-helpers.html" - }, { - "fqsen": "\\chillerlan\\QRCode\\Output", - "name": "Output", - "summary": "", - "url": "namespaces/chillerlan-qrcode-output.html" - }, { - "fqsen": "\\chillerlan\\QRCode", - "name": "QRCode", - "summary": "", - "url": "namespaces/chillerlan-qrcode.html" - }, { - "fqsen": "\\chillerlan", - "name": "chillerlan", - "summary": "", - "url": "namespaces/chillerlan.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Data", - "name": "Data", - "summary": "", - "url": "namespaces/chillerlan-qrcodetest-data.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Helpers", - "name": "Helpers", - "summary": "", - "url": "namespaces/chillerlan-qrcodetest-helpers.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest\\Output", - "name": "Output", - "summary": "", - "url": "namespaces/chillerlan-qrcodetest-output.html" - }, { - "fqsen": "\\chillerlan\\QRCodeTest", - "name": "QRCodeTest", - "summary": "", - "url": "namespaces/chillerlan-qrcodetest.html" - } ] -); diff --git a/namespaces/chillerlan-qrcode-data.html b/namespaces/chillerlan-qrcode-data.html deleted file mode 100644 index 5b04fdf34..000000000 --- a/namespaces/chillerlan-qrcode-data.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                      -

                                                                                                                                                                      Documentation

                                                                                                                                                                      - - - - - -
                                                                                                                                                                      - -
                                                                                                                                                                      -
                                                                                                                                                                      - - - - -
                                                                                                                                                                      - - -
                                                                                                                                                                      -

                                                                                                                                                                      Data

                                                                                                                                                                      - - - -

                                                                                                                                                                      - Interfaces, Classes and Traits - -

                                                                                                                                                                      - -
                                                                                                                                                                      -
                                                                                                                                                                      QRDataInterface
                                                                                                                                                                      -
                                                                                                                                                                      Specifies the methods reqired for the data modules (Number, Alphanum, Byte and Kanji) -and holds version information in several constants
                                                                                                                                                                      - -
                                                                                                                                                                      AlphaNum
                                                                                                                                                                      -
                                                                                                                                                                      Alphanumeric mode: 0 to 9, A to Z, space, $ % * + - . / :
                                                                                                                                                                      -
                                                                                                                                                                      Byte
                                                                                                                                                                      -
                                                                                                                                                                      Byte mode, ISO-8859-1 or UTF-8
                                                                                                                                                                      -
                                                                                                                                                                      Kanji
                                                                                                                                                                      -
                                                                                                                                                                      Kanji mode: double-byte characters from the Shift JIS character set
                                                                                                                                                                      -
                                                                                                                                                                      MaskPatternTester
                                                                                                                                                                      -
                                                                                                                                                                      Receives a QRDataInterface object and runs the mask pattern tests on it.
                                                                                                                                                                      -
                                                                                                                                                                      Number
                                                                                                                                                                      -
                                                                                                                                                                      Numeric mode: decimal digits 0 to 9
                                                                                                                                                                      -
                                                                                                                                                                      QRCodeDataException
                                                                                                                                                                      -
                                                                                                                                                                      An exception container
                                                                                                                                                                      -
                                                                                                                                                                      QRDataAbstract
                                                                                                                                                                      -
                                                                                                                                                                      Processes the binary data and maps it on a matrix which is then being returned
                                                                                                                                                                      -
                                                                                                                                                                      QRMatrix
                                                                                                                                                                      -
                                                                                                                                                                      Holds a numerical representation of the final QR Code; -maps the ECC coded binary data and applies the mask pattern
                                                                                                                                                                      - -
                                                                                                                                                                      - - - - - - -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      -

                                                                                                                                                                      Search results

                                                                                                                                                                      - -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        - - -
                                                                                                                                                                        - - - - diff --git a/namespaces/chillerlan-qrcode-helpers.html b/namespaces/chillerlan-qrcode-helpers.html deleted file mode 100644 index efab87962..000000000 --- a/namespaces/chillerlan-qrcode-helpers.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                        -

                                                                                                                                                                        Documentation

                                                                                                                                                                        - - - - - -
                                                                                                                                                                        - -
                                                                                                                                                                        -
                                                                                                                                                                        - - - - -
                                                                                                                                                                        - - -
                                                                                                                                                                        -

                                                                                                                                                                        Helpers

                                                                                                                                                                        - - - -

                                                                                                                                                                        - Interfaces, Classes and Traits - -

                                                                                                                                                                        - -
                                                                                                                                                                        - -
                                                                                                                                                                        BitBuffer
                                                                                                                                                                        -
                                                                                                                                                                        Holds the raw binary data
                                                                                                                                                                        -
                                                                                                                                                                        Polynomial
                                                                                                                                                                        -
                                                                                                                                                                        Polynomial long division helpers
                                                                                                                                                                        - -
                                                                                                                                                                        - - - - - - -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        -

                                                                                                                                                                        Search results

                                                                                                                                                                        - -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          - - -
                                                                                                                                                                          - - - - diff --git a/namespaces/chillerlan-qrcode-output.html b/namespaces/chillerlan-qrcode-output.html deleted file mode 100644 index 4e7c2b2ad..000000000 --- a/namespaces/chillerlan-qrcode-output.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                          -

                                                                                                                                                                          Documentation

                                                                                                                                                                          - - - - - -
                                                                                                                                                                          - -
                                                                                                                                                                          -
                                                                                                                                                                          - - - - -
                                                                                                                                                                          - - -
                                                                                                                                                                          -

                                                                                                                                                                          Output

                                                                                                                                                                          - - - -

                                                                                                                                                                          - Interfaces, Classes and Traits - -

                                                                                                                                                                          - -
                                                                                                                                                                          -
                                                                                                                                                                          QROutputInterface
                                                                                                                                                                          -
                                                                                                                                                                          Converts the data matrix into readable output
                                                                                                                                                                          - -
                                                                                                                                                                          QRCodeOutputException
                                                                                                                                                                          -
                                                                                                                                                                          An exception container
                                                                                                                                                                          -
                                                                                                                                                                          QRFpdf
                                                                                                                                                                          -
                                                                                                                                                                          QRFpdf output module (requires fpdf)
                                                                                                                                                                          -
                                                                                                                                                                          QRImage
                                                                                                                                                                          -
                                                                                                                                                                          Converts the matrix into GD images, raw or base64 output (requires ext-gd)
                                                                                                                                                                          -
                                                                                                                                                                          QRImagick
                                                                                                                                                                          -
                                                                                                                                                                          ImageMagick output module (requires ext-imagick)
                                                                                                                                                                          -
                                                                                                                                                                          QRMarkup
                                                                                                                                                                          -
                                                                                                                                                                          Converts the matrix into markup types: HTML, SVG, .
                                                                                                                                                                          -
                                                                                                                                                                          QROutputAbstract
                                                                                                                                                                          -
                                                                                                                                                                          common output abstract
                                                                                                                                                                          -
                                                                                                                                                                          QRString
                                                                                                                                                                          -
                                                                                                                                                                          Converts the matrix data into string types
                                                                                                                                                                          - -
                                                                                                                                                                          - - - - - - -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          -

                                                                                                                                                                          Search results

                                                                                                                                                                          - -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                            - - -
                                                                                                                                                                            - - - - diff --git a/namespaces/chillerlan-qrcode.html b/namespaces/chillerlan-qrcode.html deleted file mode 100644 index 8ffa44162..000000000 --- a/namespaces/chillerlan-qrcode.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                            -

                                                                                                                                                                            Documentation

                                                                                                                                                                            - - - - - -
                                                                                                                                                                            - -
                                                                                                                                                                            -
                                                                                                                                                                            - - - - -
                                                                                                                                                                            - - -
                                                                                                                                                                            -

                                                                                                                                                                            QRCode

                                                                                                                                                                            - - -

                                                                                                                                                                            - Namespaces - -

                                                                                                                                                                            - -
                                                                                                                                                                            -
                                                                                                                                                                            Data
                                                                                                                                                                            -
                                                                                                                                                                            Helpers
                                                                                                                                                                            -
                                                                                                                                                                            Output
                                                                                                                                                                            -
                                                                                                                                                                            - -

                                                                                                                                                                            - Interfaces, Classes and Traits - -

                                                                                                                                                                            - -
                                                                                                                                                                            - -
                                                                                                                                                                            QRCode
                                                                                                                                                                            -
                                                                                                                                                                            Turns a text string into a Model 2 QR Code
                                                                                                                                                                            -
                                                                                                                                                                            QRCodeException
                                                                                                                                                                            -
                                                                                                                                                                            An exception container
                                                                                                                                                                            -
                                                                                                                                                                            QROptions
                                                                                                                                                                            -
                                                                                                                                                                            The QRCode settings container
                                                                                                                                                                            - -
                                                                                                                                                                            QROptionsTrait
                                                                                                                                                                            -
                                                                                                                                                                            The QRCode plug-in settings & setter functionality
                                                                                                                                                                            -
                                                                                                                                                                            - - - - - - -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                            -

                                                                                                                                                                            Search results

                                                                                                                                                                            - -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              - - -
                                                                                                                                                                              - - - - diff --git a/namespaces/chillerlan-qrcodetest-data.html b/namespaces/chillerlan-qrcodetest-data.html deleted file mode 100644 index e5ccc411f..000000000 --- a/namespaces/chillerlan-qrcodetest-data.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                              -

                                                                                                                                                                              Documentation

                                                                                                                                                                              - - - - - -
                                                                                                                                                                              - -
                                                                                                                                                                              -
                                                                                                                                                                              - - - - -
                                                                                                                                                                              - - - -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              -

                                                                                                                                                                              Search results

                                                                                                                                                                              - -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                - - -
                                                                                                                                                                                - - - - diff --git a/namespaces/chillerlan-qrcodetest-helpers.html b/namespaces/chillerlan-qrcodetest-helpers.html deleted file mode 100644 index 0291f4fec..000000000 --- a/namespaces/chillerlan-qrcodetest-helpers.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                -

                                                                                                                                                                                Documentation

                                                                                                                                                                                - - - - - -
                                                                                                                                                                                - -
                                                                                                                                                                                -
                                                                                                                                                                                - - - - -
                                                                                                                                                                                - - -
                                                                                                                                                                                -

                                                                                                                                                                                Helpers

                                                                                                                                                                                - - - -

                                                                                                                                                                                - Interfaces, Classes and Traits - -

                                                                                                                                                                                - -
                                                                                                                                                                                - -
                                                                                                                                                                                BitBufferTest
                                                                                                                                                                                -
                                                                                                                                                                                BitBuffer coverage test
                                                                                                                                                                                -
                                                                                                                                                                                PolynomialTest
                                                                                                                                                                                -
                                                                                                                                                                                Polynomial coverage test
                                                                                                                                                                                - -
                                                                                                                                                                                - - - - - - -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                -

                                                                                                                                                                                Search results

                                                                                                                                                                                - -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  - - -
                                                                                                                                                                                  - - - - diff --git a/namespaces/chillerlan-qrcodetest-output.html b/namespaces/chillerlan-qrcodetest-output.html deleted file mode 100644 index e28ee12ce..000000000 --- a/namespaces/chillerlan-qrcodetest-output.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                  -

                                                                                                                                                                                  Documentation

                                                                                                                                                                                  - - - - - -
                                                                                                                                                                                  - -
                                                                                                                                                                                  -
                                                                                                                                                                                  - - - - -
                                                                                                                                                                                  - - -
                                                                                                                                                                                  -

                                                                                                                                                                                  Output

                                                                                                                                                                                  - - - -

                                                                                                                                                                                  - Interfaces, Classes and Traits - -

                                                                                                                                                                                  - -
                                                                                                                                                                                  - -
                                                                                                                                                                                  QRFpdfTest
                                                                                                                                                                                  -
                                                                                                                                                                                  Tests the QRFpdf output module
                                                                                                                                                                                  -
                                                                                                                                                                                  QRImageTest
                                                                                                                                                                                  -
                                                                                                                                                                                  Tests the QRImage output module
                                                                                                                                                                                  -
                                                                                                                                                                                  QRImagickTest
                                                                                                                                                                                  -
                                                                                                                                                                                  Tests the QRImagick output module
                                                                                                                                                                                  -
                                                                                                                                                                                  QRMarkupTest
                                                                                                                                                                                  -
                                                                                                                                                                                  Tests the QRMarkup output module
                                                                                                                                                                                  -
                                                                                                                                                                                  QROutputTestAbstract
                                                                                                                                                                                  -
                                                                                                                                                                                  Test abstract for the several (built-in) output modules, -should also be used to test custom output modules
                                                                                                                                                                                  -
                                                                                                                                                                                  QRStringTest
                                                                                                                                                                                  -
                                                                                                                                                                                  Tests the QRString output module
                                                                                                                                                                                  - -
                                                                                                                                                                                  - - - - - - -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  -

                                                                                                                                                                                  Search results

                                                                                                                                                                                  - -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                    - - -
                                                                                                                                                                                    - - - - diff --git a/namespaces/chillerlan-qrcodetest.html b/namespaces/chillerlan-qrcodetest.html deleted file mode 100644 index 5d2cbee8b..000000000 --- a/namespaces/chillerlan-qrcodetest.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                    -

                                                                                                                                                                                    Documentation

                                                                                                                                                                                    - - - - - -
                                                                                                                                                                                    - -
                                                                                                                                                                                    -
                                                                                                                                                                                    - - - - -
                                                                                                                                                                                    - - -
                                                                                                                                                                                    -

                                                                                                                                                                                    QRCodeTest

                                                                                                                                                                                    - - -

                                                                                                                                                                                    - Namespaces - -

                                                                                                                                                                                    - -
                                                                                                                                                                                    -
                                                                                                                                                                                    Data
                                                                                                                                                                                    -
                                                                                                                                                                                    Helpers
                                                                                                                                                                                    -
                                                                                                                                                                                    Output
                                                                                                                                                                                    -
                                                                                                                                                                                    - -

                                                                                                                                                                                    - Interfaces, Classes and Traits - -

                                                                                                                                                                                    - -
                                                                                                                                                                                    - -
                                                                                                                                                                                    QRCodeTest
                                                                                                                                                                                    -
                                                                                                                                                                                    Tests basic functions of the QRCode class
                                                                                                                                                                                    -
                                                                                                                                                                                    QROptionsTest
                                                                                                                                                                                    -
                                                                                                                                                                                    QROptions test
                                                                                                                                                                                    - -
                                                                                                                                                                                    - - - - - - -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                    -

                                                                                                                                                                                    Search results

                                                                                                                                                                                    - -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                      -
                                                                                                                                                                                      -
                                                                                                                                                                                      -
                                                                                                                                                                                      -
                                                                                                                                                                                      -
                                                                                                                                                                                      - - -
                                                                                                                                                                                      - - - - diff --git a/namespaces/chillerlan.html b/namespaces/chillerlan.html deleted file mode 100644 index 32f399319..000000000 --- a/namespaces/chillerlan.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                      -

                                                                                                                                                                                      Documentation

                                                                                                                                                                                      - - - - - -
                                                                                                                                                                                      - -
                                                                                                                                                                                      -
                                                                                                                                                                                      - - - - -
                                                                                                                                                                                      -
                                                                                                                                                                                        -
                                                                                                                                                                                      - -
                                                                                                                                                                                      -

                                                                                                                                                                                      chillerlan

                                                                                                                                                                                      - - -

                                                                                                                                                                                      - Namespaces - -

                                                                                                                                                                                      - -
                                                                                                                                                                                      -
                                                                                                                                                                                      QRCode
                                                                                                                                                                                      -
                                                                                                                                                                                      QRCodeTest
                                                                                                                                                                                      -
                                                                                                                                                                                      - - - - - - - -
                                                                                                                                                                                      -
                                                                                                                                                                                      -
                                                                                                                                                                                      -
                                                                                                                                                                                      -

                                                                                                                                                                                      Search results

                                                                                                                                                                                      - -
                                                                                                                                                                                      -
                                                                                                                                                                                      -
                                                                                                                                                                                        -
                                                                                                                                                                                        -
                                                                                                                                                                                        -
                                                                                                                                                                                        -
                                                                                                                                                                                        -
                                                                                                                                                                                        - - -
                                                                                                                                                                                        - - - - diff --git a/namespaces/default.html b/namespaces/default.html deleted file mode 100644 index 0a002965f..000000000 --- a/namespaces/default.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                        -

                                                                                                                                                                                        Documentation

                                                                                                                                                                                        - - - - - -
                                                                                                                                                                                        - -
                                                                                                                                                                                        -
                                                                                                                                                                                        - - - - -
                                                                                                                                                                                        -
                                                                                                                                                                                          -
                                                                                                                                                                                        - -
                                                                                                                                                                                        -

                                                                                                                                                                                        API Documentation

                                                                                                                                                                                        - - -

                                                                                                                                                                                        - Namespaces - -

                                                                                                                                                                                        - -
                                                                                                                                                                                        -
                                                                                                                                                                                        chillerlan
                                                                                                                                                                                        -
                                                                                                                                                                                        - - - - - - - -
                                                                                                                                                                                        -
                                                                                                                                                                                        -
                                                                                                                                                                                        -
                                                                                                                                                                                        -

                                                                                                                                                                                        Search results

                                                                                                                                                                                        - -
                                                                                                                                                                                        -
                                                                                                                                                                                        -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                          - - -
                                                                                                                                                                                          - - - - diff --git a/packages/chillerlan-QRCode-Data.html b/packages/chillerlan-QRCode-Data.html deleted file mode 100644 index 811428c2f..000000000 --- a/packages/chillerlan-QRCode-Data.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                          -

                                                                                                                                                                                          Documentation

                                                                                                                                                                                          - - - - - -
                                                                                                                                                                                          - -
                                                                                                                                                                                          -
                                                                                                                                                                                          - - - - -
                                                                                                                                                                                          - - -
                                                                                                                                                                                          -

                                                                                                                                                                                          Data

                                                                                                                                                                                          - - - -

                                                                                                                                                                                          - Interfaces, Classes and Traits - -

                                                                                                                                                                                          - -
                                                                                                                                                                                          -
                                                                                                                                                                                          QRDataInterface
                                                                                                                                                                                          -
                                                                                                                                                                                          Specifies the methods reqired for the data modules (Number, Alphanum, Byte and Kanji) -and holds version information in several constants
                                                                                                                                                                                          - -
                                                                                                                                                                                          AlphaNum
                                                                                                                                                                                          -
                                                                                                                                                                                          Alphanumeric mode: 0 to 9, A to Z, space, $ % * + - . / :
                                                                                                                                                                                          -
                                                                                                                                                                                          Byte
                                                                                                                                                                                          -
                                                                                                                                                                                          Byte mode, ISO-8859-1 or UTF-8
                                                                                                                                                                                          -
                                                                                                                                                                                          Kanji
                                                                                                                                                                                          -
                                                                                                                                                                                          Kanji mode: double-byte characters from the Shift JIS character set
                                                                                                                                                                                          -
                                                                                                                                                                                          MaskPatternTester
                                                                                                                                                                                          -
                                                                                                                                                                                          Receives a QRDataInterface object and runs the mask pattern tests on it.
                                                                                                                                                                                          -
                                                                                                                                                                                          Number
                                                                                                                                                                                          -
                                                                                                                                                                                          Numeric mode: decimal digits 0 to 9
                                                                                                                                                                                          -
                                                                                                                                                                                          QRCodeDataException
                                                                                                                                                                                          -
                                                                                                                                                                                          An exception container
                                                                                                                                                                                          -
                                                                                                                                                                                          QRDataAbstract
                                                                                                                                                                                          -
                                                                                                                                                                                          Processes the binary data and maps it on a matrix which is then being returned
                                                                                                                                                                                          -
                                                                                                                                                                                          QRMatrix
                                                                                                                                                                                          -
                                                                                                                                                                                          Holds a numerical representation of the final QR Code; -maps the ECC coded binary data and applies the mask pattern
                                                                                                                                                                                          - -
                                                                                                                                                                                          - - - - - - -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                          -

                                                                                                                                                                                          Search results

                                                                                                                                                                                          - -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            - - -
                                                                                                                                                                                            - - - - diff --git a/packages/chillerlan-QRCode-Helpers.html b/packages/chillerlan-QRCode-Helpers.html deleted file mode 100644 index 78531b6e6..000000000 --- a/packages/chillerlan-QRCode-Helpers.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                            -

                                                                                                                                                                                            Documentation

                                                                                                                                                                                            - - - - - -
                                                                                                                                                                                            - -
                                                                                                                                                                                            -
                                                                                                                                                                                            - - - - -
                                                                                                                                                                                            - - -
                                                                                                                                                                                            -

                                                                                                                                                                                            Helpers

                                                                                                                                                                                            - - - -

                                                                                                                                                                                            - Interfaces, Classes and Traits - -

                                                                                                                                                                                            - -
                                                                                                                                                                                            - -
                                                                                                                                                                                            BitBuffer
                                                                                                                                                                                            -
                                                                                                                                                                                            Holds the raw binary data
                                                                                                                                                                                            -
                                                                                                                                                                                            Polynomial
                                                                                                                                                                                            -
                                                                                                                                                                                            Polynomial long division helpers
                                                                                                                                                                                            - -
                                                                                                                                                                                            - - - - - - -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            -

                                                                                                                                                                                            Search results

                                                                                                                                                                                            - -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              - - -
                                                                                                                                                                                              - - - - diff --git a/packages/chillerlan-QRCode-Output.html b/packages/chillerlan-QRCode-Output.html deleted file mode 100644 index 8d7ff4220..000000000 --- a/packages/chillerlan-QRCode-Output.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                              -

                                                                                                                                                                                              Documentation

                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                              - -
                                                                                                                                                                                              -
                                                                                                                                                                                              - - - - -
                                                                                                                                                                                              - - -
                                                                                                                                                                                              -

                                                                                                                                                                                              Output

                                                                                                                                                                                              - - - -

                                                                                                                                                                                              - Interfaces, Classes and Traits - -

                                                                                                                                                                                              - -
                                                                                                                                                                                              -
                                                                                                                                                                                              QROutputInterface
                                                                                                                                                                                              -
                                                                                                                                                                                              Converts the data matrix into readable output
                                                                                                                                                                                              - -
                                                                                                                                                                                              QRCodeOutputException
                                                                                                                                                                                              -
                                                                                                                                                                                              An exception container
                                                                                                                                                                                              -
                                                                                                                                                                                              QRFpdf
                                                                                                                                                                                              -
                                                                                                                                                                                              QRFpdf output module (requires fpdf)
                                                                                                                                                                                              -
                                                                                                                                                                                              QRImage
                                                                                                                                                                                              -
                                                                                                                                                                                              Converts the matrix into GD images, raw or base64 output (requires ext-gd)
                                                                                                                                                                                              -
                                                                                                                                                                                              QRImagick
                                                                                                                                                                                              -
                                                                                                                                                                                              ImageMagick output module (requires ext-imagick)
                                                                                                                                                                                              -
                                                                                                                                                                                              QRMarkup
                                                                                                                                                                                              -
                                                                                                                                                                                              Converts the matrix into markup types: HTML, SVG, .
                                                                                                                                                                                              -
                                                                                                                                                                                              QROutputAbstract
                                                                                                                                                                                              -
                                                                                                                                                                                              common output abstract
                                                                                                                                                                                              -
                                                                                                                                                                                              QRString
                                                                                                                                                                                              -
                                                                                                                                                                                              Converts the matrix data into string types
                                                                                                                                                                                              - -
                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              -

                                                                                                                                                                                              Search results

                                                                                                                                                                                              - -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                - - -
                                                                                                                                                                                                - - - - diff --git a/packages/chillerlan-QRCode.html b/packages/chillerlan-QRCode.html deleted file mode 100644 index 616c3c50f..000000000 --- a/packages/chillerlan-QRCode.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                                -

                                                                                                                                                                                                Documentation

                                                                                                                                                                                                - - - - - -
                                                                                                                                                                                                - -
                                                                                                                                                                                                -
                                                                                                                                                                                                - - - - -
                                                                                                                                                                                                - - -
                                                                                                                                                                                                -

                                                                                                                                                                                                QRCode

                                                                                                                                                                                                - -

                                                                                                                                                                                                - Packages - -

                                                                                                                                                                                                - -
                                                                                                                                                                                                -
                                                                                                                                                                                                Data
                                                                                                                                                                                                -
                                                                                                                                                                                                Helpers
                                                                                                                                                                                                -
                                                                                                                                                                                                Output
                                                                                                                                                                                                -
                                                                                                                                                                                                - - -

                                                                                                                                                                                                - Interfaces, Classes and Traits - -

                                                                                                                                                                                                - -
                                                                                                                                                                                                - -
                                                                                                                                                                                                QRCode
                                                                                                                                                                                                -
                                                                                                                                                                                                Turns a text string into a Model 2 QR Code
                                                                                                                                                                                                -
                                                                                                                                                                                                QRCodeException
                                                                                                                                                                                                -
                                                                                                                                                                                                An exception container
                                                                                                                                                                                                -
                                                                                                                                                                                                QROptions
                                                                                                                                                                                                -
                                                                                                                                                                                                The QRCode settings container
                                                                                                                                                                                                - -
                                                                                                                                                                                                QROptionsTrait
                                                                                                                                                                                                -
                                                                                                                                                                                                The QRCode plug-in settings & setter functionality
                                                                                                                                                                                                -
                                                                                                                                                                                                - - - - - - -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                -

                                                                                                                                                                                                Search results

                                                                                                                                                                                                - -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  - - -
                                                                                                                                                                                                  - - - - diff --git a/packages/chillerlan-QRCodeTest-Data.html b/packages/chillerlan-QRCodeTest-Data.html deleted file mode 100644 index 6368bf830..000000000 --- a/packages/chillerlan-QRCodeTest-Data.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                                  -

                                                                                                                                                                                                  Documentation

                                                                                                                                                                                                  - - - - - -
                                                                                                                                                                                                  - -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  - - - - -
                                                                                                                                                                                                  - - - -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -

                                                                                                                                                                                                  Search results

                                                                                                                                                                                                  - -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    - - -
                                                                                                                                                                                                    - - - - diff --git a/packages/chillerlan-QRCodeTest-Helpers.html b/packages/chillerlan-QRCodeTest-Helpers.html deleted file mode 100644 index dbcdfa67e..000000000 --- a/packages/chillerlan-QRCodeTest-Helpers.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                                    -

                                                                                                                                                                                                    Documentation

                                                                                                                                                                                                    - - - - - -
                                                                                                                                                                                                    - -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    - - - - -
                                                                                                                                                                                                    - - -
                                                                                                                                                                                                    -

                                                                                                                                                                                                    Helpers

                                                                                                                                                                                                    - - - -

                                                                                                                                                                                                    - Interfaces, Classes and Traits - -

                                                                                                                                                                                                    - -
                                                                                                                                                                                                    - -
                                                                                                                                                                                                    BitBufferTest
                                                                                                                                                                                                    -
                                                                                                                                                                                                    BitBuffer coverage test
                                                                                                                                                                                                    -
                                                                                                                                                                                                    PolynomialTest
                                                                                                                                                                                                    -
                                                                                                                                                                                                    Polynomial coverage test
                                                                                                                                                                                                    - -
                                                                                                                                                                                                    - - - - - - -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -

                                                                                                                                                                                                    Search results

                                                                                                                                                                                                    - -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      - - -
                                                                                                                                                                                                      - - - - diff --git a/packages/chillerlan-QRCodeTest-Output.html b/packages/chillerlan-QRCodeTest-Output.html deleted file mode 100644 index 5b3f2209e..000000000 --- a/packages/chillerlan-QRCodeTest-Output.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                                      -

                                                                                                                                                                                                      Documentation

                                                                                                                                                                                                      - - - - - -
                                                                                                                                                                                                      - -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      - - - - -
                                                                                                                                                                                                      - - -
                                                                                                                                                                                                      -

                                                                                                                                                                                                      Output

                                                                                                                                                                                                      - - - -

                                                                                                                                                                                                      - Interfaces, Classes and Traits - -

                                                                                                                                                                                                      - -
                                                                                                                                                                                                      - -
                                                                                                                                                                                                      QRFpdfTest
                                                                                                                                                                                                      -
                                                                                                                                                                                                      Tests the QRFpdf output module
                                                                                                                                                                                                      -
                                                                                                                                                                                                      QRImageTest
                                                                                                                                                                                                      -
                                                                                                                                                                                                      Tests the QRImage output module
                                                                                                                                                                                                      -
                                                                                                                                                                                                      QRImagickTest
                                                                                                                                                                                                      -
                                                                                                                                                                                                      Tests the QRImagick output module
                                                                                                                                                                                                      -
                                                                                                                                                                                                      QRMarkupTest
                                                                                                                                                                                                      -
                                                                                                                                                                                                      Tests the QRMarkup output module
                                                                                                                                                                                                      -
                                                                                                                                                                                                      QROutputTestAbstract
                                                                                                                                                                                                      -
                                                                                                                                                                                                      Test abstract for the several (built-in) output modules, -should also be used to test custom output modules
                                                                                                                                                                                                      -
                                                                                                                                                                                                      QRStringTest
                                                                                                                                                                                                      -
                                                                                                                                                                                                      Tests the QRString output module
                                                                                                                                                                                                      - -
                                                                                                                                                                                                      - - - - - - -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -

                                                                                                                                                                                                      Search results

                                                                                                                                                                                                      - -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        - - -
                                                                                                                                                                                                        - - - - diff --git a/packages/chillerlan-QRCodeTest.html b/packages/chillerlan-QRCodeTest.html deleted file mode 100644 index a9732ccaf..000000000 --- a/packages/chillerlan-QRCodeTest.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                                        -

                                                                                                                                                                                                        Documentation

                                                                                                                                                                                                        - - - - - -
                                                                                                                                                                                                        - -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        - - - - -
                                                                                                                                                                                                        - - -
                                                                                                                                                                                                        -

                                                                                                                                                                                                        QRCodeTest

                                                                                                                                                                                                        - -

                                                                                                                                                                                                        - Packages - -

                                                                                                                                                                                                        - -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        Data
                                                                                                                                                                                                        -
                                                                                                                                                                                                        Helpers
                                                                                                                                                                                                        -
                                                                                                                                                                                                        Output
                                                                                                                                                                                                        -
                                                                                                                                                                                                        - - -

                                                                                                                                                                                                        - Interfaces, Classes and Traits - -

                                                                                                                                                                                                        - -
                                                                                                                                                                                                        - -
                                                                                                                                                                                                        QRCodeTest
                                                                                                                                                                                                        -
                                                                                                                                                                                                        Tests basic functions of the QRCode class
                                                                                                                                                                                                        -
                                                                                                                                                                                                        QROptionsTest
                                                                                                                                                                                                        -
                                                                                                                                                                                                        QROptions test
                                                                                                                                                                                                        - -
                                                                                                                                                                                                        - - - - - - -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -

                                                                                                                                                                                                        Search results

                                                                                                                                                                                                        - -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          - - -
                                                                                                                                                                                                          - - - - diff --git a/packages/chillerlan.html b/packages/chillerlan.html deleted file mode 100644 index 5149dea29..000000000 --- a/packages/chillerlan.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                                          -

                                                                                                                                                                                                          Documentation

                                                                                                                                                                                                          - - - - - -
                                                                                                                                                                                                          - -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          - - - - -
                                                                                                                                                                                                          -
                                                                                                                                                                                                            -
                                                                                                                                                                                                          - - -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -

                                                                                                                                                                                                          Search results

                                                                                                                                                                                                          - -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            - - -
                                                                                                                                                                                                            - - - - diff --git a/packages/default.html b/packages/default.html deleted file mode 100644 index e25139bca..000000000 --- a/packages/default.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - Documentation - - - - - - - - - - - - - - - -
                                                                                                                                                                                                            -

                                                                                                                                                                                                            Documentation

                                                                                                                                                                                                            - - - - - -
                                                                                                                                                                                                            - -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            - - - - -
                                                                                                                                                                                                            -
                                                                                                                                                                                                              -
                                                                                                                                                                                                            - -
                                                                                                                                                                                                            -

                                                                                                                                                                                                            API Documentation

                                                                                                                                                                                                            - -

                                                                                                                                                                                                            - Packages - -

                                                                                                                                                                                                            - -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            chillerlan
                                                                                                                                                                                                            -
                                                                                                                                                                                                            - - - - - - - - -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -

                                                                                                                                                                                                            Search results

                                                                                                                                                                                                            - -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                              -
                                                                                                                                                                                                              -
                                                                                                                                                                                                              -
                                                                                                                                                                                                              -
                                                                                                                                                                                                              -
                                                                                                                                                                                                              - - -
                                                                                                                                                                                                              - - - - diff --git a/phpdoc.xml b/phpdoc.xml new file mode 100644 index 000000000..d440f1d8a --- /dev/null +++ b/phpdoc.xml @@ -0,0 +1,20 @@ + + + + docs + utf8 + + TODO + + + + docs + + + src + tests + + +