#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
If the non-ASCII chars contained in b also show up in a and no less
than the times they appear in b, then we say b is similar with a.
http://stackoverflow.com/questions/7375398
"""
import unicodedata
try : from collections import Counter
except ImportError :
from collections import defaultdict
def Counter( iterable) :
d = defaultdict( int )
for i in iterable:
d[ i] += 1
return d
try :
import regex as re # new regex that supports \X
def characters_grapheme( s) :
"""Broken up `s` Unicode string into user-perceived characters."""
return re .findall ( r'\X ' , unicodedata .normalize ( 'NFC' , s) , re .UNICODE )
except ImportError :
characters_grapheme = None
def characters_codepoints( s) :
assert isinstance ( s, unicode )
return s
def characters_normalized( s) :
return unicodedata .normalize ( 'NFC' , s)
def characters_bytes( encoding) :
def f( s) :
assert isinstance ( s, unicode )
return s.encode ( encoding)
f.__name__ = 'characters_bytes(%r)' % encoding
return f
def nonascii( c) :
"""Whether given character `c` is non-ascii."""
return len ( c) > 1 or ord ( c) > 127
def count_nonascii( s) :
"""Count how many times each non-ascii character is present in `s`."""
return Counter( c for c in s if nonascii( c) )
def issimilar( a, b, characters) :
"""Whether `b` is "similar" with `a`."""
a_count, b_count = [ count_nonascii( characters( s) ) for s in ( a, b) ]
return all ( a_count[ char] >= count for char, count in b_count.iteritems ( ) )
def issimilar_alcott( a, b, characters) :
"""Alcott's algorithm."""
a_count = count_nonascii( characters( a) )
for c in characters( b) :
if nonascii( c) :
if a_count[ c] == 0 :
# c is not in a or b_count[c] > a_count[c]
return False
# non-ascii `c` is present in `a`
assert a_count[ c] > 0
a_count[ c] -= 1
return True
def main( ) :
for a, b, expected in [
( u"ab中ef日jkl中本" , u"bej中中日" , True ) ,
( u"bej中中日" , u"ab中ef日jkl中本" , False ) ,
( u'lk日日日' , u"bej中中日" , False ) ,
( u"bej中中日" , u'lk日日日' , False ) ,
] :
x = issimilar_alcott( a, b, characters_codepoints)
a, b = [ s.encode ( 'utf-8' ) for s in [ a, b] ]
print "'%s' is %ssimilar with '%s'" % (
b, '' if x else 'not ' , a)
assert x == expected
import unittest
class TestCodepoints( unittest .TestCase ) :
functions = [ issimilar, issimilar_alcott]
def setUp( self ) :
self .characters = characters_codepoints
def check_functions( self , data) :
for a, b, expected in data:
for f in self .functions :
x = f( a, b, self .characters )
self .assertEqual ( x, expected,
"%s(%r, %r, %s) = %r, expected %r" % (
f.__name__, a, b, self .characters .__name__,
x, expected) )
def test_combining_characters( self ) :
data = [
( u'a' , u'a' , True ) , # 'a' ← 'a'
( u'a' , u'b' , True ) , # 'a' ← 'b'
( u'b' , u'a' , True ) , # 'b' ← 'a'
( u'b' , u'b' , True ) , # 'b' ← 'b'
( u'\x ea' , u'\x ea' , True ) , # 'ê' ← 'ê'
( u'\x ea' , u'e\u 0302' , True ) , # 'ê' ← 'ê'
( u'e\u 0302' , u'\x ea' , True ) , # 'ê' ← 'ê'
( u'e\u 0302' , u'e\u 0302' , True ) , # 'ê' ← 'ê'
( u'\u 2126' , u'\u 2126' , True ) , # 'Ω' ← 'Ω'
( u'\u 2126' , u'\u 03a9' , True ) , # 'Ω' ← 'Ω'
( u'\u 03a9' , u'\u 2126' , True ) , # 'Ω' ← 'Ω'
( u'\u 03a9' , u'\u 03a9' , True ) , # 'Ω' ← 'Ω'
( u'e\u 0302' , u'e\u 0302' , True ) , # 'ê' ← 'ê'
( u'e\u 0302' , u'\u 0302a' , False ) , # 'ê' ↚ '̂a'
( u'\u 0302a' , u'e\u 0302' , False ) , # '̂a' ↚ 'ê'
( u'\u 0302a' , u'\u 0302a' , True ) , # '̂a' ← '̂a'
( u'e\u 0302' , u'\u 0302e' , False ) , # 'ê' ↚ '̂e'
( u'\u 0302e' , u'e\u 0302' , False ) , # '̂e' ↚ 'ê'
( u'e\u 0302' , u'a\u 0302' , False ) , # 'ê' ↚ 'â'
( u'a\u 0302' , u'e\u 0302' , False ) , # 'â' ↚ 'ê'
]
self .check_functions ( data)
def test_example_from_question( self ) :
data = [
( u'ab\u 4e2def\u 65e5jkl\u 4e2d\u 672c' , u'bej\u 4e2d\u 4e2d\u 65e5' ,
True ) , # 'ab中ef日jkl中本' ← 'bej中中日'
( u'bej\u 4e2d\u 4e2d\u 65e5' , u'ab\u 4e2def\u 65e5jkl\u 4e2d\u 672c' ,
False ) , # 'bej中中日' ↚ 'ab中ef日jkl中本'
( u'lk\u 65e5\u 65e5\u 65e5' , u'bej\u 4e2d\u 4e2d\u 65e5' ,
False ) , # 'lk日日日' ↚ 'bej中中日'
( u'bej\u 4e2d\u 4e2d\u 65e5' , u'lk\u 65e5\u 65e5\u 65e5' ,
False ) , # 'bej中中日' ↚ 'lk日日日'
]
self .check_functions ( data)
def test_devanagari_kshi( self ) :
data = [
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 0915\u 094d\u 0937\u 093f' ,
True ) , # क्षि ← क्षि
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # क्षि ↚ कष्ि
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # क्षि ↚ किष्
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # क्षि ↚ ्षकि
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # क्षि ↚ ्िषक
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # क्षि ↚ ष्कि
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 0937\u 093f\u 0915\u 094d' ,
True ) , # क्षि ← षिक्
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # क्षि ↚ िक्ष
( u'\u 0915\u 094d\u 0937\u 093f' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # क्षि ↚ ि्षक
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # क्िष ↚ क्षि
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 0915\u 094d\u 093f\u 0937' ,
True ) , # क्िष ← क्िष
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # क्िष ↚ कि्ष
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # क्िष ↚ ्किष
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # क्िष ↚ ्िकष
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 0937\u 0915\u 094d\u 093f' ,
True ) , # क्िष ← षक्ि
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # क्िष ↚ ष्कि
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # क्िष ↚ षि्क
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # क्िष ↚ ि्कष
( u'\u 0915\u 094d\u 093f\u 0937' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # क्िष ↚ िष्क
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 0915\u 0937\u 094d\u 093f' ,
True ) , # कष्ि ← कष्ि
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # कष्ि ↚ कषि्
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # कष्ि ↚ ्कषि
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # कष्ि ↚ ्षिक
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # कष्ि ↚ षक्ि
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 0937\u 094d\u 093f\u 0915' ,
True ) , # कष्ि ← ष्िक
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # कष्ि ↚ षिक्
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # कष्ि ↚ िकष्
( u'\u 0915\u 0937\u 094d\u 093f' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # कष्ि ↚ िषक्
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # कषि् ↚ क्िष
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 0915\u 0937\u 093f\u 094d' ,
True ) , # कषि् ← कषि्
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # कषि् ↚ किष्
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # कषि् ↚ ्षकि
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # कषि् ↚ ्िषक
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # कषि् ↚ ष्कि
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 0937\u 093f\u 094d\u 0915' ,
True ) , # कषि् ← षि्क
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # कषि् ↚ िक्ष
( u'\u 0915\u 0937\u 093f\u 094d' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # कषि् ↚ ि्षक
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # कि्ष ↚ क्षि
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # कि्ष ↚ कषि्
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 0915\u 093f\u 094d\u 0937' ,
True ) , # कि्ष ← कि्ष
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # कि्ष ↚ ्किष
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # कि्ष ↚ ्िकष
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 0937\u 0915\u 093f\u 094d' ,
True ) , # कि्ष ← षकि्
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # कि्ष ↚ ष्कि
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # कि्ष ↚ षि्क
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # कि्ष ↚ ि्कष
( u'\u 0915\u 093f\u 094d\u 0937' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # कि्ष ↚ िष्क
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # किष् ↚ कष्ि
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 0915\u 093f\u 0937\u 094d' ,
True ) , # किष् ← किष्
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # किष् ↚ ्कषि
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # किष् ↚ ्षिक
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # किष् ↚ षक्ि
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 0937\u 094d\u 0915\u 093f' ,
True ) , # किष् ← ष्कि
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # किष् ↚ षिक्
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # किष् ↚ िकष्
( u'\u 0915\u 093f\u 0937\u 094d' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # किष् ↚ िषक्
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # ्कषि ↚ क्िष
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # ्कषि ↚ कि्ष
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 094d\u 0915\u 0937\u 093f' ,
True ) , # ्कषि ← ्कषि
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # ्कषि ↚ ्षकि
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 094d\u 0937\u 093f\u 0915' ,
True ) , # ्कषि ← ्षिक
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # ्कषि ↚ षक्ि
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # ्कषि ↚ ष्िक
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # ्कषि ↚ िक्ष
( u'\u 094d\u 0915\u 0937\u 093f' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # ्कषि ↚ ि्षक
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # ्किष ↚ क्षि
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # ्किष ↚ कषि्
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # ्किष ↚ ्कषि
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 094d\u 0915\u 093f\u 0937' ,
True ) , # ्किष ← ्किष
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 094d\u 0937\u 0915\u 093f' ,
True ) , # ्किष ← ्षकि
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # ्किष ↚ ्िषक
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # ्किष ↚ ष्कि
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # ्किष ↚ षि्क
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # ्किष ↚ ि्कष
( u'\u 094d\u 0915\u 093f\u 0937' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # ्किष ↚ िष्क
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # ्षकि ↚ कष्ि
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # ्षकि ↚ किष्
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 094d\u 0915\u 093f\u 0937' ,
True ) , # ्षकि ← ्किष
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 094d\u 0937\u 0915\u 093f' ,
True ) , # ्षकि ← ्षकि
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # ्षकि ↚ ्िकष
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # ्षकि ↚ षकि्
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # ्षकि ↚ षिक्
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # ्षकि ↚ िकष्
( u'\u 094d\u 0937\u 0915\u 093f' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # ्षकि ↚ िषक्
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # ्षिक ↚ क्िष
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # ्षिक ↚ कि्ष
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 094d\u 0915\u 0937\u 093f' ,
True ) , # ्षिक ← ्कषि
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # ्षिक ↚ ्षकि
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 094d\u 0937\u 093f\u 0915' ,
True ) , # ्षिक ← ्षिक
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # ्षिक ↚ षक्ि
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # ्षिक ↚ ष्िक
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # ्षिक ↚ िक्ष
( u'\u 094d\u 0937\u 093f\u 0915' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # ्षिक ↚ ि्षक
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # ्िकष ↚ क्षि
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # ्िकष ↚ कषि्
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # ्िकष ↚ ्कषि
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # ्िकष ↚ ्षिक
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 094d\u 093f\u 0915\u 0937' ,
True ) , # ्िकष ← ्िकष
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 094d\u 093f\u 0937\u 0915' ,
True ) , # ्िकष ← ्िषक
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # ्िकष ↚ ष्कि
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # ्िकष ↚ षि्क
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # ्िकष ↚ ि्कष
( u'\u 094d\u 093f\u 0915\u 0937' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # ्िकष ↚ िष्क
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # ्िषक ↚ कष्ि
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # ्िषक ↚ किष्
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # ्िषक ↚ ्षकि
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 094d\u 093f\u 0915\u 0937' ,
True ) , # ्िषक ← ्िकष
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 094d\u 093f\u 0937\u 0915' ,
True ) , # ्िषक ← ्िषक
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # ्िषक ↚ षकि्
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # ्िषक ↚ षिक्
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # ्िषक ↚ िकष्
( u'\u 094d\u 093f\u 0937\u 0915' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # ्िषक ↚ िषक्
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 0915\u 094d\u 093f\u 0937' ,
True ) , # षक्ि ← क्िष
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # षक्ि ↚ कष्ि
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # षक्ि ↚ किष्
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # षक्ि ↚ ्षकि
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # षक्ि ↚ ्िषक
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 0937\u 0915\u 094d\u 093f' ,
True ) , # षक्ि ← षक्ि
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # षक्ि ↚ ष्िक
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # षक्ि ↚ िक्ष
( u'\u 0937\u 0915\u 094d\u 093f' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # षक्ि ↚ ि्षक
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # षकि् ↚ क्षि
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # षकि् ↚ कषि्
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 0915\u 093f\u 094d\u 0937' ,
True ) , # षकि् ← कि्ष
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # षकि् ↚ ्किष
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # षकि् ↚ ्िकष
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 0937\u 0915\u 093f\u 094d' ,
True ) , # षकि् ← षकि्
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # षकि् ↚ ष्कि
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # षकि् ↚ षि्क
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # षकि् ↚ ि्कष
( u'\u 0937\u 0915\u 093f\u 094d' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # षकि् ↚ िष्क
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # ष्कि ↚ कष्ि
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 0915\u 093f\u 0937\u 094d' ,
True ) , # ष्कि ← किष्
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # ष्कि ↚ ्कषि
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # ष्कि ↚ ्षिक
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # ष्कि ↚ षक्ि
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 0937\u 094d\u 0915\u 093f' ,
True ) , # ष्कि ← ष्कि
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # ष्कि ↚ षिक्
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # ष्कि ↚ िकष्
( u'\u 0937\u 094d\u 0915\u 093f' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # ष्कि ↚ िषक्
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # ष्िक ↚ क्षि
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # ष्िक ↚ क्िष
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0915\u 0937\u 094d\u 093f' ,
True ) , # ष्िक ← कष्ि
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # ष्िक ↚ कषि्
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # ष्िक ↚ कि्ष
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # ष्िक ↚ किष्
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # ष्िक ↚ ्कषि
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # ष्िक ↚ ्किष
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # ष्िक ↚ ्षकि
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # ष्िक ↚ ्षिक
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # ष्िक ↚ ्िकष
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # ष्िक ↚ ्िषक
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # ष्िक ↚ षक्ि
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # ष्िक ↚ षकि्
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # ष्िक ↚ ष्कि
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0937\u 094d\u 093f\u 0915' ,
True ) , # ष्िक ← ष्िक
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # ष्िक ↚ षिक्
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # ष्िक ↚ षि्क
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # ष्िक ↚ िक्ष
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # ष्िक ↚ िकष्
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # ष्िक ↚ ि्कष
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # ष्िक ↚ ि्षक
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # ष्िक ↚ िषक्
( u'\u 0937\u 094d\u 093f\u 0915' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # ष्िक ↚ िष्क
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0915\u 094d\u 0937\u 093f' ,
True ) , # षिक् ← क्षि
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # षिक् ↚ क्िष
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # षिक् ↚ कष्ि
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # षिक् ↚ कषि्
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # षिक् ↚ कि्ष
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # षिक् ↚ किष्
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # षिक् ↚ ्कषि
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # षिक् ↚ ्किष
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # षिक् ↚ ्षकि
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # षिक् ↚ ्षिक
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # षिक् ↚ ्िकष
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # षिक् ↚ ्िषक
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # षिक् ↚ षक्ि
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # षिक् ↚ षकि्
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # षिक् ↚ ष्कि
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # षिक् ↚ ष्िक
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0937\u 093f\u 0915\u 094d' ,
True ) , # षिक् ← षिक्
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # षिक् ↚ षि्क
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # षिक् ↚ िक्ष
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # षिक् ↚ िकष्
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # षिक् ↚ ि्कष
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # षिक् ↚ ि्षक
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # षिक् ↚ िषक्
( u'\u 0937\u 093f\u 0915\u 094d' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # षिक् ↚ िष्क
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # षि्क ↚ क्षि
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # षि्क ↚ क्िष
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # षि्क ↚ कष्ि
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0915\u 0937\u 093f\u 094d' ,
True ) , # षि्क ← कषि्
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # षि्क ↚ कि्ष
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # षि्क ↚ किष्
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # षि्क ↚ ्कषि
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # षि्क ↚ ्किष
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # षि्क ↚ ्षकि
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # षि्क ↚ ्षिक
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # षि्क ↚ ्िकष
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # षि्क ↚ ्िषक
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # षि्क ↚ षक्ि
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # षि्क ↚ षकि्
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # षि्क ↚ ष्कि
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # षि्क ↚ ष्िक
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # षि्क ↚ षिक्
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 0937\u 093f\u 094d\u 0915' ,
True ) , # षि्क ← षि्क
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # षि्क ↚ िक्ष
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # षि्क ↚ िकष्
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # षि्क ↚ ि्कष
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # षि्क ↚ ि्षक
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # षि्क ↚ िषक्
( u'\u 0937\u 093f\u 094d\u 0915' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # षि्क ↚ िष्क
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # िक्ष ↚ क्षि
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # िक्ष ↚ क्िष
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # िक्ष ↚ कष्ि
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # िक्ष ↚ कषि्
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # िक्ष ↚ कि्ष
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # िक्ष ↚ किष्
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # िक्ष ↚ ्कषि
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # िक्ष ↚ ्किष
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # िक्ष ↚ ्षकि
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # िक्ष ↚ ्षिक
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # िक्ष ↚ ्िकष
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # िक्ष ↚ ्िषक
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # िक्ष ↚ षक्ि
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # िक्ष ↚ षकि्
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # िक्ष ↚ ष्कि
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # िक्ष ↚ ष्िक
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # िक्ष ↚ षिक्
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # िक्ष ↚ षि्क
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 093f\u 0915\u 094d\u 0937' ,
True ) , # िक्ष ← िक्ष
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # िक्ष ↚ िकष्
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # िक्ष ↚ ि्कष
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # िक्ष ↚ ि्षक
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 093f\u 0937\u 0915\u 094d' ,
True ) , # िक्ष ← िषक्
( u'\u 093f\u 0915\u 094d\u 0937' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # िक्ष ↚ िष्क
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # िकष् ↚ क्षि
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # िकष् ↚ क्िष
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # िकष् ↚ कष्ि
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # िकष् ↚ कषि्
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # िकष् ↚ कि्ष
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # िकष् ↚ किष्
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # िकष् ↚ ्कषि
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # िकष् ↚ ्किष
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # िकष् ↚ ्षकि
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # िकष् ↚ ्षिक
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # िकष् ↚ ्िकष
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # िकष् ↚ ्िषक
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # िकष् ↚ षक्ि
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # िकष् ↚ षकि्
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # िकष् ↚ ष्कि
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # िकष् ↚ ष्िक
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # िकष् ↚ षिक्
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # िकष् ↚ षि्क
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # िकष् ↚ िक्ष
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 093f\u 0915\u 0937\u 094d' ,
True ) , # िकष् ← िकष्
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # िकष् ↚ ि्कष
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # िकष् ↚ ि्षक
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # िकष् ↚ िषक्
( u'\u 093f\u 0915\u 0937\u 094d' , u'\u 093f\u 0937\u 094d\u 0915' ,
True ) , # िकष् ← िष्क
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # ि्कष ↚ क्षि
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # ि्कष ↚ क्िष
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # ि्कष ↚ कष्ि
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # ि्कष ↚ कषि्
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # ि्कष ↚ कि्ष
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # ि्कष ↚ किष्
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # ि्कष ↚ ्कषि
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # ि्कष ↚ ्किष
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # ि्कष ↚ ्षकि
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # ि्कष ↚ ्षिक
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # ि्कष ↚ ्िकष
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # ि्कष ↚ ्िषक
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # ि्कष ↚ षक्ि
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # ि्कष ↚ षकि्
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # ि्कष ↚ ष्कि
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # ि्कष ↚ ष्िक
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # ि्कष ↚ षिक्
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # ि्कष ↚ षि्क
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # ि्कष ↚ िक्ष
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # ि्कष ↚ िकष्
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 093f\u 094d\u 0915\u 0937' ,
True ) , # ि्कष ← ि्कष
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 093f\u 094d\u 0937\u 0915' ,
True ) , # ि्कष ← ि्षक
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # ि्कष ↚ िषक्
( u'\u 093f\u 094d\u 0915\u 0937' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # ि्कष ↚ िष्क
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # ि्षक ↚ क्षि
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # ि्षक ↚ क्िष
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # ि्षक ↚ कष्ि
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # ि्षक ↚ कषि्
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # ि्षक ↚ कि्ष
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # ि्षक ↚ किष्
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # ि्षक ↚ ्कषि
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # ि्षक ↚ ्किष
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # ि्षक ↚ ्षकि
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # ि्षक ↚ ्षिक
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # ि्षक ↚ ्िकष
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # ि्षक ↚ ्िषक
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # ि्षक ↚ षक्ि
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # ि्षक ↚ षकि्
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # ि्षक ↚ ष्कि
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # ि्षक ↚ ष्िक
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # ि्षक ↚ षिक्
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # ि्षक ↚ षि्क
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # ि्षक ↚ िक्ष
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # ि्षक ↚ िकष्
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 093f\u 094d\u 0915\u 0937' ,
True ) , # ि्षक ← ि्कष
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 093f\u 094d\u 0937\u 0915' ,
True ) , # ि्षक ← ि्षक
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # ि्षक ↚ िषक्
( u'\u 093f\u 094d\u 0937\u 0915' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # ि्षक ↚ िष्क
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # िषक् ↚ क्षि
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # िषक् ↚ क्िष
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # िषक् ↚ कष्ि
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # िषक् ↚ कषि्
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # िषक् ↚ कि्ष
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # िषक् ↚ किष्
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # िषक् ↚ ्कषि
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # िषक् ↚ ्किष
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # िषक् ↚ ्षकि
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # िषक् ↚ ्षिक
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # िषक् ↚ ्िकष
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # िषक् ↚ ्िषक
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # िषक् ↚ षक्ि
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # िषक् ↚ षकि्
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # िषक् ↚ ष्कि
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # िषक् ↚ ष्िक
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # िषक् ↚ षिक्
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # िषक् ↚ षि्क
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 093f\u 0915\u 094d\u 0937' ,
True ) , # िषक् ← िक्ष
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 093f\u 0915\u 0937\u 094d' ,
False ) , # िषक् ↚ िकष्
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # िषक् ↚ ि्कष
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # िषक् ↚ ि्षक
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 093f\u 0937\u 0915\u 094d' ,
True ) , # िषक् ← िषक्
( u'\u 093f\u 0937\u 0915\u 094d' , u'\u 093f\u 0937\u 094d\u 0915' ,
False ) , # िषक् ↚ िष्क
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0915\u 094d\u 0937\u 093f' ,
False ) , # िष्क ↚ क्षि
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0915\u 094d\u 093f\u 0937' ,
False ) , # िष्क ↚ क्िष
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0915\u 0937\u 094d\u 093f' ,
False ) , # िष्क ↚ कष्ि
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0915\u 0937\u 093f\u 094d' ,
False ) , # िष्क ↚ कषि्
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0915\u 093f\u 094d\u 0937' ,
False ) , # िष्क ↚ कि्ष
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0915\u 093f\u 0937\u 094d' ,
False ) , # िष्क ↚ किष्
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 094d\u 0915\u 0937\u 093f' ,
False ) , # िष्क ↚ ्कषि
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 094d\u 0915\u 093f\u 0937' ,
False ) , # िष्क ↚ ्किष
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 094d\u 0937\u 0915\u 093f' ,
False ) , # िष्क ↚ ्षकि
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 094d\u 0937\u 093f\u 0915' ,
False ) , # िष्क ↚ ्षिक
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 094d\u 093f\u 0915\u 0937' ,
False ) , # िष्क ↚ ्िकष
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 094d\u 093f\u 0937\u 0915' ,
False ) , # िष्क ↚ ्िषक
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0937\u 0915\u 094d\u 093f' ,
False ) , # िष्क ↚ षक्ि
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0937\u 0915\u 093f\u 094d' ,
False ) , # िष्क ↚ षकि्
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0937\u 094d\u 0915\u 093f' ,
False ) , # िष्क ↚ ष्कि
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0937\u 094d\u 093f\u 0915' ,
False ) , # िष्क ↚ ष्िक
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0937\u 093f\u 0915\u 094d' ,
False ) , # िष्क ↚ षिक्
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 0937\u 093f\u 094d\u 0915' ,
False ) , # िष्क ↚ षि्क
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 093f\u 0915\u 094d\u 0937' ,
False ) , # िष्क ↚ िक्ष
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 093f\u 0915\u 0937\u 094d' ,
True ) , # िष्क ← िकष्
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 093f\u 094d\u 0915\u 0937' ,
False ) , # िष्क ↚ ि्कष
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 093f\u 094d\u 0937\u 0915' ,
False ) , # िष्क ↚ ि्षक
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 093f\u 0937\u 0915\u 094d' ,
False ) , # िष्क ↚ िषक्
( u'\u 093f\u 0937\u 094d\u 0915' , u'\u 093f\u 0937\u 094d\u 0915' ,
True ) , # िष्क ← िष्क
]
self .check_functions ( data)
class TestNormalized( TestCodepoints) :
def setUp( self ) :
self .characters = characters_normalized
class TestUTF8Bytes( TestCodepoints) :
def setUp( self ) :
self .characters = characters_bytes( 'utf-8' )
class TestUTF16ytes( TestCodepoints) :
def setUp( self ) :
self .characters = characters_bytes( 'utf-16' )
if characters_grapheme is not None :
class TestGrapheme( TestCodepoints) :
def setUp( self ) :
self .characters = characters_grapheme
def generate_testdata( cluster= u'\u 0915\u 094d\u 0937\u 093f' ) :
from itertools import permutations, product
for a, b in product( permutations( cluster) , repeat= 2 ) :
a, b = map ( u'' .join , [ a, b] )
x = issimilar( a, b)
print "(%r, %r,\n %r), # %s %s %s" % (
a, b, x, a.encode ( 'utf-8' ) , '←' if x else '↚' , b.encode ( 'utf-8' ) )
if __name__== "__main__" :
main( )
unittest .main ( )
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgLSotIGNvZGluZzogdXRmLTggLSotCiIiIgpJZiB0aGUgbm9uLUFTQ0lJIGNoYXJzIGNvbnRhaW5lZCBpbiBiIGFsc28gc2hvdyB1cCBpbiBhIGFuZCBubyBsZXNzCnRoYW4gdGhlIHRpbWVzIHRoZXkgYXBwZWFyIGluIGIsIHRoZW4gd2Ugc2F5IGIgaXMgc2ltaWxhciB3aXRoIGEuCgpodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzczNzUzOTgKIiIiCmltcG9ydCB1bmljb2RlZGF0YQoKdHJ5OiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBDb3VudGVyCmV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CgogICAgZGVmIENvdW50ZXIoaXRlcmFibGUpOgogICAgICAgIGQgPSBkZWZhdWx0ZGljdChpbnQpCiAgICAgICAgZm9yIGkgaW4gaXRlcmFibGU6CiAgICAgICAgICAgIGRbaV0gKz0gMQogICAgICAgIHJldHVybiBkCgp0cnk6CiAgICBpbXBvcnQgcmVnZXggYXMgcmUgIyBuZXcgcmVnZXggdGhhdCBzdXBwb3J0cyBcWAoKICAgIGRlZiBjaGFyYWN0ZXJzX2dyYXBoZW1lKHMpOgogICAgICAgICIiIkJyb2tlbiB1cCBgc2AgVW5pY29kZSBzdHJpbmcgaW50byB1c2VyLXBlcmNlaXZlZCBjaGFyYWN0ZXJzLiIiIgogICAgICAgIHJldHVybiByZS5maW5kYWxsKHInXFgnLCB1bmljb2RlZGF0YS5ub3JtYWxpemUoJ05GQycsIHMpLCByZS5VTklDT0RFKQpleGNlcHQgSW1wb3J0RXJyb3I6CiAgICBjaGFyYWN0ZXJzX2dyYXBoZW1lID0gTm9uZQoKZGVmIGNoYXJhY3RlcnNfY29kZXBvaW50cyhzKToKICAgIGFzc2VydCBpc2luc3RhbmNlKHMsIHVuaWNvZGUpCiAgICByZXR1cm4gcwoKZGVmIGNoYXJhY3RlcnNfbm9ybWFsaXplZChzKToKICAgIHJldHVybiB1bmljb2RlZGF0YS5ub3JtYWxpemUoJ05GQycsIHMpCgpkZWYgY2hhcmFjdGVyc19ieXRlcyhlbmNvZGluZyk6CiAgICBkZWYgZihzKToKICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzLCB1bmljb2RlKQogICAgICAgIHJldHVybiBzLmVuY29kZShlbmNvZGluZykKICAgIGYuX19uYW1lX18gPSAnY2hhcmFjdGVyc19ieXRlcyglciknICUgZW5jb2RpbmcKICAgIHJldHVybiBmCgpkZWYgbm9uYXNjaWkoYyk6CiAgICAiIiJXaGV0aGVyIGdpdmVuIGNoYXJhY3RlciBgY2AgaXMgbm9uLWFzY2lpLiIiIgogICAgcmV0dXJuIGxlbihjKSA+IDEgb3Igb3JkKGMpID4gMTI3CgpkZWYgY291bnRfbm9uYXNjaWkocyk6CiAgICAiIiJDb3VudCBob3cgbWFueSB0aW1lcyBlYWNoIG5vbi1hc2NpaSBjaGFyYWN0ZXIgaXMgcHJlc2VudCBpbiBgc2AuIiIiCiAgICByZXR1cm4gQ291bnRlcihjIGZvciBjIGluIHMgaWYgbm9uYXNjaWkoYykpCgpkZWYgaXNzaW1pbGFyKGEsIGIsIGNoYXJhY3RlcnMpOgogICAgIiIiV2hldGhlciBgYmAgaXMgInNpbWlsYXIiIHdpdGggYGFgLiIiIgogICAgYV9jb3VudCwgYl9jb3VudCA9IFtjb3VudF9ub25hc2NpaShjaGFyYWN0ZXJzKHMpKSBmb3IgcyBpbiAoYSwgYildCiAgICByZXR1cm4gYWxsKGFfY291bnRbY2hhcl0gPj0gY291bnQgZm9yIGNoYXIsIGNvdW50IGluIGJfY291bnQuaXRlcml0ZW1zKCkpCgpkZWYgaXNzaW1pbGFyX2FsY290dChhLCBiLCBjaGFyYWN0ZXJzKToKICAgICIiIkFsY290dCdzIGFsZ29yaXRobS4iIiIKICAgIGFfY291bnQgPSBjb3VudF9ub25hc2NpaShjaGFyYWN0ZXJzKGEpKQogICAgZm9yIGMgaW4gY2hhcmFjdGVycyhiKToKICAgICAgICBpZiBub25hc2NpaShjKToKICAgICAgICAgICAgaWYgYV9jb3VudFtjXSA9PSAwOgogICAgICAgICAgICAgICAgIyBjIGlzIG5vdCBpbiBhIG9yIGJfY291bnRbY10gPiBhX2NvdW50W2NdCiAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgIyBub24tYXNjaWkgYGNgIGlzIHByZXNlbnQgaW4gYGFgCiAgICAgICAgICAgIGFzc2VydCBhX2NvdW50W2NdID4gMAogICAgICAgICAgICBhX2NvdW50W2NdIC09IDEKICAgIHJldHVybiBUcnVlCgpkZWYgbWFpbigpOgogICAgZm9yIGEsIGIsIGV4cGVjdGVkIGluIFsKICAgICAgICAgICAgKHUiYWLkuK1lZuaXpWprbOS4reacrCIsIHUiYmVq5Lit5Lit5pelIiwgVHJ1ZSksCiAgICAgICAgICAgICh1ImJlauS4reS4reaXpSIsIHUiYWLkuK1lZuaXpWprbOS4reacrCIsIEZhbHNlKSwKICAgICAgICAgICAgKHUnbGvml6Xml6Xml6UnLCB1ImJlauS4reS4reaXpSIsIEZhbHNlKSwKICAgICAgICAgICAgKHUiYmVq5Lit5Lit5pelIiwgdSdsa+aXpeaXpeaXpScsIEZhbHNlKSwKICAgICAgICAgICAgXToKICAgICAgICB4ID0gaXNzaW1pbGFyX2FsY290dChhLCBiLCBjaGFyYWN0ZXJzX2NvZGVwb2ludHMpCiAgICAgICAgYSwgYiA9IFtzLmVuY29kZSgndXRmLTgnKSBmb3IgcyBpbiBbYSwgYl1dCiAgICAgICAgcHJpbnQgIiclcycgaXMgJXNzaW1pbGFyIHdpdGggJyVzJyIgJSAoCiAgICAgICAgICAgIGIsICcnIGlmIHggZWxzZSAnbm90ICcsIGEpCiAgICAgICAgYXNzZXJ0IHggPT0gZXhwZWN0ZWQKCgppbXBvcnQgdW5pdHRlc3QKCmNsYXNzIFRlc3RDb2RlcG9pbnRzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgIGZ1bmN0aW9ucyA9IFtpc3NpbWlsYXIsIGlzc2ltaWxhcl9hbGNvdHRdCgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHNlbGYuY2hhcmFjdGVycyA9IGNoYXJhY3RlcnNfY29kZXBvaW50cwoKICAgIGRlZiBjaGVja19mdW5jdGlvbnMoc2VsZiwgZGF0YSk6CiAgICAgICAgZm9yIGEsIGIsIGV4cGVjdGVkIGluIGRhdGE6CiAgICAgICAgICAgIGZvciBmIGluIHNlbGYuZnVuY3Rpb25zOgogICAgICAgICAgICAgICAgeCA9IGYoYSwgYiwgc2VsZi5jaGFyYWN0ZXJzKQogICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCBleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAiJXMoJXIsICVyLCAlcykgPSAlciwgZXhwZWN0ZWQgJXIiICUgKAogICAgICAgICAgICAgICAgICAgIGYuX19uYW1lX18sIGEsIGIsIHNlbGYuY2hhcmFjdGVycy5fX25hbWVfXywKICAgICAgICAgICAgICAgICAgICB4LCBleHBlY3RlZCkpCgogICAgZGVmIHRlc3RfY29tYmluaW5nX2NoYXJhY3RlcnMoc2VsZik6CiAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgKHUnYScsIHUnYScsIFRydWUpLCAjICdhJyDihpAgJ2EnCiAgICAgICAgICAgICh1J2EnLCB1J2InLCBUcnVlKSwgIyAnYScg4oaQICdiJwogICAgICAgICAgICAodSdiJywgdSdhJywgVHJ1ZSksICMgJ2InIOKGkCAnYScKICAgICAgICAgICAgKHUnYicsIHUnYicsIFRydWUpLCAjICdiJyDihpAgJ2InCiAgICAgICAgICAgICh1J1x4ZWEnLCB1J1x4ZWEnLCBUcnVlKSwgIyAnw6onIOKGkCAnw6onCiAgICAgICAgICAgICh1J1x4ZWEnLCB1J2VcdTAzMDInLCBUcnVlKSwgIyAnw6onIOKGkCAnZcyCJwogICAgICAgICAgICAodSdlXHUwMzAyJywgdSdceGVhJywgVHJ1ZSksICMgJ2XMgicg4oaQICfDqicKICAgICAgICAgICAgKHUnZVx1MDMwMicsIHUnZVx1MDMwMicsIFRydWUpLCAjICdlzIInIOKGkCAnZcyCJwogICAgICAgICAgICAodSdcdTIxMjYnLCB1J1x1MjEyNicsIFRydWUpLCAjICfihKYnIOKGkCAn4oSmJwogICAgICAgICAgICAodSdcdTIxMjYnLCB1J1x1MDNhOScsIFRydWUpLCAjICfihKYnIOKGkCAnzqknCiAgICAgICAgICAgICh1J1x1MDNhOScsIHUnXHUyMTI2JywgVHJ1ZSksICMgJ86pJyDihpAgJ+KEpicKICAgICAgICAgICAgKHUnXHUwM2E5JywgdSdcdTAzYTknLCBUcnVlKSwgIyAnzqknIOKGkCAnzqknCiAgICAgICAgICAgICh1J2VcdTAzMDInLCB1J2VcdTAzMDInLCBUcnVlKSwgIyAnZcyCJyDihpAgJ2XMgicKICAgICAgICAgICAgKHUnZVx1MDMwMicsIHUnXHUwMzAyYScsIEZhbHNlKSwgIyAnZcyCJyDihpogJ8yCYScKICAgICAgICAgICAgKHUnXHUwMzAyYScsIHUnZVx1MDMwMicsIEZhbHNlKSwgIyAnzIJhJyDihpogJ2XMgicKICAgICAgICAgICAgKHUnXHUwMzAyYScsIHUnXHUwMzAyYScsIFRydWUpLCAjICfMgmEnIOKGkCAnzIJhJwogICAgICAgICAgICAodSdlXHUwMzAyJywgdSdcdTAzMDJlJywgRmFsc2UpLCAjICdlzIInIOKGmiAnzIJlJwogICAgICAgICAgICAodSdcdTAzMDJlJywgdSdlXHUwMzAyJywgRmFsc2UpLCAjICfMgmUnIOKGmiAnZcyCJwogICAgICAgICAgICAodSdlXHUwMzAyJywgdSdhXHUwMzAyJywgRmFsc2UpLCAjICdlzIInIOKGmiAnYcyCJwogICAgICAgICAgICAodSdhXHUwMzAyJywgdSdlXHUwMzAyJywgRmFsc2UpLCAjICdhzIInIOKGmiAnZcyCJwogICAgICAgIF0KICAgICAgICBzZWxmLmNoZWNrX2Z1bmN0aW9ucyhkYXRhKQogICAgCiAgICBkZWYgdGVzdF9leGFtcGxlX2Zyb21fcXVlc3Rpb24oc2VsZik6CiAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgKHUnYWJcdTRlMmRlZlx1NjVlNWprbFx1NGUyZFx1NjcyYycsIHUnYmVqXHU0ZTJkXHU0ZTJkXHU2NWU1JywKICAgICAgICAgICAgIFRydWUpLCAgIyAnYWLkuK1lZuaXpWprbOS4reacrCcg4oaQICdiZWrkuK3kuK3ml6UnCiAgICAgICAgICAgICh1J2Jlalx1NGUyZFx1NGUyZFx1NjVlNScsIHUnYWJcdTRlMmRlZlx1NjVlNWprbFx1NGUyZFx1NjcyYycsCiAgICAgICAgICAgICBGYWxzZSksICMgJ2JlauS4reS4reaXpScg4oaaICdhYuS4rWVm5pelamts5Lit5pysJwogICAgICAgICAgICAodSdsa1x1NjVlNVx1NjVlNVx1NjVlNScsIHUnYmVqXHU0ZTJkXHU0ZTJkXHU2NWU1JywKICAgICAgICAgICAgIEZhbHNlKSwgIyAnbGvml6Xml6Xml6UnIOKGmiAnYmVq5Lit5Lit5pelJwogICAgICAgICAgICAodSdiZWpcdTRlMmRcdTRlMmRcdTY1ZTUnLCB1J2xrXHU2NWU1XHU2NWU1XHU2NWU1JywKICAgICAgICAgICAgIEZhbHNlKSwgIyAnYmVq5Lit5Lit5pelJyDihpogJ2xr5pel5pel5pelJwogICAgICAgIF0KICAgICAgICBzZWxmLmNoZWNrX2Z1bmN0aW9ucyhkYXRhKQogICAgCiAgICBkZWYgdGVzdF9kZXZhbmFnYXJpX2tzaGkoc2VsZik6CiAgICAgICAgZGF0YSA9IFsKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywgdSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBUcnVlKSwgIyDgpJXgpY3gpLfgpL8g4oaQIOCkleCljeCkt+CkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpLfgpL8g4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpLfgpL8g4oaaIOCkleCkv+Ckt+CljQogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpLfgpL8g4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLCB1J1x1MDk0ZFx1MDkzZlx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpLfgpL8g4oaaIOCljeCkv+Ckt+CklQogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpLfgpL8g4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLCB1J1x1MDkzN1x1MDkzZlx1MDkxNVx1MDk0ZCcsCiAgICAgICAgICAgIFRydWUpLCAjIOCkleCljeCkt+CkvyDihpAg4KS34KS/4KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDk0ZFx1MDkzN1x1MDkzZicsIHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCljeCkt+CkvyDihpog4KS/4KSV4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDk0ZFx1MDkzN1x1MDkzZicsIHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCljeCkt+CkvyDihpog4KS/4KWN4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDk0ZFx1MDkzZlx1MDkzNycsIHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCljeCkv+CktyDihpog4KSV4KWN4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDk0ZFx1MDkzZlx1MDkzNycsIHUnXHUwOTE1XHUwOTRkXHUwOTNmXHUwOTM3JywKICAgICAgICAgICAgVHJ1ZSksICMg4KSV4KWN4KS/4KS3IOKGkCDgpJXgpY3gpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTRkXHUwOTNmXHUwOTM3JywgdSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KWN4KS/4KS3IOKGmiDgpJXgpL/gpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTRkXHUwOTNmXHUwOTM3JywgdSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KWN4KS/4KS3IOKGmiDgpY3gpJXgpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTRkXHUwOTNmXHUwOTM3JywgdSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KWN4KS/4KS3IOKGmiDgpY3gpL/gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTRkXHUwOTNmXHUwOTM3JywgdSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLAogICAgICAgICAgICBUcnVlKSwgIyDgpJXgpY3gpL/gpLcg4oaQIOCkt+CkleCljeCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpL/gpLcg4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpL/gpLcg4oaaIOCkt+Ckv+CljeCklQogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLCB1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpL/gpLcg4oaaIOCkv+CljeCkleCktwogICAgICAgICAgICAodSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLCB1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpY3gpL/gpLcg4oaaIOCkv+Ckt+CljeCklQogICAgICAgICAgICAodSdcdTA5MTVcdTA5MzdcdTA5NGRcdTA5M2YnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIFRydWUpLCAjIOCkleCkt+CljeCkvyDihpAg4KSV4KS34KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsIHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkt+CljeCkvyDihpog4KSV4KS34KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsIHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkt+CljeCkvyDihpog4KWN4KSV4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsIHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkt+CljeCkvyDihpog4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsIHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkt+CljeCkvyDihpog4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsIHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgVHJ1ZSksICMg4KSV4KS34KWN4KS/IOKGkCDgpLfgpY3gpL/gpJUKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTM3XHUwOTRkXHUwOTNmJywgdSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS34KWN4KS/IOKGmiDgpLfgpL/gpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTM3XHUwOTRkXHUwOTNmJywgdSdcdTA5M2ZcdTA5MTVcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS34KWN4KS/IOKGmiDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTM3XHUwOTRkXHUwOTNmJywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS34KWN4KS/IOKGmiDgpL/gpLfgpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywgdSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS34KS/4KWNIOKGmiDgpJXgpY3gpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywgdSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBUcnVlKSwgIyDgpJXgpLfgpL/gpY0g4oaQIOCkleCkt+Ckv+CljQogICAgICAgICAgICAodSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpLfgpL/gpY0g4oaaIOCkleCkv+Ckt+CljQogICAgICAgICAgICAodSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpLfgpL/gpY0g4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLCB1J1x1MDk0ZFx1MDkzZlx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpLfgpL/gpY0g4oaaIOCljeCkv+Ckt+CklQogICAgICAgICAgICAodSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpLfgpL/gpY0g4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIFRydWUpLCAjIOCkleCkt+Ckv+CljSDihpAg4KS34KS/4KWN4KSVCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzN1x1MDkzZlx1MDk0ZCcsIHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkt+Ckv+CljSDihpog4KS/4KSV4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzN1x1MDkzZlx1MDk0ZCcsIHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkt+Ckv+CljSDihpog4KS/4KWN4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzZlx1MDk0ZFx1MDkzNycsIHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkv+CljeCktyDihpog4KSV4KWN4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzZlx1MDk0ZFx1MDkzNycsIHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkv+CljeCktyDihpog4KSV4KS34KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzZlx1MDk0ZFx1MDkzNycsIHUnXHUwOTE1XHUwOTNmXHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgVHJ1ZSksICMg4KSV4KS/4KWN4KS3IOKGkCDgpJXgpL/gpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTNmXHUwOTRkXHUwOTM3JywgdSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS/4KWN4KS3IOKGmiDgpY3gpJXgpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTNmXHUwOTRkXHUwOTM3JywgdSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS/4KWN4KS3IOKGmiDgpY3gpL/gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTNmXHUwOTRkXHUwOTM3JywgdSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBUcnVlKSwgIyDgpJXgpL/gpY3gpLcg4oaQIOCkt+CkleCkv+CljQogICAgICAgICAgICAodSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpL/gpY3gpLcg4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpL/gpY3gpLcg4oaaIOCkt+Ckv+CljeCklQogICAgICAgICAgICAodSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLCB1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpL/gpY3gpLcg4oaaIOCkv+CljeCkleCktwogICAgICAgICAgICAodSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLCB1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpL/gpY3gpLcg4oaaIOCkv+Ckt+CljeCklQogICAgICAgICAgICAodSdcdTA5MTVcdTA5M2ZcdTA5MzdcdTA5NGQnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpJXgpL/gpLfgpY0g4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5MTVcdTA5M2ZcdTA5MzdcdTA5NGQnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIFRydWUpLCAjIOCkleCkv+Ckt+CljSDihpAg4KSV4KS/4KS34KWNCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsIHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkv+Ckt+CljSDihpog4KWN4KSV4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsIHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkv+Ckt+CljSDihpog4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsIHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkleCkv+Ckt+CljSDihpog4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsIHUnXHUwOTM3XHUwOTRkXHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgVHJ1ZSksICMg4KSV4KS/4KS34KWNIOKGkCDgpLfgpY3gpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTNmXHUwOTM3XHUwOTRkJywgdSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS/4KS34KWNIOKGmiDgpLfgpL/gpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTNmXHUwOTM3XHUwOTRkJywgdSdcdTA5M2ZcdTA5MTVcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS/4KS34KWNIOKGmiDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTE1XHUwOTNmXHUwOTM3XHUwOTRkJywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KSV4KS/4KS34KWNIOKGmiDgpL/gpLfgpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywgdSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KSV4KS34KS/IOKGmiDgpJXgpY3gpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywgdSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KSV4KS34KS/IOKGmiDgpJXgpL/gpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywgdSdcdTA5NGRcdTA5MTVcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBUcnVlKSwgIyDgpY3gpJXgpLfgpL8g4oaQIOCljeCkleCkt+CkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5MTVcdTA5MzdcdTA5M2YnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpJXgpLfgpL8g4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5MTVcdTA5MzdcdTA5M2YnLCB1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsCiAgICAgICAgICAgIFRydWUpLCAjIOCljeCkleCkt+CkvyDihpAg4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkxNVx1MDkzN1x1MDkzZicsIHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkleCkt+CkvyDihpog4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkxNVx1MDkzN1x1MDkzZicsIHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkleCkt+CkvyDihpog4KS34KWN4KS/4KSVCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkxNVx1MDkzN1x1MDkzZicsIHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkleCkt+CkvyDihpog4KS/4KSV4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkxNVx1MDkzN1x1MDkzZicsIHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkleCkt+CkvyDihpog4KS/4KWN4KS34KSVCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkxNVx1MDkzZlx1MDkzNycsIHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkleCkv+CktyDihpog4KSV4KWN4KS34KS/CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkxNVx1MDkzZlx1MDkzNycsIHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkleCkv+CktyDihpog4KSV4KS34KS/4KWNCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkxNVx1MDkzZlx1MDkzNycsIHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkleCkv+CktyDihpog4KWN4KSV4KS34KS/CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkxNVx1MDkzZlx1MDkzNycsIHUnXHUwOTRkXHUwOTE1XHUwOTNmXHUwOTM3JywKICAgICAgICAgICAgVHJ1ZSksICMg4KWN4KSV4KS/4KS3IOKGkCDgpY3gpJXgpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTE1XHUwOTNmXHUwOTM3JywgdSdcdTA5NGRcdTA5MzdcdTA5MTVcdTA5M2YnLAogICAgICAgICAgICBUcnVlKSwgIyDgpY3gpJXgpL/gpLcg4oaQIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLCB1J1x1MDk0ZFx1MDkzZlx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpJXgpL/gpLcg4oaaIOCljeCkv+Ckt+CklQogICAgICAgICAgICAodSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpJXgpL/gpLcg4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpJXgpL/gpLcg4oaaIOCkt+Ckv+CljeCklQogICAgICAgICAgICAodSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLCB1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpJXgpL/gpLcg4oaaIOCkv+CljeCkleCktwogICAgICAgICAgICAodSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLCB1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpJXgpL/gpLcg4oaaIOCkv+Ckt+CljeCklQogICAgICAgICAgICAodSdcdTA5NGRcdTA5MzdcdTA5MTVcdTA5M2YnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpLfgpJXgpL8g4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5MzdcdTA5MTVcdTA5M2YnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpLfgpJXgpL8g4oaaIOCkleCkv+Ckt+CljQogICAgICAgICAgICAodSdcdTA5NGRcdTA5MzdcdTA5MTVcdTA5M2YnLCB1J1x1MDk0ZFx1MDkxNVx1MDkzZlx1MDkzNycsCiAgICAgICAgICAgIFRydWUpLCAjIOCljeCkt+CkleCkvyDihpAg4KWN4KSV4KS/4KS3CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsIHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgVHJ1ZSksICMg4KWN4KS34KSV4KS/IOKGkCDgpY3gpLfgpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywgdSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS34KSV4KS/IOKGmiDgpY3gpL/gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywgdSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS34KSV4KS/IOKGmiDgpLfgpJXgpL/gpY0KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywgdSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS34KSV4KS/IOKGmiDgpLfgpL/gpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywgdSdcdTA5M2ZcdTA5MTVcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS34KSV4KS/IOKGmiDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS34KSV4KS/IOKGmiDgpL/gpLfgpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywgdSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS34KS/4KSVIOKGmiDgpJXgpY3gpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywgdSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS34KS/4KSVIOKGmiDgpJXgpL/gpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywgdSdcdTA5NGRcdTA5MTVcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBUcnVlKSwgIyDgpY3gpLfgpL/gpJUg4oaQIOCljeCkleCkt+CkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5MzdcdTA5M2ZcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpLfgpL/gpJUg4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5MzdcdTA5M2ZcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsCiAgICAgICAgICAgIFRydWUpLCAjIOCljeCkt+Ckv+CklSDihpAg4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsIHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkt+Ckv+CklSDihpog4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsIHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkt+Ckv+CklSDihpog4KS34KWN4KS/4KSVCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsIHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkt+Ckv+CklSDihpog4KS/4KSV4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsIHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkt+Ckv+CklSDihpog4KS/4KWN4KS34KSVCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsIHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkv+CkleCktyDihpog4KSV4KWN4KS34KS/CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsIHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkv+CkleCktyDihpog4KSV4KS34KS/4KWNCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsIHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkv+CkleCktyDihpog4KWN4KSV4KS34KS/CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsIHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCljeCkv+CkleCktyDihpog4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsIHUnXHUwOTRkXHUwOTNmXHUwOTE1XHUwOTM3JywKICAgICAgICAgICAgVHJ1ZSksICMg4KWN4KS/4KSV4KS3IOKGkCDgpY3gpL/gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTNmXHUwOTE1XHUwOTM3JywgdSdcdTA5NGRcdTA5M2ZcdTA5MzdcdTA5MTUnLAogICAgICAgICAgICBUcnVlKSwgIyDgpY3gpL/gpJXgpLcg4oaQIOCljeCkv+Ckt+CklQogICAgICAgICAgICAodSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpL/gpJXgpLcg4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpL/gpJXgpLcg4oaaIOCkt+Ckv+CljeCklQogICAgICAgICAgICAodSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLCB1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpL/gpJXgpLcg4oaaIOCkv+CljeCkleCktwogICAgICAgICAgICAodSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLCB1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpL/gpJXgpLcg4oaaIOCkv+Ckt+CljeCklQogICAgICAgICAgICAodSdcdTA5NGRcdTA5M2ZcdTA5MzdcdTA5MTUnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpL/gpLfgpJUg4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5M2ZcdTA5MzdcdTA5MTUnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpL/gpLfgpJUg4oaaIOCkleCkv+Ckt+CljQogICAgICAgICAgICAodSdcdTA5NGRcdTA5M2ZcdTA5MzdcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpY3gpL/gpLfgpJUg4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5NGRcdTA5M2ZcdTA5MzdcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIFRydWUpLCAjIOCljeCkv+Ckt+CklSDihpAg4KWN4KS/4KSV4KS3CiAgICAgICAgICAgICh1J1x1MDk0ZFx1MDkzZlx1MDkzN1x1MDkxNScsIHUnXHUwOTRkXHUwOTNmXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgVHJ1ZSksICMg4KWN4KS/4KS34KSVIOKGkCDgpY3gpL/gpLfgpJUKICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTNmXHUwOTM3XHUwOTE1JywgdSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS/4KS34KSVIOKGmiDgpLfgpJXgpL/gpY0KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTNmXHUwOTM3XHUwOTE1JywgdSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS/4KS34KSVIOKGmiDgpLfgpL/gpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTNmXHUwOTM3XHUwOTE1JywgdSdcdTA5M2ZcdTA5MTVcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS/4KS34KSVIOKGmiDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTRkXHUwOTNmXHUwOTM3XHUwOTE1JywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KWN4KS/4KS34KSVIOKGmiDgpL/gpLfgpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywgdSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBUcnVlKSwgIyDgpLfgpJXgpY3gpL8g4oaQIOCkleCljeCkv+CktwogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpJXgpY3gpL8g4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpJXgpY3gpL8g4oaaIOCkleCkv+Ckt+CljQogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpJXgpY3gpL8g4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLCB1J1x1MDk0ZFx1MDkzZlx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpJXgpY3gpL8g4oaaIOCljeCkv+Ckt+CklQogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLCB1J1x1MDkzN1x1MDkxNVx1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIFRydWUpLCAjIOCkt+CkleCljeCkvyDihpAg4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkxNVx1MDk0ZFx1MDkzZicsIHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CkleCljeCkvyDihpog4KS34KWN4KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkxNVx1MDk0ZFx1MDkzZicsIHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CkleCljeCkvyDihpog4KS/4KSV4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkxNVx1MDk0ZFx1MDkzZicsIHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CkleCljeCkvyDihpog4KS/4KWN4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkxNVx1MDkzZlx1MDk0ZCcsIHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CkleCkv+CljSDihpog4KSV4KWN4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkxNVx1MDkzZlx1MDk0ZCcsIHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CkleCkv+CljSDihpog4KSV4KS34KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkxNVx1MDkzZlx1MDk0ZCcsIHUnXHUwOTE1XHUwOTNmXHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgVHJ1ZSksICMg4KS34KSV4KS/4KWNIOKGkCDgpJXgpL/gpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTE1XHUwOTNmXHUwOTRkJywgdSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KSV4KS/4KWNIOKGmiDgpY3gpJXgpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTE1XHUwOTNmXHUwOTRkJywgdSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KSV4KS/4KWNIOKGmiDgpY3gpL/gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTE1XHUwOTNmXHUwOTRkJywgdSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBUcnVlKSwgIyDgpLfgpJXgpL/gpY0g4oaQIOCkt+CkleCkv+CljQogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpJXgpL/gpY0g4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpJXgpL/gpY0g4oaaIOCkt+Ckv+CljeCklQogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLCB1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpJXgpL/gpY0g4oaaIOCkv+CljeCkleCktwogICAgICAgICAgICAodSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLCB1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpJXgpL/gpY0g4oaaIOCkv+Ckt+CljeCklQogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5MTVcdTA5M2YnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpJXgpL8g4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5MTVcdTA5M2YnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIFRydWUpLCAjIOCkt+CljeCkleCkvyDihpAg4KSV4KS/4KS34KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsIHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkleCkvyDihpog4KWN4KSV4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsIHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkleCkvyDihpog4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsIHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkleCkvyDihpog4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsIHUnXHUwOTM3XHUwOTRkXHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgVHJ1ZSksICMg4KS34KWN4KSV4KS/IOKGkCDgpLfgpY3gpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTRkXHUwOTE1XHUwOTNmJywgdSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KWN4KSV4KS/IOKGmiDgpLfgpL/gpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTRkXHUwOTE1XHUwOTNmJywgdSdcdTA5M2ZcdTA5MTVcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KWN4KSV4KS/IOKGmiDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTRkXHUwOTE1XHUwOTNmJywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KWN4KSV4KS/IOKGmiDgpL/gpLfgpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywgdSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KWN4KS/4KSVIOKGmiDgpJXgpY3gpLfgpL8KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywgdSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KWN4KS/4KSVIOKGmiDgpJXgpY3gpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywgdSdcdTA5MTVcdTA5MzdcdTA5NGRcdTA5M2YnLAogICAgICAgICAgICBUcnVlKSwgIyDgpLfgpY3gpL/gpJUg4oaQIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDkxNVx1MDkzN1x1MDkzZlx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCkleCkt+Ckv+CljQogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDkxNVx1MDkzZlx1MDk0ZFx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCkleCkv+CljeCktwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCkleCkv+Ckt+CljQogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDk0ZFx1MDkxNVx1MDkzN1x1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCljeCkleCkt+CkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDk0ZFx1MDkxNVx1MDkzZlx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCljeCkleCkv+CktwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCljeCkt+Ckv+CklQogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCljeCkv+CkleCktwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzZlx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCljeCkv+Ckt+CklQogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDkzN1x1MDkxNVx1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCkt+CkleCljeCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDkzN1x1MDkxNVx1MDkzZlx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCkt+CkleCkv+CljQogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpY3gpL/gpJUg4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLCB1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsCiAgICAgICAgICAgIFRydWUpLCAjIOCkt+CljeCkv+CklSDihpAg4KS34KWN4KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsIHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkv+CklSDihpog4KS34KS/4KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsIHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkv+CklSDihpog4KS34KS/4KWN4KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsIHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkv+CklSDihpog4KS/4KSV4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsIHUnXHUwOTNmXHUwOTE1XHUwOTM3XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkv+CklSDihpog4KS/4KSV4KS34KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsIHUnXHUwOTNmXHUwOTRkXHUwOTE1XHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkv+CklSDihpog4KS/4KWN4KSV4KS3CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsIHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkv+CklSDihpog4KS/4KWN4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsIHUnXHUwOTNmXHUwOTM3XHUwOTE1XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkv+CklSDihpog4KS/4KS34KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsIHUnXHUwOTNmXHUwOTM3XHUwOTRkXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+CljeCkv+CklSDihpog4KS/4KS34KWN4KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDkxNVx1MDk0ZCcsIHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgVHJ1ZSksICMg4KS34KS/4KSV4KWNIOKGkCDgpJXgpY3gpLfgpL8KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpJXgpY3gpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MTVcdTA5MzdcdTA5NGRcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpJXgpLfgpY3gpL8KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpJXgpLfgpL/gpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpJXgpL/gpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MTVcdTA5M2ZcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpJXgpL/gpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5NGRcdTA5MTVcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpY3gpJXgpLfgpL8KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpY3gpJXgpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5NGRcdTA5MzdcdTA5MTVcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpY3gpLfgpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5NGRcdTA5MzdcdTA5M2ZcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpY3gpLfgpL/gpJUKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpY3gpL/gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5NGRcdTA5M2ZcdTA5MzdcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpY3gpL/gpLfgpJUKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpLfgpJXgpY3gpL8KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpLfgpJXgpL/gpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MzdcdTA5NGRcdTA5MTVcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpLfgpY3gpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KSV4KWNIOKGmiDgpLfgpY3gpL/gpJUKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywgdSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBUcnVlKSwgIyDgpLfgpL/gpJXgpY0g4oaQIOCkt+Ckv+CkleCljQogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpJXgpY0g4oaaIOCkt+Ckv+CljeCklQogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLCB1J1x1MDkzZlx1MDkxNVx1MDk0ZFx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpJXgpY0g4oaaIOCkv+CkleCljeCktwogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLCB1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpJXgpY0g4oaaIOCkv+CkleCkt+CljQogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLCB1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpJXgpY0g4oaaIOCkv+CljeCkleCktwogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLCB1J1x1MDkzZlx1MDk0ZFx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpJXgpY0g4oaaIOCkv+CljeCkt+CklQogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLCB1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpJXgpY0g4oaaIOCkv+Ckt+CkleCljQogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLCB1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpJXgpY0g4oaaIOCkv+Ckt+CljeCklQogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDk0ZFx1MDkzN1x1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpY3gpJUg4oaaIOCkleCljeCkt+CkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDk0ZFx1MDkzZlx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpY3gpJUg4oaaIOCkleCljeCkv+CktwogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpLfgpL/gpY3gpJUg4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5MzdcdTA5M2ZcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDkzN1x1MDkzZlx1MDk0ZCcsCiAgICAgICAgICAgIFRydWUpLCAjIOCkt+Ckv+CljeCklSDihpAg4KSV4KS34KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTE1XHUwOTNmXHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KSV4KS/4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTE1XHUwOTNmXHUwOTM3XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KSV4KS/4KS34KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KWN4KSV4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTRkXHUwOTE1XHUwOTNmXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KWN4KSV4KS/4KS3CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KWN4KS34KSV4KS/CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTRkXHUwOTNmXHUwOTE1XHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KWN4KS/4KSV4KS3CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTRkXHUwOTNmXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KWN4KS/4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTM3XHUwOTE1XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KS34KSV4KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTM3XHUwOTRkXHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KS34KWN4KSV4KS/CiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KS34KWN4KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkt+Ckv+CljeCklSDihpog4KS34KS/4KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsIHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywKICAgICAgICAgICAgVHJ1ZSksICMg4KS34KS/4KWN4KSVIOKGkCDgpLfgpL/gpY3gpJUKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywgdSdcdTA5M2ZcdTA5MTVcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KWN4KSVIOKGmiDgpL/gpJXgpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywgdSdcdTA5M2ZcdTA5MTVcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KWN4KSVIOKGmiDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywgdSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KWN4KSVIOKGmiDgpL/gpY3gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywgdSdcdTA5M2ZcdTA5NGRcdTA5MzdcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KWN4KSVIOKGmiDgpL/gpY3gpLfgpJUKICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KWN4KSVIOKGmiDgpL/gpLfgpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywgdSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS34KS/4KWN4KSVIOKGmiDgpL/gpLfgpY3gpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpJXgpY3gpLfgpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpJXgpY3gpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MTVcdTA5MzdcdTA5NGRcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpJXgpLfgpY3gpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpJXgpLfgpL/gpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpJXgpL/gpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MTVcdTA5M2ZcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpJXgpL/gpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5NGRcdTA5MTVcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpY3gpJXgpLfgpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpY3gpJXgpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5NGRcdTA5MzdcdTA5MTVcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpY3gpLfgpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5NGRcdTA5MzdcdTA5M2ZcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpY3gpLfgpL/gpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpY3gpL/gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5NGRcdTA5M2ZcdTA5MzdcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpY3gpL/gpLfgpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpLfgpJXgpY3gpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpLfgpJXgpL/gpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MzdcdTA5NGRcdTA5MTVcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpLfgpY3gpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpLfgpY3gpL/gpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpLfgpL/gpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5MzdcdTA5M2ZcdTA5NGRcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KWN4KS3IOKGmiDgpLfgpL/gpY3gpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywgdSdcdTA5M2ZcdTA5MTVcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBUcnVlKSwgIyDgpL/gpJXgpY3gpLcg4oaQIOCkv+CkleCljeCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MTVcdTA5NGRcdTA5MzcnLCB1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpJXgpY3gpLcg4oaaIOCkv+CkleCkt+CljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MTVcdTA5NGRcdTA5MzcnLCB1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpJXgpY3gpLcg4oaaIOCkv+CljeCkleCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MTVcdTA5NGRcdTA5MzcnLCB1J1x1MDkzZlx1MDk0ZFx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpJXgpY3gpLcg4oaaIOCkv+CljeCkt+CklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MTVcdTA5NGRcdTA5MzcnLCB1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsCiAgICAgICAgICAgIFRydWUpLCAjIOCkv+CkleCljeCktyDihpAg4KS/4KS34KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDk0ZFx1MDkzNycsIHUnXHUwOTNmXHUwOTM3XHUwOTRkXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCljeCktyDihpog4KS/4KS34KWN4KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KSV4KWN4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTE1XHUwOTRkXHUwOTNmXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KSV4KWN4KS/4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTE1XHUwOTM3XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KSV4KS34KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KSV4KS34KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTE1XHUwOTNmXHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KSV4KS/4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTE1XHUwOTNmXHUwOTM3XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KSV4KS/4KS34KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KWN4KSV4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTRkXHUwOTE1XHUwOTNmXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KWN4KSV4KS/4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KWN4KS34KSV4KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTRkXHUwOTNmXHUwOTE1XHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KWN4KS/4KSV4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTRkXHUwOTNmXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KWN4KS/4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTM3XHUwOTE1XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KS34KSV4KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTM3XHUwOTRkXHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KS34KWN4KSV4KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KS34KWN4KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KS34KS/4KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KS34KS/4KWN4KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CkleCkt+CljSDihpog4KS/4KSV4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsIHUnXHUwOTNmXHUwOTE1XHUwOTM3XHUwOTRkJywKICAgICAgICAgICAgVHJ1ZSksICMg4KS/4KSV4KS34KWNIOKGkCDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTM3XHUwOTRkJywgdSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KS34KWNIOKGmiDgpL/gpY3gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTM3XHUwOTRkJywgdSdcdTA5M2ZcdTA5NGRcdTA5MzdcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KS34KWNIOKGmiDgpL/gpY3gpLfgpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTM3XHUwOTRkJywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KSV4KS34KWNIOKGmiDgpL/gpLfgpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTE1XHUwOTM3XHUwOTRkJywgdSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLAogICAgICAgICAgICBUcnVlKSwgIyDgpL/gpJXgpLfgpY0g4oaQIOCkv+Ckt+CljeCklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkxNVx1MDk0ZFx1MDkzN1x1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkleCljeCkt+CkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkxNVx1MDk0ZFx1MDkzZlx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkleCljeCkv+CktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkxNVx1MDkzN1x1MDkzZlx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkleCkt+Ckv+CljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkxNVx1MDkzZlx1MDk0ZFx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkleCkv+CljeCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkleCkv+Ckt+CljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDk0ZFx1MDkxNVx1MDkzN1x1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCljeCkleCkt+CkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDk0ZFx1MDkxNVx1MDkzZlx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCljeCkleCkv+CktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCljeCkt+Ckv+CklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCljeCkv+CkleCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDk0ZFx1MDkzZlx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCljeCkv+Ckt+CklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzN1x1MDkxNVx1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkt+CkleCljeCkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzN1x1MDkxNVx1MDkzZlx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkt+CkleCkv+CljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkt+CljeCkv+CklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzN1x1MDkzZlx1MDkxNVx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkt+Ckv+CkleCljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkt+Ckv+CljeCklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzZlx1MDkxNVx1MDk0ZFx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkv+CkleCljeCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpY3gpJXgpLcg4oaaIOCkv+CkleCkt+CljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLCB1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIFRydWUpLCAjIOCkv+CljeCkleCktyDihpAg4KS/4KWN4KSV4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDk0ZFx1MDkxNVx1MDkzNycsIHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgVHJ1ZSksICMg4KS/4KWN4KSV4KS3IOKGkCDgpL/gpY3gpLfgpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTE1XHUwOTM3JywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KSV4KS3IOKGmiDgpL/gpLfgpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTE1XHUwOTM3JywgdSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KSV4KS3IOKGmiDgpL/gpLfgpY3gpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpJXgpY3gpLfgpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MTVcdTA5NGRcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpJXgpY3gpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MTVcdTA5MzdcdTA5NGRcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpJXgpLfgpY3gpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MTVcdTA5MzdcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpJXgpLfgpL/gpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MTVcdTA5M2ZcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpJXgpL/gpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MTVcdTA5M2ZcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpJXgpL/gpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5NGRcdTA5MTVcdTA5MzdcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpY3gpJXgpLfgpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5NGRcdTA5MTVcdTA5M2ZcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpY3gpJXgpL/gpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5NGRcdTA5MzdcdTA5MTVcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpY3gpLfgpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5NGRcdTA5MzdcdTA5M2ZcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpY3gpLfgpL/gpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5NGRcdTA5M2ZcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpY3gpL/gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5NGRcdTA5M2ZcdTA5MzdcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpY3gpL/gpLfgpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MzdcdTA5MTVcdTA5NGRcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpLfgpJXgpY3gpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MzdcdTA5MTVcdTA5M2ZcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpLfgpJXgpL/gpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MzdcdTA5NGRcdTA5MTVcdTA5M2YnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpLfgpY3gpJXgpL8KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MzdcdTA5NGRcdTA5M2ZcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpLfgpY3gpL/gpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MzdcdTA5M2ZcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpLfgpL/gpJXgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5MzdcdTA5M2ZcdTA5NGRcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpLfgpL/gpY3gpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5M2ZcdTA5MTVcdTA5NGRcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpL/gpJXgpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5M2ZcdTA5MTVcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KWN4KS34KSVIOKGmiDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywgdSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBUcnVlKSwgIyDgpL/gpY3gpLfgpJUg4oaQIOCkv+CljeCkleCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5NGRcdTA5MzdcdTA5MTUnLCB1J1x1MDkzZlx1MDk0ZFx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIFRydWUpLCAjIOCkv+CljeCkt+CklSDihpAg4KS/4KWN4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDk0ZFx1MDkzN1x1MDkxNScsIHUnXHUwOTNmXHUwOTM3XHUwOTE1XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CljeCkt+CklSDihpog4KS/4KS34KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDk0ZFx1MDkzN1x1MDkxNScsIHUnXHUwOTNmXHUwOTM3XHUwOTRkXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+CljeCkt+CklSDihpog4KS/4KS34KWN4KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KSV4KWN4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTE1XHUwOTRkXHUwOTNmXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KSV4KWN4KS/4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTE1XHUwOTM3XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KSV4KS34KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTE1XHUwOTM3XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KSV4KS34KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTE1XHUwOTNmXHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KSV4KS/4KWN4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTE1XHUwOTNmXHUwOTM3XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KSV4KS/4KS34KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTRkXHUwOTE1XHUwOTM3XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KWN4KSV4KS34KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTRkXHUwOTE1XHUwOTNmXHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KWN4KSV4KS/4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTRkXHUwOTM3XHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KWN4KS34KSV4KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTRkXHUwOTM3XHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KWN4KS34KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTRkXHUwOTNmXHUwOTE1XHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KWN4KS/4KSV4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTRkXHUwOTNmXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KWN4KS/4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTM3XHUwOTE1XHUwOTRkXHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KS34KSV4KWN4KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTM3XHUwOTE1XHUwOTNmXHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KS34KSV4KS/4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTM3XHUwOTRkXHUwOTE1XHUwOTNmJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KS34KWN4KSV4KS/CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTM3XHUwOTRkXHUwOTNmXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KS34KWN4KS/4KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTM3XHUwOTNmXHUwOTE1XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KS34KS/4KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTM3XHUwOTNmXHUwOTRkXHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CkleCljSDihpog4KS34KS/4KWN4KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDkxNVx1MDk0ZCcsIHUnXHUwOTNmXHUwOTE1XHUwOTRkXHUwOTM3JywKICAgICAgICAgICAgVHJ1ZSksICMg4KS/4KS34KSV4KWNIOKGkCDgpL/gpJXgpY3gpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTM3XHUwOTE1XHUwOTRkJywgdSdcdTA5M2ZcdTA5MTVcdTA5MzdcdTA5NGQnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KS34KSV4KWNIOKGmiDgpL/gpJXgpLfgpY0KICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTM3XHUwOTE1XHUwOTRkJywgdSdcdTA5M2ZcdTA5NGRcdTA5MTVcdTA5MzcnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KS34KSV4KWNIOKGmiDgpL/gpY3gpJXgpLcKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTM3XHUwOTE1XHUwOTRkJywgdSdcdTA5M2ZcdTA5NGRcdTA5MzdcdTA5MTUnLAogICAgICAgICAgICBGYWxzZSksICMg4KS/4KS34KSV4KWNIOKGmiDgpL/gpY3gpLfgpJUKICAgICAgICAgICAgKHUnXHUwOTNmXHUwOTM3XHUwOTE1XHUwOTRkJywgdSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLAogICAgICAgICAgICBUcnVlKSwgIyDgpL/gpLfgpJXgpY0g4oaQIOCkv+Ckt+CkleCljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5MTVcdTA5NGQnLCB1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpJXgpY0g4oaaIOCkv+Ckt+CljeCklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDk0ZFx1MDkzN1x1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkleCljeCkt+CkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDk0ZFx1MDkzZlx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkleCljeCkv+CktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDkzN1x1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkleCkt+CljeCkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDkzN1x1MDkzZlx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkleCkt+Ckv+CljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDkzZlx1MDk0ZFx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkleCkv+CljeCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkxNVx1MDkzZlx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkleCkv+Ckt+CljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDk0ZFx1MDkxNVx1MDkzN1x1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCljeCkleCkt+CkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDk0ZFx1MDkxNVx1MDkzZlx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCljeCkleCkv+CktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzN1x1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCljeCkt+CkleCkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzN1x1MDkzZlx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCljeCkt+Ckv+CklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzZlx1MDkxNVx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCljeCkv+CkleCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDk0ZFx1MDkzZlx1MDkzN1x1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCljeCkv+Ckt+CklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkzN1x1MDkxNVx1MDk0ZFx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkt+CkleCljeCkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkzN1x1MDkxNVx1MDkzZlx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkt+CkleCkv+CljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkzN1x1MDk0ZFx1MDkxNVx1MDkzZicsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkt+CljeCkleCkvwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkzN1x1MDk0ZFx1MDkzZlx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkt+CljeCkv+CklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkzN1x1MDkzZlx1MDkxNVx1MDk0ZCcsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkt+Ckv+CkleCljQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkzN1x1MDkzZlx1MDk0ZFx1MDkxNScsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkt+Ckv+CljeCklQogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkzZlx1MDkxNVx1MDk0ZFx1MDkzNycsCiAgICAgICAgICAgIEZhbHNlKSwgIyDgpL/gpLfgpY3gpJUg4oaaIOCkv+CkleCljeCktwogICAgICAgICAgICAodSdcdTA5M2ZcdTA5MzdcdTA5NGRcdTA5MTUnLCB1J1x1MDkzZlx1MDkxNVx1MDkzN1x1MDk0ZCcsCiAgICAgICAgICAgIFRydWUpLCAjIOCkv+Ckt+CljeCklSDihpAg4KS/4KSV4KS34KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsIHUnXHUwOTNmXHUwOTRkXHUwOTE1XHUwOTM3JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CljeCklSDihpog4KS/4KWN4KSV4KS3CiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsIHUnXHUwOTNmXHUwOTRkXHUwOTM3XHUwOTE1JywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CljeCklSDihpog4KS/4KWN4KS34KSVCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsIHUnXHUwOTNmXHUwOTM3XHUwOTE1XHUwOTRkJywKICAgICAgICAgICAgRmFsc2UpLCAjIOCkv+Ckt+CljeCklSDihpog4KS/4KS34KSV4KWNCiAgICAgICAgICAgICh1J1x1MDkzZlx1MDkzN1x1MDk0ZFx1MDkxNScsIHUnXHUwOTNmXHUwOTM3XHUwOTRkXHUwOTE1JywKICAgICAgICAgICAgVHJ1ZSksICMg4KS/4KS34KWN4KSVIOKGkCDgpL/gpLfgpY3gpJUKICAgICAgICBdCiAgICAgICAgc2VsZi5jaGVja19mdW5jdGlvbnMoZGF0YSkKCmNsYXNzIFRlc3ROb3JtYWxpemVkKFRlc3RDb2RlcG9pbnRzKToKICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICBzZWxmLmNoYXJhY3RlcnMgPSBjaGFyYWN0ZXJzX25vcm1hbGl6ZWQKCmNsYXNzIFRlc3RVVEY4Qnl0ZXMoVGVzdENvZGVwb2ludHMpOgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHNlbGYuY2hhcmFjdGVycyA9IGNoYXJhY3RlcnNfYnl0ZXMoJ3V0Zi04JykKCmNsYXNzIFRlc3RVVEYxNnl0ZXMoVGVzdENvZGVwb2ludHMpOgogICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgIHNlbGYuY2hhcmFjdGVycyA9IGNoYXJhY3RlcnNfYnl0ZXMoJ3V0Zi0xNicpCiAKaWYgY2hhcmFjdGVyc19ncmFwaGVtZSBpcyBub3QgTm9uZTogICAgCiAgICBjbGFzcyBUZXN0R3JhcGhlbWUoVGVzdENvZGVwb2ludHMpOgogICAgICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgICAgc2VsZi5jaGFyYWN0ZXJzID0gY2hhcmFjdGVyc19ncmFwaGVtZQoKZGVmIGdlbmVyYXRlX3Rlc3RkYXRhKGNsdXN0ZXI9dSdcdTA5MTVcdTA5NGRcdTA5MzdcdTA5M2YnKToKICAgIGZyb20gaXRlcnRvb2xzIGltcG9ydCBwZXJtdXRhdGlvbnMsIHByb2R1Y3QKICAgIGZvciBhLCBiIGluIHByb2R1Y3QocGVybXV0YXRpb25zKGNsdXN0ZXIpLCByZXBlYXQ9Mik6CiAgICAgICAgYSwgYiA9IG1hcCh1Jycuam9pbiwgW2EsIGJdKQogICAgICAgIHggPSBpc3NpbWlsYXIoYSwgYikKICAgICAgICBwcmludCAiKCVyLCAlcixcbiVyKSwgIyAlcyAlcyAlcyIgJSAoCiAgICAgICAgICAgIGEsIGIsIHgsIGEuZW5jb2RlKCd1dGYtOCcpLCAn4oaQJyBpZiB4IGVsc2UgJ+KGmicsIGIuZW5jb2RlKCd1dGYtOCcpKQoKaWYgX19uYW1lX189PSJfX21haW5fXyI6CiAgICBtYWluKCkKICAgIHVuaXR0ZXN0Lm1haW4oKQo=