Sign in to follow this  
Followers 0
MrJustinMeyer

COM OBJECT - Translating C# METHOD Ref to AU3

35 posts in this topic

#1 ·  Posted (edited)

Hello AutoIt Forum,

I am in need of some help working with an API using COM. I have been trying to figure this out for over a week, and have come to the conclusion that after much research, this is outside of my ability.

Scenario;

Software interfacing with is Tekla Structures. I have been using this application for about 10 years for engineering and construction solutions. I know it well, and recently (past few years) started using the API with Autoit.

The API (Tekla Open API) is developed on the .NET framework and well documented. The API also fully supports COM technology, though the recommended interface is a .NET application. All example code is C# and VB. I have had great success "translating" from the API documentation and examples to AU3 thus far.

My current problem involves returning a value from a method, or a method that modifies the value of a variable. I am not sure how this is "properly" described.

For C# sharp it is a "ref" string.

public bool GetReportProperty(
    string Name,
    ref string Value
)

For VB it is a ByRef string.

Public Function GetReportProperty ( _
    Name As String, _
    ByRef Value As String _
) As Boolean

Notation from the documentation;

 

The ModelObject class is an abstract base class for all model objects, such as parts, bolts, welds and reinforcements.

 

The following is a complete example in C#, note that I am trying to return GetReportProperty while the example is using GetUserProperty.

 

Retrieves a string property of the report for the model object.

The logic should not differ as both methods are the same (return string type) with the exception of what they are calling.

using Tekla.Structures.Model;
using System;
using System.Windows.Forms;

public class Example
{
    public void Example1()
    {
        Model Model = new Model();

        ModelObjectEnumerator ObjectEnum = Model.GetModelObjectSelector().GetAllObjects();
        ObjectEnum.SelectInstances = false; // Set the "SelectInstances" to false to speed up the enquiry; possible because only report properties are asked.

        string Result = "CHECKED BY, CHECKED DATE, OBJECT LOCKED \n";
        while(ObjectEnum.MoveNext())
        {
            if(ObjectEnum.Current != null)
            {
                Beam BeamObject = ObjectEnum.Current as Beam;
                if(BeamObject != null)
                {
                    string CheckedBy = "";
                    double DateCheckedValue = 0.0;
                    int LockedStatus = -1;

                    DateTime DateChecked = new System.DateTime(1970, 1, 1);

                    BeamObject.GetUserProperty("CHECKED_BY", ref CheckedBy);
                    BeamObject.GetUserProperty("CHECKED_DATE", ref DateCheckedValue);
                    BeamObject.GetUserProperty("OBJECT_LOCKED", ref LockedStatus);
                    if(CheckedBy.Length > 0 || DateCheckedValue > 0.0 ||
                        LockedStatus != -1)

                    DateChecked = DateChecked.AddSeconds(DateCheckedValue);
                    Result += CheckedBy;
                    Result += ", ";
                    Result += DateChecked.ToString("dd.MM.yyyy");
                    if(LockedStatus == 1)
                    {
                        Result += ", Locked\n";
                    }
                    else
                    {
                        Result += ", Not locked\n";
                    }
                }
            }
        }
        MessageBox.Show(Result);
    }
}

The following is my testing script in AutoIt.

#AutoIt3Wrapper_UseX64=n
#include <Array.au3>

$TSMm = ObjCreate("Tekla.Structures.Model.Model")
If @error Then
    MsgBox(1,"ERROR", "Tekla.Structures.Model.Model" & @CRLF & "Could not connect to Tekla, verify and rerun")
    Exit
EndIf

If Not $TSMm.GetConnectionStatus() = "True" Then
    MsgBox(0, "Error", "Tekla Connection Failure")
    Exit
EndIf

$ALL_OBJECTS = $TSMm.GetModelObjectSelector().GetAllObjectsWithType(1) ;TYPE 1 = BEAM MODELOBJECTCLASS
If @error Then
    MsgBox(1,"ERROR", "Tekla.Structures.Model.Model" & @CRLF & "ObjectSelector")
    Exit
EndIf

$COUNT = 0
$DATA = "DATA:"

While $ALL_OBJECTS.MoveNext()

    Dim $R_VALUE = "ERROR" ;Defined to show change from method below

    If $ALL_OBJECTS.Current.Name() = "BEAM" Then ;Only Objects with BEAM name - Works
        $PROP_REPORT = $ALL_OBJECTS.Current.GetReportProperty("PROFILE", $R_VALUE)
        $DATA = $DATA & @CRLF & "*|PROFLE = " & $PROP_REPORT & " = VALUE = " & $R_VALUE
        ;$PROP_REPORT returns true unless first string is not found, $R_VALUE is not modified
        ;$DATA result is PROFILE = TRUE and VALUE = ERROR
    EndIf

    $COUNT = $COUNT + 1

WEnd

MsgBox(0, "OBJECT COUNT", $COUNT)
MsgBox(0, "DATA", $DATA)

Everything works as expected with the exception of $R_VALUE does not get modified by the method. I assume (dangerously) that is because "ref".

Anyone have an idea of how to handle this?

Edited by MrJustinMeyer

Share this post


Link to post
Share on other sites



I suggest to add a COM error handler to get better error information:

Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")

 ; ..... Your script goes here
 
Func _ErrFunc($oError)
    msgBox(0, "COM Error", "err.number is: " & @TAB & $oError.number & @CRLF & _
            "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
            "err.description is: " & @TAB & $oError.description & @CRLF & _
            "err.source is: " & @TAB & $oError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
            "err.retcode is: " & @TAB & $oError.retcode)
EndFunc   ;==>_ErrFunc

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

BTW:

Maybe there is a typo (" PROFLE") in your code. Shouldn't the line

$DATA = $DATA & @CRLF & "*|PROFLE = " & $PROP_REPORT & " = VALUE = " & $R_VALUE

be

$DATA = $DATA & @CRLF & "*|PROFILE = " & $PROP_REPORT & " = VALUE = " & $R_VALUE

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Typo corrected, though should not have caused a problem.

I added the suggested error handling. I am not getting any error.

I also added a message box to get more information about the GetAllObjectsWithType, see attachment.

Modified Code

#AutoIt3Wrapper_UseX64=n
#include <Array.au3>

Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")

 $TSMm = ObjCreate("Tekla.Structures.Model.Model")
If @error Then
    MsgBox(1,"ERROR", "Tekla.Structures.Model.Model" & @CRLF & "Could not connect to Tekla, verify and rerun")
    Exit
EndIf

If Not $TSMm.GetConnectionStatus() = "True" Then
    MsgBox(0, "Error", "Tekla Connection Failure")
    Exit
EndIf

$ALL_OBJECTS = $TSMm.GetModelObjectSelector().GetAllObjectsWithType(1) ;TYPE 1 = BEAM MODELOBJECTCLASS
If @error Then
    MsgBox(1,"ERROR", "Tekla.Structures.Model.Model" & @CRLF & "ObjectSelector")
    Exit
EndIf

MsgBox(0, "", "Object Interface Name: " & ObjName($ALL_OBJECTS, 1) & @CRLF & _
        "Object Description:    " & ObjName($ALL_OBJECTS, 2) & @CRLF & _
        "Object ProgID:      " & ObjName($ALL_OBJECTS, 3) & @CRLF & _
        "File Associated with Object:         " & ObjName($ALL_OBJECTS, 4) & @CRLF & _
        "Object Module Name:     " & ObjName($ALL_OBJECTS, 5) & @CRLF & _
        "CLSID:     " & ObjName($ALL_OBJECTS, 6) & @CRLF & _
        "IID of Objects Interface:        " & ObjName($ALL_OBJECTS, 7))

$COUNT = 0
$DATA = "DATA:"

While $ALL_OBJECTS.MoveNext()

    Dim $R_VALUE = "ERROR" ;Defined to show change from method below

    If $ALL_OBJECTS.Current.Name() = "BEAM" Then ;Only Objects with BEAM name - Works

        $PROP_REPORT = $ALL_OBJECTS.Current.GetReportProperty("PROFILE", $R_VALUE)
        $DATA = $DATA & @CRLF & "*|PROFILE = " & $PROP_REPORT & " = VALUE = " & $R_VALUE
        ;$PROP_REPORT returns true unless first string is not found, $R_VALUE is not modified
        ;$DATA result is PROFILE = TRUE and VALUE = ERROR
    EndIf

    $COUNT = $COUNT + 1

WEnd

MsgBox(0, "OBJECT COUNT", $COUNT)
MsgBox(0, "DATA", $DATA)

Func _ErrFunc($oError)
    msgBox(0, "COM Error", "err.number is: " & @TAB & $oError.number & @CRLF & _
            "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
            "err.description is: " & @TAB & $oError.description & @CRLF & _
            "err.source is: " & @TAB & $oError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
            "err.retcode is: " & @TAB & $oError.retcode)
EndFunc   ;==>_ErrFunc

post-82359-0-33266100-1381323130_thumb.p

Share this post


Link to post
Share on other sites

Can you post the description of the GetReportProperty method? I would like to know the description for the return value. If it sets $PROP_REPORT or $R_Value.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

$PROP_REPORT equals True, unless I change the firs value/property "PROFILE" to something that does not exist, then it is false. That appears to be working as expected.

$R_VALUE should return a string resembling "W16X40" or similar. However, the method does not modify the variable.

ModelObject..::..GetReportProperty Method (String, String)

Retrieves a string property of the report for the model object.

Parameters
Name
Type: System..::..String
The name of the property to be retrieved.
 
Value
Type: System..::..String
The return value.
 
Return Value True if the value was returned successfully.
Edited by MrJustinMeyer

Share this post


Link to post
Share on other sites

Could you please replace

Dim $R_VALUE = "ERROR"

with

Global $R_VALUE = "ERROR"

If this doesn't help then please try to run the script with the latest beta version of AutoIt.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Replaced Code

#AutoIt3Wrapper_UseX64=n
#include <Array.au3>

Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")

 $TSMm = ObjCreate("Tekla.Structures.Model.Model")
If @error Then
    MsgBox(1,"ERROR", "Tekla.Structures.Model.Model" & @CRLF & "Could not connect to Tekla, verify and rerun")
    Exit
EndIf

If Not $TSMm.GetConnectionStatus() = "True" Then
    MsgBox(0, "Error", "Tekla Connection Failure")
    Exit
EndIf

$ALL_OBJECTS = $TSMm.GetModelObjectSelector().GetAllObjectsWithType(1) ;TYPE 1 = BEAM MODELOBJECTCLASS
If @error Then
    MsgBox(1,"ERROR", "Tekla.Structures.Model.Model" & @CRLF & "ObjectSelector")
    Exit
EndIf

MsgBox(0, "", "Object Interface Name: " & ObjName($ALL_OBJECTS, 1) & @CRLF & _
        "Object Description:    " & ObjName($ALL_OBJECTS, 2) & @CRLF & _
        "Object ProgID:      " & ObjName($ALL_OBJECTS, 3) & @CRLF & _
        "File Associated with Object:         " & ObjName($ALL_OBJECTS, 4) & @CRLF & _
        "Object Module Name:     " & ObjName($ALL_OBJECTS, 5) & @CRLF & _
        "CLSID:     " & ObjName($ALL_OBJECTS, 6) & @CRLF & _
        "IID of Objects Interface:        " & ObjName($ALL_OBJECTS, 7))

$COUNT = 0
$DATA = "DATA:"

While $ALL_OBJECTS.MoveNext()

    Global $R_VALUE = "ERROR" ;Defined to show change from method below

    If $ALL_OBJECTS.Current.Name() = "BEAM" Then ;Only Objects with BEAM name - Works

        $PROP_REPORT = $ALL_OBJECTS.Current.GetReportProperty("PROFILE", $R_VALUE)
        $DATA = $DATA & @CRLF & "*|PROFILE = " & $PROP_REPORT & " = VALUE = " & $R_VALUE
        ;$PROP_REPORT returns true unless first string is not found, $R_VALUE is not modified
        ;$DATA result is PROFILE = TRUE and VALUE = ERROR
    EndIf

    $COUNT = $COUNT + 1

WEnd

MsgBox(0, "OBJECT COUNT", $COUNT)
MsgBox(0, "DATA", $DATA)

Func _ErrFunc($oError)
    msgBox(0, "COM Error", "err.number is: " & @TAB & $oError.number & @CRLF & _
            "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
            "err.description is: " & @TAB & $oError.description & @CRLF & _
            "err.source is: " & @TAB & $oError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
            "err.retcode is: " & @TAB & $oError.retcode)
EndFunc   ;==>_ErrFunc

No change in results.

Downloaded latest beta, 3.3.9.21 and no change in results.

Share this post


Link to post
Share on other sites

Maybe we got bitten by this problem. It is described for events but might be true for the current case as well:

Limitations on COM Events in AutoIt

Some Objects (like the 'WebBrowser') pass arguments to their Event Functions 'by reference'. This is intended to allow the user change these arguments and passing it back to the Object. However, AutoIt uses it's own variable scheme, which is not compatible to COM variables. This means that all values from Objects need to be converted into AutoIt variables, thus loosing the reference to the original memory space. Maybe in the near future we can solve this limitation for you !

Looks like this is true for the latest beta too.

Maybe someone with more insight (trancexx?) can explain what happens here?


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

I had thought that the problem may be in the way variables differ in AutoIt as opposed to say C# for example.

The most obvious thing to me is that in C# for example, a variable is explicitly declared as a specific data type. Where as in AutoIt a variable can be any data type and is not declared.

I really appreciate your help water.

Hopefully someone can provide a solution, be it an appropriate one or a work around.

Share this post


Link to post
Share on other sites

Do you have a similar example written in VB?


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

This is the closest I could come up with and honestly it is pretty foreign to me. However the topic sounds relatively similar to what I am tying to achieve.

The description is "How to get objects in VB Plugin's", see attachment "VB.zip".

I opened all of the files within and it appears to me that the file "WindowsForms.vb" has something of substance in regards to my problem, but maybe not.

VB.zip

Share this post


Link to post
Share on other sites

But unfortunately no example for method GetReportProperty.

So we need to wait until someone with more insight jumps in.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

So after more digging on the forum I found this '?do=embed' frameborder='0' data-embedContent>> which per monoceres;

 

can quite easily overcome the no ByRef in Mehtod calls limitation

 

However for myself, I am not sure I would say "quite easily".

I am also wondering if AIO would be a viable (better) solution, any suggestions?

Share this post


Link to post
Share on other sites

#15 ·  Posted (edited)

Find script called TLBViewer.au3 in examples forum, load it with tekla.structures.model.tlb (from the pic you posted earlier) and post the result here. There is no obvious reason why your code wouldn't work. Even though Jon (AutoIt developer) did some unexplainable bad changes to COM code recently, he said they were reverted later, so really it should work, unless it's something wrong with the basic logic of your code.

edit: Oh and limitation water pointed to for whatever reason doesn't exist in beta AutoIt.

Edited by trancexx

♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

Find script called TLBViewer.au3 in examples forum, load it with tekla.structures.model.tlb (from the pic you posted earlier) and post the result here. There is no obvious reason why your code wouldn't work. Even though Jon (AutoIt developer) did some unexplainable bad changes to COM code recently, he said they were reverted later, so really it should work, unless it's something wrong with the basic logic of your code.

 

I had already downloaded the tlb viewer and saved the results... attached and embedded.

[__PRE_PROTECTED]PHByZSBjbGFzcz0iaXBzQ29kZSIgZGF0YS1wYmNrbGFuZz0idGV4dCIgZGF0YS1wYmNrdGFic2l6ZT0iNCI+Cnh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgKVGVrbGFfU3RydWN0dXJlc19Nb2RlbDsKVVVJRCB7QTc0OTVFQjAtNDQ5My0zNUUwLUJCRjktNDgzNUYxQjFEQzVFfTsKQzpcV2luZG93c1xNaWNyb3NvZnQuTkVUXGFzc2VtYmx5XEdBQ19NU0lMXFRla2xhLlN0cnVjdHVyZXMuTW9kZWxcdjQuMF8xNy4wLjAuMF9fMmYwNGRiZTQ5N2I3MTExNAp4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4CgoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgT2JqZWN0OwpDTFNJRCA9IHswRDY0OEMzNS05QkU2LTRGQjgtOERFMi1FNURCQTdEQURGRDl9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBNb2RlbE9iamVjdDsKQ0xTSUQgPSB7NDYyMjNEMDAtQkQ5RS00QjBCLTk0NjMtRUI4RjdGQ0EzMDQxfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gTW9kZWxPYmplY3RFbnVtOwp7CiAgTW9kZWxPYmplY3RFbnVtX1VOS05PV04gPSAwLAogIE1vZGVsT2JqZWN0RW51bV9CRUFNID0gMSwKICBNb2RlbE9iamVjdEVudW1fUE9MWUJFQU0gPSAyLAogIE1vZGVsT2JqZWN0RW51bV9DT05UT1VSUExBVEUgPSAzLAogIE1vZGVsT2JqZWN0RW51bV9CT09MRUFOUEFSVCA9IDQsCiAgTW9kZWxPYmplY3RFbnVtX0ZJVFRJTkcgPSA1LAogIE1vZGVsT2JqZWN0RW51bV9DVVRQTEFORSA9IDYsCiAgTW9kZWxPYmplY3RFbnVtX1NVUkZBQ0VfVFJFQVRNRU5UID0gNywKICBNb2RlbE9iamVjdEVudW1fV0VMRCA9IDgsCiAgTW9kZWxPYmplY3RFbnVtX0FTU0VNQkxZID0gOSwKICBNb2RlbE9iamVjdEVudW1fU0lOR0xFUkVCQVIgPSAxMCwKICBNb2RlbE9iamVjdEVudW1fUkVCQVJHUk9VUCA9IDExLAogIE1vZGVsT2JqZWN0RW51bV9SRUJBUk1FU0ggPSAxMiwKICBNb2RlbE9iamVjdEVudW1fUkVCQVJTVFJBTkQgPSAxMywKICBNb2RlbE9iamVjdEVudW1fQ09OVFJPTF9QTEFORSA9IDE0LAogIE1vZGVsT2JqZWN0RW51bV9CT0xUX0FSUkFZID0gMTUsCiAgTW9kZWxPYmplY3RFbnVtX0JPTFRfQ0lSQ0xFID0gMTYsCiAgTW9kZWxPYmplY3RFbnVtX0JPTFRfWFlMSVNUID0gMTcsCiAgTW9kZWxPYmplY3RFbnVtX0xPQURfUE9JTlQgPSAxOCwKICBNb2RlbE9iamVjdEVudW1fTE9BRF9MSU5FID0gMTksCiAgTW9kZWxPYmplY3RFbnVtX0xPQURfQVJFQSA9IDIwLAogIE1vZGVsT2JqZWN0RW51bV9MT0FEX1VOSUZPUk0gPSAyMSwKICBNb2RlbE9iamVjdEVudW1fR1JJRCA9IDIyLAogIE1vZGVsT2JqZWN0RW51bV9HUklEUExBTkUgPSAyMywKICBNb2RlbE9iamVjdEVudW1fQ09OTkVDVElPTiA9IDI0LAogIE1vZGVsT2JqZWN0RW51bV9DT01QT05FTlQgPSAyNSwKICBNb2RlbE9iamVjdEVudW1fU0VBTSA9IDI2LAogIE1vZGVsT2JqZWN0RW51bV9ERVRBSUwgPSAyNywKICBNb2RlbE9iamVjdEVudW1fUkVGRVJFTkNFX01PREVMID0gMjgsCiAgTW9kZWxPYmplY3RFbnVtX1JFQkFSX1NQTElDRSA9IDI5LAogIE1vZGVsT2JqZWN0RW51bV9MT0FEX0dST1VQID0gMzAsCiAgTW9kZWxPYmplY3RFbnVtX1RBU0sgPSAzMSwKICBNb2RlbE9iamVjdEVudW1fVEFTS19ERVBFTkRFTkNZID0gMzIsCiAgTW9kZWxPYmplY3RFbnVtX1RBU0tfV09SS1RZUEUgPSAzNCwKICBNb2RlbE9iamVjdEVudW1fUE9MWUdPTl9XRUxEID0gMzUsCiAgTW9kZWxPYmplY3RFbnVtX0xPR0lDQUxfV0VMRCA9IDM2LAogIE1vZGVsT2JqZWN0RW51bV9DSVJDTEVSRUJBUiA9IDM3LAogIE1vZGVsT2JqZWN0RW51bV9ISUVSQVJDSElDX0RFRklOSVRJT04gPSAzOCwKICBNb2RlbE9iamVjdEVudW1fSElFUkFSQ0hJQ19PQkpFQ1QgPSAzOSwKICBNb2RlbE9iamVjdEVudW1fQU5BTFlTSVNfR0VPTUVUUlkgPSA0MCwKICBNb2RlbE9iamVjdEVudW1fQU5BTFlTSVNfUEFSVCA9IDQxLAogIE1vZGVsT2JqZWN0RW51bV9SRUZFUkVOQ0VfTU9ERUxfT0JKRUNUID0gNDIsCiAgTW9kZWxPYmplY3RFbnVtX0NVU1RPTV9QQVJUID0gNDMsCiAgTW9kZWxPYmplY3RFbnVtX0NJUkNMRV9SRUJBUkdST1VQID0gNDQsCiAgTW9kZWxPYmplY3RFbnVtX0NVUlZFRF9SRUJBUkdST1VQID0gNDUsCiAgTW9kZWxPYmplY3RFbnVtX0VER0VfQ0hBTUZFUiA9IDQ2Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBBc3NlbWJseTsKQ0xTSUQgPSB7OTY1RjA1MkQtNDQ4Ri00QjZCLThCOUYtMzY2MEJBNTk1RkFCfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Bc3NlbWJseQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gQXNzZW1ibHlUeXBlRW51bTsKewogIEFzc2VtYmx5VHlwZUVudW1fU1RFRUxfQVNTRU1CTFkgPSAwLAogIEFzc2VtYmx5VHlwZUVudW1fUFJFQ0FTVF9BU1NFTUJMWSA9IDEsCiAgQXNzZW1ibHlUeXBlRW51bV9JTl9TSVRVX0FTU0VNQkxZID0gMiwKICBBc3NlbWJseVR5cGVFbnVtX1RJTUJFUl9BU1NFTUJMWSA9IDMsCiAgQXNzZW1ibHlUeXBlRW51bV9VTktOT1dOX0FTU0VNQkxZID0gNAp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RBc3NlbWJseV90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgQXNzZW1ibGFibGVJZDsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBNYWluUGFydDsKICAgaW50IFR5cGU7CiAgIGludCBuQXNzZW1ibHlPdGhlclBhcnRzOwogIFZUX0NBUlJBWSBhQXNzZW1ibHlPdGhlclBhcnRzSWRzOwogICBpbnQgbkFzc2VtYmx5U3ViQXNzZW1ibGllczsKICBWVF9DQVJSQVkgYUFzc2VtYmx5U3ViQXNzZW1ibHlJZHM7CiAgIGR3b3JkIE1haW5Bc3NlbWJseTsKICAgJmx0O3N0cnVjdCZndDsgZG90TnVtYmVyaW5nU2VyaWVzX3QgTnVtYmVyaW5nU2VyaWVzOwogIFZUX0NBUlJBWSBhTmFtZTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEJvbHRHcm91cDsKQ0xTSUQgPSB7RURGMDc2NEMtQ0Y0OC00MDk3LUIzNEYtQjM4MTM3QzZBODEwfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Cb2x0R3JvdXAKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIEJvbHRUeXBlRW51bTsKewogIEJvbHRUeXBlRW51bV9CT0xUX1RZUEVfU0lURSA9IDAsCiAgQm9sdFR5cGVFbnVtX0JPTFRfVFlQRV9XT1JLU0hPUCA9IDEKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIEJvbHRUaHJlYWRJbk1hdGVyaWFsRW51bTsKewogIEJvbHRUaHJlYWRJbk1hdGVyaWFsRW51bV9USFJFQURfSU5fTUFURVJJQUxfTk8gPSAwLAogIEJvbHRUaHJlYWRJbk1hdGVyaWFsRW51bV9USFJFQURfSU5fTUFURVJJQUxfWUVTID0gMQp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gQm9sdEhvbGVUeXBlRW51bTsKewogIEJvbHRIb2xlVHlwZUVudW1fSE9MRV9UWVBFX09WRVJTSVpFRCA9IDAsCiAgQm9sdEhvbGVUeXBlRW51bV9IT0xFX1RZUEVfU0xPVFRFRCA9IDEKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIEJvbHRSb3RhdGVTbG90c0VudW07CnsKICBCb2x0Um90YXRlU2xvdHNFbnVtX1JPVEFURV9TTE9UU19PREQgPSAwLAogIEJvbHRSb3RhdGVTbG90c0VudW1fUk9UQVRFX1NMT1RTX0VWRU4gPSAxLAogIEJvbHRSb3RhdGVTbG90c0VudW1fUk9UQVRFX1NMT1RTX1BBUkFMTEVMID0gMgp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgQm9sdEFycmF5OwpDTFNJRCA9IHswOEU2MEY4My0yREY4LTQxNjItODBGOC1ENDU1OTFDRTVDODd9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0JvbHRBcnJheQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Cb2x0R3JvdXAKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEJvbHRDaXJjbGU7CkNMU0lEID0gezAxODU1MUJDLTkwMDEtNEY0Ri1BNEFGLTVGNThGNTVGMDgxRX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQm9sdENpcmNsZQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Cb2x0R3JvdXAKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90Qm9sdEdyb3VwX3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBNb2RlbE9iamVjdDsKICAgZG91YmxlIEJvbHRTaXplOwogIFZUX0NBUlJBWSBhQm9sdFN0YW5kYXJkOwogICBpbnQgQm9sdFR5cGU7CiAgIGludCBUaHJlYWRJbk1hdGVyaWFsOwogICBkb3VibGUgTGVuZ3RoOwogICBkb3VibGUgQ3V0TGVuZ3RoOwogICBkb3VibGUgRXh0cmFMZW5ndGg7CiAgIGludCBTaGFwZTsKICAgZG91YmxlIFRvbGVyYW5jZTsKICAgaW50IEhvbGVUeXBlOwogICBkb3VibGUgU2xvdHRlZEhvbGVYOwogICBkb3VibGUgU2xvdHRlZEhvbGVZOwogICBpbnQgUm90YXRlU2xvdHM7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBvc2l0aW9uX3QgUG9zaXRpb247CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE9mZnNldF90IFN0YXJ0UG9pbnRPZmZzZXQ7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE9mZnNldF90IEVuZFBvaW50T2Zmc2V0OwogICBpbnQgV2FzaGVyMTsKICAgaW50IFdhc2hlcjI7CiAgIGludCBXYXNoZXIzOwogICBpbnQgTnV0MTsKICAgaW50IE51dDI7CiAgIGludCBCb2x0OwogICBpbnQgSG9sZTE7CiAgIGludCBIb2xlMjsKICAgaW50IEhvbGUzOwogICBpbnQgSG9sZTQ7CiAgIGludCBIb2xlNTsKICAgJmx0O2VudW0mZ3Q7IE9iamVjdCBQYXJ0VG9Cb2x0VG9JZDsKICAgJmx0O2VudW0mZ3Q7IE9iamVjdCBQYXJ0VG9CZUJvbHRlZElkOwogICBpbnQgbk90aGVyUGFydHNUb0JvbHQ7CiAgVlRfQ0FSUkFZIGFPdGhlclBhcnRzVG9Cb2x0OwogICAmbHQ7Jmd0OyAgRmlyc3RQb3NpdGlvbjsKICAgJmx0OyZndDsgIFNlY29uZFBvc2l0aW9uOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RCb2x0UG9seWdvbl90IEJvbHRQb3NpdGlvbnM7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdEJvbHRTaGFwZURhdGFfdDsKewogICBpbnQgbkJvbHREaXN0WDsKICBWVF9DQVJSQVkgYUJvbHREaXN0WDsKICAgaW50IG5Cb2x0RGlzdFk7CiAgVlRfQ0FSUkFZIGFCb2x0RGlzdFk7CiAgIGRvdWJsZSBOdW1iZXJPZkJvbHRzOwogICBkb3VibGUgRGlhbWV0ZXI7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdEJvbHRQb2x5Z29uX3Q7CnsKICAgaW50IG5Qb2ludHM7CiAgVlRfQ0FSUkFZIGFYOwogIFZUX0NBUlJBWSBhWTsKICBWVF9DQVJSQVkgYVo7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBCb2x0WFlMaXN0OwpDTFNJRCA9IHtEMEE5NEU3RS1ERjZDLTRBQzUtOTQ5MS0xOUE2NzgxNzQ3NjB9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0JvbHRYWUxpc3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQm9sdEdyb3VwCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBCb29sZWFuOwpDTFNJRCA9IHtEMUUzMDIxRi0xOEM2LTQyNzUtODM0Mi0zRkQzMTk2ODVERDJ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jvb2xlYW4KLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90Qm9vbGVhbl90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgRmF0aGVyOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgQm9vbGVhblBhcnQ7CkNMU0lEID0gezRGOUQ0QzI3LTVDOTItNEJGQS05RkVDLTFENTU1RkEwRUIxQ307IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQm9vbGVhblBhcnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQm9vbGVhbgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gQm9vbGVhblR5cGVFbnVtOwp7CiAgQm9vbGVhblR5cGVFbnVtX0JPT0xFQU5fQUREID0gMSwKICBCb29sZWFuVHlwZUVudW1fQk9PTEVBTl9DVVQgPSAyCn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdEJvb2xlYW5QYXJ0X3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90Qm9vbGVhbl90IEJvb2xlYW47CiAgIGludCBUeXBlOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RQYXJ0X3QgT3BlcmF0aXZlUGFydDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEN1dFBsYW5lOwpDTFNJRCA9IHtDNzlDMTA2My0xNjIyLTQzRUQtQUQyMi1CQzBEQUU4NkM0QkN9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0N1dFBsYW5lCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jvb2xlYW4KLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEVkZ2VDaGFtZmVyOwpDTFNJRCA9IHswMjBBNTdFNC0wNkRDLTQ4NUEtQTk2MS04OTMwMUY3RTg5RkV9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0VkZ2VDaGFtZmVyCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jvb2xlYW4KLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIENoYW1mZXJFbmRUeXBlRW51bTsKewogIENoYW1mZXJFbmRUeXBlRW51bV9GVUxMID0gMCwKICBDaGFtZmVyRW5kVHlwZUVudW1fU1RSQUlHSFQgPSAxLAogIENoYW1mZXJFbmRUeXBlRW51bV9CRVZFTExFRCA9IDIKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90RWRnZUNoYW1mZXJfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RCb29sZWFuX3QgQm9vbGVhbjsKICAgJmx0O3N0cnVjdCZndDsgZG90Q2hhbWZlcl90IENoYW1mZXI7CiAgICZsdDsmZ3Q7ICBGaXJzdEVuZDsKICAgJmx0OyZndDsgIFNlY29uZEVuZDsKICAgaW50IEZpcnN0Q2hhbWZlckVuZFR5cGU7CiAgIGRvdWJsZSBGaXJzdEJldmVsRGltZW5zaW9uOwogICBpbnQgU2Vjb25kQ2hhbWZlckVuZFR5cGU7CiAgIGRvdWJsZSBTZWNvbmRCZXZlbERpbWVuc2lvbjsKICBWVF9DQVJSQVkgYU5hbWU7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBGaXR0aW5nOwpDTFNJRCA9IHs0Mjg1MTlBNC1GQUNDLTQ5MjQtODJCOC1DMEIwRDk1NUZGNTN9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0ZpdHRpbmcKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQm9vbGVhbgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RGaXR0aW5nT3JDdXRQbGFuZV90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdEJvb2xlYW5fdCBCb29sZWFuOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RQbGFuZV90IFBsYW5lOwogICBpbnQgVHlwZTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIENsYXNoQ2hla2VyRXZlbnQ7CkNMU0lEID0gezJBREE0MTRGLTRBMTMtNEE2Qy05QTFCLTI0RUJCOTlBODBCRX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ2xhc2hDaGVrZXJFdmVudAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDbGFzaENoZWNrRG9uZURlbGVnYXRlOwpDTFNJRCA9IHtFNEM1MzQ4Qi02N0E5LTNCRTAtOTIwOC02QjRDMTRGQTBDMEV9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0NsYXNoQ2hlY2tEb25lRGVsZWdhdGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgQ2xhc2hEZXRlY3RlZERlbGVnYXRlOwpDTFNJRCA9IHtCNDk3NTRCQS1ERDFDLTMyODktOEYwQS1DMjhENzBFQzAwNzd9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0NsYXNoRGV0ZWN0ZWREZWxlZ2F0ZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBCYXNlQ29tcG9uZW50OwpDTFNJRCA9IHtCRjgyMjY5Ni05QjNCLTRGNEUtQkRDOS1ENEFDMTFBMjZBODl9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90QmFzZUNvbXBvbmVudF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgVlRfQ0FSUkFZIGFOYW1lOwogICBpbnQgTnVtYmVyOwogIFZUX0NBUlJBWSBhQXR0cmlidXRlRmlsZW5hbWU7CiAgVlRfQ0FSUkFZIGFDb25uZWN0aW9uQ29kZTsKICAgJmx0OyZndDsgIFVwVmVjdG9yOwogICBpbnQgQXV0b0RpcmVjdGlvblR5cGU7CiAgIGludCBQb3NpdGlvblR5cGU7CiAgIGludCBEZXRhaWxUeXBlOwogICBpbnQgQXV0b1Bvc2l0aW9uOwogICBpbnQgRXJyb3JTdGF0dXM7CiAgIGludCBDbGFzczsKICAgaW50IFByaW1hcnlPYmplY3RJZDsKICAgaW50IG5TZWNvbmRhcnlPYmplY3RJZHM7CiAgVlRfQ0FSUkFZIGFTZWNvbmRhcnlPYmplY3RJZHM7CiAgIGludCBuUG9zaXRpb25zOwogIFZUX0NBUlJBWSBhWDsKICBWVF9DQVJSQVkgYVk7CiAgVlRfQ0FSUkFZIGFaOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RQb3NpdGlvbl90IEN1c3RvbVBhcnRQb3NpdGlvbjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90Q29tcG9uZW50QXR0cmlidXRlX3Q7CnsKICBWVF9DQVJSQVkgYU5hbWU7CiAgIGludCBBdHRyaWJ1dGVUeXBlOwogICBpbnQgSVZhbHVlOwogICBkb3VibGUgRFZhbHVlOwogIFZUX0NBUlJBWSBhU3RyVmFsdWU7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIElBc3NlbWJsYWJsZTsKSUlEID0gezZFQkQ1NDIzLTZBRUEtMzk3Qi1BRjk0LUJCOTU3QzhGMzYzN307IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0QXNzZW1ibHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Fzc2VtYmx5KiogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgQ29tcG9uZW50OwpDTFNJRCA9IHtDNUE3OTM2MC0yRDVDLTQxNDQtQTUzMy0wMTRFQTdFOTI1MkZ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0NvbXBvbmVudAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IElBc3NlbWJsYWJsZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDb21wb25lbnRJbnB1dDsKQ0xTSUQgPSB7NzQ0NUVFOEQtODc1NS00OENGLUExQTAtOTY1NDUwOEQzRURDfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db21wb25lbnRJbnB1dAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdENvbXBvbmVudElucHV0T2JqZWN0X3Q7CnsKICAgaW50IElucHV0VHlwZTsKICAgaW50IG5Qb2ludHM7CiAgVlRfQ0FSUkFZIGFYOwogIFZUX0NBUlJBWSBhWTsKICBWVF9DQVJSQVkgYVo7CiAgIGludCBuT2JqZWN0czsKICBWVF9DQVJSQVkgYU9iamVjdHM7CiAgIGludCBDb21wb25lbnRJZDsKICAgaW50IElucHV0TnVtYmVyOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgQ29ubmVjdGlvbjsKQ0xTSUQgPSB7MDRERERFQjUtRTY4NC00NzJDLTlBOTktNTlFMUE1NjM4Q0ZDfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db25uZWN0aW9uCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEN1c3RvbVBhcnQ7CkNMU0lEID0ge0UzOUJEMzk4LTEwQTMtNDk4Qy1BQTQ3LTRGNkI4Rjc2NTM3NX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ3VzdG9tUGFydAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IElBc3NlbWJsYWJsZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBEZXRhaWw7CkNMU0lEID0gezRBQUFEM0ZBLTc1QTItNEJCNi05ODk5LUU3NUM4OTFEMUE4MX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfRGV0YWlsCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFNlYW07CkNMU0lEID0gezczNEM4ODE1LUE2ODItNEUzRi1BMDg0LTc5MzUzRTA3QkIwNX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfU2VhbQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDb250b3VyOwpDTFNJRCA9IHs1NDA3MzhBNy01NzRFLTQ1QUQtQkFCMC1CNkVDMEJBREE3MDh9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0NvbnRvdXIKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RDb250b3VyX3Q7CnsKICAgaW50IG5Db250b3VyUG9pbnRzOwogIFZUX0NBUlJBWSBhWDsKICBWVF9DQVJSQVkgYVk7CiAgVlRfQ0FSUkFZIGFaOwogIFZUX0NBUlJBWSBhQ2hhbWZlclR5cGU7CiAgVlRfQ0FSUkFZIGFDaGFtZmVyWDsKICBWVF9DQVJSQVkgYUNoYW1mZXJZOwogIFZUX0NBUlJBWSBhQ2hhbWZlckRaMTsKICBWVF9DQVJSQVkgYUNoYW1mZXJEWjI7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDb250b3VyUG9pbnQ7CkNMU0lEID0ge0MwMTk1NjUwLUIxNjgtNDE3NC1BODZCLUE3Q0QyOUNCMDBGNH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ29udG91clBvaW50Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90Q29udG91clBvaW50X3Q7CnsKICAgJmx0OyZndDsgIFBvaW50OwogICAmbHQ7c3RydWN0Jmd0OyBkb3RDaGFtZmVyX3QgQ2hhbWZlcjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFBsYW5lOwpDTFNJRCA9IHs4OEU2RENENy1DMDk0LTRGRjctQTdCRS03N0M5MkE2OEZDNjR9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BsYW5lCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90UGxhbmVfdDsKewogICAmbHQ7Jmd0OyAgT3JpZ2luOwogICAmbHQ7Jmd0OyAgQXhpc1g7CiAgICZsdDsmZ3Q7ICBBeGlzWTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFBvbHlnb247CkNMU0lEID0gezZBRjREODI5LTI4Q0ItNDM4RS1CNTlFLTg2MzNERDFBQ0E0QX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUG9seWdvbgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFBvbHlnb25fdDsKewogICBpbnQgblBvaW50czsKICBWVF9DQVJSQVkgYVg7CiAgVlRfQ0FSUkFZIGFZOwogIFZUX0NBUlJBWSBhWjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFRyYW5zZm9ybWF0aW9uUGxhbmU7CkNMU0lEID0ge0ZBRENFNURFLUI1NzktNDJENS04NTA1LTQxMTMzQjAwMDMyMH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfVHJhbnNmb3JtYXRpb25QbGFuZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFRyYW5zZm9ybWF0aW9uUGxhbmVfdDsKewogICAmbHQ7ZW51bSZndDsgT2JqZWN0IE1hdHJpeFRvTG9jYWw7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgTWF0cml4VG9HbG9iYWw7CiAgIGludCBRdWVyeVR5cGU7CiAgIGludCBSZXR1cm5WYWx1ZTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIENvbnRyb2xQbGFuZTsKQ0xTSUQgPSB7NTUxODU5QTctOUUyMS00OTcwLTkwMEUtMkM0QzYwMUZEQ0E2fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db250cm9sUGxhbmUKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90Q29udHJvbFBsYW5lX3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBNb2RlbE9iamVjdDsKICAgJmx0O3N0cnVjdCZndDsgZG90UGxhbmVfdCBQbGFuZTsKICAgaW50IElzTWFnbmV0aWM7CiAgVlRfQ0FSUkFZIGFOYW1lOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgR3JpZDsKQ0xTSUQgPSB7NDUwQzM5QTUtQ0E3Qi00MjM3LUFFODctQjkyNEIzMDYxNDY5fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9HcmlkCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdEdyaWRfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RNb2RlbE9iamVjdF90IE1vZGVsT2JqZWN0OwogIFZUX0NBUlJBWSBhQ29vcmRpbmF0ZVg7CiAgVlRfQ0FSUkFZIGFDb29yZGluYXRlWTsKICBWVF9DQVJSQVkgYUNvb3JkaW5hdGVaOwogIFZUX0NBUlJBWSBhTGFiZWxYOwogIFZUX0NBUlJBWSBhTGFiZWxZOwogIFZUX0NBUlJBWSBhTGFiZWxaOwogICBkb3VibGUgRXh0ZW5zaW9uTGVmdFg7CiAgIGRvdWJsZSBFeHRlbnNpb25MZWZ0WTsKICAgZG91YmxlIEV4dGVuc2lvbkxlZnRaOwogICBkb3VibGUgRXh0ZW5zaW9uUmlnaHRYOwogICBkb3VibGUgRXh0ZW5zaW9uUmlnaHRZOwogICBkb3VibGUgRXh0ZW5zaW9uUmlnaHRaOwogICBpbnQgSXNNYWduZXRpYzsKICAgZG91YmxlIEV4dGVuc2lvbkZvck1hZ25ldGljQXJlYTsKICAgaW50IENvbG9yOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgR3JpZFBsYW5lOwpDTFNJRCA9IHsxRDIwMDUxNC04QUQxLTQ4NjUtQjdEQy04NDJDRjYxRTYyRjh9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0dyaWRQbGFuZQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RHcmlkUGxhbmVfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RNb2RlbE9iamVjdF90IE1vZGVsT2JqZWN0OwogICAmbHQ7c3RydWN0Jmd0OyBkb3RQbGFuZV90IFBsYW5lOwogICAmbHQ7ZW51bSZndDsgT2JqZWN0IEZhdGhlcklkOwogIFZUX0NBUlJBWSBhTGFiZWw7CiAgIGludCBDb2xvcjsKICAgaW50IElzTWFnbmV0aWM7CiAgIGRvdWJsZSBFeHRlbnNpb25Gb3JNYWduZXRpY0FyZWE7CiAgIGRvdWJsZSBFeHRlbnNpb25MZWZ0OwogICBkb3VibGUgRXh0ZW5zaW9uUmlnaHQ7CiAgIGRvdWJsZSBFeHRlbnNpb25CZWxvdzsKICAgZG91YmxlIEV4dGVuc2lvbkFib3ZlOwogICBpbnQgRHJhd2luZ1Zpc2liaWxpdHk7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBIaWVyYXJjaGljRGVmaW5pdGlvblR5cGVFbnVtOwp7CiAgSGllcmFyY2hpY0RlZmluaXRpb25UeXBlRW51bV9ET1RfSElFUkFSQ0hJQ19DVVNUT01fVFlQRSA9IDAsCiAgSGllcmFyY2hpY0RlZmluaXRpb25UeXBlRW51bV9ET1RfSElFUkFSQ0hJQ19MT0dJQ0FMX0JVSUxESU5HX0FSRUEgPSAxLAogIEhpZXJhcmNoaWNEZWZpbml0aW9uVHlwZUVudW1fRE9UX0hJRVJBUkNISUNfT0JKRUNUX1RZUEUgPSAyLAogIEhpZXJhcmNoaWNEZWZpbml0aW9uVHlwZUVudW1fRE9UX0hJRVJBUkNISUNfVEFTS19XT1JLX1RZUEUgPSAzLAogIEhpZXJhcmNoaWNEZWZpbml0aW9uVHlwZUVudW1fRE9UX0hJRVJBUkNISUNfVEFTS19TQ0VOQVJJTyA9IDQKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEhpZXJhcmNoaWNEZWZpbml0aW9uOwpDTFNJRCA9IHtDRjI0N0FEQi1EQkM0LTRDNjItQTMxRi1BRTRBNUFDRjcyMDN9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0hpZXJhcmNoaWNEZWZpbml0aW9uCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdEhpZXJhcmNoaWNEZWZpbml0aW9uX3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBNb2RlbE9iamVjdDsKICAgaW50IE9wZXJhdGlvblR5cGU7CiAgVlRfQ0FSUkFZIGFOYW1lOwogIFZUX0NBUlJBWSBhQ3VzdG9tVHlwZTsKICBWVF9DQVJSQVkgT2JqZWN0R3VpZDsKICAgaW50IEhpZXJhcmNoeVR5cGU7CiAgIGludCBEcmF3YWJsZTsKICAgaW50IE9iamVjdFBhcmVudDsKICAgaW50IG5TdWJIaWVyYXJjaHlJZHM7CiAgVlRfQ0FSUkFZIGFTdWJIaWVyYXJjaHlJZHM7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBIaWVyYXJjaGljT2JqZWN0OwpDTFNJRCA9IHtEOTBFRDFFNC1BQUYwLTQxNDEtOUQzOS1BNEY3MDE0RjM0Rjh9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0hpZXJhcmNoaWNPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90SGllcmFyY2hpY09iamVjdF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgIGludCBPcGVyYXRpb25UeXBlOwogIFZUX0NBUlJBWSBhTmFtZTsKICAgaW50IFR5cGU7CiAgIGludCBEZWZpbml0aW9uOwogICBpbnQgUGFyZW50OwogICBpbnQgblN1YkhpZXJhcmNoeUlkczsKICBWVF9DQVJSQVkgYVN1YkhpZXJhcmNoeUlkczsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90SGllcmFyY2hpY0xpc3RfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RNb2RlbE9iamVjdF90IE1vZGVsRmF0aGVyT2JqZWN0OwogICBpbnQgT3BlcmF0aW9uVHlwZTsKICAgaW50IE9iamVjdHNMZWZ0VG9HZXQ7CiAgIGludCBuT2JqZWN0czsKICBWVF9DQVJSQVkgYU9iamVjdHM7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBkb3RPYmplY3RPcGVyYXRpb25zRW51bTsKewogIGRvdE9iamVjdE9wZXJhdGlvbnNFbnVtX0RPVF9DUkVBVEVfT0JKRUNUID0gMCwKICBkb3RPYmplY3RPcGVyYXRpb25zRW51bV9ET1RfTU9ESUZZX09CSkVDVCA9IDEsCiAgZG90T2JqZWN0T3BlcmF0aW9uc0VudW1fRE9UX1NFTEVDVF9PQkpFQ1QgPSAyLAogIGRvdE9iamVjdE9wZXJhdGlvbnNFbnVtX0RPVF9ERUxFVEVfT0JKRUNUID0gMwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgTW9kZWxIaXN0b3J5OwpDTFNJRCA9IHswMTYwQzgzMS0zMkY4LTQ0RDgtODNCMy03RjIyQjY5QjY5MzB9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsSGlzdG9yeQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBNb2RpZmljYXRpb25TdGFtcDsKQ0xTSUQgPSB7NDE5REMzQTUtNjYwNS00QjA3LTlFRDAtMjExOTgxREZFM0JCfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RpZmljYXRpb25TdGFtcAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdE1vZGlmaWNhdGlvblN0YW1wX3Q7CnsKICAgaW50IEN1cnJlbnRNb2RTdGFtcDsKICAgaW50IEN1cnJlbnRTYXZlU3RhbXA7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBMb2FkOwpDTFNJRCA9IHsyMDMyMDY1My0wQjlGLTQ4OTUtQTgyMy03RDc1OTNERTQzRjZ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0xvYWQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIExvYWRTcGFubmluZ0VudW07CnsKICBMb2FkU3Bhbm5pbmdFbnVtX0xPQURfU1BBTk5JTkdfU0lOR0xFID0gMSwKICBMb2FkU3Bhbm5pbmdFbnVtX0xPQURfU1BBTk5JTkdfRE9VQkxFID0gMgp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gTG9hZEF0dGFjaG1lbnRFbnVtOwp7CiAgTG9hZEF0dGFjaG1lbnRFbnVtX0xPQURfQVRUQUNITUVOVF9BVFRBQ0hfVE9fTUVNQkVSID0gNDAwMSwKICBMb2FkQXR0YWNobWVudEVudW1fTE9BRF9BVFRBQ0hNRU5UX0RPTlRfQVRUQUNIID0gNDAwMwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gTG9hZFBhcnROYW1lc0VudW07CnsKICBMb2FkUGFydE5hbWVzRW51bV9MT0FEX1BBUlRfTkFNRVNfRVhDTFVERSA9IDAsCiAgTG9hZFBhcnROYW1lc0VudW1fTE9BRF9QQVJUX05BTUVTX0lOQ0xVREUgPSAxCn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdExvYWRDb21tb25BdHRyaWJ1dGVzX3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBNb2RlbE9iamVjdDsKICAgJmx0O2VudW0mZ3Q7IE9iamVjdCBGYXRoZXJJZDsKICAgaW50IFNwYW5uaW5nOwogICAmbHQ7Jmd0OyAgUHJpbWFyeUF4aXNEaXJlY3Rpb247CiAgIGludCBBdXRvbWF0aWNQcmltYXJ5QXhpc1dlaWdodDsKICAgZG91YmxlIFdlaWdodDsKICAgZG91YmxlIExvYWREaXNwZXJzaW9uQW5nbGU7CiAgIGludCBDcmVhdGVGaXhlZFN1cHBvcnRDb25kaXRpb25zQXV0b21hdGljYWxseTsKICAgaW50IExvYWRBdHRhY2htZW50OwogICBpbnQgUGFydE5hbWVzOwogIFZUX0NBUlJBWSBhUGFydEZpbHRlcjsKICAgZG91YmxlIEJvdW5kaW5nQm94RHg7CiAgIGRvdWJsZSBCb3VuZGluZ0JveER5OwogICBkb3VibGUgQm91bmRpbmdCb3hEejsKICAgJmx0O2VudW0mZ3Q7IE9iamVjdCBMb2FkR3JvdXBJZDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90TG9hZENsYXNzQXR0cmlidXRlc190Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBvbHlnb25fdCBQb3NpdGlvbjsKICAgJmx0OyZndDsgIFAxOwogICAmbHQ7Jmd0OyAgUDI7CiAgICZsdDsmZ3Q7ICBQMzsKICAgJmx0OyZndDsgIFA0OwogICAmbHQ7Jmd0OyAgTW9tZW50OwogICBkb3VibGUgVG9yc2lvbjE7CiAgIGRvdWJsZSBUb3JzaW9uMjsKICAgZG91YmxlIERpc3RhbmNlQTsKICAgZG91YmxlIERpc3RhbmNlQjsKICAgaW50IExvYWRGb3JtOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgTG9hZEFyZWE7CkNMU0lEID0gezgyNjAzOTk3LUQ2MDgtNEEwNS05RjI4LTgzMTQzQUFDNUQ4NX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTG9hZEFyZWEKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTG9hZAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gQXJlYUxvYWRGb3JtRW51bTsKewogIEFyZWFMb2FkRm9ybUVudW1fTE9BRF9GT1JNX0FSRUFfUEFSQUxMRUxPR1JBTSA9IDEwMDIsCiAgQXJlYUxvYWRGb3JtRW51bV9MT0FEX0ZPUk1fQVJFQV9UUklBTkdMRSA9IDEwMDMKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIExvYWRHcm91cDsKQ0xTSUQgPSB7ODNDQzRBMUYtMDlEOS00OTZELUJCREMtNUYxRjBDQURGOUVCfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Mb2FkR3JvdXAKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIExvYWRHcm91cFR5cGU7CnsKICBMb2FkR3JvdXBUeXBlX0VVUk9DT0RFX0RFRkFVTFRfR1JPVVAgPSAxMDAwLAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfU0VMRl9XRUlHSFQgPSAxMDAxLAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfUEVSTUFORU5UX0xPQUQgPSAxMDAyLAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfUFJFX1NUUkVTU19MT0FEID0gMTAwMywKICBMb2FkR3JvdXBUeXBlX0VVUk9DT0RFX0xJVkVfTE9BRF9IT1VTSU5HID0gMTAwNCwKICBMb2FkR3JvdXBUeXBlX0VVUk9DT0RFX0xJVkVfTE9BRF9QVUJMSUNfQlVJTERJTkdTID0gMTAwNSwKICBMb2FkR3JvdXBUeXBlX0VVUk9DT0RFX0xJVkVfTE9BRF9USEVBVFJFU19SRVNUQVVSQU5UUyA9IDEwMDYsCiAgTG9hZEdyb3VwVHlwZV9FVVJPQ09ERV9MSVZFX0xPQURfV0FSRUhPVVNFUyA9IDEwMDcsCiAgTG9hZEdyb3VwVHlwZV9FVVJPQ09ERV9MSVZFX0xPQURfU1RPUkFHRV9CVUlMRElOR1MgPSAxMDA4LAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfVFJBRkZJQ19MT0FEX0xJR0hUX1ZFSElDTEVTID0gMTAwOSwKICBMb2FkR3JvdXBUeXBlX0VVUk9DT0RFX1RSQUZGSUNfTE9BRF9IRUFWWV9WRUhJQ0xFUyA9IDEwMTAsCiAgTG9hZEdyb3VwVHlwZV9FVVJPQ09ERV9UUkFGRklDX0xPQURfUk9PRlMgPSAxMDExLAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfU05PV19MT0FEID0gMTAxMiwKICBMb2FkR3JvdXBUeXBlX0VVUk9DT0RFX1dJTkRfTE9BRCA9IDEwMTMsCiAgTG9hZEdyb3VwVHlwZV9FVVJPQ09ERV9GT1JDRVNfRFVFX1RPX1RFTVBFUkFUVVJFX0VGRkVDVFMgPSAxMDE0LAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfSU1QRVJGRUNUSU9OX0xPQURfRFVFX1RPX0RFQURfTE9BRFMgPSAxMDE1LAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfSU1QRVJGRUNUSU9OX0xPQURfRFVFX1RPX0xJVkVfTE9BRFMgPSAxMDE2LAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfSU1QRVJGRUNUSU9OX0xPQURfRFVFX1RPX1NOT1dfTE9BRFMgPSAxMDE3LAogIExvYWRHcm91cFR5cGVfRVVST0NPREVfQUNDSURFTlRBTF9MT0FEID0gMTAxOCwKICBMb2FkR3JvdXBUeXBlX0VVUk9DT0RFX0VBUlRIUVVBS0VfTE9BRCA9IDEwMTksCiAgTG9hZEdyb3VwVHlwZV9CUklUSVNIX0NPREVfREVBRF9MT0FEX0FMT05FID0gMjAwMSwKICBMb2FkR3JvdXBUeXBlX0JSSVRJU0hfQ09ERV9ERUFETE9BRCA9IDIwMDIsCiAgTG9hZEdyb3VwVHlwZV9CUklUSVNIX0NPREVfSU1QT1NFRF9MT0FEID0gMjAwMywKICBMb2FkR3JvdXBUeXBlX0JSSVRJU0hfQ09ERV9XSU5EX0xPQUQgPSAyMDA0LAogIExvYWRHcm91cFR5cGVfQlJJVElTSF9DT0RFX1RFTVBFUkFUVVJFX0xPQUQgPSAyMDA1LAogIExvYWRHcm91cFR5cGVfQlJJVElTSF9DT0RFX1ZFUlRJQ0FMX0NSQU5FX0xPQUQgPSAyMDA2LAogIExvYWRHcm91cFR5cGVfQlJJVElTSF9DT0RFX0hPUklaT05UQUxfQ1JBTkVfTE9BRCA9IDIwMDcsCiAgTG9hZEdyb3VwVHlwZV9BSVNDX0RFQURfTE9BRF9BTE9ORSA9IDMwMDEsCiAgTG9hZEdyb3VwVHlwZV9BSVNDX0RFQURfTE9BRCA9IDMwMDIsCiAgTG9hZEdyb3VwVHlwZV9BSVNDX0xJVkVfTE9BRCA9IDMwMDMsCiAgTG9hZEdyb3VwVHlwZV9BSVNDX1JPT0ZfTElWRV9MT0FEID0gMzAwNCwKICBMb2FkR3JvdXBUeXBlX0FJU0NfV0lORF9MT0FEID0gMzAwNSwKICBMb2FkR3JvdXBUeXBlX0FJU0NfU05PV19MT0FEID0gMzAwNiwKICBMb2FkR3JvdXBUeXBlX0FJU0NfUkFJTldBVEVSX0xPQUQgPSAzMDA3LAogIExvYWRHcm91cFR5cGVfQUlTQ19FQVJUSFFVQUtFX0xPQUQgPSAzMDA4LAogIExvYWRHcm91cFR5cGVfQ002Nl9QRVJNQU5FTlRfTE9BRF9GUiA9IDYwMDEsCiAgTG9hZEdyb3VwVHlwZV9DTTY2X0VYUExPSVRBVElPTl9MT0FEX0ZSID0gNjAwMiwKICBMb2FkR3JvdXBUeXBlX0NNNjZfVEVNUEVSQVRVUkVfTE9BRF9GUiA9IDYwMDMsCiAgTG9hZEdyb3VwVHlwZV9DTTY2X1dJTkRfTE9BRF9GUiA9IDYwMDQsCiAgTG9hZEdyb3VwVHlwZV9DTTY2X1NOT1dfTE9BRF9GUiA9IDYwMDUsCiAgTG9hZEdyb3VwVHlwZV9DTTY2X1NFSVNNSUNfTE9BRF9IT1JJWk9OVEFMX0ZSID0gNjAwNiwKICBMb2FkR3JvdXBUeXBlX0NNNjZfU0VJU01JQ19MT0FEX1ZFUlRJQ0FMX0ZSID0gNjAwNywKICBMb2FkR3JvdXBUeXBlX0JBRUw5MV9QRVJNQU5FTlRfTE9BRF9GUiA9IDcwMDEsCiAgTG9hZEdyb3VwVHlwZV9CQUVMOTFfRVhQTE9JVEFUSU9OX0xPQURfRlIgPSA3MDAyLAogIExvYWRHcm91cFR5cGVfQkFFTDkxX1RFTVBFUkFUVVJFX0xPQURfRlIgPSA3MDAzLAogIExvYWRHcm91cFR5cGVfQkFFTDkxX1dJTkRfTE9BRF9GUiA9IDcwMDQsCiAgTG9hZEdyb3VwVHlwZV9CQUVMOTFfU05PV19MT0FEX0ZSID0gNzAwNSwKICBMb2FkR3JvdXBUeXBlX0JBRUw5MV9TRUlTTUlDX0xPQURfRlIgPSA3MDA2LAogIExvYWRHcm91cFR5cGVfQkFFTDkxX0FDQ0lERU5UQUxfTE9BRF9GUiA9IDcwMDcsCiAgTG9hZEdyb3VwVHlwZV9VQkNfREVBRF9MT0FEID0gODAwMSwKICBMb2FkR3JvdXBUeXBlX1VCQ19MSVZFX0xPQUQgPSA4MDAyLAogIExvYWRHcm91cFR5cGVfVUJDX1JPT0ZfTElWRV9MT0FEID0gODAwMywKICBMb2FkR3JvdXBUeXBlX1VCQ19XSU5EX0xPQUQgPSA4MDA0LAogIExvYWRHcm91cFR5cGVfVUJDX1NOT1dfTE9BRCA9IDgwMDUsCiAgTG9hZEdyb3VwVHlwZV9VQkNfVEVNUEVSQVRVUkVfTE9BRCA9IDgwMDYsCiAgTG9hZEdyb3VwVHlwZV9VQkNfRkxVSURTX0xPQUQgPSA4MDA3LAogIExvYWRHcm91cFR5cGVfVUJDX1NPSUxfTE9BRCA9IDgwMDgsCiAgTG9hZEdyb3VwVHlwZV9VQkNfUE9ORElOR19MT0FEID0gODAwOSwKICBMb2FkR3JvdXBUeXBlX1VCQ19TRUlTTUlDX0xPQUQgPSA4MDEwLAogIExvYWRHcm91cFR5cGVfSUJDX0RFQURfTE9BRCA9IDkwMDEsCiAgTG9hZEdyb3VwVHlwZV9JQkNfTElWRV9MT0FEID0gOTAwMiwKICBMb2FkR3JvdXBUeXBlX0lCQ19ST09GX0xJVkVfTE9BRCA9IDkwMDMsCiAgTG9hZEdyb3VwVHlwZV9JQkNfV0lORF9MT0FEID0gOTAwNCwKICBMb2FkR3JvdXBUeXBlX0lCQ19TTk9XX0xPQUQgPSA5MDA1LAogIExvYWRHcm91cFR5cGVfSUJDX1RFTVBFUkFUVVJFX0xPQUQgPSA5MDA2LAogIExvYWRHcm91cFR5cGVfSUJDX0ZMVUlEU19MT0FEID0gOTAwNywKICBMb2FkR3JvdXBUeXBlX0lCQ19TT0lMX0xPQUQgPSA5MDA4LAogIExvYWRHcm91cFR5cGVfSUJDX1JBSU5fTE9BRCA9IDkwMDksCiAgTG9hZEdyb3VwVHlwZV9JQkNfUE9ORElOR19MT0FEID0gOTAxMCwKICBMb2FkR3JvdXBUeXBlX0lCQ19TRUlTTUlDX0xPQUQgPSA5MDExLAogIExvYWRHcm91cFR5cGVfQUNJX0RFQURfTE9BRCA9IDkxMDEsCiAgTG9hZEdyb3VwVHlwZV9BQ0lfTElWRV9MT0FEID0gOTEwMiwKICBMb2FkR3JvdXBUeXBlX0FDSV9ST09GX0xJVkVfTE9BRCA9IDkxMDMsCiAgTG9hZEdyb3VwVHlwZV9BQ0lfV0lORF9MT0FEID0gOTEwNCwKICBMb2FkR3JvdXBUeXBlX0FDSV9TRUlTTUlDX0xPQUQgPSA5MTA1LAogIExvYWRHcm91cFR5cGVfQUNJX1NOT1dfTE9BRCA9IDkxMDYsCiAgTG9hZEdyb3VwVHlwZV9BQ0lfRkxVSURTX0xPQUQgPSA5MTA3LAogIExvYWRHcm91cFR5cGVfQUNJX1NPSUxfTE9BRCA9IDkxMDgsCiAgTG9hZEdyb3VwVHlwZV9BQ0lfUkFJTl9MT0FEID0gOTEwOSwKICBMb2FkR3JvdXBUeXBlX0FDSV9URU1QRVJBVFVSRV9MT0FEID0gOTExMAp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gQ29sb3JzOwp7CiAgQ29sb3JzX0JMQUNLID0gMCwKICBDb2xvcnNfV0hJVEUgPSAxLAogIENvbG9yc19SRUQgPSAyLAogIENvbG9yc19HUkVFTiA9IDMsCiAgQ29sb3JzX0JMVUUgPSA0LAogIENvbG9yc19DWUFOID0gNSwKICBDb2xvcnNfWUVMTE9XID0gNiwKICBDb2xvcnNfTUFHRU5UQSA9IDcKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIExvYWRHcm91cERpcmVjdGlvbjsKewogIExvYWRHcm91cERpcmVjdGlvbl9ESVJfWCA9IDEsCiAgTG9hZEdyb3VwRGlyZWN0aW9uX0RJUl9ZID0gMiwKICBMb2FkR3JvdXBEaXJlY3Rpb25fRElSX1ogPSAzLAogIExvYWRHcm91cERpcmVjdGlvbl9ESVJfTkVHX1ggPSA0LAogIExvYWRHcm91cERpcmVjdGlvbl9ESVJfTkVHX1kgPSA1LAogIExvYWRHcm91cERpcmVjdGlvbl9ESVJfTkVHX1ogPSA2Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdExvYWRHcm91cF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgVlRfQ0FSUkFZIEdyb3VwTmFtZTsKICAgaW50IEdyb3VwVHlwZTsKICAgaW50IERpcmVjdGlvbjsKICAgaW50IENvbXBhdGlibGU7CiAgIGludCBJbmNvbXBhdGlibGU7CiAgIGludCBDb2xvcjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIExvYWRMaW5lOwpDTFNJRCA9IHtCRjRGNkQ0Ri05RjEyLTQ2QkEtQTRGRi1EODlGQjJDOUZGQjB9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0xvYWRMaW5lCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0xvYWQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIExpbmVMb2FkRm9ybUVudW07CnsKICBMaW5lTG9hZEZvcm1FbnVtX0xPQURfRk9STV9MSU5FXzEgPSAxMDAxLAogIExpbmVMb2FkRm9ybUVudW1fTE9BRF9GT1JNX0xJTkVfMiA9IDEwMDIsCiAgTGluZUxvYWRGb3JtRW51bV9MT0FEX0ZPUk1fTElORV8zID0gMTAwMywKICBMaW5lTG9hZEZvcm1FbnVtX0xPQURfRk9STV9MSU5FXzQgPSAxMDA0Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBMb2FkUG9pbnQ7CkNMU0lEID0ge0I3NDgzQjI4LTEyM0MtNDU1Ny05NTlGLTczMDc1M0NBMTIyOH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTG9hZFBvaW50Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0xvYWQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIExvYWRVbmlmb3JtOwpDTFNJRCA9IHtDOEZEMDc0Qy03ODk2LTQ3NTgtOEZGNi1FQTcyODIxMzU5NER9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0xvYWRVbmlmb3JtCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0xvYWQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIENoYW1mZXI7CkNMU0lEID0gezExODdDMzUwLTBERTctNEQ4RS1BQTkyLTE2NTkyRjFDODJERn07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ2hhbWZlcgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBDaGFtZmVyVHlwZUVudW07CnsKICBDaGFtZmVyVHlwZUVudW1fQ0hBTUZFUl9OT05FID0gMCwKICBDaGFtZmVyVHlwZUVudW1fQ0hBTUZFUl9MSU5FID0gMSwKICBDaGFtZmVyVHlwZUVudW1fQ0hBTUZFUl9ST1VORElORyA9IDIsCiAgQ2hhbWZlclR5cGVFbnVtX0NIQU1GRVJfQVJDID0gMywKICBDaGFtZmVyVHlwZUVudW1fQ0hBTUZFUl9BUkNfUE9JTlQgPSA0LAogIENoYW1mZXJUeXBlRW51bV9DSEFNRkVSX1NRVUFSRSA9IDUsCiAgQ2hhbWZlclR5cGVFbnVtX0NIQU1GRVJfU1FVQVJFX1BBUkFMTEVMID0gNiwKICBDaGFtZmVyVHlwZUVudW1fQ0hBTUZFUl9MSU5FX0FORF9BUkMgPSA3Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdENoYW1mZXJfdDsKewogICBkb3VibGUgWDsKICAgZG91YmxlIFk7CiAgIGludCBUeXBlOwogICBkb3VibGUgRFoxOwogICBkb3VibGUgRFoyOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUGhhc2VDb2xsZWN0aW9uOwpDTFNJRCA9IHs1MTlDMEVFNi0zNEMwLTMwMDgtQjAyOC0yQjc3NkMwQ0ZBRkR9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BoYXNlQ29sbGVjdGlvbgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFBoYXNlTnVtYmVyc190Owp7CiAgIGludCBuUGhhc2VOdW1iZXJzOwogIFZUX0NBUlJBWSBhUGhhc2VOdW1iZXI7CiAgIGludCBSZXN1bHQ7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBJbnB1dEl0ZW07CkNMU0lEID0gezQ0MzM2RjNCLTEwNkQtNDI1RS1BQUQ5LTVEMDkxNkQ3QjEwMH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfSW5wdXRJdGVtCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIElucHV0VHlwZUVudW07CnsKICBJbnB1dFR5cGVFbnVtX0lOUFVUXzFfUE9JTlQgPSAwLAogIElucHV0VHlwZUVudW1fSU5QVVRfMl9QT0lOVFMgPSAxLAogIElucHV0VHlwZUVudW1fSU5QVVRfUE9MWUdPTiA9IDIsCiAgSW5wdXRUeXBlRW51bV9JTlBVVF8xX09CSkVDVCA9IDMsCiAgSW5wdXRUeXBlRW51bV9JTlBVVF9OX09CSkVDVFMgPSA0Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBEZWZvcm1pbmdEYXRhOwpDTFNJRCA9IHtEN0M1MkE0Ni05MTQ5LTRENDEtQUE2My1CQTdDREMwQUY4MTJ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0RlZm9ybWluZ0RhdGEKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3REZWZvcm1pbmdEYXRhX3Q7CnsKICAgZG91YmxlIEFuZ2xlOwogICBkb3VibGUgQW5nbGUyOwogICBkb3VibGUgQ2FtYmVyaW5nOwogICBkb3VibGUgU2hvcnRlbmluZzsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEV2ZW50czsKQ0xTSUQgPSB7ODcwNTJBODUtRjMxNS00MEYwLThDMTMtRkZGMDBDNTkyNTBDfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9FdmVudHMKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgU2VsZWN0aW9uQ2hhbmdlRGVsZWdhdGU7CkNMU0lEID0ge0YzRUQzMzZELUM4OUYtMzE3Ni05Q0UwLUFGOTc2MUE5MjcyNH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfU2VsZWN0aW9uQ2hhbmdlRGVsZWdhdGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgTW9kZWxTYXZlRGVsZWdhdGU7CkNMU0lEID0gezM2QTlFOEVFLUZGNzMtMzFGMy05RTFCLTEyNTNBRTREQjA2N307IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxTYXZlRGVsZWdhdGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgTW9kZWxMb2FkRGVsZWdhdGU7CkNMU0lEID0gezdFMTdCRjI5LTM1MUEtMzVDNC1BNkI1LUZBMzU2RDA1RUM2Q307IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxMb2FkRGVsZWdhdGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgTnVtYmVyaW5nRGVsZWdhdGU7CkNMU0lEID0ge0NGQzcwMUY2LTkyNzItMzVENC1BMUFELTJFMEM0MDVBOUNGMX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTnVtYmVyaW5nRGVsZWdhdGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgTW9kZWxDaGFuZ2VkRGVsZWdhdGU7CkNMU0lEID0gezdGMjJGNTAwLUY2NzQtMzcwNy04MThELUE2MzQ1NjJDNkMxNn07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxDaGFuZ2VkRGVsZWdhdGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgVGVrbGFTdHJ1Y3R1cmVzRXhpdERlbGVnYXRlOwpDTFNJRCA9IHswODE3MEY0NC1FNkRFLTMyNjEtQTRGRS1BMTc3MjJBNkQwRjJ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1Rla2xhU3RydWN0dXJlc0V4aXREZWxlZ2F0ZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBNYXRlcmlhbDsKQ0xTSUQgPSB7QzM5N0Q0MkUtN0QwMy00MzlFLUFCNTAtNDFEQzc3MkQ4NjdDfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9NYXRlcmlhbAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdE1hdGVyaWFsX3Q7CnsKICBWVF9DQVJSQVkgYU1hdGVyaWFsU3RyaW5nOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgTnVtYmVyaW5nU2VyaWVzOwpDTFNJRCA9IHtFNzhCQ0Y3My1GNzFBLTQ3RjctODdDNi1GNEFBM0MxM0VFNTN9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX051bWJlcmluZ1NlcmllcwoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdE51bWJlcmluZ1Nlcmllc190Owp7CiAgVlRfQ0FSUkFZIGFQcmVmaXg7CiAgIGludCBTdGFydE51bWJlcjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIE9mZnNldDsKQ0xTSUQgPSB7QTJENDc4MzctRUVGMC00RUYxLUE4MDEtMDI2OUNGMTY4NTgxfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PZmZzZXQKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RPZmZzZXRfdDsKewogICBkb3VibGUgRHg7CiAgIGRvdWJsZSBEeTsKICAgZG91YmxlIER6Owp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUGhhc2U7CkNMU0lEID0gezY5ODVDRDJDLTRFQ0QtNDAwMC1BNEYyLTdBRkI4NzhEREQyRX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUGhhc2UKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RQaGFzZV90Owp7CiAgIGludCBQaGFzZU1hbmlwdWxhdGlvblR5cGU7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgSWQ7CiAgIGludCBQaGFzZU51bWJlcjsKICBWVF9DQVJSQVkgUGhhc2VOYW1lOwogIFZUX0NBUlJBWSBQaGFzZUNvbW1lbnQ7CiAgIGludCBJc0N1cnJlbnRQaGFzZTsKICAgaW50IFJlc3VsdDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFBvc2l0aW9uOwpDTFNJRCA9IHsyOTZDNzNDNC00NDFCLTQ5QUEtODgwNy0zNUY5MkU4RjE3OTR9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1Bvc2l0aW9uCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIFBsYW5lRW51bTsKewogIFBsYW5lRW51bV9NSURETEUgPSAwLAogIFBsYW5lRW51bV9MRUZUID0gMSwKICBQbGFuZUVudW1fUklHSFQgPSAyCn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBEZXB0aEVudW07CnsKICBEZXB0aEVudW1fTUlERExFID0gMCwKICBEZXB0aEVudW1fRlJPTlQgPSAxLAogIERlcHRoRW51bV9CRUhJTkQgPSAyCn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBSb3RhdGlvbkVudW07CnsKICBSb3RhdGlvbkVudW1fRlJPTlQgPSAwLAogIFJvdGF0aW9uRW51bV9UT1AgPSAxLAogIFJvdGF0aW9uRW51bV9CQUNLID0gMiwKICBSb3RhdGlvbkVudW1fQkVMT1cgPSAzCn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFBvc2l0aW9uX3Q7CnsKICAgZG91YmxlIFBsYW5lT2Zmc2V0OwogICBkb3VibGUgRGVwdGhPZmZzZXQ7CiAgIGRvdWJsZSBSb3RhdGlvbk9mZnNldDsKICAgaW50IFBsYW5lOwogICBpbnQgRGVwdGg7CiAgIGludCBSb3RhdGlvbjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFByb2ZpbGU7CkNMU0lEID0gezYxRTI5QjIyLTYwRTQtNENFMC04NzkxLThDMjI5M0U3MjJBMX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUHJvZmlsZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFByb2ZpbGVfdDsKewogIFZUX0NBUlJBWSBhUHJvZmlsZVN0cmluZzsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIENsYXNoQ2hlY2tIYW5kbGVyOwpDTFNJRCA9IHswNUNGNjkyRi1CNDhGLTQ3OTEtOTJBRi00Q0I5QjM5MTlCMER9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0NsYXNoQ2hlY2tIYW5kbGVyCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIENsYXNoQ2hlY2tEYXRhOwpDTFNJRCA9IHs5MDc2QkZCQS01RjkyLTRGMzUtQUUyNi05NUJFMTY1NkYwQTZ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0NsYXNoQ2hlY2tEYXRhCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIENsYXNoVHlwZUVudW07CnsKICBDbGFzaFR5cGVFbnVtX0NMQVNIX1RZUEVfSU5WQUxJRCA9IDAsCiAgQ2xhc2hUeXBlRW51bV9DTEFTSF9UWVBFX0lTSU5TSURFID0gMSwKICBDbGFzaFR5cGVFbnVtX0NMQVNIX1RZUEVfRVhBQ1RNQVRDSCA9IDIsCiAgQ2xhc2hUeXBlRW51bV9DTEFTSF9UWVBFX0NMQVNIID0gMywKICBDbGFzaFR5cGVFbnVtX0NMQVNIX1RZUEVfTUlORElTVEFOQ0UgPSA0LAogIENsYXNoVHlwZUVudW1fQ0xBU0hfVFlQRV9GQUlMRURTT0xJRCA9IDUsCiAgQ2xhc2hUeXBlRW51bV9DTEFTSF9UWVBFX0NVVFRIUk9VR0ggPSA2LAogIENsYXNoVHlwZUVudW1fQ0xBU0hfVFlQRV9DT01QTEVYQ0xBU0ggPSA3LAogIENsYXNoVHlwZUVudW1fQ0xBU0hfVFlQRV9GQUlMRURURVNUID0gOAp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RDbGFzaF90Owp7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgSWQxOwogICAmbHQ7ZW51bSZndDsgT2JqZWN0IElkMjsKICAgaW50IFR5cGU7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBNb2RlbDsKQ0xTSUQgPSB7QjY2OERENzQtRUYxQi00NTk2LThFQ0MtRERDRDUxQzUzNjM3fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFNhdmVBc1dlYk1vZGVsX3Q7CnsKICAgaW50IE9ubHlTZWxlY3RlZDsKICBWVF9DQVJSQVkgRmlsZW5hbWU7CiAgIGludCBSZXN1bHQ7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdENyZWF0ZVJlcG9ydEZyb21Nb2RlbF90Owp7CiAgIGludCBPbmx5U2VsZWN0ZWQ7CiAgVlRfQ0FSUkFZIGFUZW1wbGF0ZU5hbWU7CiAgVlRfQ0FSUkFZIGFGaWxlTmFtZTsKICBWVF9DQVJSQVkgYVRpdGxlMTsKICBWVF9DQVJSQVkgYVRpdGxlMjsKICBWVF9DQVJSQVkgYVRpdGxlMzsKICAgaW50IFJlc3VsdDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90SWRlbnRpZmllclRvR1VJRF90Owp7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgSWRlbnRpZmllcjsKICBWVF9DQVJSQVkgR1VJRDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIE1vZGVsSW5mbzsKQ0xTSUQgPSB7RjJFN0ZFMzctNDU5MS00MzIzLTlDNUQtQjMzNTVFRjEyNkI4fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbEluZm8KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RNb2RlbEluZm9fdDsKewogIFZUX0NBUlJBWSBhTW9kZWxQYXRoOwogIFZUX0NBUlJBWSBhTW9kZWxOYW1lOwogIFZUX0NBUlJBWSBhUHJvZ3JhbVZlcnNpb247CiAgIGRvdWJsZSBOb3J0aERpcmVjdGlvbjsKICAgaW50IFNldEluZm87CiAgIGludCBPcGVuQXV0b1NhdmVkOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RNb2RlbE9iamVjdF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE9iamVjdF90IE9iamVjdDsKICAgaW50IFR5cGU7CiAgIGludCBFeHRyYUluZm87Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFNldFByb3BlcnR5X3Q7CnsKICBWVF9DQVJSQVkgYU5hbWU7CiAgIGludCBUeXBlOwogICBpbnQgU291cmNlOwogICAmbHQ7ZW51bSZndDsgT2JqZWN0IEZhdGhlcklkOwogICBpbnQgSW50VmFsdWU7CiAgIGRvdWJsZSBEb3VibGVWYWx1ZTsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RHZXRQcm9wZXJ0aWVzX3Q7CnsKICBWVF9DQVJSQVkgYU5hbWUwOwogIFZUX0NBUlJBWSBhTmFtZTE7CiAgVlRfQ0FSUkFZIGFOYW1lMjsKICBWVF9DQVJSQVkgYU5hbWUzOwogIFZUX0NBUlJBWSBhTmFtZTQ7CiAgVlRfQ0FSUkFZIGFOYW1lNTsKICBWVF9DQVJSQVkgYU5hbWU2OwogIFZUX0NBUlJBWSBhTmFtZTc7CiAgVlRfQ0FSUkFZIGFOYW1lODsKICBWVF9DQVJSQVkgYU5hbWU5OwogICBpbnQgVHlwZTsKICAgaW50IFNvdXJjZTsKICAgJmx0O2VudW0mZ3Q7IE9iamVjdCBGYXRoZXJJZDsKICAgaW50IEluaXRpYWxpemVUYWJsZTsKICAgaW50IG5Qcm9wZXJ0aWVzOwogIFZUX0NBUlJBWSBhU3VjY2VzczsKICBWVF9DQVJSQVkgYUludFZhbHVlczsKICBWVF9DQVJSQVkgYURvdWJsZVZhbHVlczsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlMDsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlMTsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlMjsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlMzsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlNDsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlNTsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlNjsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlNzsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlODsKICBWVF9DQVJSQVkgYVN0cmluZ1ZhbHVlOTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90TW9kZWxDb21taXRfdDsKewogIFZUX0NBUlJBWSBhTWVzc2FnZTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIE1vZGVsT2JqZWN0RW51bWVyYXRvcjsKQ0xTSUQgPSB7QzU0MzVFMEYtRUExOS00RTkzLTg4MkItN0M2RTk1NUIyRjg5fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdEVudW1lcmF0b3IKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RFbnVtZXJhdG9yX3Q7CnsKICAgaW50IE1vcmVPYmplY3RzTGVmdDsKICAgaW50IG5PYmplY3RzOwogICBpbnQgRmlsdGVyOwogICBpbnQgU3ViRmlsdGVyOwogICBpbnQgbk9iamVjdFRvU3RhcnQ7CiAgVlRfQ0FSUkFZIGFPYmplY3RzOwogIFZUX0NBUlJBWSBhT2JqZWN0VHlwZXM7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgQWRkaXRpb25hbElkOwogIFZUX0NBUlJBWSBhRmlsdGVyTmFtZTsKICAgJmx0OyZndDsgIE1pblBvaW50OwogICAmbHQ7Jmd0OyAgTWF4UG9pbnQ7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGlmaWNhdGlvblN0YW1wX3QgTW9kaWZpY2F0aW9uU3RhbXA7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdENsaWVudElkX3QgQ2xpZW50SWQ7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdENsaWVudElkX3Q7CnsKICAgaW50IFByb2Nlc3NJZDsKICAgaW50IFRocmVhZElkOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgVGVrbGFfU3RydWN0dXJlc19Nb2RlbF9Nb2RlbE9iamVjdFNlbGVjdG9yOwpDTFNJRCA9IHs4OEE4NUU1Ri0zMjU4LTQ2NjktQkQ3NC05NUI3QUE5ODU3OUF9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1Rla2xhX1N0cnVjdHVyZXNfTW9kZWxfTW9kZWxPYmplY3RTZWxlY3RvcgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBQcm9qZWN0SW5mbzsKQ0xTSUQgPSB7NzgyNDY1RUYtQUMyRi00MEEzLUI4RDgtNjIyMTY5NEZCMTBCfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Qcm9qZWN0SW5mbwoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFByb2plY3RJbmZvX3Q7CnsKICBWVF9DQVJSQVkgYURlc2NyaXB0aW9uOwogIFZUX0NBUlJBWSBhRXh0cmExOwogIFZUX0NBUlJBWSBhRXh0cmEyOwogIFZUX0NBUlJBWSBhRXh0cmEzOwogIFZUX0NBUlJBWSBhRW5kRGF0ZTsKICBWVF9DQVJSQVkgYVN0YXJ0RGF0ZTsKICBWVF9DQVJSQVkgYURlc2lnbmVyOwogIFZUX0NBUlJBWSBhQWRkcmVzczsKICBWVF9DQVJSQVkgYU9iamVjdDsKICBWVF9DQVJSQVkgYUJ1aWxkZXI7CiAgVlRfQ0FSUkFZIGFOYW1lOwogIFZUX0NBUlJBWSBhUHJvamVjdE5vOwogIFZUX0NBUlJBWSBhTW9kZWxTaGFyaW5nTG9jYWxQYXRoOwogIFZUX0NBUlJBWSBhTW9kZWxTaGFyaW5nU2VydmVyUGF0aDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFJlZmVyZW5jZU1vZGVsOwpDTFNJRCA9IHsxRDM0NDQxQi05N0U3LTREMzktOEM1NS03N0NEMjIyMzc3RUJ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlZmVyZW5jZU1vZGVsCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBWaXNpYmlsaXR5RW51bTsKewogIFZpc2liaWxpdHlFbnVtX0hJRERFTiA9IDAsCiAgVmlzaWJpbGl0eUVudW1fVklTSUJMRSA9IDEKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90UmVmZXJlbmNlTW9kZWxfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RNb2RlbE9iamVjdF90IE1vZGVsT2JqZWN0OwogICAmbHQ7Jmd0OyAgUG9zaXRpb247CiAgVlRfQ0FSUkFZIGFGaWxlTmFtZTsKICBWVF9DQVJSQVkgYVByb2plY3RHVUlEOwogIFZUX0NBUlJBWSBhTW9kZWxHVUlEOwogIFZUX0NBUlJBWSBhVmVyc2lvbkdVSUQ7CiAgIGRvdWJsZSBTY2FsZTsKICAgaW50IFZpc2liaWxpdHk7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBSZWZlcmVuY2VNb2RlbE9iamVjdDsKQ0xTSUQgPSB7REM2QzA2NzYtMEQ2Mi00OTIyLUI5QzUtRjNGQjlDQzVGREFDfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWZlcmVuY2VNb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RSZWZlcmVuY2VNb2RlbE9iamVjdF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgUmVmZXJlbmNlTW9kZWw7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBSZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZTsKQ0xTSUQgPSB7MTFBNzMyNUEtN0Q0NC00Mzg2LUEzQTAtNEJDQzQxNUEyMzIxfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBBdHRyaWJ1dGVUeXBlRW51bTsKewogIEF0dHJpYnV0ZVR5cGVFbnVtX0FUVFJJQlVURVRZUEVfSU5WQUxJRCA9IDAsCiAgQXR0cmlidXRlVHlwZUVudW1fQVRUUklCVVRFVFlQRV9JRkMyWDNfUEFSQU1FVFJJQ09CSkVDVF9DU0hBUEVQUk9GSUxFID0gMywKICBBdHRyaWJ1dGVUeXBlRW51bV9BVFRSSUJVVEVUWVBFX0lGQzJYM19QQVJBTUVUUklDT0JKRUNUX0NJUkNMRUhPTExPV1BST0ZJTEUgPSA0LAogIEF0dHJpYnV0ZVR5cGVFbnVtX0FUVFJJQlVURVRZUEVfSUZDMlgzX1BBUkFNRVRSSUNPQkpFQ1RfQ0lSQ0xFUFJPRklMRSA9IDUsCiAgQXR0cmlidXRlVHlwZUVudW1fQVRUUklCVVRFVFlQRV9JRkMyWDNfUEFSQU1FVFJJQ09CSkVDVF9FTExJUFNFUFJPRklMRSA9IDYsCiAgQXR0cmlidXRlVHlwZUVudW1fQVRUUklCVVRFVFlQRV9JRkMyWDNfUEFSQU1FVFJJQ09CSkVDVF9JU0hBUEVQUk9GSUxFID0gNywKICBBdHRyaWJ1dGVUeXBlRW51bV9BVFRSSUJVVEVUWVBFX0lGQzJYM19QQVJBTUVUUklDT0JKRUNUX0xTSEFQRVBST0ZJTEUgPSA4LAogIEF0dHJpYnV0ZVR5cGVFbnVtX0FUVFJJQlVURVRZUEVfSUZDMlgzX1BBUkFNRVRSSUNPQkpFQ1RfUkVDVEFOR0xFSE9MTE9XUFJPRklMRSA9IDksCiAgQXR0cmlidXRlVHlwZUVudW1fQVRUUklCVVRFVFlQRV9JRkMyWDNfUEFSQU1FVFJJQ09CSkVDVF9SRUNUQU5HTEVQUk9GSUxFID0gMTAsCiAgQXR0cmlidXRlVHlwZUVudW1fQVRUUklCVVRFVFlQRV9JRkMyWDNfUEFSQU1FVFJJQ09CSkVDVF9UU0hBUEVQUk9GSUxFID0gMTEsCiAgQXR0cmlidXRlVHlwZUVudW1fQVRUUklCVVRFVFlQRV9JRkMyWDNfUEFSQU1FVFJJQ09CSkVDVF9VU0hBUEVQUk9GSUxFID0gMTIsCiAgQXR0cmlidXRlVHlwZUVudW1fQVRUUklCVVRFVFlQRV9JRkMyWDNfUEFSQU1FVFJJQ09CSkVDVF9aU0hBUEVQUk9GSUxFID0gMTMsCiAgQXR0cmlidXRlVHlwZUVudW1fQVRUUklCVVRFVFlQRV9QQVJBTUVUUklDT0JKRUNUX0NVU1RPTVBST0ZJTEUgPSAxNCwKICBBdHRyaWJ1dGVUeXBlRW51bV9BVFRSSUJVVEVUWVBFX1BBUkFNRVRSSUNPQkpFQ1RfT0JCID0gMjkKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIElGQzJYM19QYXJhbWV0cmljT2JqZWN0X0NTaGFwZVByb2ZpbGU7CkNMU0lEID0gezVGQUY2NUM0LTdCQ0ItNEMxRC04QTEzLTYwNzc5MzFGQzIxRX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfQ1NoYXBlUHJvZmlsZQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBJRkMyWDNfUGFyYW1ldHJpY09iamVjdF9DaXJjbGVIb2xsb3dQcm9maWxlOwpDTFNJRCA9IHsxNEFGQjYwOC0wREI5LTQxNDUtOTk2RS1EMjUxRTc3NUFBRTl9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0lGQzJYM19QYXJhbWV0cmljT2JqZWN0X0NpcmNsZUhvbGxvd1Byb2ZpbGUKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmVmZXJlbmNlTW9kZWxPYmplY3RBdHRyaWJ1dGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfQ2lyY2xlUHJvZmlsZTsKQ0xTSUQgPSB7MEVDQTMyREMtOUNGRi00RkM3LTkxNUQtNTQxODJCMDhGOTIxfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9JRkMyWDNfUGFyYW1ldHJpY09iamVjdF9DaXJjbGVQcm9maWxlCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlZmVyZW5jZU1vZGVsT2JqZWN0QXR0cmlidXRlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIElGQzJYM19QYXJhbWV0cmljT2JqZWN0X0VsbGlwc2VQcm9maWxlOwpDTFNJRCA9IHsxOEJERUE1Qy0xNTNGLTQ4MEMtQUVBQi0yQzkzNjk4QjMyMEZ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0lGQzJYM19QYXJhbWV0cmljT2JqZWN0X0VsbGlwc2VQcm9maWxlCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlZmVyZW5jZU1vZGVsT2JqZWN0QXR0cmlidXRlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIElGQzJYM19QYXJhbWV0cmljT2JqZWN0X0lTaGFwZVByb2ZpbGU7CkNMU0lEID0ge0E4NEZERDkyLUIxRDMtNEExRC1BMDIxLUJDMEI2MTVCNjlEOX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfSVNoYXBlUHJvZmlsZQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBJRkMyWDNfUGFyYW1ldHJpY09iamVjdF9MU2hhcGVQcm9maWxlOwpDTFNJRCA9IHtGMDMzNDIzQi03NjU1LTQ3RUQtOEJDNC1CRjNBNEQzN0M4Nzd9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0lGQzJYM19QYXJhbWV0cmljT2JqZWN0X0xTaGFwZVByb2ZpbGUKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmVmZXJlbmNlTW9kZWxPYmplY3RBdHRyaWJ1dGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfUmVjdGFuZ2xlSG9sbG93UHJvZmlsZTsKQ0xTSUQgPSB7Q0IxRTMyNzUtRjk4MC00NUIwLTlCREQtNUFFNkZCMTY3OUQ1fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9JRkMyWDNfUGFyYW1ldHJpY09iamVjdF9SZWN0YW5nbGVIb2xsb3dQcm9maWxlCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlZmVyZW5jZU1vZGVsT2JqZWN0QXR0cmlidXRlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIElGQzJYM19QYXJhbWV0cmljT2JqZWN0X1JlY3RhbmdsZVByb2ZpbGU7CkNMU0lEID0ge0Q4REFDNDBFLTExNUItNEJCQi1CMzQzLURGMjBFMUI0QUY3M307IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfUmVjdGFuZ2xlUHJvZmlsZQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBJRkMyWDNfUGFyYW1ldHJpY09iamVjdF9UU2hhcGVQcm9maWxlOwpDTFNJRCA9IHsyQkVGNjZDNi1DQzY0LTQ5NzctQkREMC0yQkE5QzgwNTk2QjZ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0lGQzJYM19QYXJhbWV0cmljT2JqZWN0X1RTaGFwZVByb2ZpbGUKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmVmZXJlbmNlTW9kZWxPYmplY3RBdHRyaWJ1dGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfVVNoYXBlUHJvZmlsZTsKQ0xTSUQgPSB7OTE0MzMxQzYtOTEzQy00RTYxLThGNjctNDY3MjIwQjg4MDdGfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9JRkMyWDNfUGFyYW1ldHJpY09iamVjdF9VU2hhcGVQcm9maWxlCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlZmVyZW5jZU1vZGVsT2JqZWN0QXR0cmlidXRlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIElGQzJYM19QYXJhbWV0cmljT2JqZWN0X1pTaGFwZVByb2ZpbGU7CkNMU0lEID0ge0FBOEZFNjEwLUFFNEMtNDZCMy1CMDZELTlEMEYxQjA1RUE4NH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfWlNoYXBlUHJvZmlsZQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBQYXJhbWV0cmljT2JqZWN0X09iamVjdEJvdW5kaW5nQm94OwpDTFNJRCA9IHs5NUVEQTIzOC1CMkQ0LTRFRTYtQTAyMS1EMjc2MTMxRTAwM0J9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BhcmFtZXRyaWNPYmplY3RfT2JqZWN0Qm91bmRpbmdCb3gKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmVmZXJlbmNlTW9kZWxPYmplY3RBdHRyaWJ1dGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUGFyYW1ldHJpY09iamVjdF9DdXN0b21Qcm9maWxlOwpDTFNJRCA9IHsxNzEwQjdCNy1BRTE1LTQzQkQtQjdFNy04MzQ1Q0FDMUEwNzJ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BhcmFtZXRyaWNPYmplY3RfQ3VzdG9tUHJvZmlsZQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFJlZmVyZW5jZU1vZGVsT2JqZWN0QXR0cmlidXRlX3Q7CnsKICAgaW50IFJlZmVyZW5jZU1vZGVsSWQ7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgUmVmZXJlbmNlTW9kZWxPYmplY3RJZGVudGlmaWVyOwogICBpbnQgQXR0cmlidXRlSW5kZXg7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdElGQzJYM19Qcm9kdWN0X3QgSUZDMlgzX1Byb2R1Y3Q7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdElGQzJYM19QYXJhbWV0cmljT2JqZWN0X1NoYXBlUHJvZmlsZV90IElGQzJYM19QYXJhbWV0cmljT2JqZWN0X1NoYXBlUHJvZmlsZTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90SUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfU2hhcGVQcm9maWxlX3Q7CnsKICAgJmx0OyZndDsgIE9yaWdpbjsKICAgJmx0OyZndDsgIHhEaXI7CiAgICZsdDsmZ3Q7ICBFeHRydXNpb247CiAgVlRfQ0FSUkFZIFByb2ZpbGVOYW1lOwogICBkb3VibGUgRG91YmxlMTsKICAgZG91YmxlIERvdWJsZTI7CiAgIGRvdWJsZSBEb3VibGUzOwogICBkb3VibGUgRG91YmxlNDsKICAgZG91YmxlIERvdWJsZTU7CiAgIGRvdWJsZSBEb3VibGU2OwogICBkb3VibGUgRG91YmxlNzsKICAgZG91YmxlIERvdWJsZTg7CiAgIGRvdWJsZSBEb3VibGU5Owp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RJRkMyWDNfUHJvZHVjdF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdElGQzJYM19Pd25lckhpc3RvcnlfdCBJRkMyWDNfT3duZXJIaXN0b3J5OwogIFZUX0NBUlJBWSBOYW1lOwogIFZUX0NBUlJBWSBEZXNjcmlwdGlvbjsKICBWVF9DQVJSQVkgT2JqZWN0VHlwZTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90SUZDMlgzX093bmVySGlzdG9yeV90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdElGQzJYM19QZXJzb25BbmRPcmdhbml6YXRpb25fdCBPd25pbmdVc2VyOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RJRkMyWDNfQXBwbGljYXRpb25fdCBPd25pbmdBcHBsaWNhdGlvbjsKICAgJmx0O2VudW0mZ3Q7IGRvdElGQzJYM19Pd25lckhpc3RvcnlTdGF0ZV90IFN0YXRlOwogICAmbHQ7ZW51bSZndDsgZG90SUZDMlgzX093bmVySGlzdG9yeUNoYW5nZUFjdGlvbl90IENoYW5nZUFjdGlvbjsKICAgaW50NjQgQ3JlYXRpb25EYXRlOwogICBpbnQ2NCBMYXN0TW9kaWZpZWREYXRlOwogICBpbnQgaXNTZXRMYXN0TW9kaWZpZWREYXRlOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RJRkMyWDNfUGVyc29uQW5kT3JnYW5pemF0aW9uX3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90SUZDMlgzX1BlcnNvbl90IFRoZVBlcnNvbjsKICAgJmx0O3N0cnVjdCZndDsgZG90SUZDMlgzX09yZ2FuaXphdGlvbl90IFRoZU9yZ2FuaXphdGlvbjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90SUZDMlgzX0FwcGxpY2F0aW9uX3Q7CnsKICBWVF9DQVJSQVkgVmVyc2lvbjsKICBWVF9DQVJSQVkgQXBwbGljYXRpb25GdWxsTmFtZTsKICBWVF9DQVJSQVkgQXBwbGljYXRpb25JZGVudGlmaWVyOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RJRkMyWDNfUGVyc29uX3Q7CnsKICBWVF9DQVJSQVkgSWQ7CiAgVlRfQ0FSUkFZIEZhbWlseU5hbWU7CiAgVlRfQ0FSUkFZIEdpdmVuTmFtZTsKICBWVF9DQVJSQVkgTWlkZGxlTmFtZXM7CiAgVlRfQ0FSUkFZIFJvbGVzOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RJRkMyWDNfT3JnYW5pemF0aW9uX3Q7CnsKICBWVF9DQVJSQVkgSWQ7CiAgVlRfQ0FSUkFZIE5hbWU7CiAgVlRfQ0FSUkFZIERlc2NyaXB0aW9uOwogIFZUX0NBUlJBWSBSb2xlczsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIGRvdElGQzJYM19Pd25lckhpc3RvcnlDaGFuZ2VBY3Rpb25fdDsKewogIGRvdElGQzJYM19Pd25lckhpc3RvcnlDaGFuZ2VBY3Rpb25fdF9DSEFOR0VBQ1RJT05fTk9DSEFOR0UgPSAwLAogIGRvdElGQzJYM19Pd25lckhpc3RvcnlDaGFuZ2VBY3Rpb25fdF9DSEFOR0VBQ1RJT05fTU9ESUZJRUQgPSAxLAogIGRvdElGQzJYM19Pd25lckhpc3RvcnlDaGFuZ2VBY3Rpb25fdF9DSEFOR0VBQ1RJT05fQURERUQgPSAyLAogIGRvdElGQzJYM19Pd25lckhpc3RvcnlDaGFuZ2VBY3Rpb25fdF9DSEFOR0VBQ1RJT05fREVMRVRFRCA9IDMKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIGRvdElGQzJYM19Pd25lckhpc3RvcnlTdGF0ZV90Owp7CiAgZG90SUZDMlgzX093bmVySGlzdG9yeVN0YXRlX3RfU1RBVEVfVU5ERUZJTkVEID0gMCwKICBkb3RJRkMyWDNfT3duZXJIaXN0b3J5U3RhdGVfdF9TVEFURV9SRUFEV1JJVEUgPSAxLAogIGRvdElGQzJYM19Pd25lckhpc3RvcnlTdGF0ZV90X1NUQVRFX1JFQURPTkxZID0gMiwKICBkb3RJRkMyWDNfT3duZXJIaXN0b3J5U3RhdGVfdF9TVEFURV9MT0NLRUQgPSAzLAogIGRvdElGQzJYM19Pd25lckhpc3RvcnlTdGF0ZV90X1NUQVRFX1JFQURXUklURUxPQ0tFRCA9IDQsCiAgZG90SUZDMlgzX093bmVySGlzdG9yeVN0YXRlX3RfU1RBVEVfUkVBRE9OTFlMT0NLRUQgPSA1Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBSZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZUVudW1lcmF0b3I7CkNMU0lEID0ge0Q2QUZFOTA0LUNFQjQtNDgzNC04ODYzLTk5QTNGMjFFRTY2QX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmVmZXJlbmNlTW9kZWxPYmplY3RBdHRyaWJ1dGVFbnVtZXJhdG9yCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90UmVmZXJlbmNlTW9kZWxPYmplY3RBdHRyaWJ1dGVFbnVtZXJhdG9yX3Q7CnsKICAgaW50IFJlZmVyZW5jZU1vZGVsSWQ7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgUmVmZXJlbmNlTW9kZWxPYmplY3RJZGVudGlmaWVyOwogICBpbnQgQXR0cmlidXRlSW5kZXg7CiAgIGludCBBdHRyaWJ1dGVUeXBlOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RPYmplY3RfdDsKewogICAmbHQ7ZW51bSZndDsgT2JqZWN0IElkZW50aWZpZXI7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBUZWtsYV9TdHJ1Y3R1cmVzX01vZGVsX09wZXJhdGlvbnNfT3BlcmF0aW9uOwpDTFNJRCA9IHtBQjI1MTRCRS1CQTU1LTQ2RjAtQkUzRS0zQ0RGMkY2MjBCNjB9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1Rla2xhX1N0cnVjdHVyZXNfTW9kZWxfT3BlcmF0aW9uc19PcGVyYXRpb24KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gTUlTRXhwb3J0VHlwZUVudW07CnsKICBNSVNFeHBvcnRUeXBlRW51bV9EU1RWID0gMCwKICBNSVNFeHBvcnRUeXBlRW51bV9LSVNTID0gMSwKICBNSVNFeHBvcnRUeXBlRW51bV9FSkUgPSAyLAogIE1JU0V4cG9ydFR5cGVFbnVtX0VQQyA9IDMsCiAgTUlTRXhwb3J0VHlwZUVudW1fU1RFRUwyMDAwID0gNAp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RNYW5pcHVsYXRlT2JqZWN0X3Q7CnsKICAgJmx0O2VudW0mZ3Q7IE9iamVjdCBJZGVudGlmaWVyOwogICAmbHQ7ZW51bSZndDsgT2JqZWN0IElkZW50aWZpZXIyOwogICAmbHQ7ZW51bSZndDsgT2JqZWN0IFJlc3VsdDsKICAgaW50IE1hbmlwdWxhdGlvblR5cGU7CiAgICZsdDsmZ3Q7ICBQb2ludDE7CiAgICZsdDsmZ3Q7ICBQb2ludDI7CiAgICZsdDsmZ3Q7ICBQb2ludDM7CiAgICZsdDsmZ3Q7ICBFbmRQb2ludDE7CiAgICZsdDsmZ3Q7ICBFbmRQb2ludDI7CiAgICZsdDsmZ3Q7ICBFbmRQb2ludDM7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBvbHlnb25fdCBQb2x5Z29uOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RDbGllbnRJZF90IENsaWVudElkOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RDcmVhdGVOQ0Zyb21Nb2RlbF90Owp7CiAgIGludCBPbmx5U2VsZWN0ZWQ7CiAgVlRfQ0FSUkFZIGFOQ0ZpbGVTZXR0aW5nc05hbWU7CiAgIGludCBDcmVhdGVQb3BNYXJrczsKICBWVF9DQVJSQVkgYVBvcE1hcmtTZXR0aW5nc05hbWU7CiAgIGludCBFeHBvcnRUeXBlOwogIFZUX0NBUlJBWSBhRmlsZU5hbWU7CiAgVlRfQ0FSUkFZIGFEZXN0aW5hdGlvbkZvbGRlck5hbWU7CiAgIGludCBSZXN1bHQ7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFJlZnJlc2hSZWZlcmVuY2VNb2RlbF90Owp7CiAgICZsdDtlbnVtJmd0OyBPYmplY3QgUmVmZXJlbmNlTW9kZWxJZDsKICAgaW50IEZpbGVMaXN0U3RhdGU7CiAgIGludCBuRmlsZXM7CiAgVlRfQ0FSUkFZIGFGdWxsRmlsZURhdGFTZXRHdWlkOwogIFZUX0NBUlJBWSBhRnVsbEZpbGVOYW1lOwogIFZUX0NBUlJBWSBhRmlsZU5hbWUwOwogIFZUX0NBUlJBWSBhRmlsZU5hbWUxOwogIFZUX0NBUlJBWSBhRmlsZU5hbWUyOwogIFZUX0NBUlJBWSBhRmlsZU5hbWUzOwogIFZUX0NBUlJBWSBhRmlsZU5hbWU0OwogIFZUX0NBUlJBWSBhRmlsZU5hbWU1OwogIFZUX0NBUlJBWSBhRmlsZU5hbWU2OwogIFZUX0NBUlJBWSBhRmlsZU5hbWU3OwogIFZUX0NBUlJBWSBhRmlsZU5hbWU4OwogIFZUX0NBUlJBWSBhRmlsZU5hbWU5OwogICBpbnQgUmVzdWx0Owp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgVGVrbGFfU3RydWN0dXJlc19Nb2RlbEludGVybmFsX09wZXJhdGlvbjsKQ0xTSUQgPSB7Q0U1OTQ4OTMtMTJBQS0zNjA2LTkwRTktRjkyMUExRjY0NjZDfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9UZWtsYV9TdHJ1Y3R1cmVzX01vZGVsSW50ZXJuYWxfT3BlcmF0aW9uCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFBhcnQ7CkNMU0lEID0ge0JFQ0ZEODI4LTI1NDYtNDdFNi04RTAyLTcxREMzQzhBMjBDRX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUGFydAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBJQXNzZW1ibGFibGUKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gQ2FzdFVuaXRUeXBlRW51bTsKewogIENhc3RVbml0VHlwZUVudW1fUFJFQ0FTVCA9IDAsCiAgQ2FzdFVuaXRUeXBlRW51bV9DQVNUX0lOX1BMQUNFID0gMQp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgQmVhbTsKQ0xTSUQgPSB7MDAzMTRFODItODM1Qi00QTk1LTlEOTUtMzlCNDE4QUI3MTEzfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CZWFtCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BhcnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgSUFzc2VtYmxhYmxlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIEJlYW1UeXBlRW51bTsKewogIEJlYW1UeXBlRW51bV9CRUFNID0gMCwKICBCZWFtVHlwZUVudW1fUEFORUwgPSAxLAogIEJlYW1UeXBlRW51bV9TVFJJUF9GT09USU5HID0gMiwKICBCZWFtVHlwZUVudW1fUEFEX0ZPT1RJTkcgPSAzLAogIEJlYW1UeXBlRW51bV9DT0xVTU4gPSA0Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDb250b3VyUGxhdGU7CkNMU0lEID0gezIyOTA1OTc2LUY5NjQtNDBCNS1CRUJCLThBNDczQzlBNDIzQX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ29udG91clBsYXRlCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BhcnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgSUFzc2VtYmxhYmxlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIENvbnRvdXJQbGF0ZVR5cGVFbnVtOwp7CiAgQ29udG91clBsYXRlVHlwZUVudW1fVU5LTk9XTiA9IDAsCiAgQ29udG91clBsYXRlVHlwZUVudW1fUExBVEUgPSAxLAogIENvbnRvdXJQbGF0ZVR5cGVFbnVtX1NMQUIgPSAyCn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFBhcnRfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RNb2RlbE9iamVjdF90IE1vZGVsT2JqZWN0OwogICAmbHQ7c3RydWN0Jmd0OyBkb3RQb3NpdGlvbl90IFBvc2l0aW9uOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RQcm9maWxlX3QgUHJvZmlsZTsKICAgJmx0O3N0cnVjdCZndDsgZG90TWF0ZXJpYWxfdCBNYXRlcmlhbDsKICAgJmx0O3N0cnVjdCZndDsgZG90TnVtYmVyaW5nU2VyaWVzX3QgUGFydE51bWJlcjsKICAgJmx0O3N0cnVjdCZndDsgZG90TnVtYmVyaW5nU2VyaWVzX3QgQXNzZW1ibHlOdW1iZXI7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdERlZm9ybWluZ0RhdGFfdCBEZWZvcm1pbmdEYXRhOwogIFZUX0NBUlJBWSBhTmFtZTsKICBWVF9DQVJSQVkgYUNsYXNzOwogIFZUX0NBUlJBWSBhRmluaXNoOwogICBpbnQgQ2FzdFVuaXRUeXBlOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RPZmZzZXRfdCBTdGFydFBvaW50T2Zmc2V0OwogICAmbHQ7c3RydWN0Jmd0OyBkb3RPZmZzZXRfdCBFbmRQb2ludE9mZnNldDsKICAgZG91YmxlIFJhZGl1czsKICAgaW50IFN1YlR5cGU7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFBhcnRNYXJrX3Q7CnsKICAgJmx0O2VudW0mZ3Q7IE9iamVjdCBQYXJ0SUQ7CiAgVlRfQ0FSUkFZIGFQYXJ0TWFyazsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFBvbHlCZWFtOwpDTFNJRCA9IHs2MTQ0M0E1NS04MTFELTQ1QkEtQTE4NS04NjVGNDQxRTA1NUJ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BvbHlCZWFtCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BhcnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgSUFzc2VtYmxhYmxlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIFBvbHlCZWFtVHlwZUVudW07CnsKICBQb2x5QmVhbVR5cGVFbnVtX0JFQU0gPSAwLAogIFBvbHlCZWFtVHlwZUVudW1fUEFORUwgPSAxLAogIFBvbHlCZWFtVHlwZUVudW1fU1RSSVBfRk9PVElORyA9IDIKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFBvdXJCcmVhazsKQ0xTSUQgPSB7QzA1QUZFRkQtMkNBNS00MjQ1LThDQTctMzk1QUYzNzhBMUMxfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Qb3VyQnJlYWsKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgSUFzc2VtYmxhYmxlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90UG91ckJyZWFrX3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBNb2RlbE9iamVjdDsKICAgaW50IENsYXNzOwogICAmbHQ7Jmd0OyAgRGlyZWN0aW9uOwogICBpbnQgblBvbHlsaW5lUG9pbnRzOwogIFZUX0NBUlJBWSBhUG9seWxpbmVQb2ludHM7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBQb3VyT2JqZWN0OwpDTFNJRCA9IHs0NjRBOEUxNi04RDc3LTRCNUItQkUxRi0wMjVCMEUwQUEwOTh9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BvdXJPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgSUFzc2VtYmxhYmxlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90UG91ck9iamVjdF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgIGludCBDbGFzczsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFRhc2tXb3JrdHlwZTsKQ0xTSUQgPSB7QTVBMzM0QjEtQkRFOC00NkE2LTk4RUMtNjVEMDQzOTA2MDhCfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9UYXNrV29ya3R5cGUKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90VGFza1dvcmt0eXBlX3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBNb2RlbE9iamVjdDsKICBWVF9DQVJSQVkgYU5hbWU7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBUYXNrRGVwZW5kZW5jeTsKQ0xTSUQgPSB7OTcwMjdBMUYtRDhBNS00QjJBLUI2MjEtNDRENjJCRTM5MEYxfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9UYXNrRGVwZW5kZW5jeQovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gRGVwZW5kZW5jeVR5cGVFbnVtOwp7CiAgRGVwZW5kZW5jeVR5cGVFbnVtX0ZJTklTSF9UT19GSU5JU0ggPSAwLAogIERlcGVuZGVuY3lUeXBlRW51bV9GSU5JU0hfVE9fU1RBUlQgPSAxLAogIERlcGVuZGVuY3lUeXBlRW51bV9TVEFSVF9UT19GSU5JU0ggPSAyLAogIERlcGVuZGVuY3lUeXBlRW51bV9TVEFSVF9UT19TVEFSVCA9IDMKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90VGFza0RlcGVuZGVuY3lfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RNb2RlbE9iamVjdF90IE1vZGVsT2JqZWN0OwogICBpbnQgUHJpbWFyeUlkOwogICBpbnQgU2Vjb25kYXJ5SWQ7CiAgIGludCBUeXBlOwogICBpbnQgTGFnOwogICBpbnQgTG9jYWw7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBUYXNrOwpDTFNJRCA9IHs3RDg2NUZBNi1DNjM0LTQ2OEEtODc1RC03NkE5NTc3NzJBNEZ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1Rhc2sKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90VGFza190Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgVlRfQ0FSUkFZIGFOYW1lOwogICBpbnQgQ29tcGxldGVuZXNzOwogICBpbnQgQ3JpdGljYWw7CiAgIGludCBMb2NhbDsKICAgaW50IFNjZW5hcmlvOwogIFZUX0NBUlJBWSBhRGVzY3JpcHRpb247CiAgVlRfQ0FSUkFZIGFVcmw7CiAgIGR3b3JkIFBsYW5uZWRTdGFydERhdGU7CiAgIGR3b3JkIFBsYW5uZWRFbmREYXRlOwogICBkb3VibGUgUGxhbm5lZFdvcmtBbW91bnQ7CiAgIGR3b3JkIEFjdHVhbFN0YXJ0RGF0ZTsKICAgZHdvcmQgQWN0dWFsRW5kRGF0ZTsKICAgZG91YmxlIEFjdHVhbFdvcmtBbW91bnQ7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFRhc2tPYmplY3RBdHRhY2hlcl90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgIGludCBGdW5jdGlvbmFsaXR5OwogICBpbnQgbk9iamVjdHM7CiAgVlRfQ0FSUkFZIGFPYmplY3RzOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUmVpbmZvcmNlbWVudDsKQ0xTSUQgPSB7MTYwRjc0NEYtQzk5NC00QTNFLThBMzQtQjJDMjUzNjgyQUQxfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWluZm9yY2VtZW50Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBSZWJhck9mZnNldFR5cGVFbnVtOwp7CiAgUmViYXJPZmZzZXRUeXBlRW51bV9PRkZTRVRfVFlQRV9DT1ZFUl9USElDS05FU1MgPSAwLAogIFJlYmFyT2Zmc2V0VHlwZUVudW1fT0ZGU0VUX1RZUEVfTEVHX0xFTkdUSCA9IDEKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEJhc2VSZWJhckdyb3VwOwpDTFNJRCA9IHs4RUM3RDk5RS1ERjFDLTRDQjgtOThBQS1FNTkxODBFOEM1OUF9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VSZWJhckdyb3VwCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlaW5mb3JjZW1lbnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIEV4Y2x1ZGVUeXBlRW51bTsKewogIEV4Y2x1ZGVUeXBlRW51bV9FWENMVURFX1RZUEVfTk9ORSA9IDEsCiAgRXhjbHVkZVR5cGVFbnVtX0VYQ0xVREVfVFlQRV9GSVJTVCA9IDIsCiAgRXhjbHVkZVR5cGVFbnVtX0VYQ0xVREVfVFlQRV9MQVNUID0gMywKICBFeGNsdWRlVHlwZUVudW1fRVhDTFVERV9UWVBFX0JPVEggPSA0Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBSZWJhckdyb3VwU3BhY2luZ1R5cGVFbnVtOwp7CiAgUmViYXJHcm91cFNwYWNpbmdUeXBlRW51bV9TUEFDSU5HX1RZUEVfVU5ERUZJTkVEID0gMCwKICBSZWJhckdyb3VwU3BhY2luZ1R5cGVFbnVtX1NQQUNJTkdfVFlQRV9FWEFDVF9TUEFDSU5HUyA9IDEsCiAgUmViYXJHcm91cFNwYWNpbmdUeXBlRW51bV9TUEFDSU5HX1RZUEVfRVhBQ1RfTlVNQkVSID0gMiwKICBSZWJhckdyb3VwU3BhY2luZ1R5cGVFbnVtX1NQQUNJTkdfVFlQRV9UQVJHRVRfU1BBQ0UgPSAzLAogIFJlYmFyR3JvdXBTcGFjaW5nVHlwZUVudW1fU1BBQ0lOR19UWVBFX0VYQUNUX1NQQUNFX0ZMRVhfQVRfU1RBUlQgPSA0LAogIFJlYmFyR3JvdXBTcGFjaW5nVHlwZUVudW1fU1BBQ0lOR19UWVBFX0VYQUNUX1NQQUNFX0ZMRVhfQVRfRU5EID0gNSwKICBSZWJhckdyb3VwU3BhY2luZ1R5cGVFbnVtX1NQQUNJTkdfVFlQRV9FWEFDVF9TUEFDRV9GTEVYX0FUX0JPVEggPSA2LAogIFJlYmFyR3JvdXBTcGFjaW5nVHlwZUVudW1fU1BBQ0lOR19UWVBFX0VYQUNUX1NQQUNFX0ZMRVhfQVRfTUlERExFID0gNwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RSZWJhckdyb3VwX3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90UmVpbmZvcmNlbWVudF90IFJlaW5mb3JjZW1lbnQ7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlYmFySG9va0RhdGFfdCBTdGFydEhvb2s7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlYmFySG9va0RhdGFfdCBFbmRIb29rOwogICBpbnQgRXhjbHVkZVR5cGU7CiAgIGludCBuUG9seWdvbnM7CiAgIGludCBuUG9pbnRzSW5Qb2x5Z29uOwogIFZUX0NBUlJBWSBhWDsKICBWVF9DQVJSQVkgYVk7CiAgVlRfQ0FSUkFZIGFaOwogICBpbnQgU3BhY2luZ1R5cGU7CiAgIGludCBuU3BhY2luZ1ZhbHVlczsKICBWVF9DQVJSQVkgYVNwYWNpbmdNdWx0aXBsaWVyczsKICBWVF9DQVJSQVkgYVNwYWNpbmdzOwogICBpbnQgU3RpcnJ1cFR5cGU7CiAgICZsdDsmZ3Q7ICBTdGFydFBvaW50OwogICAmbHQ7Jmd0OyAgRW5kUG9pbnQ7CiAgIGludCBTdWJUeXBlOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgQ2lyY2xlUmViYXJHcm91cDsKQ0xTSUQgPSB7RTM2Q0NCM0MtMjhBOC00QzU0LTkzMTItNzg2RkJERjIzQTRFfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9DaXJjbGVSZWJhckdyb3VwCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VSZWJhckdyb3VwCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlaW5mb3JjZW1lbnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIENpcmNsZVJlYmFyR3JvdXBTdGlycnVwVHlwZUVudW07CnsKICBDaXJjbGVSZWJhckdyb3VwU3RpcnJ1cFR5cGVFbnVtX1NUSVJSVVBfVFlQRV9DSVJDTEUgPSAwLAogIENpcmNsZVJlYmFyR3JvdXBTdGlycnVwVHlwZUVudW1fU1RJUlJVUF9UWVBFX1NQSVJBTCA9IDEKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIEN1cnZlZFJlYmFyR3JvdXA7CkNMU0lEID0gezNDMjJGOEMyLTVEQzktNDQ4OS05Q0I2LUQ1NjIxMENEREQ2MH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ3VydmVkUmViYXJHcm91cAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlUmViYXJHcm91cAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWluZm9yY2VtZW50Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBSZWJhckdyb3VwOwpDTFNJRCA9IHs3RDk2OUY4NS02NUFELTRDOEEtQkU3My0yRTYwNzYxMkI0NDN9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlYmFyR3JvdXAKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZVJlYmFyR3JvdXAKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmVpbmZvcmNlbWVudAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gUmViYXJHcm91cFN0aXJydXBUeXBlRW51bTsKewogIFJlYmFyR3JvdXBTdGlycnVwVHlwZUVudW1fU1RJUlJVUF9UWVBFX1BPTFlHT05BTCA9IDAsCiAgUmViYXJHcm91cFN0aXJydXBUeXBlRW51bV9TVElSUlVQX1RZUEVfU1BJUkFMID0gMSwKICBSZWJhckdyb3VwU3RpcnJ1cFR5cGVFbnVtX1NUSVJSVVBfVFlQRV9UQVBFUkVEX0NVUlZFRCA9IDIKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFJlYmFyTWVzaDsKQ0xTSUQgPSB7OTU3QkJBMzgtNjQyMC00NTAwLTk5QzctM0ZFN0Q1MTEwMTBDfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWJhck1lc2gKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmVpbmZvcmNlbWVudAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gUmViYXJNZXNoVHlwZUVudW07CnsKICBSZWJhck1lc2hUeXBlRW51bV9VTktOT1dOX01FU0ggPSAwLAogIFJlYmFyTWVzaFR5cGVFbnVtX1JFQ1RBTkdVTEFSX01FU0ggPSAxLAogIFJlYmFyTWVzaFR5cGVFbnVtX1BPTFlHT05fTUVTSCA9IDIsCiAgUmViYXJNZXNoVHlwZUVudW1fQkVOVF9NRVNIID0gMwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gUmViYXJNZXNoU3BhY2luZ01ldGhvZEVudW07CnsKICBSZWJhck1lc2hTcGFjaW5nTWV0aG9kRW51bV9TUEFDSU5HX1RZUEVfVU5ERUZJTkVEID0gMCwKICBSZWJhck1lc2hTcGFjaW5nTWV0aG9kRW51bV9TUEFDSU5HX1RZUEVfU0FNRV9ESVNUQU5DRSA9IDEsCiAgUmViYXJNZXNoU3BhY2luZ01ldGhvZEVudW1fU1BBQ0lOR19UWVBFX01VTFRJUExFX1ZBUllJTkdfRElTVEFOQ0VTID0gMgp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gUmViYXJNZXNoQ3Jvc3NCYXJMb2NhdGlvbkVudW07CnsKICBSZWJhck1lc2hDcm9zc0JhckxvY2F0aW9uRW51bV9MT0NBVElPTl9UWVBFX1VOREVGSU5FRCA9IC0xLAogIFJlYmFyTWVzaENyb3NzQmFyTG9jYXRpb25FbnVtX0xPQ0FUSU9OX1RZUEVfQUJPVkUgPSAwLAogIFJlYmFyTWVzaENyb3NzQmFyTG9jYXRpb25FbnVtX0xPQ0FUSU9OX1RZUEVfQkVMT1cgPSAxCn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFJlYmFyTWVzaF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlaW5mb3JjZW1lbnRfdCBSZWluZm9yY2VtZW50OwogICBpbnQgTWVzaFR5cGU7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBvbHlnb25fdCBQb2x5Z29uOwogICBpbnQgTG9uZ2l0dWRpbmFsU3BhY2luZ01ldGhvZDsKICAgaW50IG5Mb25naXR1ZGluYWxEaXN0YW5jZXM7CiAgVlRfQ0FSUkFZIGFMb25naXR1ZGluYWxEaXN0YW5jZU11bHRpcGxpZXJzOwogIFZUX0NBUlJBWSBhTG9uZ2l0dWRpbmFsRGlzdGFuY2VzOwogICBpbnQgbkNyb3NzRGlzdGFuY2VzOwogIFZUX0NBUlJBWSBhQ3Jvc3NEaXN0YW5jZU11bHRpcGxpZXJzOwogIFZUX0NBUlJBWSBhQ3Jvc3NEaXN0YW5jZXM7CiAgICZsdDsmZ3Q7ICBTdGFydFBvaW50OwogICAmbHQ7Jmd0OyAgRW5kUG9pbnQ7CiAgIGRvdWJsZSBMZWZ0T3ZlcmhhbmdDcm9zczsKICAgZG91YmxlIExlZnRPdmVyaGFuZ0xvbmdpdHVkaW5hbDsKICAgZG91YmxlIFJpZ2h0T3ZlcmhhbmdDcm9zczsKICAgZG91YmxlIFJpZ2h0T3ZlcmhhbmdMb25naXR1ZGluYWw7CiAgVlRfQ0FSUkFZIENyb3NzU2l6ZTsKICBWVF9DQVJSQVkgTG9uZ2l0dWRpbmFsU2l6ZTsKICAgZG91YmxlIFdpZHRoOwogICBkb3VibGUgTGVuZ3RoOwogIFZUX0NBUlJBWSBDYXRhbG9nTmFtZTsKICAgaW50IENyb3NzQmFyTG9jYXRpb247CiAgIGludCBDdXRCeUZhdGhlclBhcnRDdXRzOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RSZWJhckhvb2tEYXRhX3QgU3RhcnRIb29rOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RSZWJhckhvb2tEYXRhX3QgRW5kSG9vazsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFJlYmFyR2VvbWV0cnk7CkNMU0lEID0gezVBMjU4RUQ2LUQ4MzktNDVCNy1CMjJBLTMzQzg3RUI2Nzg3NH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmViYXJHZW9tZXRyeQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFdpcmVfdDsKewogICAmbHQ7ZW51bSZndDsgT2JqZWN0IEdyb3VwSWRlbnRpZmllcjsKICAgaW50IFJhbmdlU3RhcnQ7CiAgIGludCBSYW5nZUVuZDsKICAgaW50IE1vcmU7CiAgIGludCBXaXRoSG9va3M7CiAgVlRfQ0FSUkFZIGFuUG9zaXRpb25Qb2ludHM7CiAgVlRfQ0FSUkFZIGFQb3NpdGlvblBvaW50czsKICBWVF9DQVJSQVkgYUJlbmRpbmdSYWRpdXNlczsKICBWVF9DQVJSQVkgYURpYW1ldGVyOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUmViYXJIb29rRGF0YTsKQ0xTSUQgPSB7RUI3MjcxODQtQURFQy00RDA5LTlERDYtNDU0OThCMzVENDI0fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9SZWJhckhvb2tEYXRhCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIFJlYmFySG9va1NoYXBlRW51bTsKewogIFJlYmFySG9va1NoYXBlRW51bV9OT19IT09LID0gMCwKICBSZWJhckhvb2tTaGFwZUVudW1fSE9PS185MF9ERUdSRUVTID0gMSwKICBSZWJhckhvb2tTaGFwZUVudW1fSE9PS18xMzVfREVHUkVFUyA9IDIsCiAgUmViYXJIb29rU2hhcGVFbnVtX0hPT0tfMTgwX0RFR1JFRVMgPSAzLAogIFJlYmFySG9va1NoYXBlRW51bV9DVVNUT01fSE9PSyA9IDQKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90UmViYXJIb29rRGF0YV90Owp7CiAgIGRvdWJsZSBBbmdsZTsKICAgZG91YmxlIFJhZGl1czsKICAgZG91YmxlIExlbmd0aDsKICAgaW50IFNoYXBlOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUmViYXJTcGxpY2U7CkNMU0lEID0gezc1RjgwODQ5LUE1NzUtNDhENS04M0ZELTBDQzg5RjZBNjA5OX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmViYXJTcGxpY2UKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIFJlYmFyU3BsaWNlVHlwZUVudW07CnsKICBSZWJhclNwbGljZVR5cGVFbnVtX1NQTElDRV9UWVBFX0xBUF9SSUdIVCA9IDAsCiAgUmViYXJTcGxpY2VUeXBlRW51bV9TUExJQ0VfVFlQRV9MQVBfTEVGVCA9IDEsCiAgUmViYXJTcGxpY2VUeXBlRW51bV9TUExJQ0VfVFlQRV9MQVBfQk9USCA9IDIsCiAgUmViYXJTcGxpY2VUeXBlRW51bV9TUExJQ0VfVFlQRV9NVUZGID0gMywKICBSZWJhclNwbGljZVR5cGVFbnVtX1NQTElDRV9UWVBFX1dFTEQgPSA0Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBSZWJhclNwbGljZUJhclBvc2l0aW9uc0VudW07CnsKICBSZWJhclNwbGljZUJhclBvc2l0aW9uc0VudW1fU1BMSUNFX0JBUl9PTl9UT1AgPSAwLAogIFJlYmFyU3BsaWNlQmFyUG9zaXRpb25zRW51bV9TUExJQ0VfQkFSX1BBUkFMTEVMID0gMQp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RSZWJhclNwbGljZV90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlaW5mb3JjZW1lbnRfdCBSZWluZm9yY2VtZW50MTsKICAgJmx0O3N0cnVjdCZndDsgZG90UmVpbmZvcmNlbWVudF90IFJlaW5mb3JjZW1lbnQyOwogICBpbnQgVHlwZTsKICAgZG91YmxlIExhcExlbmd0aDsKICAgZG91YmxlIE9mZnNldDsKICAgZG91YmxlIENsZWFyYW5jZTsKICAgaW50IEJhclBvc2l0aW9uczsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90UmVpbmZvcmNlbWVudF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgRmF0aGVyOwogIFZUX0NBUlJBWSBhU2l6ZTsKICBWVF9DQVJSQVkgYUdyYWRlOwogIFZUX0NBUlJBWSBhTmFtZTsKICAgaW50IENsYXNzOwogICAmbHQ7c3RydWN0Jmd0OyBkb3ROdW1iZXJpbmdTZXJpZXNfdCBOdW1iZXJpbmdTZXJpZXM7CiAgIGludCBuT25QbGFuZU9mZnNldFZhbHVlczsKICBWVF9DQVJSQVkgYU9uUGxhbmVPZmZzZXRzOwogICBkb3VibGUgRnJvbVBsYW5lT2Zmc2V0OwogICBpbnQgU3RhcnRQb2ludE9mZnNldFR5cGU7CiAgIGRvdWJsZSBTdGFydFBvaW50T2Zmc2V0VmFsdWU7CiAgIGludCBFbmRQb2ludE9mZnNldFR5cGU7CiAgIGRvdWJsZSBFbmRQb2ludE9mZnNldFZhbHVlOwogICBpbnQgblJhZGl1c1ZhbHVlczsKICBWVF9DQVJSQVkgYVJhZGl1c1ZhbHVlczsKICAgJmx0O3N0cnVjdCZndDsgZG90Q2xpZW50SWRfdCBDbGllbnRJZDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFNpbmdsZVJlYmFyOwpDTFNJRCA9IHtDMURCODg0Ri0zMkMxLTRFNDUtOEUwNS04QkExQjlGMkYxMjh9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1NpbmdsZVJlYmFyCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlaW5mb3JjZW1lbnQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90U2luZ2xlUmViYXJfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RSZWluZm9yY2VtZW50X3QgUmVpbmZvcmNlbWVudDsKICAgJmx0O3N0cnVjdCZndDsgZG90UmViYXJIb29rRGF0YV90IFN0YXJ0SG9vazsKICAgJmx0O3N0cnVjdCZndDsgZG90UmViYXJIb29rRGF0YV90IEVuZEhvb2s7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBvbHlnb25fdCBQb2x5Z29uOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUmViYXJTdHJhbmQ7CkNMU0lEID0ge0FBM0U5MDg0LTc4QTItNENFQS1COTlCLTNDMzk4QkZBMEM5Qn07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmViYXJTdHJhbmQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUmVpbmZvcmNlbWVudAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RSZWJhclN0cmFuZF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlaW5mb3JjZW1lbnRfdCBSZWluZm9yY2VtZW50OwogICBkb3VibGUgUHVsbFBlclN0cmFuZDsKICAgaW50IG5QYXR0ZXJuczsKICAgaW50IG5Qb2ludHNJblBhdHRlcm47CiAgVlRfQ0FSUkFZIGFYOwogIFZUX0NBUlJBWSBhWTsKICBWVF9DQVJSQVkgYVo7CiAgIGludCBuVW5ib25kaW5nczsKICBWVF9DQVJSQVkgYVN0cmFuZEluZGV4OwogIFZUX0NBUlJBWSBhRnJvbVN0YXJ0OwogIFZUX0NBUlJBWSBhTWlkZGxlVG9TdGFydDsKICBWVF9DQVJSQVkgYU1pZGRsZVRvRW5kOwogIFZUX0NBUlJBWSBhRnJvbUVuZDsKICAgJmx0OyZndDsgIFN0YXJ0UG9pbnQ7CiAgICZsdDsmZ3Q7ICBFbmRQb2ludDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFN0cmFuZFVuYm9uZGluZ0RhdGE7CkNMU0lEID0gezQ5MEM5NUZBLUJCQ0UtNDJENS1CQ0UxLTM3QTY1NDUyNTYzRX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfU3RyYW5kVW5ib25kaW5nRGF0YQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIElDRGVsZWdhdGU7CklJRCA9IHtERkQzODVFNy05OEI1LTM5M0UtOEJFQS1EMENCRDZBRDMyNkR9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFVJT2JqZWN0U2VsZWN0KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90VUlNb2RlbE9iamVjdFNlbGVjdG9yX3QqIHBTZWxlY3RvciwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRVSU9iamVjdFBpY2soCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RVSVBpY2tlcl90KiBwUGlja2VyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFRhc2tPYmplY3RBdHRhY2goCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RUYXNrT2JqZWN0QXR0YWNoZXJfdCogcFNlbGVjdG9yLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENyZWF0ZVBhcnQoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RDb250b3VyX3QqIHBQMSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RQYXJ0X3QqIHBQYXJ0LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENvbXBhcmVPYmplY3RzKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgT2JqZWN0SWQsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgT2JqZWN0VG9Db21wYXJlSWQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlQm9sdEdyb3VwKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Qm9sdFNoYXBlRGF0YV90KiBwQm9sdFNoYXBlRGF0YSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RCb2x0R3JvdXBfdCogcEJvbHRHcm91cCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVCb29sZWFuUGFydCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEJvb2xlYW5QYXJ0X3QqIHBCb29sZWFuUGFydCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVGaXR0aW5nT3JDdXRQbGFuZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEZpdHRpbmdPckN1dFBsYW5lX3QqIHBGaXR0aW5nT3JDdXRQbGFuZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVFZGdlQ2hhbWZlcigKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEVkZ2VDaGFtZmVyX3QqIHBFZGdlQ2hhbWZlciwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlU3VyZmFjZVRyZWF0bWVudCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFN1cmZhY2VUcmVhdG1lbnRfdCogcFRyZWF0bWVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlV2VsZCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFdlbGRfdCogcFdlbGQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENyZWF0ZVNpbmdsZVJlYmFyKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90U2luZ2xlUmViYXJfdCogcFNpbmdsZVJlYmFyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVSZWJhckdyb3VwKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJHcm91cF90KiBwUmViYXJHcm91cCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlUmViYXJNZXNoKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJNZXNoX3QqIHBSZWJhck1lc2gsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENyZWF0ZVJlYmFyU3RyYW5kKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJTdHJhbmRfdCogcFJlYmFyU3RyYW5kLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVSZWJhclNwbGljZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlYmFyU3BsaWNlX3QqIHBSZWJhclNwbGljZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlQ29udHJvbFBsYW5lKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q29udHJvbFBsYW5lX3QqIHBDb250cm9sUGxhbmUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENyZWF0ZUdyaWRQbGFuZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEdyaWRQbGFuZV90KiBwR3JpZFBsYW5lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVHcmlkKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90R3JpZF90KiBwR3JpZCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlUmVmZXJlbmNlTW9kZWwoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RSZWZlcmVuY2VNb2RlbF90KiBwUmVmZXJlbmNlTW9kZWwsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENyZWF0ZVJlZmVyZW5jZU1vZGVsT2JqZWN0QXR0cmlidXRlRW51bWVyYXRvcigKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlZmVyZW5jZU1vZGVsT2JqZWN0QXR0cmlidXRlRW51bWVyYXRvcl90KiBwRW51bWVyYXRvciwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlUmVmZXJlbmNlTW9kZWxPYmplY3RBdHRyaWJ1dGUoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RSZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZV90KiBwUk1PQXR0cmlidXRlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVUYXNrKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90VGFza190KiBwVGFzaywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlVGFza0RlcGVuZGVuY3koCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RUYXNrRGVwZW5kZW5jeV90KiBwVGFza0RlcGVuZGVuY3ksIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENyZWF0ZVRhc2tXb3JrdHlwZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFRhc2tXb3JrdHlwZV90KiBwVGFza1dvcmt0eXBlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVMb2FkKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90TG9hZENvbW1vbkF0dHJpYnV0ZXNfdCogcExvYWRDb21tb25BdHRyaWJ1dGVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdExvYWRDbGFzc0F0dHJpYnV0ZXNfdCogcExvYWRDbGFzc0F0dHJpYnV0ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENyZWF0ZUxvYWRHcm91cCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdExvYWRHcm91cF90KiBwTG9hZEdyb3VwLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDcmVhdGVDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RCYXNlQ29tcG9uZW50X3QqIHBCYXNlQ29tcG9uZW50LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBPYmplY3RJZCwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIEZhdGhlckNvbXBvbmVudElkLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZWxlY3RQYXJ0KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q29udG91cl90KiBwUDEsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UGFydF90KiBwUGFydCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0Qm9sdEdyb3VwKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Qm9sdFNoYXBlRGF0YV90KiBwQm9sdFNoYXBlRGF0YSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RCb2x0R3JvdXBfdCogcEJvbHRHcm91cCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0Qm9vbGVhblBhcnQoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RCb29sZWFuUGFydF90KiBwQm9vbGVhblBhcnQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdEZpdHRpbmdPckN1dFBsYW5lKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Rml0dGluZ09yQ3V0UGxhbmVfdCogcEZpdHRpbmdPckN1dFBsYW5lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZWxlY3RFZGdlQ2hhbWZlcigKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEVkZ2VDaGFtZmVyX3QqIHBFZGdlQ2hhbWZlciwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0U3VyZmFjZVRyZWF0bWVudCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFN1cmZhY2VUcmVhdG1lbnRfdCogcFRyZWF0bWVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0V2VsZCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFdlbGRfdCogcFdlbGQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdFNpbmdsZVJlYmFyKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90U2luZ2xlUmViYXJfdCogcFNpbmdsZVJlYmFyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZWxlY3RSZWJhckdyb3VwKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJHcm91cF90KiBwUmViYXJHcm91cCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0UmViYXJCYXJzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90V2lyZV90KiBwV2lyZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0UmViYXJNZXNoKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJNZXNoX3QqIHBSZWJhck1lc2gsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdFJlYmFyU3RyYW5kKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJTdHJhbmRfdCogcFJlYmFyU3RyYW5kLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZWxlY3RSZWJhclNwbGljZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlYmFyU3BsaWNlX3QqIHBSZWJhclNwbGljZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0Q29udHJvbFBsYW5lKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q29udHJvbFBsYW5lX3QqIHBDb250cm9sUGxhbmUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdEdyaWRQbGFuZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEdyaWRQbGFuZV90KiBwR3JpZFBsYW5lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZWxlY3RHcmlkKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90R3JpZF90KiBwR3JpZCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0UmVmZXJlbmNlTW9kZWwoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RSZWZlcmVuY2VNb2RlbF90KiBwUmVmZXJlbmNlTW9kZWwsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdFJlZmVyZW5jZU1vZGVsT2JqZWN0KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmVmZXJlbmNlTW9kZWxPYmplY3RfdCogcFJlZmVyZW5jZU1vZGVsT2JqZWN0LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZWxlY3RUYXNrKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90VGFza190KiBwVGFzaywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0VGFza0RlcGVuZGVuY3koCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RUYXNrRGVwZW5kZW5jeV90KiBwVGFza0RlcGVuZGVuY3ksIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdFRhc2tXb3JrdHlwZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFRhc2tXb3JrdHlwZV90KiBwVGFza1dvcmt0eXBlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZWxlY3RMb2FkKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90TG9hZENvbW1vbkF0dHJpYnV0ZXNfdCogcExvYWRDb21tb25BdHRyaWJ1dGVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdExvYWRDbGFzc0F0dHJpYnV0ZXNfdCogcExvYWRDbGFzc0F0dHJpYnV0ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdExvYWRHcm91cCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdExvYWRHcm91cF90KiBwTG9hZEdyb3VwLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1My4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZWxlY3RBc3NlbWJseSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEFzc2VtYmx5X3QqIHBBc3NlbWJseSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0Q29tcG9uZW50KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90QmFzZUNvbXBvbmVudF90KiBwQmFzZUNvbXBvbmVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2VsZWN0UG91ck9iamVjdCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBvdXJPYmplY3RfdCogcFBvdXJPYmplY3QsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdFBvdXJCcmVhaygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBvdXJCcmVha190KiBwUG91ckJyZWFrLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlQYXJ0KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q29udG91cl90KiBwUDEsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UGFydF90KiBwUGFydCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5Qm9sdEdyb3VwKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Qm9sdFNoYXBlRGF0YV90KiBwQm9sdFNoYXBlRGF0YSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RCb2x0R3JvdXBfdCogcEJvbHRHcm91cCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5Qm9vbGVhblBhcnQoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RCb29sZWFuUGFydF90KiBwQm9vbGVhblBhcnQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1vZGlmeUZpdHRpbmdPckN1dFBsYW5lKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Rml0dGluZ09yQ3V0UGxhbmVfdCogcEZpdHRpbmdPckN1dFBsYW5lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlFZGdlQ2hhbWZlcigKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEVkZ2VDaGFtZmVyX3QqIHBFZGdlQ2hhbWZlciwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5U3VyZmFjZVRyZWF0bWVudCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFN1cmZhY2VUcmVhdG1lbnRfdCogcFRyZWF0bWVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5V2VsZCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFdlbGRfdCogcFdlbGQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1vZGlmeVNpbmdsZVJlYmFyKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90U2luZ2xlUmViYXJfdCogcFNpbmdsZVJlYmFyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlSZWJhckdyb3VwKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJHcm91cF90KiBwUmViYXJHcm91cCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5UmViYXJNZXNoKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJNZXNoX3QqIHBSZWJhck1lc2gsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1vZGlmeVJlYmFyU3RyYW5kKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmViYXJTdHJhbmRfdCogcFJlYmFyU3RyYW5kLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2OC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlSZWJhclNwbGljZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFJlYmFyU3BsaWNlX3QqIHBSZWJhclNwbGljZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5Q29udHJvbFBsYW5lKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q29udHJvbFBsYW5lX3QqIHBDb250cm9sUGxhbmUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDcwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1vZGlmeUdyaWRQbGFuZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdEdyaWRQbGFuZV90KiBwR3JpZFBsYW5lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlHcmlkKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90R3JpZF90KiBwR3JpZCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5UmVmZXJlbmNlTW9kZWwoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RSZWZlcmVuY2VNb2RlbF90KiBwUmVmZXJlbmNlTW9kZWwsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDczLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1vZGlmeVRhc2soCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RUYXNrX3QqIHBUYXNrLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlUYXNrRGVwZW5kZW5jeSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFRhc2tEZXBlbmRlbmN5X3QqIHBUYXNrRGVwZW5kZW5jeSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5VGFza1dvcmt0eXBlKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90VGFza1dvcmt0eXBlX3QqIHBUYXNrV29ya3R5cGUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDc2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1vZGlmeUxvYWQoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RMb2FkQ29tbW9uQXR0cmlidXRlc190KiBwTG9hZENvbW1vbkF0dHJpYnV0ZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90TG9hZENsYXNzQXR0cmlidXRlc190KiBwTG9hZENsYXNzQXR0cmlidXRlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5TG9hZEdyb3VwKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90TG9hZEdyb3VwX3QqIHBMb2FkR3JvdXAsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDc4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1vZGlmeUFzc2VtYmx5KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90QXNzZW1ibHlfdCogcEFzc2VtYmx5LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3OS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RCYXNlQ29tcG9uZW50X3QqIHBCYXNlQ29tcG9uZW50LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlQb3VyT2JqZWN0KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UG91ck9iamVjdF90KiBwUG91ck9iamVjdCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0SGllcmFyY2hpY0RlZmluaXRpb24oCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RIaWVyYXJjaGljRGVmaW5pdGlvbl90KiBwSGllcmFyY2hpY0RlZmluaXRpb24sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDgyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEhpZXJhcmNoaWNPYmplY3QoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RIaWVyYXJjaGljT2JqZWN0X3QqIHBIaWVyYXJjaGljT2JqZWN0LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4My4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRIaWVyYXJjaGljT2JqZWN0Q2hpbGRyZW5PcGVyYXRpb24oCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RIaWVyYXJjaGljTGlzdF90KiBwSGllcmFyY2hpY0xpc3QsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDg0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydERlbGV0ZU9iamVjdCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqIHBJZGVudGlmaWVyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRFbnVtZXJhdGVPYmplY3RzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90RW51bWVyYXRvcl90KiBwRW51bWVyYXRvciwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0R2V0U29saWQoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RTb2xpZF90KiBwU29saWQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDg3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEdldEludGVyc2VjdGlvblNvbGlkKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90SW50ZXJzZWN0aW9uU29saWRfdCogcFNvbGlkLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4OC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDb21taXRDaGFuZ2VzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90TW9kZWxDb21taXRfdCogcE1vZGVsQ29tbWl0LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4OS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRSdW5PclN0b3BDbGFzaENoZWNrKAogICAgICAgICAgICAmIzkxO2luXSBib29sIFJ1bm5pbmdDbGFzaENoZWNrLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRHZXREZXRlY3RlZENsYXNoKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q2xhc2hfdCogcENsYXNoLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRHZXROdW1iZXJPZkNsYXNoZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIHBDbGFzaGVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5Mi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRHZXREb3RUeXBlKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCogcE1vZGVsT2JqZWN0LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5My4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRHZXRQYXJ0TWFyaygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBhcnRNYXJrX3QqIHBQYXJ0TWFyaywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0R2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QqIHBNb2RlbE9iamVjdCwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgZ29uVyQqIHBDb29yZGluYXRlU3lzdGVtLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRHZXRQbGFuZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBsYW5lX3QqIHBQbGFuZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2V0UGxhbmUoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RQbGFuZV90KiBwUGxhbmUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDk3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEdldFRyYW5zZm9ybWF0aW9uUGxhbmUoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RUcmFuc2Zvcm1hdGlvblBsYW5lX3QqIHBQbGFuZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2V0VHJhbnNmb3JtYXRpb25QbGFuZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFRyYW5zZm9ybWF0aW9uUGxhbmVfdCogcFBsYW5lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5OS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZXRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFNldFByb3BlcnR5X3QqIHBQcm9wZXJ0eSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEdldFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RHZXRQcm9wZXJ0aWVzX3QqIHBQcm9wZXJ0aWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMDEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0R2V0U2V0TW9kZWxJbmZvKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90TW9kZWxJbmZvX3QqIHBJbmZvLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0R2V0UHJvamVjdEluZm8oCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RQcm9qZWN0SW5mb190KiBwSW5mbywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1vZGlmeVByb2plY3RJbmZvKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UHJvamVjdEluZm9fdCogcEluZm8sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRJbml0aWFsaXplQ29tcG9uZW50U3RhY2tzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRBZGRDb21wb25lbnRBdHRyaWJ1dGVUb1N0YWNrKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q29tcG9uZW50QXR0cmlidXRlX3QqIHBBdHRyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0QWRkQ29tcG9uZW50SW5wdXRUb1N0YWNrKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q29tcG9uZW50SW5wdXRPYmplY3RfdCogcE9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEdldENvbXBvbmVudElucHV0KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q29tcG9uZW50SW5wdXRPYmplY3RfdCogcE9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydExvYWRDb21wb25lbnRBdHRyaWJ1dGVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90QmFzZUNvbXBvbmVudF90KiBwQmFzZUNvbXBvbmVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEdldENvbXBvbmVudEF0dHJpYnV0ZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqIHBJZGVudGlmaWVyLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdENvbXBvbmVudEF0dHJpYnV0ZV90KiBwQXR0cmlidXRlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0R2V0SWRlbnRpZmllckJ5R1VJRCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdElkZW50aWZpZXJUb0dVSURfdCogcElkZW50aWZpZXJUb0dVSUQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRHZXROdW1iZXJpbmdVcFRvRGF0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gaW50IElkLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlUmVwb3J0KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q3JlYXRlUmVwb3J0RnJvbU1vZGVsX3QqIGFSZXBvcnQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnREaXNwbGF5UmVwb3J0KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEZpbGVuYW1lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0RGlzcGxheVByb21wdCgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBNZXNzYWdlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlTkMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RDcmVhdGVOQ0Zyb21Nb2RlbF90KiBhTkMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRSdW5NYWNybygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBGaWxlbmFtZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElzTWFjcm9SdW5uaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTYXZlQXNXZWJNb2RlbCgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFNhdmVBc1dlYk1vZGVsX3QqIHBTYXZlQXNXZWJNb2RlbCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydE1hbmlwdWxhdGVPYmplY3QoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RNYW5pcHVsYXRlT2JqZWN0X3QqIHBBcmd1bWVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydERyYXdUZW1wb3JhcnlUZXh0KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90RHJhd1RleHRfdCogcEFyZ3VtZW50LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0RHJhd1RlbXBvcmFyeVBvbHlMaW5lKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90RHJhd1BvbHlMaW5lX3QqIHBBcmd1bWVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydERyYXdUZW1wb3JhcnlQb2x5Z29uU3VyZmFjZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdERyYXdQb2x5Z29uU3VyZmFjZV90KiBwQXJndW1lbnQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZXRPYmplY3RQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBoYXNlX3QqIHBBcmd1bWVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEdldE9iamVjdFBoYXNlKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UGhhc2VfdCogcEFyZ3VtZW50LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0R2V0UGhhc2VOdW1iZXJzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UGhhc2VOdW1iZXJzX3QqIHBBcmd1bWVudCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEdldE1vZGlmaWNhdGlvblN0YW1wKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90TW9kaWZpY2F0aW9uU3RhbXBfdCogcE1vZFN0bXAsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRJbnNlcnRWaWV3KAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Vmlld190KiBWaWV3LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0TW9kaWZ5VmlldygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFZpZXdfdCogVmlldywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFNlbGVjdFZpZXcoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RWaWV3X3QqIHBWaWV3LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0R2V0Vmlld3MoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RWaWV3U2VsZWN0b3JfdCogcFZpZXdzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2V0UmVwcmVzZW50YXRpb24oCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgUmVwcmVzZW50YXRpb24sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRHZXRDbGlwUGxhbmVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Vmlld190KiBwRG90VmlldywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RHZXRDbGlwUGxhbmVzX3QqIHBEb3RHZXRDbGlwUGxhbmVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMzMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0Q3JlYXRlQ2xpcFBsYW5lKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Vmlld190KiBwRG90VmlldywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RDbGlwUGxhbmVfdCogcERvdENsaXBQbGFuZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTM0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydERlbGV0ZUNsaXBQbGFuZSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFZpZXdfdCogcERvdFZpZXcsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q2xpcFBsYW5lX3QqIHBEb3RDbGlwUGxhbmUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRNb2RpZnlDbGlwUGxhbmUoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RWaWV3X3QqIHBEb3RWaWV3LCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdENsaXBQbGFuZV90KiBwRG90Q2xpcFBsYW5lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMzYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0U2V0VGVtcG9yYXJ5U3RhdGUoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwT2JqZWN0SWQsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBwTmV3U3RhdGUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZXRUZW1wb3JhcnlTdGF0ZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RTZXRUZW1wb3JhcnlTdGF0ZXNfdCogcFNldFRlbXBvcmFyeVN0YXRlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTM4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydENsZWFyVGVtcG9yYXJ5U3RhdGUoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwT2JqZWN0SWQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRDbGVhckFsbFRlbXBvcmFyeVN0YXRlcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNDAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0R2V0Vmlld0NhbWVyYSgKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtzdHJ1Y3QmZ3Q7IGRvdFZpZXdfdCogcERvdFZpZXcsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Q2FtZXJhX3QqIHBEb3RDYW1lcmEsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHBvcnRTZXRWaWV3Q2FtZXJhKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90Vmlld190KiBwRG90VmlldywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RDYW1lcmFfdCogcERvdENhbWVyYSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydERhc1N0YXJ0Q29tbWFuZCgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBDb21tYW5kTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgUGFyYW1ldGVyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0RGFzU3RhcnRBY3Rpb24oCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQWN0aW9uTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgUGFyYW1ldGVyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhwb3J0UmVmcmVzaFJlZmVyZW5jZU1vZGVsKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90UmVmcmVzaFJlZmVyZW5jZU1vZGVsX3QqIFJlZnJlc2hSZWZlcmVuY2VNb2RlbCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQ1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydEludExpc3RIYW5kbGVyKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90bmV0SW50TGlzdF90KiBwSW50TGlzdCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQ2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEltcG9ydEludExpc3RIYW5kbGVyKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90bmV0SW50TGlzdF90KiBwSW50TGlzdCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQ3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFN0cmluZ0xpc3RIYW5kbGVyKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90bmV0U3RyaW5nTGlzdF90KiBwU3RyaW5nTGlzdCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQ4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEltcG9ydFN0cmluZ0xpc3RIYW5kbGVyKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O3N0cnVjdCZndDsgZG90bmV0U3RyaW5nTGlzdF90KiBwU3RyaW5nTGlzdCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQ5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4cG9ydFBvaW50TGlzdEhhbmRsZXIoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RuZXRQb2ludExpc3RfdCogcFBvaW50TGlzdCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEltcG9ydFBvaW50TGlzdEhhbmRsZXIoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7c3RydWN0Jmd0OyBkb3RuZXRQb2ludExpc3RfdCogcFBvaW50TGlzdCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDRGVsZWdhdGVXcmFwcGVyOwpDTFNJRCA9IHtCNkI3RkI4Ny0zRDI0LTM3MzUtQkFDRi05N0JGMDdEQTc4Mzh9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0NEZWxlZ2F0ZVdyYXBwZXIKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBJQ0RlbGVnYXRlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIERvdE5ldE1vZGVsUHJveHk7CkNMU0lEID0gezc0OUJEMkRBLUUwMTgtNDgxOS05QzY3LTFDNTFDMjcxOTY5Q307IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfRG90TmV0TW9kZWxQcm94eQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBSZW1vdGVyOwpDTFNJRCA9IHszRkMwQ0RCNy02RDcyLTQ4NTItOEZFNy1GRDdDRkIyNUYyMTl9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1JlbW90ZXIKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgU29saWQ7CkNMU0lEID0gezk2RDkzNDE5LThCMzAtNDBFNS05OTZBLUQxQ0Q3MzEyQjFERH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfU29saWQKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gU29saWRDcmVhdGlvblR5cGVFbnVtOwp7CiAgU29saWRDcmVhdGlvblR5cGVFbnVtX1JBVyA9IDAsCiAgU29saWRDcmVhdGlvblR5cGVFbnVtX0ZJVFRFRCA9IDEsCiAgU29saWRDcmVhdGlvblR5cGVFbnVtX05PUk1BTCA9IDIsCiAgU29saWRDcmVhdGlvblR5cGVFbnVtX0hJR0hfQUNDVVJBQ1kgPSAzLAogIFNvbGlkQ3JlYXRpb25UeXBlRW51bV9QTEFORUNVVFRFRCA9IDQKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90U29saWRfdDsKewogICBpbnQgU29saWRJZDsKICAgaW50IEZhY2VJbmRleDsKICAgaW50IExvb3BJbmRleDsKICAgaW50IFZlcnRleEluZGV4OwogICBpbnQgVmVydGV4U3RhcnROdW1iZXI7CiAgICZsdDsmZ3Q7ICBWZXJ0ZXhQb2ludDsKICAgJmx0O3N0cnVjdCZndDsgZG90UG9seWdvbl90IFBvbHlnb247CiAgIGludCBRdWVyeVR5cGU7CiAgIGludCBDcmVhdGlvblR5cGU7CiAgIGludCBSZXR1cm5WYWx1ZTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90SW50ZXJzZWN0aW9uU29saWRfdDsKewogICBpbnQgU29saWRJZDsKICAgaW50IEZhY2VJbmRleDsKICAgaW50IExvb3BJbmRleDsKICAgaW50IFZlcnRleEluZGV4OwogICAmbHQ7Jmd0OyAgSW50ZXJzZWN0aW9uUG9pbnQxOwogICAmbHQ7Jmd0OyAgSW50ZXJzZWN0aW9uUG9pbnQyOwogICAmbHQ7Jmd0OyAgSW50ZXJzZWN0aW9uUG9pbnQzOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RQb2x5Z29uX3QgUG9seWdvbjsKICAgaW50IFF1ZXJ5VHlwZTsKICAgaW50IENyZWF0aW9uVHlwZTsKICAgaW50IFJldHVyblZhbHVlOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgU3VyZmFjZVRyZWF0bWVudDsKQ0xTSUQgPSB7Nzk1QzhBMEQtRDNFMS00RkRBLTkyQ0ItQjE3RDA1NEZCOURDfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9TdXJmYWNlVHJlYXRtZW50Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBTdXJmYWNlVHlwZUVudW07CnsKICBTdXJmYWNlVHlwZUVudW1fQ09OQ1JFVEVfRklOSVNIID0gMSwKICBTdXJmYWNlVHlwZUVudW1fU1BFQ0lBTF9NSVggPSAyLAogIFN1cmZhY2VUeXBlRW51bV9USUxFX1NVUkZBQ0UgPSAzLAogIFN1cmZhY2VUeXBlRW51bV9TVEVFTF9GSU5JU0ggPSA0Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBTdXJmYWNlQ29sb3JFbnVtOwp7CiAgU3VyZmFjZUNvbG9yRW51bV9XSElURSA9IDEsCiAgU3VyZmFjZUNvbG9yRW51bV9SRUQgPSAyLAogIFN1cmZhY2VDb2xvckVudW1fR1JFRU4gPSAzLAogIFN1cmZhY2VDb2xvckVudW1fQkxVRSA9IDQsCiAgU3VyZmFjZUNvbG9yRW51bV9DWUFOID0gNSwKICBTdXJmYWNlQ29sb3JFbnVtX1lFTExPVyA9IDYsCiAgU3VyZmFjZUNvbG9yRW51bV9NQUdFTlRBID0gNwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RTdXJmYWNlVHJlYXRtZW50X3Q7CnsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBNb2RlbE9iamVjdDsKICAgaW50IFR5cGU7CiAgIGludCBDb2xvcjsKICAgJmx0O3N0cnVjdCZndDsgZG90TWF0ZXJpYWxfdCBNYXRlcmlhbDsKICAgJmx0O3N0cnVjdCZndDsgZG90UG9zaXRpb25fdCBQb3NpdGlvbjsKICAgJmx0O3N0cnVjdCZndDsgZG90Q29udG91cl90IFBvbHlnb247CiAgICZsdDsmZ3Q7ICBTdGFydFBvaW50OwogICAmbHQ7Jmd0OyAgRW5kUG9pbnQ7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBhcnRfdCBGYXRoZXI7CiAgIGRvdWJsZSBUaGlja25lc3M7CiAgVlRfQ0FSUkFZIGFOYW1lOwogIFZUX0NBUlJBWSBhQ2xhc3M7CiAgIGludCBDdXRCeUZhdGhlckJvb2xlYW5zOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgSW50TGlzdDsKQ0xTSUQgPSB7N0EyQUI0OUMtQUYxRC00M0NGLThCMzctREM3RUIxMkIyODE4fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9JbnRMaXN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90bmV0SW50TGlzdF90Owp7CiAgIGludCBJbmRleEN1cnJlbnRJdGVtOwogICBpbnQgTnVtYmVySXRlbXM7CiAgIGludCBOdW1iZXJJdGVtc0luU2V0OwogIFZUX0NBUlJBWSBhSW50TGlzdDsKICAgJmx0O3N0cnVjdCZndDsgZG90Q2xpZW50SWRfdCBDbGllbnRJZDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFBvaW50TGlzdDsKQ0xTSUQgPSB7MTJDMjBCOTYtMjA0Qi00RDE0LUE4QjgtQkNGNkQzMUZGNUJEfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Qb2ludExpc3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RuZXRQb2ludExpc3RfdDsKewogICBpbnQgSW5kZXhDdXJyZW50SXRlbTsKICAgaW50IE51bWJlckl0ZW1zOwogICBpbnQgTnVtYmVySXRlbXNJblNldDsKICBWVF9DQVJSQVkgYVBvaW50TGlzdDsKICAgJmx0O3N0cnVjdCZndDsgZG90Q2xpZW50SWRfdCBDbGllbnRJZDsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFN0cmluZ0xpc3Q7CkNMU0lEID0ge0MzNjAwNDJDLUQ3NTYtNDg1Qi04RDg2LTY0MzAzN0E4MDk3QX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfU3RyaW5nTGlzdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdG5ldFN0cmluZ0xpc3RfdDsKewogICBpbnQgSW5kZXhDdXJyZW50SXRlbTsKICBWVF9DQVJSQVkgQ3VycmVudEl0ZW07CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdENsaWVudElkX3QgQ2xpZW50SWQ7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDbGlwUGxhbmU7CkNMU0lEID0gezFGQkM1QzI0LTExRDQtNDQyQy1COTFDLUU5ODYyNDk0MTkwN307IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ2xpcFBsYW5lCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90Q2xpcFBsYW5lX3Q7CnsKICAgaW50IElkOwogICAmbHQ7Jmd0OyAgTG9jYXRpb247CiAgICZsdDsmZ3Q7ICBVcFZlY3RvcjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIENsaXBQbGFuZUNvbGxlY3Rpb247CkNMU0lEID0ge0RCQkUwODdFLTU3QkYtNDE5RS1BMjJELUQyRjE4MURCMkQ3OH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ2xpcFBsYW5lQ29sbGVjdGlvbgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDb2xvcjsKQ0xTSUQgPSB7QzNCQkEyRDYtRjk5Ri00RDBFLTk2ODgtQzAzNEUzMERBMTQ4fTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db2xvcgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdENvbG9yX3Q7CnsKICAgZG91YmxlIFJlZDsKICAgZG91YmxlIEdyZWVuOwogICBkb3VibGUgQmx1ZTsKICAgZG91YmxlIFRyYW5zcGFyZW5jeTsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFBpY2tJbnB1dDsKQ0xTSUQgPSB7MzRFMUY3NjgtRTJDNC00NzU5LUI0MUMtRUUyQTBEMzg0Q0JGfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9QaWNrSW5wdXQKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgR3JhcGhpY3NEcmF3ZXI7CkNMU0lEID0gezRDNDJBOTdGLThBMzYtNEFEOC04QTcyLTk4RDhDMUFDQ0M1NX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfR3JhcGhpY3NEcmF3ZXIKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3REcmF3VGV4dF90Owp7CiAgICZsdDsmZ3Q7ICBMb2NhdGlvbjsKICBWVF9DQVJSQVkgYVRleHQ7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdENvbG9yX3QgQ29sb3I7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdERyYXdQb2x5TGluZV90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdFBvbHlnb25fdCBQb2x5Z29uOwogICAmbHQ7c3RydWN0Jmd0OyBkb3RDb2xvcl90IENvbG9yOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3REcmF3UG9seWdvblN1cmZhY2VfdDsKewogICAmbHQ7c3RydWN0Jmd0OyBkb3RQb2x5Z29uX3QgUG9seWdvbjsKICAgJmx0O3N0cnVjdCZndDsgZG90Q29sb3JfdCBDb2xvcjsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIE1lc2g7CkNMU0lEID0gezNCRjNBNUI1LTlCQ0YtNDJDMC04MkM4LTJGOTFEMjU0MTgwNH07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTWVzaAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBUZWtsYV9TdHJ1Y3R1cmVzX01vZGVsX1VJX01vZGVsT2JqZWN0U2VsZWN0b3I7CkNMU0lEID0gezM3NjUwQTIzLUE5RTItNDk2Qi1CQkZDLUFCMENBMjk5MjU5Rn07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfVGVrbGFfU3RydWN0dXJlc19Nb2RlbF9VSV9Nb2RlbE9iamVjdFNlbGVjdG9yCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90VUlNb2RlbE9iamVjdFNlbGVjdG9yX3Q7CnsKICAgaW50IEZ1bmN0aW9uYWxpdHk7CiAgIGludCBuT2JqZWN0czsKICBWVF9DQVJSQVkgYU9iamVjdHM7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBNb2RlbFZpZXdFbnVtZXJhdG9yOwpDTFNJRCA9IHs4RTNGRkM3Qi04M0NCLTQ0NTItQTVEMy04MTBFMzJENDc1Qjd9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsVmlld0VudW1lcmF0b3IKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RWaWV3U2VsZWN0b3JfdDsKewogIFZUX0NBUlJBWSBWaWV3TnVtYmVyOwogICBpbnQgVmlld0NvdW50OwogICBpbnQgU2VsZWN0b3JUeXBlOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUGlja2VyOwpDTFNJRCA9IHtFQ0RCOUI4Ni04N0JFLTQwODUtQjBGMC1DOUEwNDIyMTUxRkZ9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1BpY2tlcgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBQaWNrUG9pbnRFbnVtOwp7CiAgUGlja1BvaW50RW51bV9QSUNLX09ORV9QT0lOVCA9IDAsCiAgUGlja1BvaW50RW51bV9QSUNLX1RXT19QT0lOVFMgPSAxLAogIFBpY2tQb2ludEVudW1fUElDS19QT0xZR09OID0gMiwKICBQaWNrUG9pbnRFbnVtX1BJQ0tfTElORSA9IDMsCiAgUGlja1BvaW50RW51bV9QSUNLX0ZBQ0UgPSA0Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBQaWNrT2JqZWN0RW51bTsKewogIFBpY2tPYmplY3RFbnVtX1BJQ0tfT05FX09CSkVDVCA9IDAsCiAgUGlja09iamVjdEVudW1fUElDS19PTkVfUEFSVCA9IDEsCiAgUGlja09iamVjdEVudW1fUElDS19PTkVfV0VMRCA9IDIsCiAgUGlja09iamVjdEVudW1fUElDS19PTkVfQk9MVEdST1VQID0gMywKICBQaWNrT2JqZWN0RW51bV9QSUNLX09ORV9SRUlORk9SQ0VNRU5UID0gNAp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gUGlja09iamVjdHNFbnVtOwp7CiAgUGlja09iamVjdHNFbnVtX1BJQ0tfTl9PQkpFQ1RTID0gMCwKICBQaWNrT2JqZWN0c0VudW1fUElDS19OX1BBUlRTID0gMSwKICBQaWNrT2JqZWN0c0VudW1fUElDS19OX1dFTERTID0gMiwKICBQaWNrT2JqZWN0c0VudW1fUElDS19OX0JPTFRHUk9VUFMgPSAzLAogIFBpY2tPYmplY3RzRW51bV9QSUNLX05fUkVJTkZPUkNFTUVOVFMgPSA0Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBTeW5jSGFuZGxlcjsKQ0xTSUQgPSB7MDk3NUYwRTItNjcyRC0zRjA1LUE0RjAtNkEyNkQ2QkFCN0FEfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9TeW5jSGFuZGxlcgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdFVJUGlja2VyX3Q7CnsKICAgaW50IFBpY2tUeXBlOwogICBpbnQgUGlja0VudW07CiAgIGludCBuUG9pbnRzOwogIFZUX0NBUlJBWSBQcm9tcHQ7CiAgVlRfQ0FSUkFZIGFYOwogIFZUX0NBUlJBWSBhWTsKICBWVF9DQVJSQVkgYVo7CiAgIGludCBQaWNrQ29tbWFuZFN0YXJ0OwogICBpbnQgTW9yZU9iamVjdHNMZWZ0OwogICBpbnQgbk9iamVjdHM7CiAgIGludCBuT2JqZWN0VG9TdGFydDsKICBWVF9DQVJSQVkgYU9iamVjdHM7CiAgVlRfQ0FSUkFZIGFPYmplY3RUeXBlczsKICAgCiogU3luY0NhbGxiYWNrOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gZG90VGVtcG9yYXJ5U3RhdGVzRW51bTsKewogIGRvdFRlbXBvcmFyeVN0YXRlc0VudW1fRE9UX1RFTVBPUkFSWV9TVEFURV9VTktOT1dOID0gMCwKICBkb3RUZW1wb3JhcnlTdGF0ZXNFbnVtX0RPVF9URU1QT1JBUllfU1RBVEVfTkVXID0gMSwKICBkb3RUZW1wb3JhcnlTdGF0ZXNFbnVtX0RPVF9URU1QT1JBUllfU1RBVEVfTU9ESUZJRUQgPSAyLAogIGRvdFRlbXBvcmFyeVN0YXRlc0VudW1fRE9UX1RFTVBPUkFSWV9TVEFURV9ERUxFVEVEID0gMywKICBkb3RUZW1wb3JhcnlTdGF0ZXNFbnVtX0RPVF9URU1QT1JBUllfU1RBVEVfRE1fT05HT0lORyA9IDQsCiAgZG90VGVtcG9yYXJ5U3RhdGVzRW51bV9ET1RfVEVNUE9SQVJZX1NUQVRFX1VOQ0hBTkdFRCA9IDUsCiAgZG90VGVtcG9yYXJ5U3RhdGVzRW51bV9ET1RfVEVNUE9SQVJZX1NUQVRFX0FDVElWRSA9IDYsCiAgZG90VGVtcG9yYXJ5U3RhdGVzRW51bV9ET1RfVEVNUE9SQVJZX1NUQVRFX09SSUdJTkFMID0gNywKICBkb3RUZW1wb3JhcnlTdGF0ZXNFbnVtX0RPVF9URU1QT1JBUllfU1RBVEVfQUNDRVBURUQgPSA4LAogIGRvdFRlbXBvcmFyeVN0YXRlc0VudW1fRE9UX1RFTVBPUkFSWV9TVEFURV9SRUpFQ1RFRCA9IDksCiAgZG90VGVtcG9yYXJ5U3RhdGVzRW51bV9ET1RfVEVNUE9SQVJZX1NUQVRFX0hJRERFTiA9IDEwLAogIGRvdFRlbXBvcmFyeVN0YXRlc0VudW1fRE9UX1RFTVBPUkFSWV9TVEFURV9WSVNJQkxFID0gMTEsCiAgZG90VGVtcG9yYXJ5U3RhdGVzRW51bV9ET1RfVEVNUE9SQVJZX1NUQVRFX1RSQU5TUEFSRU5UID0gMTIKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIGRvdFRlbXBvcmFyeVN0YXRlOwpDTFNJRCA9IHs5NEEzMzY0Mi0zRTM4LTNDMkItOEIxMy1EQ0FBRUY0NDRDOTR9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX2RvdFRlbXBvcmFyeVN0YXRlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90U2V0VGVtcG9yYXJ5U3RhdGVzX3Q7CnsKICAgJmx0O2VudW0mZ3Q7IGRvdFRlbXBvcmFyeVN0YXRlc0VudW0gU3RhdGU7CiAgIGludCBuT2JqZWN0czsKICBWVF9DQVJSQVkgYU9iamVjdHM7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBWaWV3OwpDTFNJRCA9IHtDNDVDNEU2QS1ENDQ2LTRGM0MtQjQzMS1CQjJBQUZDOEVFRUF9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1ZpZXcKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gVmlld1Byb2plY3Rpb25UeXBlOwp7CiAgVmlld1Byb2plY3Rpb25UeXBlX09SVEhPR09OQUxfUFJPSkVDVElPTiA9IDAsCiAgVmlld1Byb2plY3Rpb25UeXBlX1BFUlNQRUNUSVZFX1BST0pFQ1RJT04gPSAxCn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZW51bSBWaWV3UmVuZGVyaW5nVHlwZTsKewogIFZpZXdSZW5kZXJpbmdUeXBlX1dJUkVGUkFNRV9WSUVXID0gMCwKICBWaWV3UmVuZGVyaW5nVHlwZV9SRU5ERVJFRF9WSUVXID0gMQp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN0cnVjdCBkb3RWaWV3X3Q7CnsKICAgJmx0O2VudW0mZ3Q7IE9iamVjdCBJZGVudGlmaWVyOwogICBpbnQgTW9kaWZ5VHlwZTsKICBWVF9DQVJSQVkgYU5hbWU7CiAgICZsdDtlbnVtJmd0OyBnb25XJCBWaWV3Q29vcmRpbmF0ZVN5c3RlbTsKICAgJmx0O2VudW0mZ3Q7IGdvblckIERpc3BsYXlDb29yZGluYXRlU3lzdGVtOwogICAmbHQ7Jmd0OyAgTWluUG9pbnQ7CiAgICZsdDsmZ3Q7ICBNYXhQb2ludDsKICBWVF9DQVJSQVkgYVJlcHJlc2VudGF0aW9uOwogICBkb3VibGUgVmlld0RlcHRoVXA7CiAgIGRvdWJsZSBWaWV3RGVwdGhEb3duOwogICBpbnQgVmlld1Byb2plY3Rpb25UeXBlOwogICBpbnQgVmlld1JlbmRlcmluZ1R5cGU7CiAgICZsdDsmZ3Q7ICBab29tTWluUG9pbnQ7CiAgICZsdDsmZ3Q7ICBab29tTWF4UG9pbnQ7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3RydWN0IGRvdEdldENsaXBQbGFuZXNfdDsKewogICBpbnQgblBsYW5lczsKICBWVF9DQVJSQVkgYVBsYW5lSURzOwogIFZUX0NBUlJBWSBhWDsKICBWVF9DQVJSQVkgYVk7CiAgVlRfQ0FSUkFZIGFaOwogIFZUX0NBUlJBWSBhVXBYOwogIFZUX0NBUlJBWSBhVXBZOwogIFZUX0NBUlJBWSBhVXBaOwp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgVmlld0NhbWVyYTsKQ0xTSUQgPSB7QTkwRjFFNTAtQzM3QS00MTY4LUI0NjItNEQxNDY3Q0I3Q0ZEfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9WaWV3Q2FtZXJhCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90Q2FtZXJhX3Q7CnsKICAgJmx0OyZndDsgIExvY2F0aW9uOwogICAmbHQ7Jmd0OyAgRGlyZWN0aW9uVmVjdG9yOwogICAmbHQ7Jmd0OyAgVXBWZWN0b3I7CiAgIGRvdWJsZSBGaWVsZE9mVmlldzsKICAgZG91YmxlIFpvb21GYWN0b3I7Cn07CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBWaWV3SGFuZGxlcjsKQ0xTSUQgPSB7NjAwN0YzMkUtODFDNy00Q0Q1LUJBMTQtRDBFMzAxMTA1RkNEfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9WaWV3SGFuZGxlcgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBCYXNlV2VsZDsKQ0xTSUQgPSB7RkNEQTJCOTQtRDJDNS00RkM0LUI4QkItNjY0MkZCQUFENDMxfTsgCgovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlV2VsZAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdAovLyBJbXBsZW1lbnRlZCBpbnRlcmZhY2U6ICZsdDtJRGlzcGF0Y2gmZ3Q7IF9PYmplY3QKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gV2VsZFR5cGVFbnVtOwp7CiAgV2VsZFR5cGVFbnVtX1dFTERfVFlQRV9OT05FID0gMCwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX0VER0VfRkxBTkdFID0gMSwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX1NRVUFSRV9HUk9PVkVfU1FVQVJFX0JVVFQgPSAyLAogIFdlbGRUeXBlRW51bV9XRUxEX1RZUEVfQkVWRUxfR1JPT1ZFX1NJTkdMRV9WX0JVVFQgPSAzLAogIFdlbGRUeXBlRW51bV9XRUxEX1RZUEVfQkVWRUxfR1JPT1ZFX1NJTkdMRV9CRVZFTF9CVVRUID0gNCwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX1NJTkdMRV9WX0JVVFRfV0lUSF9CUk9BRF9ST09UX0ZBQ0UgPSA1LAogIFdlbGRUeXBlRW51bV9XRUxEX1RZUEVfU0lOR0xFX0JFVkVMX0JVVFRfV0lUSF9CUk9BRF9ST09UX0ZBQ0UgPSA2LAogIFdlbGRUeXBlRW51bV9XRUxEX1RZUEVfVV9HUk9PVkVfU0lOR0xFX1VfQlVUVCA9IDcsCiAgV2VsZFR5cGVFbnVtX1dFTERfVFlQRV9KX0dST09WRV9KX0JVVFQgPSA4LAogIFdlbGRUeXBlRW51bV9XRUxEX1RZUEVfQkVWRUxfQkFDS0lORyA9IDksCiAgV2VsZFR5cGVFbnVtX1dFTERfVFlQRV9GSUxMRVQgPSAxMCwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX1BMVUcgPSAxMSwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX1NQT1QgPSAxMiwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX1NFQU0gPSAxMywKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX1NMT1QgPSAxNCwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX0ZMQVJFX0JFVkVMX0dST09WRSA9IDE1LAogIFdlbGRUeXBlRW51bV9XRUxEX1RZUEVfRkxBUkVfVl9HUk9PVkUgPSAxNiwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX0NPUk5FUl9GTEFOR0UgPSAxNywKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX1BBUlRJQUxfUEVORVRSQVRJT05fU0lOR0xFX0JFVkVMX0JVVFRfUExVU19GSUxMRVQgPSAxOCwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX1BBUlRJQUxfUEVORVRSQVRJT05fU1FVQVJFX0dST09WRV9QTFVTX0ZJTExFVCA9IDE5LAogIFdlbGRUeXBlRW51bV9XRUxEX1RZUEVfTUVMVF9USFJPVUdIID0gMjAsCiAgV2VsZFR5cGVFbnVtX1NURUVQX0ZMQU5LRURfQkVWRUxfR1JPT1ZFX1NJTkdMRV9WX0JVVFQgPSAyMSwKICBXZWxkVHlwZUVudW1fU1RFRVBfRkxBTktFRF9CRVZFTF9HUk9PVkVfU0lOR0xFX0JFVkVMX0JVVFQgPSAyMiwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX0VER0UgPSAyMywKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX0lTT19TVVJGQUNJTkcgPSAyNCwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX0ZPTEQgPSAyNSwKICBXZWxkVHlwZUVudW1fV0VMRF9UWVBFX0lOQ0xJTkVEID0gMjYKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIFdlbGRDb250b3VyRW51bTsKewogIFdlbGRDb250b3VyRW51bV9XRUxEX0NPTlRPVVJfTk9ORSA9IDAsCiAgV2VsZENvbnRvdXJFbnVtX1dFTERfQ09OVE9VUl9GTFVTSCA9IDEsCiAgV2VsZENvbnRvdXJFbnVtX1dFTERfQ09OVE9VUl9DT05WRVggPSAyLAogIFdlbGRDb250b3VyRW51bV9XRUxEX0NPTlRPVVJfQ09OQ0FWRSA9IDMKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIFdlbGRGaW5pc2hFbnVtOwp7CiAgV2VsZEZpbmlzaEVudW1fV0VMRF9GSU5JU0hfTk9ORSA9IDAsCiAgV2VsZEZpbmlzaEVudW1fV0VMRF9GSU5JU0hfR1JJTkQgPSAxLAogIFdlbGRGaW5pc2hFbnVtX1dFTERfRklOSVNIX01BQ0hJTkUgPSAyLAogIFdlbGRGaW5pc2hFbnVtX1dFTERfRklOSVNIX0NISVAgPSAzLAogIFdlbGRGaW5pc2hFbnVtX1dFTERfRklOSVNIX0ZJTklTSEVEX1dFTEQgPSA0LAogIFdlbGRGaW5pc2hFbnVtX1dFTFNfRklOSVNIX1NNT09USF9UUkFOU0lUSU9OID0gNQp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gV2VsZEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uRW51bTsKewogIFdlbGRFbGVjdHJvZGVDbGFzc2lmaWNhdGlvbkVudW1fV0VMRF9FTEVDVFJPREVfQ0xBU1NJRklDQVRJT05fTk9ORSA9IDAsCiAgV2VsZEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uRW51bV9XRUxEX0VMRUNUUk9ERV9DTEFTU0lGSUNBVElPTl8zNSA9IDEsCiAgV2VsZEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uRW51bV9XRUxEX0VMRUNUUk9ERV9DTEFTU0lGSUNBVElPTl80MiA9IDIsCiAgV2VsZEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uRW51bV9XRUxEX0VMRUNUUk9ERV9DTEFTU0lGSUNBVElPTl81MCA9IDMsCiAgV2VsZEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uRW51bV9XRUxEX0VMRUNUUk9ERV9DTEFTU0lGSUNBVElPTl9FNjBYWCA9IDQsCiAgV2VsZEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uRW51bV9XRUxEX0VMRUNUUk9ERV9DTEFTU0lGSUNBVElPTl9FNzBYWCA9IDUsCiAgV2VsZEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uRW51bV9XRUxEX0VMRUNUUk9ERV9DTEFTU0lGSUNBVElPTl9FODBYWCA9IDYsCiAgV2VsZEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uRW51bV9XRUxEX0VMRUNUUk9ERV9DTEFTU0lGSUNBVElPTl9FOTBYWCA9IDcKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIFdlbGRQcm9jZXNzVHlwZUVudW07CnsKICBXZWxkUHJvY2Vzc1R5cGVFbnVtX1dFTERfUFJPQ0VTU19OT05FID0gMCwKICBXZWxkUHJvY2Vzc1R5cGVFbnVtX1dFTERfUFJPQ0VTU19TTUFXID0gMSwKICBXZWxkUHJvY2Vzc1R5cGVFbnVtX1dFTERfUFJPQ0VTU19TQVcgPSAyLAogIFdlbGRQcm9jZXNzVHlwZUVudW1fV0VMRF9QUk9DRVNTX0dNQVcgPSAzLAogIFdlbGRQcm9jZXNzVHlwZUVudW1fV0VMRF9QUk9DRVNTX0ZDQVcgPSA0LAogIFdlbGRQcm9jZXNzVHlwZUVudW1fV0VMRF9QUk9DRVNTX0VTVyA9IDUsCiAgV2VsZFByb2Nlc3NUeXBlRW51bV9XRUxEX1BST0NFU1NfRUdXID0gNgp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmVudW0gV2VsZE5EVEluc3BlY3Rpb25FbnVtOwp7CiAgV2VsZE5EVEluc3BlY3Rpb25FbnVtX1dFTERfTkRUX0lOU1BFQ1RJT05fTk9ORSA9IDAsCiAgV2VsZE5EVEluc3BlY3Rpb25FbnVtX1dFTERfTkRUX0lOU1BFQ1RJT05fQSA9IDEsCiAgV2VsZE5EVEluc3BlY3Rpb25FbnVtX1dFTERfTkRUX0lOU1BFQ1RJT05fQiA9IDIsCiAgV2VsZE5EVEluc3BlY3Rpb25FbnVtX1dFTERfTkRUX0lOU1BFQ1RJT05fQyA9IDMsCiAgV2VsZE5EVEluc3BlY3Rpb25FbnVtX1dFTERfTkRUX0lOU1BFQ1RJT05fRCA9IDQsCiAgV2VsZE5EVEluc3BlY3Rpb25FbnVtX1dFTERfTkRUX0lOU1BFQ1RJT05fRSA9IDUKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpzdHJ1Y3QgZG90V2VsZF90Owp7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTW9kZWxPYmplY3Q7CiAgICZsdDtzdHJ1Y3QmZ3Q7IGRvdE1vZGVsT2JqZWN0X3QgTWFpbk9iamVjdDsKICAgJmx0O3N0cnVjdCZndDsgZG90TW9kZWxPYmplY3RfdCBTZWNvbmRhcnlPYmplY3Q7CiAgIGRvdWJsZSBTaXplQWJvdmU7CiAgIGludCBUeXBlQWJvdmU7CiAgIGRvdWJsZSBBbmdsZUFib3ZlOwogICBpbnQgQ29udG91ckFib3ZlOwogICBpbnQgRmluaXNoQWJvdmU7CiAgIGRvdWJsZSBMZW5ndGhBYm92ZTsKICAgZG91YmxlIFBpdGNoQWJvdmU7CiAgIGRvdWJsZSBTaXplQmVsb3c7CiAgIGludCBUeXBlQmVsb3c7CiAgIGRvdWJsZSBBbmdsZUJlbG93OwogICBpbnQgQ29udG91ckJlbG93OwogICBpbnQgRmluaXNoQmVsb3c7CiAgIGRvdWJsZSBMZW5ndGhCZWxvdzsKICAgZG91YmxlIFBpdGNoQmVsb3c7CiAgVlRfQ0FSUkFZIGFSZWZlcmVuY2VUZXh0OwogICBpbnQgU2hvcFdlbGQ7CiAgIGludCBBcm91bmRXZWxkOwogICBkb3VibGUgUm9vdE9wZW5pbmdBYm92ZTsKICAgaW50IFBvc2l0aW9uOwogICBpbnQgU3RpdGNoV2VsZDsKICAgZG91YmxlIFJvb3RGYWNlQWJvdmU7CiAgIGRvdWJsZSBFZmZlY3RpdmVUaHJvYXRBYm92ZTsKICAgJmx0O3N0cnVjdCZndDsgZG90UG9seWdvbl90IFBvbHlnb247CiAgVlRfQ0FSUkFZIFByZWZpeEFib3ZlTGluZTsKICBWVF9DQVJSQVkgUHJlZml4QmVsb3dMaW5lOwogIFZUX0NBUlJBWSBTdGFuZGFyZDsKICAgaW50IEVsZWN0cm9kZUNsYXNzaWZpY2F0aW9uOwogICBkb3VibGUgRWxlY3Ryb2RlU3RyZW5ndGg7CiAgIGRvdWJsZSBFbGVjdHJvZGVDb2VmZmljaWVudDsKICAgaW50IFByb2Nlc3NUeXBlOwogICBpbnQgTkRUSW5zcGVjdGlvbjsKICBWVF9DQVJSQVkgTG9naWNhbFdlbGQ7CiAgIGludCBXZWxkTnVtYmVyOwogIFZUX0NBUlJBWSBXZWxkTnVtYmVyUHJlZml4OwogICBpbnQgQ29ubmVjdEFzc2VtYmxpZXM7CiAgIGludCBMb2dpY2FsV2VsZElEOwogICBkb3VibGUgUm9vdE9wZW5pbmdCZWxvdzsKICAgZG91YmxlIFJvb3RGYWNlQmVsb3c7CiAgIGRvdWJsZSBFZmZlY3RpdmVUaHJvYXRCZWxvdzsKfTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIExvZ2ljYWxXZWxkOwpDTFNJRCA9IHsxMUIxNzdGQS1CNkYzLTRDNEEtODhFMC1BOTU5N0I5MTY5NkR9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0xvZ2ljYWxXZWxkCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VXZWxkCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0Ci8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX09iamVjdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBXZWxkOwpDTFNJRCA9IHtDRTQ3REFBNS04M0UzLTQ0NTAtODJERC1BQzMwOTQxQUE2OTV9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX1dlbGQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZVdlbGQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgplbnVtIFdlbGRQb3NpdGlvbkVudW07CnsKICBXZWxkUG9zaXRpb25FbnVtX1dFTERfUE9TSVRJT05fUExVU19YID0gMSwKICBXZWxkUG9zaXRpb25FbnVtX1dFTERfUE9TSVRJT05fTUlOVVNfWCA9IDIsCiAgV2VsZFBvc2l0aW9uRW51bV9XRUxEX1BPU0lUSU9OX1BMVVNfWSA9IDMsCiAgV2VsZFBvc2l0aW9uRW51bV9XRUxEX1BPU0lUSU9OX01JTlVTX1kgPSA0LAogIFdlbGRQb3NpdGlvbkVudW1fV0VMRF9QT1NJVElPTl9QTFVTX1ogPSA1LAogIFdlbGRQb3NpdGlvbkVudW1fV0VMRF9QT1NJVElPTl9NSU5VU19aID0gNgp9OwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmNvY2xhc3MgUG9seWdvbldlbGQ7CkNMU0lEID0ge0VDNDVBRjVCLUZGMzYtNDFFMC1BOEMwLTY2OUZBRDkyOTZGMX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfUG9seWdvbldlbGQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZVdlbGQKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfT2JqZWN0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIFdvcmtQbGFuZUhhbmRsZXI7CkNMU0lEID0gezA4REVFRDRGLTMyRkEtMzZGMC04QzkxLUQ5RjhCQjQwMDQzRn07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfV29ya1BsYW5lSGFuZGxlcgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKY29jbGFzcyBDbGFzaENoZWNrRG9uZURlbGVnYXRlXzI7CkNMU0lEID0ge0YwQzJENTMzLTFDMDYtMzlCQi04ODA1LTI4NjU5RDc2NkJDNX07IAoKLy8gSW1wbGVtZW50ZWQgaW50ZXJmYWNlOiAmbHQ7SURpc3BhdGNoJmd0OyBfQ2xhc2hDaGVja0RvbmVEZWxlZ2F0ZV8yCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgpjb2NsYXNzIENsYXNoRGV0ZWN0ZWREZWxlZ2F0ZV8yOwpDTFNJRCA9IHtCNUY4QzQzQS04MDFFLTNFN0EtQTE5MS0yMjc4NERBNDgyN0J9OyAKCi8vIEltcGxlbWVudGVkIGludGVyZmFjZTogJmx0O0lEaXNwYXRjaCZndDsgX0NsYXNoRGV0ZWN0ZWREZWxlZ2F0ZV8yCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX09iamVjdDsKSUlEID0ge0ZCMkJGNDJDLUE3QjYtMzM3RS04NDNBLTkzMkY3RUEyMEI2Nn07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Nb2RlbE9iamVjdDsKSUlEID0ge0E4N0JCM0MwLTFCQjEtMzY5OS1CQTg5LUJEMThCQUY4ODhEM307IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Bc3NlbWJseTsKSUlEID0ge0VGOUI2MDlBLUIxMEYtMzYyMi1CRDcwLUM2QjdCQUJFQzcwQX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXNzZW1ibHlOdW1iZXIoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXNzZW1ibHlOdW1iZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRNYWluUGFydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0TWFpblBhcnQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBhcnQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTZWNvbmRhcmllcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFkZCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgSUFzc2VtYmxhYmxlKiBPYmplY3QsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBBZGRfMigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogQXNzZW1ibGFibGVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmVtb3ZlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqIE9iamVjdCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEFkZF8zKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfQXNzZW1ibHkqIEFzc2VtYmx5LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0QXNzZW1ibHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Fzc2VtYmx5KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN1YkFzc2VtYmxpZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRBc3NlbWJseVR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29tcGFyZVRvKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfQXNzZW1ibHkqIEFzc2VtYmx5VG9Db21wYXJlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Cb2x0R3JvdXA7CklJRCA9IHtFQkNBQUMxNS04RTUzLTMzREItQjI3MS1ENTRCQkY5MzFBMkV9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0U2l6ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdFNpemUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRTdGFuZGFyZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRTdGFuZGFyZCgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEJvbHRUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRocmVhZEluTWF0ZXJpYWwoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRocmVhZEluTWF0ZXJpYWwoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBCb2x0VGhyZWFkSW5NYXRlcmlhbEVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMZW5ndGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExlbmd0aCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3V0TGVuZ3RoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDdXRMZW5ndGgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dHJhTGVuZ3RoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRyYUxlbmd0aCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVG9sZXJhbmNlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUb2xlcmFuY2UoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGVUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEJvbHRIb2xlVHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTbG90dGVkSG9sZVgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNsb3R0ZWRIb2xlWCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2xvdHRlZEhvbGVZKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTbG90dGVkSG9sZVkoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJvdGF0ZVNsb3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSb3RhdGVTbG90cygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEJvbHRSb3RhdGVTbG90c0VudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FzaGVyMSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhc2hlcjEoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDY0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYXNoZXIyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FzaGVyMigKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhc2hlcjMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYXNoZXIzKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnV0MSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51dDEoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDcwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdXQyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnV0MigKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDczLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0KAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDc1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlMSgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGUyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTIoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDc4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlMygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGUzKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDgxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlNCgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGU1KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTUoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDg0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0VG9Cb2x0VG8oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4NS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydFRvQm9sdFRvKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRUb0JlQm9sdGVkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODcuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRUb0JlQm9sdGVkKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE90aGVyUGFydHNUb0JvbHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlyc3RQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkwLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaXJzdFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlY29uZFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTIuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlY29uZFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRQb3NpdGlvbnMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5NC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRPdGhlclBhcnRUb0JvbHQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIE0sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSZW1vdmVPdGhlclBhcnRUb0JvbHQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIE0sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5Ni4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRPdGhlclBhcnRzVG9Cb2x0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Cb2x0QXJyYXk7CklJRCA9IHs4MEVDMzk0QS04MURFLTNGMTUtOTA0MC1GRDVEMkU4NDIxM0Z9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0U2l6ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdFNpemUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRTdGFuZGFyZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRTdGFuZGFyZCgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEJvbHRUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRocmVhZEluTWF0ZXJpYWwoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRocmVhZEluTWF0ZXJpYWwoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBCb2x0VGhyZWFkSW5NYXRlcmlhbEVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMZW5ndGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExlbmd0aCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3V0TGVuZ3RoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDdXRMZW5ndGgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dHJhTGVuZ3RoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRyYUxlbmd0aCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVG9sZXJhbmNlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUb2xlcmFuY2UoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGVUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEJvbHRIb2xlVHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTbG90dGVkSG9sZVgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNsb3R0ZWRIb2xlWCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2xvdHRlZEhvbGVZKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTbG90dGVkSG9sZVkoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJvdGF0ZVNsb3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSb3RhdGVTbG90cygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEJvbHRSb3RhdGVTbG90c0VudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FzaGVyMSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhc2hlcjEoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDY0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYXNoZXIyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FzaGVyMigKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhc2hlcjMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYXNoZXIzKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnV0MSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51dDEoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDcwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdXQyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnV0MigKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDczLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0KAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDc1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlMSgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGUyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTIoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDc4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlMygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGUzKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDgxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlNCgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGU1KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTUoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDg0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0VG9Cb2x0VG8oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4NS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydFRvQm9sdFRvKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRUb0JlQm9sdGVkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODcuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRUb0JlQm9sdGVkKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE90aGVyUGFydHNUb0JvbHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlyc3RQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkwLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaXJzdFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlY29uZFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTIuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlY29uZFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRQb3NpdGlvbnMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5NC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRPdGhlclBhcnRUb0JvbHQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIE0sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSZW1vdmVPdGhlclBhcnRUb0JvbHQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIE0sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5Ni4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRPdGhlclBhcnRzVG9Cb2x0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQWRkQm9sdERpc3RYKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgRGlzdFgsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5OC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRCb2x0RGlzdFkoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBEaXN0WSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDk5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJlbW92ZUJvbHREaXN0WCgKICAgICAgICAgICAgJiM5MTtpbl0gaW50IEluZGV4LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJlbW92ZUJvbHREaXN0WSgKICAgICAgICAgICAgJiM5MTtpbl0gaW50IEluZGV4LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEJvbHREaXN0WENvdW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRCb2x0RGlzdFlDb3VudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Qm9sdERpc3RYKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgSW5kZXgsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRCb2x0RGlzdFkoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBJbmRleCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTA1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldEJvbHREaXN0WCgKICAgICAgICAgICAgJiM5MTtpbl0gaW50IEluZGV4LCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIERpc3RYLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTA2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldEJvbHREaXN0WSgKICAgICAgICAgICAgJiM5MTtpbl0gaW50IEluZGV4LCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIERpc3RZLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Cb2x0Q2lyY2xlOwpJSUQgPSB7NENDREQxOTYtNTMyMS0zREYwLTk3RTEtQzU2MUU4RkRDRTZCfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdFNpemUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRTaXplKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0U3RhbmRhcmQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0U3RhbmRhcmQoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBCb2x0VHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUaHJlYWRJbk1hdGVyaWFsKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUaHJlYWRJbk1hdGVyaWFsKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgQm9sdFRocmVhZEluTWF0ZXJpYWxFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGVuZ3RoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMZW5ndGgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEN1dExlbmd0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3V0TGVuZ3RoKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRyYUxlbmd0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0cmFMZW5ndGgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRvbGVyYW5jZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVG9sZXJhbmNlKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlVHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZVR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBCb2x0SG9sZVR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2xvdHRlZEhvbGVYKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTbG90dGVkSG9sZVgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNsb3R0ZWRIb2xlWSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2xvdHRlZEhvbGVZKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSb3RhdGVTbG90cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUm90YXRlU2xvdHMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBCb2x0Um90YXRlU2xvdHNFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU5LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0KAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjEuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0KAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhc2hlcjEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYXNoZXIxKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FzaGVyMigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhc2hlcjIoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDY2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYXNoZXIzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FzaGVyMygKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51dDEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdXQxKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnV0MigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51dDIoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDcyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdCgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGUxKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTEoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDc2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlMigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGUyKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDc5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlMygKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGU0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTQoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDgyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlNSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGU1KAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydFRvQm9sdFRvKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRUb0JvbHRUbygKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDg2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0VG9CZUJvbHRlZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDg3LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0VG9CZUJvbHRlZCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDg4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPdGhlclBhcnRzVG9Cb2x0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZpcnN0UG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5MC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlyc3RQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWNvbmRQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkyLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWNvbmRQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0UG9zaXRpb25zKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQWRkT3RoZXJQYXJ0VG9Cb2x0KAogICAgICAgICAgICAmIzkxO2luXSAKKiBNLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmVtb3ZlT3RoZXJQYXJ0VG9Cb2x0KAogICAgICAgICAgICAmIzkxO2luXSAKKiBNLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0T3RoZXJQYXJ0c1RvQm9sdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDk3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXJPZkJvbHRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDk4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXJPZkJvbHRzKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDk5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEaWFtZXRlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMDAuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERpYW1ldGVyKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQm9sdFhZTGlzdDsKSUlEID0gezUzMDQ1QTc0LUE0RkYtMzdDRC05MUM0LTYzNkEzOEZBNEQwMH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRTaXplKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb2x0U2l6ZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdFN0YW5kYXJkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdFN0YW5kYXJkKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHRUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgQm9sdFR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVGhyZWFkSW5NYXRlcmlhbCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVGhyZWFkSW5NYXRlcmlhbCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEJvbHRUaHJlYWRJbk1hdGVyaWFsRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExlbmd0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGVuZ3RoKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDdXRMZW5ndGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEN1dExlbmd0aCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0cmFMZW5ndGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dHJhTGVuZ3RoKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUb2xlcmFuY2UoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRvbGVyYW5jZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZVR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGVUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgQm9sdEhvbGVUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNsb3R0ZWRIb2xlWCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2xvdHRlZEhvbGVYKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTbG90dGVkSG9sZVkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNsb3R0ZWRIb2xlWSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUm90YXRlU2xvdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJvdGF0ZVNsb3RzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgQm9sdFJvdGF0ZVNsb3RzRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTcuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYxLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYXNoZXIxKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FzaGVyMSgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhc2hlcjIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYXNoZXIyKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FzaGVyMygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhc2hlcjMoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDY4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdXQxKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnV0MSgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51dDIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDcxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdXQyKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvbHQoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDc0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlMSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGUxKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDc3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlMigKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGUzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTMoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDgwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlNCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhvbGU0KAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSG9sZTUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDgzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIb2xlNSgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRUb0JvbHRUbygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDg1LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0VG9Cb2x0VG8oCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydFRvQmVCb2x0ZWQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4Ny4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydFRvQmVCb2x0ZWQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT3RoZXJQYXJ0c1RvQm9sdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDg5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaXJzdFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTAuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZpcnN0UG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2Vjb25kUG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5Mi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2Vjb25kUG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5My4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm9sdFBvc2l0aW9ucygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDk0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFkZE90aGVyUGFydFRvQm9sdCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogTSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDk1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJlbW92ZU90aGVyUGFydFRvQm9sdCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogTSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDk2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldE90aGVyUGFydHNUb0JvbHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5Ny4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRCb2x0RGlzdFgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBEaXN0WCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDk4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFkZEJvbHREaXN0WSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIERpc3RZLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Qm9sdERpc3RYQ291bnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEJvbHREaXN0WUNvdW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRCb2x0RGlzdFgoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBJbmRleCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEJvbHREaXN0WSgKICAgICAgICAgICAgJiM5MTtpbl0gaW50IEluZGV4LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0Jvb2xlYW47CklJRCA9IHtGOTcxRDc5RC00REMzLTNGNzEtOTEyNy0xMjQzQTVCNUYwOEV9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQm9vbGVhblBhcnQ7CklJRCA9IHsxRTFFRjE2Ni1BOEU1LTNBOTEtQTc2Ni1GNEQyQkFBQTc4NTV9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgQm9vbGVhblR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT3BlcmF0aXZlUGFydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcGVyYXRpdmVQYXJ0KAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0T3BlcmF0aXZlUGFydCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGFydCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ3V0UGxhbmU7CklJRCA9IHtCODIwQTAxMS1BMTc2LTNENTEtQjc2My0xQjYzMUMxNUU2REF9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQbGFuZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfUGxhbmUqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBsYW5lKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfUGxhbmUqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0VkZ2VDaGFtZmVyOwpJSUQgPSB7MUUwOThDNEYtQjYwMS0zRkQ0LUEyRDEtNjExNkM3RkFGNjAyfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2hhbWZlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDaGFtZmVyKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZpcnN0RW5kKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZpcnN0RW5kKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlY29uZEVuZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWNvbmRFbmQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlyc3RDaGFtZmVyRW5kVHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlyc3RDaGFtZmVyRW5kVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IENoYW1mZXJFbmRUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlY29uZENoYW1mZXJFbmRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWNvbmRDaGFtZmVyRW5kVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IENoYW1mZXJFbmRUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlY29uZEJldmVsRGltZW5zaW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWNvbmRCZXZlbERpbWVuc2lvbigKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlyc3RCZXZlbERpbWVuc2lvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlyc3RCZXZlbERpbWVuc2lvbigKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfRml0dGluZzsKSUlEID0gezg4MUYzNEE1LUZGMzEtM0U0QS04RjQ4LTdENTQ0MDYzMUY4NH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBsYW5lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9QbGFuZSoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbmUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9QbGFuZSogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ2xhc2hDaGVrZXJFdmVudDsKSUlEID0gezA4OTYwQkNDLTBGMTctM0EyQi1CMjkyLUI3QjZBNzM2QjBFOX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ2xhc2hDaGVja0RvbmVEZWxlZ2F0ZTsKSUlEID0ge0YxQTQ0Mzk3LUNBM0EtMzdCMi04N0NBLTlCN0QzOUQ3NDVGMn07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ2xhc2hEZXRlY3RlZERlbGVnYXRlOwpJSUQgPSB7M0ZGRTYwRTctRERFMC0zNjhCLThFNjYtRTFEQUZGRTg3NjJFfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9CYXNlQ29tcG9uZW50OwpJSUQgPSB7QjRBMEIyMjgtMTIzOS0zMTdGLUE3MjctQkQ4QzQ1MkE5MDUzfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcigKICAgICAgICAgICAgJiM5MTtpbl0gaW50IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFN0clZhbHVlCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0QXR0cmlidXRlXzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRBdHRyaWJ1dGVfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBEVmFsdWUKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogU3RyVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRBdHRyaWJ1dGVfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0QXR0cmlidXRlXzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBEVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkQXR0cmlidXRlc0Zyb21GaWxlKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEZpbGVuYW1lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Db21wb25lbnQ7CklJRCA9IHs4QjhFOTVGQi0xMzRGLTNFOUQtODY5MC1EODRDODgyMUFBREF9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnVtYmVyKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgU3RyVmFsdWUKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRBdHRyaWJ1dGVfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZQogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldEF0dHJpYnV0ZV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIERWYWx1ZQogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEF0dHJpYnV0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBTdHJWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldEF0dHJpYnV0ZV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRBdHRyaWJ1dGVfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIERWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWRBdHRyaWJ1dGVzRnJvbUZpbGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgRmlsZW5hbWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRBc3NlbWJseSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQXNzZW1ibHkqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0Q29tcG9uZW50SW5wdXQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db21wb25lbnRJbnB1dCogSSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvbXBvbmVudElucHV0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db21wb25lbnRJbnB1dCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb21wb25lbnRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Db21wb25lbnRJbnB1dDsKSUlEID0gezQ1RTlCREZCLTg5NjctMzQxOC1BNjAyLTZGNjg2ODk4NTY1MH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29weVRvKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBhcnJheSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBJbmRleAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvdW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN5bmNSb290KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIFZBUklBTlQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJc1N5bmNocm9uaXplZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRFbnVtZXJhdG9yKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQWRkT25lSW5wdXRQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogUCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFkZFR3b0lucHV0UG9zaXRpb25zKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBQb3NpdGlvbjEsIAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBQb3NpdGlvbjIsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRJbnB1dFBvbHlnb24oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Qb2x5Z29uKiBQLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQWRkSW5wdXRPYmplY3QoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCogTSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFkZElucHV0T2JqZWN0cygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogT2JqZWN0cywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ29ubmVjdGlvbjsKSUlEID0gezRCRTdBODE2LUMyNjQtMzc1OC1BRTk5LTIyQkI3ODg0MTkzQX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnVtYmVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXIoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0QXR0cmlidXRlKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBTdHJWYWx1ZQogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldEF0dHJpYnV0ZV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0QXR0cmlidXRlXzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgRFZhbHVlCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0QXR0cmlidXRlKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFN0clZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0QXR0cmlidXRlXzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldEF0dHJpYnV0ZV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogRFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZEF0dHJpYnV0ZXNGcm9tRmlsZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBGaWxlbmFtZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFVwVmVjdG9yKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFVwVmVjdG9yKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEF1dG9EaXJlY3Rpb25UeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBdXRvRGlyZWN0aW9uVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IMO/w7/Dv8O/OMK6w7Zkb3RFZGdlQ2hhbWZlcl90QXV0b0RpcmVjdGlvblR5cGUoCiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uVHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb25UeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTIuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvZGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGF0dXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UHJpbWFyeU9iamVjdCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiBNLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UHJpbWFyeU9iamVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0U2Vjb25kYXJ5T2JqZWN0KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqIE0sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRTZWNvbmRhcnlPYmplY3RzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBTZWNvbmRhcmllcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFNlY29uZGFyeU9iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0N1c3RvbVBhcnQ7CklJRCA9IHtERTcyMDlFOC02RjgxLTM4NTYtOUU3OS1BNUY3MUZFRTA1QjZ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnVtYmVyKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgU3RyVmFsdWUKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRBdHRyaWJ1dGVfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZQogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldEF0dHJpYnV0ZV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIERWYWx1ZQogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEF0dHJpYnV0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBTdHJWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldEF0dHJpYnV0ZV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRBdHRyaWJ1dGVfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIERWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWRBdHRyaWJ1dGVzRnJvbUZpbGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgRmlsZW5hbWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRBc3NlbWJseSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQXNzZW1ibHkqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0SW5wdXRQb3NpdGlvbnMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIFN0YXJ0UG9pbnQsIAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBFbmRQb2ludCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0YXJ0QW5kRW5kUG9zaXRpb25zKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFN0YXJ0UG9pbnQsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIEVuZFBvaW50LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29tcG9uZW50cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfRGV0YWlsOwpJSUQgPSB7RkUxN0ZERDgtOERDMy0zRDdBLUFENTQtQkNFODRFQzY5RTgxfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcigKICAgICAgICAgICAgJiM5MTtpbl0gaW50IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFN0clZhbHVlCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0QXR0cmlidXRlXzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRBdHRyaWJ1dGVfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBEVmFsdWUKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogU3RyVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRBdHRyaWJ1dGVfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0QXR0cmlidXRlXzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgQXR0ck5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBEVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkQXR0cmlidXRlc0Zyb21GaWxlKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEZpbGVuYW1lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtpbl0gaW50IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVXBWZWN0b3IoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVXBWZWN0b3IoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXV0b0RpcmVjdGlvblR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEF1dG9EaXJlY3Rpb25UeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgw7/Dv8O/w784wrrDtmRvdEVkZ2VDaGFtZmVyX3RBdXRvRGlyZWN0aW9uVHlwZSgKIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb25UeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvblR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QgcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXRhaWxUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXRhaWxUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1My4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvZGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDU1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGF0dXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UHJpbWFyeU9iamVjdCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiBNLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UHJpbWFyeU9iamVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UmVmZXJlbmNlUG9pbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIFJlZmVyZW5jZVBvaW50LCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVmZXJlbmNlUG9pbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1NlYW07CklJRCA9IHtFMkZDNUQzNC03OUQyLTNBNkMtOTUyQS0xRDg1MUU3QTJGNkR9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnVtYmVyKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgU3RyVmFsdWUKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRBdHRyaWJ1dGVfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZQogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldEF0dHJpYnV0ZV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIERWYWx1ZQogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEF0dHJpYnV0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBTdHJWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldEF0dHJpYnV0ZV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEF0dHJOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRBdHRyaWJ1dGVfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBBdHRyTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIERWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWRBdHRyaWJ1dGVzRnJvbUZpbGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgRmlsZW5hbWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVXBWZWN0b3IoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVXBWZWN0b3IoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXV0b0RpcmVjdGlvblR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEF1dG9EaXJlY3Rpb25UeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgw7/Dv8O/w784wrrDtmRvdEVkZ2VDaGFtZmVyX3RBdXRvRGlyZWN0aW9uVHlwZSgKIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXV0b1Bvc2l0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXV0b1Bvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTAuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvZGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXR1cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQcmltYXJ5T2JqZWN0KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqIE0sIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQcmltYXJ5T2JqZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ni4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRTZWNvbmRhcnlPYmplY3QoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCogTSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFNlY29uZGFyeU9iamVjdHMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIFNlY29uZGFyaWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U2Vjb25kYXJ5T2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldElucHV0UG9zaXRpb25zKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBTdGFydFBvaW50LCAKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogRW5kUG9pbnQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdGFydEFuZEVuZFBvc2l0aW9ucygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBTdGFydFBvaW50LCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBFbmRQb2ludCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ29udG91cjsKSUlEID0gezQwMTg1MzRCLTI5ODctMzNGNC1CMjk5LTBDNDFBMTc4OTYwRX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbnRvdXJQb2ludHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDb250b3VyUG9pbnRzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRDb250b3VyUG9pbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db250b3VyUG9pbnQqIFBvaW50CiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Db250b3VyUG9pbnQ7CklJRCA9IHsyQTMzREQ2OS05MkRCLTMyQjEtQTgyNy05MzlCOTQ2M0JFOUZ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRyYW5zbGF0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFgsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgWSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBaCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBaZXJvKAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgWCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBZKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBZKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBaKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBaKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDaGFtZmVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENoYW1mZXIoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQb2ludCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogUAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfUGxhbmU7CklJRCA9IHtGQTJFMkRBMi0xRkRBLTM1MDYtODFENC1GQ0U2RjFFNDQ5NDh9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcmlnaW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcmlnaW4oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBeGlzWCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEF4aXNYKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXhpc1koCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXhpc1koCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1BvbHlnb247CklJRCA9IHtGOUM3OTJDNC04ODFBLTM1OEItOTg3Qy03QjhBMjg3NkY1NEN9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb2ludHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb2ludHMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1RyYW5zZm9ybWF0aW9uUGxhbmU7CklJRCA9IHswQTA3RTg3Qi0xQjBCLTMyMzYtQkNDMy1ERTA2OUREMkIyQ0Z9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUcmFuc2Zvcm1hdGlvbk1hdHJpeFRvR2xvYmFsKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtzdHJ1Y3QmZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUcmFuc2Zvcm1hdGlvbk1hdHJpeFRvTG9jYWwoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O3N0cnVjdCZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ29udHJvbFBsYW5lOwpJSUQgPSB7Rjc1Njg5NDMtODlGQS0zREU0LUEyRUYtMEJFMDhBNjJFNTEwfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbmUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX1BsYW5lKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQbGFuZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX1BsYW5lKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElzTWFnbmV0aWMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJc01hZ25ldGljKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfR3JpZDsKSUlEID0gezRBQzNGREIyLTlFREItMzVFQy05MzE1LTI5RUM5MUU4RDk0NH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29vcmRpbmF0ZVgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDb29yZGluYXRlWCgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvb3JkaW5hdGVZKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29vcmRpbmF0ZVkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDb29yZGluYXRlWigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvb3JkaW5hdGVaKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGFiZWxYKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGFiZWxYKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGFiZWxZKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGFiZWxZKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGFiZWxaKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGFiZWxaKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0ZW5zaW9uTGVmdFgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dGVuc2lvbkxlZnRYKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25MZWZ0WSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0ZW5zaW9uTGVmdFkoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dGVuc2lvbkxlZnRaKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25MZWZ0WigKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0ZW5zaW9uUmlnaHRYKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25SaWdodFgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dGVuc2lvblJpZ2h0WSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0ZW5zaW9uUmlnaHRZKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25SaWdodFooCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dGVuc2lvblJpZ2h0WigKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSXNNYWduZXRpYygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElzTWFnbmV0aWMoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25Gb3JNYWduZXRpY0FyZWEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dGVuc2lvbkZvck1hZ25ldGljQXJlYSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29sb3IoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbG9yKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfR3JpZFBsYW5lOwpJSUQgPSB7QjI0NTJEMUUtMkY5Ny0zRTRDLTgyQkMtQTVGQzg1RjE0RDg0fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbmUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX1BsYW5lKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQbGFuZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX1BsYW5lKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfR3JpZCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfR3JpZCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMYWJlbCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExhYmVsKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29sb3IoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbG9yKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJc01hZ25ldGljKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSXNNYWduZXRpYygKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dGVuc2lvbkZvck1hZ25ldGljQXJlYSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0ZW5zaW9uRm9yTWFnbmV0aWNBcmVhKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25MZWZ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25MZWZ0KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25SaWdodCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0ZW5zaW9uUmlnaHQoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dGVuc2lvbkJlbG93KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRlbnNpb25CZWxvdygKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0ZW5zaW9uQWJvdmUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dGVuc2lvbkFib3ZlKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEcmF3aW5nVmlzaWJpbGl0eSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERyYXdpbmdWaXNpYmlsaXR5KAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0hpZXJhcmNoaWNEZWZpbml0aW9uOwpJSUQgPSB7NjhEMTQyMTItRUJFNi0zNUU4LUIxNjEtNTZCMUY1NzQ4MTNEfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDdXN0b21UeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3VzdG9tVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhpZXJhcmNoeVR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhpZXJhcmNoeVR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBIaWVyYXJjaGljRGVmaW5pdGlvblR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9IaWVyYXJjaGljRGVmaW5pdGlvbioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfSGllcmFyY2hpY0RlZmluaXRpb24qIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSGllcmFyY2h5SWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhpZXJhcmNoeUlkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEcmF3YWJsZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERyYXdhYmxlKAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSGllcmFyY2hpY0NoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEhpZXJhcmNoaWNDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFkZE9iamVjdHMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE9iamVjdHMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSZW1vdmVPYmplY3RzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBPYmplY3RzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9IaWVyYXJjaGljT2JqZWN0OwpJSUQgPSB7NjM2MzIwRTQtMDI3Qi0zNDY3LTgzRUQtREZGQjkxNTU2M0JEfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWZpbml0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9IaWVyYXJjaGljRGVmaW5pdGlvbioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVmaW5pdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX0hpZXJhcmNoaWNEZWZpbml0aW9uKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfSGllcmFyY2hpY09iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfSGllcmFyY2hpY09iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBIaWVyYXJjaGljQ2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSGllcmFyY2hpY0NoaWxkcmVuKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQWRkT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogT2JqZWN0cywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJlbW92ZU9iamVjdHMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE9iamVjdHMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX01vZGVsSGlzdG9yeTsKSUlEID0gezEwNkU5ODcxLTZERUQtMzYwMC1BQTU2LTYzMENFREJFN0IzM307IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfTW9kaWZpY2F0aW9uU3RhbXA7CklJRCA9IHs0QThFOUU5NS1FQkJELTM2REUtOUVDNS1FMzI2QkU4MTdEMUJ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2NhbFN0YW1wKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvY2FsU3RhbXAoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VydmVyU3RhbXAoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VydmVyU3RhbXAoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Mb2FkOwpJSUQgPSB7MDhBM0RDRTMtRTY1Mi0zNUVFLTlFNUEtN0YxRTRBQzk3OTU0fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVySWQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVySWQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3Bhbm5pbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYW5uaW5nKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgTG9hZFNwYW5uaW5nRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByaW1hcnlBeGlzRGlyZWN0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByaW1hcnlBeGlzRGlyZWN0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEF1dG9tYXRpY1ByaW1hcnlBeGlzV2VpZ2h0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXV0b21hdGljUHJpbWFyeUF4aXNXZWlnaHQoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXZWlnaHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdlaWdodCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZERpc3BlcnNpb25BbmdsZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZERpc3BlcnNpb25BbmdsZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3JlYXRlRml4ZWRTdXBwb3J0Q29uZGl0aW9uc0F1dG9tYXRpY2FsbHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDcmVhdGVGaXhlZFN1cHBvcnRDb25kaXRpb25zQXV0b21hdGljYWxseSgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWRBdHRhY2htZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkQXR0YWNobWVudCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IExvYWRBdHRhY2htZW50RW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnROYW1lcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydE5hbWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgTG9hZFBhcnROYW1lc0VudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0RmlsdGVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydEZpbHRlcigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHkoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHooCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHooCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyb3VwKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyb3VwKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Mb2FkQXJlYTsKSUlEID0gezE0RTMzMjE0LTI5NDctMzc2Ni05MkJBLTRGOEVBRTQzREFDOX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcklkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcklkKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYW5uaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFubmluZygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IExvYWRTcGFubmluZ0VudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcmltYXJ5QXhpc0RpcmVjdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcmltYXJ5QXhpc0RpcmVjdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBdXRvbWF0aWNQcmltYXJ5QXhpc1dlaWdodCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEF1dG9tYXRpY1ByaW1hcnlBeGlzV2VpZ2h0KAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2VpZ2h0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXZWlnaHQoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWREaXNwZXJzaW9uQW5nbGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWREaXNwZXJzaW9uQW5nbGUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENyZWF0ZUZpeGVkU3VwcG9ydENvbmRpdGlvbnNBdXRvbWF0aWNhbGx5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3JlYXRlRml4ZWRTdXBwb3J0Q29uZGl0aW9uc0F1dG9tYXRpY2FsbHkoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkQXR0YWNobWVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZEF0dGFjaG1lbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBMb2FkQXR0YWNobWVudEVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0TmFtZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnROYW1lcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IExvYWRQYXJ0TmFtZXNFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydEZpbHRlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRGaWx0ZXIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER4KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER4KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDU1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER5KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER6KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER6KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcm91cCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcm91cCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbjEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24xKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uMigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbjIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24zKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uMygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQMSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY3LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQMSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDY4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQMigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY5LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQMigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQMygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcxLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQMygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQNCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDczLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQNCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDc0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkRm9ybSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZEZvcm0oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBBcmVhTG9hZEZvcm1FbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGlzdGFuY2VBKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDc3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEaXN0YW5jZUEoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Mb2FkR3JvdXA7CklJRCA9IHs4QjBCMDJDRi0yOTg3LTMxQTItOUQ4Qy1DNjg0NDFDNTNBODN9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcm91cE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcm91cE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcm91cFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyb3VwVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IExvYWRHcm91cFR5cGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEaXJlY3Rpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERpcmVjdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IExvYWRHcm91cERpcmVjdGlvbiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbXBhdGlibGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbXBhdGlibGUoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluY29tcGF0aWJsZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5jb21wYXRpYmxlKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDb2xvcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29sb3IoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBDb2xvcnMgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfTG9hZExpbmU7CklJRCA9IHs4Q0M4RURCQS0xODc0LTNEMTctQTA4NS1DOTc1OUI3NDBFNkN9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXJJZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXJJZCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFubmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3Bhbm5pbmcoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBMb2FkU3Bhbm5pbmdFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJpbWFyeUF4aXNEaXJlY3Rpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJpbWFyeUF4aXNEaXJlY3Rpb24oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXV0b21hdGljUHJpbWFyeUF4aXNXZWlnaHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBdXRvbWF0aWNQcmltYXJ5QXhpc1dlaWdodCgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdlaWdodCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2VpZ2h0KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkRGlzcGVyc2lvbkFuZ2xlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkRGlzcGVyc2lvbkFuZ2xlKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDcmVhdGVGaXhlZFN1cHBvcnRDb25kaXRpb25zQXV0b21hdGljYWxseSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENyZWF0ZUZpeGVkU3VwcG9ydENvbmRpdGlvbnNBdXRvbWF0aWNhbGx5KAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZEF0dGFjaG1lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWRBdHRhY2htZW50KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgTG9hZEF0dGFjaG1lbnRFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydE5hbWVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0TmFtZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBMb2FkUGFydE5hbWVzRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRGaWx0ZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0RmlsdGVyKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm91bmRpbmdCb3hEeCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm91bmRpbmdCb3hEeCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm91bmRpbmdCb3hEeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm91bmRpbmdCb3hEeSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm91bmRpbmdCb3hEeigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQm91bmRpbmdCb3hEeigKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR3JvdXAoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR3JvdXAoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24xKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjEuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uMSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbjIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2My4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24yKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFAxKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFAxKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFAyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjcuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFAyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRvcnNpb24xKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDY5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUb3JzaW9uMSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVG9yc2lvbjIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRvcnNpb24yKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDcyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkRm9ybSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZEZvcm0oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBMaW5lTG9hZEZvcm1FbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGlzdGFuY2VBKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDc1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEaXN0YW5jZUEoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERpc3RhbmNlQigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGlzdGFuY2VCKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfTG9hZFBvaW50OwpJSUQgPSB7OUFBNjczQzYtNzJCNC0zNUQ4LUI4M0QtNTUwMEQxRDE4ODRCfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVySWQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVySWQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3Bhbm5pbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYW5uaW5nKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgTG9hZFNwYW5uaW5nRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByaW1hcnlBeGlzRGlyZWN0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByaW1hcnlBeGlzRGlyZWN0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEF1dG9tYXRpY1ByaW1hcnlBeGlzV2VpZ2h0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXV0b21hdGljUHJpbWFyeUF4aXNXZWlnaHQoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXZWlnaHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdlaWdodCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZERpc3BlcnNpb25BbmdsZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZERpc3BlcnNpb25BbmdsZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3JlYXRlRml4ZWRTdXBwb3J0Q29uZGl0aW9uc0F1dG9tYXRpY2FsbHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDcmVhdGVGaXhlZFN1cHBvcnRDb25kaXRpb25zQXV0b21hdGljYWxseSgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWRBdHRhY2htZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkQXR0YWNobWVudCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IExvYWRBdHRhY2htZW50RW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnROYW1lcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydE5hbWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgTG9hZFBhcnROYW1lc0VudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0RmlsdGVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydEZpbHRlcigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHkoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHooCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJvdW5kaW5nQm94RHooCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyb3VwKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyb3VwKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjEuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFAoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2My4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDY0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb21lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9tZW50KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Mb2FkVW5pZm9ybTsKSUlEID0ge0ZBRkNBNTY2LTZFQzctMzBBMy1BODM5LTlGQjczMjU5NjQxRn07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcklkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcklkKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYW5uaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFubmluZygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IExvYWRTcGFubmluZ0VudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcmltYXJ5QXhpc0RpcmVjdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcmltYXJ5QXhpc0RpcmVjdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBdXRvbWF0aWNQcmltYXJ5QXhpc1dlaWdodCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEF1dG9tYXRpY1ByaW1hcnlBeGlzV2VpZ2h0KAogICAgICAgICAgICAmIzkxO2luXSBib29sIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2VpZ2h0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXZWlnaHQoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWREaXNwZXJzaW9uQW5nbGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvYWREaXNwZXJzaW9uQW5nbGUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENyZWF0ZUZpeGVkU3VwcG9ydENvbmRpdGlvbnNBdXRvbWF0aWNhbGx5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3JlYXRlRml4ZWRTdXBwb3J0Q29uZGl0aW9uc0F1dG9tYXRpY2FsbHkoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2FkQXR0YWNobWVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9hZEF0dGFjaG1lbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBMb2FkQXR0YWNobWVudEVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0TmFtZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnROYW1lcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IExvYWRQYXJ0TmFtZXNFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydEZpbHRlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnRGaWx0ZXIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER4KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER4KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDU1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER5KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER6KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCb3VuZGluZ0JveER6KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcm91cCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcm91cCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb2x5Z29uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Qb2x5Z29uKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYxLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb2x5Z29uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfUG9seWdvbiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQMSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQMSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDY0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEaXN0YW5jZUEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERpc3RhbmNlQSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0NoYW1mZXI7CklJRCA9IHtGQUNFRDM0NC03QjE2LTNCQzktOTc5QS1BM0Q0OUM4QzlGRDl9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBDaGFtZmVyVHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgWCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBZKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBZKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEWjEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERaMSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRFoyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEWjIoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9QaGFzZUNvbGxlY3Rpb247CklJRCA9IHs1OUJGRkM2Ni1BMUI3LTNCM0MtQkZCRi1GQjMzNkU0NzZBODZ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0lucHV0SXRlbTsKSUlEID0gezVEOURFMDRCLUY5OUMtMzZCMy05OTJBLTAyOUQyMjJDOEVFMH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW5wdXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RGF0YSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBWQVJJQU5UKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9EZWZvcm1pbmdEYXRhOwpJSUQgPSB7RUY4MzVEMjMtNzQ5Ni0zRURELUJDREMtNzE1RUY1QjM5MTBCfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQW5nbGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQW5nbGUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQW5nbGUyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFuZ2xlMigKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDYW1iZXJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENhbWJlcmluZygKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2hvcnRlbmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2hvcnRlbmluZygKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0V2ZW50czsKSUlEID0gezY3NjBGMDAxLTI1NjctM0U5Qi05NzIyLUQyNzNDNjJCRTJENn07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0TGlmZXRpbWVTZXJ2aWNlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIFZBUklBTlQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluaXRpYWxpemVMaWZldGltZVNlcnZpY2UoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gVkFSSUFOVCogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3JlYXRlT2JqUmVmKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiByZXF1ZXN0ZWRUeXBlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgYWRkX1NlbGVjdGlvbkNoYW5nZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogVmFsdWUKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIHJlbW92ZV9TZWxlY3Rpb25DaGFuZ2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFZhbHVlCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgYWRkX01vZGVsU2F2ZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogVmFsdWUKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCByZW1vdmVfTW9kZWxTYXZlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBWYWx1ZQogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIGFkZF9Nb2RlbExvYWQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFZhbHVlCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgcmVtb3ZlX01vZGVsTG9hZCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogVmFsdWUKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBhZGRfTnVtYmVyaW5nKAogICAgICAgICAgICAmIzkxO2luXSAKKiBWYWx1ZQogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIHJlbW92ZV9OdW1iZXJpbmcoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFZhbHVlCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgYWRkX01vZGVsQ2hhbmdlZCgKICAgICAgICAgICAgJiM5MTtpbl0gCiogVmFsdWUKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCByZW1vdmVfTW9kZWxDaGFuZ2VkKAogICAgICAgICAgICAmIzkxO2luXSAKKiBWYWx1ZQogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIGFkZF9UZWtsYVN0cnVjdHVyZXNFeGl0KAogICAgICAgICAgICAmIzkxO2luXSAKKiBWYWx1ZQogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIHJlbW92ZV9UZWtsYVN0cnVjdHVyZXNFeGl0KAogICAgICAgICAgICAmIzkxO2luXSAKKiBWYWx1ZQogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIGFkZF9DbGFzaENoZWNrRG9uZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogVmFsdWUKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCByZW1vdmVfQ2xhc2hDaGVja0RvbmUoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFZhbHVlCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgYWRkX0NsYXNoRGV0ZWN0ZWQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFZhbHVlCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgcmVtb3ZlX0NsYXNoRGV0ZWN0ZWQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFZhbHVlCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT25TZWxlY3Rpb25DaGFuZ2UoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgZXZlbnROYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gU0FGRUFSUkFZIHBhcmFtZXRlcnMKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPbk1vZGVsU2F2ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBldmVudE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBTQUZFQVJSQVkgcGFyYW1ldGVycwogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9uTW9kZWxMb2FkKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIGV2ZW50TmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIFNBRkVBUlJBWSBwYXJhbWV0ZXJzCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT25OdW1iZXJpbmcoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgZXZlbnROYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gU0FGRUFSUkFZIHBhcmFtZXRlcnMKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPbkRiQ29tbWl0KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIGV2ZW50TmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIFNBRkVBUlJBWSBwYXJhbWV0ZXJzCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT25UZWtsYVN0cnVjdHVyZXNFeGl0KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIGV2ZW50TmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIFNBRkVBUlJBWSBwYXJhbWV0ZXJzCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT25DbGFzaENoZWNrRG9uZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBldmVudE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBTQUZFQVJSQVkgcGFyYW1ldGVycwogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9uQ2xhc2hEZXRlY3RlZCgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBldmVudE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBTQUZFQVJSQVkgcGFyYW1ldGVycwogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJlZ2lzdGVyKAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFVuUmVnaXN0ZXIoCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9TZWxlY3Rpb25DaGFuZ2VEZWxlZ2F0ZTsKSUlEID0gezg2NkNCQTY0LUVDM0UtM0I4NS1BRTMxLTM1RDQ1RjgxQUNDM307IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfTW9kZWxTYXZlRGVsZWdhdGU7CklJRCA9IHswOTA0RTQ2MS03ODk3LTM0QTMtODdEQi0yNEM2RkIzOUVBREF9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX01vZGVsTG9hZERlbGVnYXRlOwpJSUQgPSB7NUUzQ0YyQzMtNzA1OC0zRDAwLUE2NDMtNTU3RDg4ODRFMzFGfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9OdW1iZXJpbmdEZWxlZ2F0ZTsKSUlEID0ge0RCMDc1MDlFLURFOTktMzJDRi1BOEIxLTAzQTZCQjhBNTE3QX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfTW9kZWxDaGFuZ2VkRGVsZWdhdGU7CklJRCA9IHs5QkVBMzc5NS02MUI4LTNENUYtQjMwOS04NDRBQzE4OTgxRkZ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1Rla2xhU3RydWN0dXJlc0V4aXREZWxlZ2F0ZTsKSUlEID0gezhGMzY5QUM2LTE4RDktM0M5Ny1CNkJELTEyNDgzNEQwNTY4N307IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ2xhc2hDaGVja0RvbmVEZWxlZ2F0ZV8yOwpJSUQgPSB7MTg2RUUyMkUtMURGMi0zRUYzLUI2MkEtQzNBQjExNUE0NkM3fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9DbGFzaERldGVjdGVkRGVsZWdhdGVfMjsKSUlEID0ge0VCMEFBQjQ5LUMxREItMzgwNS04NzdELTdDNDhGRjdEQ0NGMX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfTWF0ZXJpYWw7CklJRCA9IHs3NTQ3QjREOS0yMEYwLTNEQzUtQkY3OC0yREFGNDEzQUVCQ0Z9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNYXRlcmlhbFN0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTWF0ZXJpYWxTdHJpbmcoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfTnVtYmVyaW5nU2VyaWVzOwpJSUQgPSB7QjM0OUE1RDktQzM3Ni0zQTcxLThCOTUtNjc2RTA4QjM1MjNFfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJlZml4KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcmVmaXgoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0TnVtYmVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0TnVtYmVyKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfT2Zmc2V0OwpJSUQgPSB7RTIwOTc5QTgtMjgzNi0zRjAyLThENUEtQ0Q4MUREMEVENUVEfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRHgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRHgoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRHkoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRHooCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIER6KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfUGhhc2U7CklJRCA9IHs2M0YxRDFBQy1BMDM4LTNBRjMtODlBQi02RTQwNkU2M0RCMDl9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQaGFzZU51bWJlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQaGFzZU51bWJlcigKICAgICAgICAgICAgJiM5MTtpbl0gaW50IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQaGFzZU5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBoYXNlTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGhhc2VDb21tZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGhhc2VDb21tZW50KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSXNDdXJyZW50UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElzQ3VycmVudFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1Bvc2l0aW9uOwpJSUQgPSB7MEU1NzQ4NjAtQzM0Qy0zRTJDLUI5OTYtNTUyNEI5M0MyMkNFfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbmVPZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbmVPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVwdGhPZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVwdGhPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUm90YXRpb25PZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJvdGF0aW9uT2Zmc2V0KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQbGFuZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbmUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBQbGFuZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXB0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVwdGgoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBEZXB0aEVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSb3RhdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUm90YXRpb24oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBSb3RhdGlvbkVudW0gcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfUHJvZmlsZTsKSUlEID0gezc5MEFENzExLTc0RjgtMzI5Mi1BQzQwLUFENTVDN0U2M0ExRX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVTdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVTdHJpbmcoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ2xhc2hDaGVja0hhbmRsZXI7CklJRCA9IHszMzk4MzA5RS1DMzM1LTM3RDctQjU0Mi00RDUxRTM2NDEyNjJ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJ1bkNsYXNoQ2hlY2soCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RvcENsYXNoQ2hlY2soCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfQ2xhc2hDaGVja0RhdGE7CklJRCA9IHtGNzkyOUY1Ni02RDZELTNGMzYtOTEyRi1DODBENjhDMDQyMDV9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPYmplY3QxKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPYmplY3QyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfTW9kZWw7CklJRCA9IHswREFFNTYzRi05QUFGLTMzNzQtOTdFQS0yMDg5MUU5MTJCNUN9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvbm5lY3Rpb25TdGF0dXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW5mbygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UHJvamVjdEluZm8oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0TW9kZWxPYmplY3RTZWxlY3RvcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdE1vZGVsT2JqZWN0KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBJZCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldElkZW50aWZpZXJCeUdVSUQoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgR1VJRCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRHVUlEQnlJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBJZCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbW1pdENoYW5nZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IENvbW1pdENoYW5nZXNfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBNZXNzYWdlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0V29ya1BsYW5lSGFuZGxlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENsYXNoQ2hlY2tIYW5kbGVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Nb2RlbEluZm87CklJRCA9IHtCN0JCQjAyNC05QjBFLTNDQkMtQTE1Qy1DNjExOUFGRDJEOEN9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOb3J0aERpcmVjdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOb3J0aERpcmVjdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RlbFBhdGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGVsUGF0aCgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kZWxOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kZWxOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX01vZGVsT2JqZWN0RW51bWVyYXRvcjsKSUlEID0ge0NCMTc4QzAyLTdCREYtMzlENy05NkJFLTc3NEMzMzhFMUVDRH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW92ZU5leHQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmVzZXQoCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0SW5zdGFuY2VzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3RJbnN0YW5jZXMoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEN1cnJlbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFNpemUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RW51bWVyYXRvcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfVGVrbGFfU3RydWN0dXJlc19Nb2RlbF9Nb2RlbE9iamVjdFNlbGVjdG9yOwpJSUQgPSB7QjI4NzBFMTktMkE2MC0zQkI1LTlENUYtOTREQTNFQTJDRjRCfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRBbGxPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRBbGxPYmplY3RzV2l0aFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBNb2RlbE9iamVjdEVudW0gRW51bSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldEFsbE9iamVjdHNXaXRoVHlwZV8yKAogICAgICAgICAgICAmIzkxO2luXSBUeXBlRmlsdGVyLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0T2JqZWN0c0J5Qm91bmRpbmdCb3goCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE1pblBvaW50LCAKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTWF4UG9pbnQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRFbnVtZXJhdG9yKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0T2JqZWN0c0J5RmlsdGVyTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBGaWx0ZXJOYW1lLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZpbHRlcmVkT2JqZWN0c1dpdGhUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgTW9kZWxPYmplY3RFbnVtIEVudW0sIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIEZpbHRlck5hbWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9Qcm9qZWN0SW5mbzsKSUlEID0gezQzMDMwRUE5LUI1MDEtMzhBOS04QkE4LUQxQkJGODIzMTBCRX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlc2NyaXB0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXNjcmlwdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnREYXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydERhdGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZERhdGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmREYXRlKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVzaWduZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXNpZ25lcigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFkZHJlc3MoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRyZXNzKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT2JqZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT2JqZWN0KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQnVpbGRlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEJ1aWxkZXIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2plY3ROdW1iZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9qZWN0TnVtYmVyKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kZWxTaGFyaW5nTG9jYWxQYXRoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGVsU2hhcmluZ0xvY2FsUGF0aCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RlbFNoYXJpbmdTZXJ2ZXJQYXRoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIElVbmtub3duKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGVsU2hhcmluZ1NlcnZlclBhdGgoCiAgICAgICAgICAgICYjOTE7aW5dIElVbmtub3duIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5mbzEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbmZvMSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluZm8yKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5mbzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1JlZmVyZW5jZU1vZGVsOwpJSUQgPSB7MUY1MzQyNzYtRjc3Mi0zMTU4LTk0MTYtQjE1QUFDNjFCOTQ5fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlsZW5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaWxlbmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBvc2l0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNjYWxlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTY2FsZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVmlzaWJpbGl0eSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVmlzaWJpbGl0eSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFZpc2liaWxpdHlFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvamVjdEdVSUQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9qZWN0R1VJRCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGVsR1VJRCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGVsR1VJRCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFZlcnNpb25HVUlEKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVmVyc2lvbkdVSUQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfUmVmZXJlbmNlTW9kZWxPYmplY3Q7CklJRCA9IHtCQTU2RTIzNC1GNDAzLTM3OTctQkY2Ni1FM0Y3NDhDNTg2RjV9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlZmVyZW5jZU1vZGVsKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9SZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZTsKSUlEID0ge0I2ODNDREMyLUU3OEItM0ZBQS04MkRCLUY1MjJBOEFFRkJBQ307IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9yaWdpbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIHhEaXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRydXNpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVzY3JpcHRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPYmplY3RUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0lGQzJYM19QYXJhbWV0cmljT2JqZWN0X0NTaGFwZVByb2ZpbGU7CklJRCA9IHswMDRGRjY2Qi0wNkY0LTM3QUEtOEY5MS03MTQ4NzVBQjVBRDR9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcmlnaW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCB4RGlyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0cnVzaW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlc2NyaXB0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT2JqZWN0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlcHRoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXaWR0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2FsbFRoaWNrbmVzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2lydGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEludGVybmFsRmlsbGV0UmFkaXVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfQ2lyY2xlSG9sbG93UHJvZmlsZTsKSUlEID0gezhBQjQ2QkFELUQ1QTMtMzgxNC05MUQ4LTNDMzJGRkM0M0ZBNH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9yaWdpbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIHhEaXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRydXNpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVzY3JpcHRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPYmplY3RUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmFkaXVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXYWxsVGhpY2tuZXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfQ2lyY2xlUHJvZmlsZTsKSUlEID0ge0MxOTRDNTk1LTg0MDctMzdFOC05NjkzLUI3RTQ0N0MyNTlGQX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9yaWdpbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIHhEaXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRydXNpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVzY3JpcHRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPYmplY3RUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmFkaXVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfRWxsaXBzZVByb2ZpbGU7CklJRCA9IHtBQUU5NDY3OC1FN0E3LTM3ODMtODNBQy0yNDIzOTZBRTc2MTl9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcmlnaW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCB4RGlyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0cnVzaW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlc2NyaXB0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT2JqZWN0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbWlBeGlzMSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VtaUF4aXMyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfSUZDMlgzX1BhcmFtZXRyaWNPYmplY3RfSVNoYXBlUHJvZmlsZTsKSUlEID0gezhBMEU5OTVELUI2ODAtM0I0OS05RTdDLTc3REJCNzZGQUU5Q307IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9yaWdpbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIHhEaXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeHRydXNpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVzY3JpcHRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPYmplY3RUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT3ZlcmFsbFdpZHRoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPdmVyYWxsRGVwdGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdlYlRoaWNrbmVzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmxhbmdlVGhpY2tuZXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaWxsZXRSYWRpdXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9JRkMyWDNfUGFyYW1ldHJpY09iamVjdF9MU2hhcGVQcm9maWxlOwpJSUQgPSB7ODg0QzI3MDQtNkRCNC0zQTIxLUEwMDgtOUEzNzVFQUY5RDdEfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT3JpZ2luKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgeERpcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dHJ1c2lvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXNjcmlwdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9iamVjdFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXB0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2lkdGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFRoaWNrbmVzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmlsbGV0UmFkaXVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFZGdlUmFkaXVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMZWdTbG9wZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0lGQzJYM19QYXJhbWV0cmljT2JqZWN0X1JlY3RhbmdsZUhvbGxvd1Byb2ZpbGU7CklJRCA9IHsxOERGODNGNS1GMkZBLTNBOUYtOEU4Qy1CRUI4QzYwMjNCMzB9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcmlnaW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCB4RGlyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0cnVzaW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlc2NyaXB0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT2JqZWN0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFhEaW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFlEaW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdhbGxUaGlja25lc3MoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElubmVyRmlsbGV0UmFkaXVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPdXRlckZpbGxldFJhZGl1cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0lGQzJYM19QYXJhbWV0cmljT2JqZWN0X1JlY3RhbmdsZVByb2ZpbGU7CklJRCA9IHsxMjU1REE0Mi0xMEU0LTM3RjQtQTdGNi01RDk1REYwMjg5QjJ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcmlnaW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCB4RGlyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0cnVzaW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlc2NyaXB0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT2JqZWN0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFhEaW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFlEaW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9JRkMyWDNfUGFyYW1ldHJpY09iamVjdF9UU2hhcGVQcm9maWxlOwpJSUQgPSB7NTJDODI4RUYtM0Y4NS0zRkI4LTgyRjItRkEyQzlFRkE3ODA3fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT3JpZ2luKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgeERpcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dHJ1c2lvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXNjcmlwdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9iamVjdFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXB0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmxhbmdlV2lkdGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdlYlRoaWNrbmVzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmxhbmdlVGhpY2tuZXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaWxsZXRSYWRpdXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZsYW5nZUVkZ2VSYWRpdXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdlYkVkZ2VSYWRpdXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdlYlNsb3BlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGbGFuZ2VTbG9wZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0lGQzJYM19QYXJhbWV0cmljT2JqZWN0X1VTaGFwZVByb2ZpbGU7CklJRCA9IHs1ODE1NTIwRC00NTgxLTM5RjctOUQ2RC1GRkMzMTExRTI0NTJ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcmlnaW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCB4RGlyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0cnVzaW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlc2NyaXB0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT2JqZWN0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlcHRoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGbGFuZ2VXaWR0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2ViVGhpY2tuZXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGbGFuZ2VUaGlja25lc3MoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZpbGxldFJhZGl1cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRWRnZVJhZGl1cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmxhbmdlU2xvcGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9JRkMyWDNfUGFyYW1ldHJpY09iamVjdF9aU2hhcGVQcm9maWxlOwpJSUQgPSB7RDlBRTg0RjEtMzA2Ri0zNEUzLTlDNDktNjdBOUMyOTgxMDczfTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT3JpZ2luKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgeERpcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dHJ1c2lvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXNjcmlwdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9iamVjdFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXB0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmxhbmdlV2lkdGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFdlYlRoaWNrbmVzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmxhbmdlVGhpY2tuZXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaWxsZXRSYWRpdXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVkZ2VSYWRpdXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9QYXJhbWV0cmljT2JqZWN0X09iamVjdEJvdW5kaW5nQm94OwpJSUQgPSB7RDU2N0ZGOUMtNjg4Qy0zNEY4LUIxMEUtMkVCM0ZFOEQ2MEU4fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT3JpZ2luKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgeERpcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4dHJ1c2lvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXNjcmlwdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9iamVjdFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCB5RGlyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9QYXJhbWV0cmljT2JqZWN0X0N1c3RvbVByb2ZpbGU7CklJRCA9IHs5QjE2Mzc1RS02RTU3LTNBRjYtQUU3QS0xQkVDMTlBNjZDRkZ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPcmlnaW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCB4RGlyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXh0cnVzaW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZU5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGVOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlc2NyaXB0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT2JqZWN0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9SZWZlcmVuY2VNb2RlbE9iamVjdEF0dHJpYnV0ZUVudW1lcmF0b3I7CklJRCA9IHtCRTM1RTczNC0wNDU3LTNFM0YtQkVCMy02Mzc0QURDNDc0QTh9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vdmVOZXh0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDdXJyZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIFZBUklBTlQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJlc2V0KAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfVGVrbGFfU3RydWN0dXJlc19Nb2RlbF9PcGVyYXRpb25zX09wZXJhdGlvbjsKSUlEID0gezJGQkYwOTM3LUM3NjUtMzA3My05NDMzLURDODNDQUMxMTYzOH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfVGVrbGFfU3RydWN0dXJlc19Nb2RlbEludGVybmFsX09wZXJhdGlvbjsKSUlEID0gezRGRUFDOUE1LTUwODQtMzg3Ni1CQjIyLUFEMzA4OEE5NDREMH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfUGFydDsKSUlEID0ge0UyM0Q1NjUwLUQ4RUUtMzdDQy1BRDg4LTc5NDM1MTkzNzhBMn07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0QXNzZW1ibHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Fzc2VtYmx5KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGUoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTWF0ZXJpYWwoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTWF0ZXJpYWwoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVmb3JtaW5nRGF0YSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWZvcm1pbmdEYXRhKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnROdW1iZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydE51bWJlcigKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBc3NlbWJseU51bWJlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBc3NlbWJseU51bWJlcigKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaW5pc2goCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaW5pc2goCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDYXN0VW5pdFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTAuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENhc3RVbml0VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IENhc3RVbml0VHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFNvbGlkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0U29saWRfMigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFNvbGlkQ3JlYXRpb25UeXBlRW51bSBTb2xpZENyZWF0aW9uVHlwZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQYXJ0TWFyaygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29tcG9uZW50cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEJvb2xlYW5zKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Qm9sdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRXZWxkcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlaW5mb3JjZW1lbnRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3VyZmFjZVRyZWF0bWVudHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Mi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDb21wYXJlVG8oCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBhcnRUb0NvbXBhcmUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0JlYW07CklJRCA9IHtDRjBDODdBNC0xMUNELTNDQjgtOEI4Mi1ENDdCRTE5NUJCRjB9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEFzc2VtYmx5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Bc3NlbWJseSoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1hdGVyaWFsKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1hdGVyaWFsKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlZm9ybWluZ0RhdGEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVmb3JtaW5nRGF0YSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0TnVtYmVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnROdW1iZXIoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXNzZW1ibHlOdW1iZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXNzZW1ibHlOdW1iZXIoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmluaXNoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmluaXNoKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2FzdFVuaXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDYXN0VW5pdFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBDYXN0VW5pdFR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1My4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTb2xpZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFNvbGlkXzIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBTb2xpZENyZWF0aW9uVHlwZUVudW0gU29saWRDcmVhdGlvblR5cGUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGFydE1hcmsoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvbXBvbmVudHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRCb29sZWFucygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEJvbHRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0V2VsZHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZWluZm9yY2VtZW50cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN1cmZhY2VUcmVhdG1lbnRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29tcGFyZVRvKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQYXJ0VG9Db21wYXJlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjguIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX0NvbnRvdXJQbGF0ZTsKSUlEID0gezgxRTA2NDBELTcyQjUtMzA1Qy04MkNELTIwMjI3NjRFRTc0MH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0QXNzZW1ibHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Fzc2VtYmx5KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByb2ZpbGUoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTWF0ZXJpYWwoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTWF0ZXJpYWwoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVmb3JtaW5nRGF0YSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWZvcm1pbmdEYXRhKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnROdW1iZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGFydE51bWJlcigKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBc3NlbWJseU51bWJlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBc3NlbWJseU51bWJlcigKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaW5pc2goCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGaW5pc2goCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDYXN0VW5pdFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTAuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENhc3RVbml0VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IENhc3RVbml0VHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb3NpdGlvbigKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFNvbGlkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0U29saWRfMigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFNvbGlkQ3JlYXRpb25UeXBlRW51bSBTb2xpZENyZWF0aW9uVHlwZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQYXJ0TWFyaygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29tcG9uZW50cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEJvb2xlYW5zKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Qm9sdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRXZWxkcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlaW5mb3JjZW1lbnRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3VyZmFjZVRyZWF0bWVudHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Mi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDb21wYXJlVG8oCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBhcnRUb0NvbXBhcmUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2My4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgVHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29udG91cigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX0NvbnRvdXIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29udG91cigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQ29udG91cioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Ni4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRDb250b3VyUG9pbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db250b3VyUG9pbnQqIENvbnRvdXJQb2ludCwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfUG9seUJlYW07CklJRCA9IHtDQjZCOTgyNy1BMTJELTM2NzktOTRERC04RTg4NDA3MTQ5NkN9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEFzc2VtYmx5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Bc3NlbWJseSoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJvZmlsZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQcm9maWxlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1hdGVyaWFsKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1hdGVyaWFsKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlZm9ybWluZ0RhdGEoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVmb3JtaW5nRGF0YSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQYXJ0TnVtYmVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBhcnROdW1iZXIoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXNzZW1ibHlOdW1iZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQXNzZW1ibHlOdW1iZXIoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmluaXNoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmluaXNoKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2FzdFVuaXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDYXN0VW5pdFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBDYXN0VW5pdFR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9zaXRpb24oCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1My4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTb2xpZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFNvbGlkXzIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBTb2xpZENyZWF0aW9uVHlwZUVudW0gU29saWRDcmVhdGlvblR5cGUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGFydE1hcmsoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvbXBvbmVudHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRCb29sZWFucygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEJvbHRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0V2VsZHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZWluZm9yY2VtZW50cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN1cmZhY2VUcmVhdG1lbnRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ29tcGFyZVRvKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQYXJ0VG9Db21wYXJlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbnRvdXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0NvbnRvdXIqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbnRvdXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Db250b3VyKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQWRkQ29udG91clBvaW50KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfQ29udG91clBvaW50KiBDb250b3VyUG9pbnQsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1BvdXJCcmVhazsKSUlEID0gezRGMjkxOEU0LThBMUQtMzM4OC1BMTc1LTU5NjNCQkYyOTJEMX07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0QXNzZW1ibHkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Fzc2VtYmx5KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERpcmVjdGlvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEaXJlY3Rpb24oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9seWxpbmUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9seWxpbmUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1BvdXJPYmplY3Q7CklJRCA9IHs0RTcxMzYwNS00QjQyLTNBMjktODE0Ni0zMjVCRTlDNDVCNjl9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEFzc2VtYmx5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Bc3NlbWJseSoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfVGFza1dvcmt0eXBlOwpJSUQgPSB7ODlFOUQ0ODctQUY1OC0zOTYzLUFDNkYtMkM3NjEyODhCQTg5fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfVGFza0RlcGVuZGVuY3k7CklJRCA9IHs5MDRGQTUwMy1BRjYzLTM4Q0UtQUMwMi01QzkwMUNFOEE4QzR9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMYWcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExhZygKICAgICAgICAgICAgJiM5MTtpbl0gaW50IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9jYWwoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb2NhbCgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFByaW1hcnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUHJpbWFyeSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWNvbmRhcnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2Vjb25kYXJ5KAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlcGVuZGVuY3lUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZXBlbmRlbmN5VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IERlcGVuZGVuY3lUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9UYXNrOwpJSUQgPSB7QTMyMzJGRjItRjk1OC0zQTYwLThDOTAtNDMyMjM4MDg3MkM0fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDb21wbGV0ZW5lc3MoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENvbXBsZXRlbmVzcygKICAgICAgICAgICAgJiM5MTtpbl0gaW50IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3JpdGljYWwoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDcml0aWNhbCgKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvY2FsKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9jYWwoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTY2VuYXJpbygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfSGllcmFyY2hpY09iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2NlbmFyaW8oCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9IaWVyYXJjaGljT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlc2NyaXB0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVzY3JpcHRpb24oCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBVcmwoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBVcmwoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQbGFubmVkU3RhcnREYXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIERBVEUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbm5lZFN0YXJ0RGF0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gREFURSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFBsYW5uZWRFbmREYXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIERBVEUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbm5lZEVuZERhdGUoCiAgICAgICAgICAgICYjOTE7aW5dIERBVEUgcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQbGFubmVkV29ya0Ftb3VudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUGxhbm5lZFdvcmtBbW91bnQoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFjdHVhbFN0YXJ0RGF0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBEQVRFKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFjdHVhbFN0YXJ0RGF0ZSgKICAgICAgICAgICAgJiM5MTtpbl0gREFURSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEFjdHVhbEVuZERhdGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gREFURSogcFJldFZhbAogICAgICAgICApOwoKICAgIDU1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBY3R1YWxFbmREYXRlKAogICAgICAgICAgICAmIzkxO2luXSBEQVRFIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQWN0dWFsV29ya0Ftb3VudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQWN0dWFsV29ya0Ftb3VudCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBBZGRPYmplY3RzVG9UYXNrKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBNb2RlbE9iamVjdHMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSZW1vdmVPYmplY3RzRnJvbVRhc2soCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE1vZGVsT2JqZWN0cywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlcnMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREZXBlbmRlbmNpZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1JlaW5mb3JjZW1lbnQ7CklJRCA9IHswREQ3NkJENi1BNjM0LTM4OUItODYwQi1BM0YxNDU0RjlEMjl9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcmFkZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyYWRlKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcmluZ1NlcmllcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXJpbmdTZXJpZXMoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT25QbGFuZU9mZnNldHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT25QbGFuZU9mZnNldHMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRnJvbVBsYW5lT2Zmc2V0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGcm9tUGxhbmVPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFJlYmFyT2Zmc2V0VHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0VmFsdWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXRWYWx1ZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBSZWJhck9mZnNldFR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXRWYWx1ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXRWYWx1ZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmFkaXVzVmFsdWVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJhZGl1c1ZhbHVlcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlYmFyR2VvbWV0cmllcygKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBXaXRoSG9va3MsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSXNHZW9tZXRyeVZhbGlkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXROdW1iZXJPZlJlYmFycygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTaW5nbGVSZWJhcigKICAgICAgICAgICAgJiM5MTtpbl0gaW50IEluZGV4LCAKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBXaXRoSG9va3MsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9CYXNlUmViYXJHcm91cDsKSUlEID0gezI4NDY3QjQ0LUVGNkUtMzA3Mi1BRjdELUFFODM5MkM0NDNCRn07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyYWRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR3JhZGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtpbl0gaW50IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnVtYmVyaW5nU2VyaWVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcmluZ1NlcmllcygKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPblBsYW5lT2Zmc2V0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPblBsYW5lT2Zmc2V0cygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGcm9tUGxhbmVPZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZyb21QbGFuZU9mZnNldCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXRUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgUmViYXJPZmZzZXRUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXRWYWx1ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldFZhbHVlKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFJlYmFyT2Zmc2V0VHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldFZhbHVlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldFZhbHVlKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSYWRpdXNWYWx1ZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmFkaXVzVmFsdWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmViYXJHZW9tZXRyaWVzKAogICAgICAgICAgICAmIzkxO2luXSBib29sIFdpdGhIb29rcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJc0dlb21ldHJ5VmFsaWQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldE51bWJlck9mUmViYXJzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFNpbmdsZVJlYmFyKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgSW5kZXgsIAogICAgICAgICAgICAmIzkxO2luXSBib29sIFdpdGhIb29rcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2l6ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNpemUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDYyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydEhvb2soCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2My4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRIb29rKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZEhvb2soCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kSG9vaygKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeGNsdWRlVHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhjbHVkZVR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBFeGNsdWRlVHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDY4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFjaW5nVHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3BhY2luZ1R5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBSZWJhckdyb3VwU3BhY2luZ1R5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3BhY2luZ3MoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3BhY2luZ3MoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Mi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDczLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzQuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9DaXJjbGVSZWJhckdyb3VwOwpJSUQgPSB7NkUwNTNEOEMtNDJGRi0zQzVGLUEyQTItRjFGODQ2RDNDNkY1fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR3JhZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcmFkZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXJpbmdTZXJpZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnVtYmVyaW5nU2VyaWVzKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9uUGxhbmVPZmZzZXRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9uUGxhbmVPZmZzZXRzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZyb21QbGFuZU9mZnNldCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRnJvbVBsYW5lT2Zmc2V0KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBSZWJhck9mZnNldFR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldFZhbHVlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0VmFsdWUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXRUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgUmViYXJPZmZzZXRUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0VmFsdWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0VmFsdWUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJhZGl1c1ZhbHVlcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU1LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSYWRpdXNWYWx1ZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ni4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZWJhckdlb21ldHJpZXMoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgV2l0aEhvb2tzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElzR2VvbWV0cnlWYWxpZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0TnVtYmVyT2ZSZWJhcnMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U2luZ2xlUmViYXIoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBJbmRleCwgCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgV2l0aEhvb2tzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTaXplKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2l6ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0SG9vaygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydEhvb2soCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kSG9vaygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY1LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRIb29rKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4Y2x1ZGVUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeGNsdWRlVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEV4Y2x1ZGVUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYWNpbmdUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFjaW5nVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFJlYmFyR3JvdXBTcGFjaW5nVHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDcwLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFjaW5ncygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDcxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFjaW5ncygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcyLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ni4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9seWdvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX1BvbHlnb24qIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ny4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9seWdvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfUG9seWdvbioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3OC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RpcnJ1cFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBDaXJjbGVSZWJhckdyb3VwU3RpcnJ1cFR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RpcnJ1cFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKSURpc3BhdGNoIF9DdXJ2ZWRSZWJhckdyb3VwOwpJSUQgPSB7QzdFOTBDRTgtRjRFOC0zQTJDLThEMEMtMzBGNTE4OTAyODQ3fTsgCi8vIEluaGVyaXRzIGZyb206ICBJRGlzcGF0Y2ggIHswMDAyMDQwMC0wMDAwLTAwMDAtQzAwMC0wMDAwMDAwMDAwNDZ9CgogICAgMS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgVG9TdHJpbmcoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXF1YWxzKAogICAgICAgICAgICAmIzkxO2luXSBWQVJJQU5UIG9iaiwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGFzaENvZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyAqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEluc2VydCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZWxlY3QoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTW9kaWZ5KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEZWxldGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDExLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENoaWxkcmVuKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RmF0aGVyQ29tcG9uZW50KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9CYXNlQ29tcG9uZW50KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhpZXJhcmNoaWNPYmplY3RzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVVzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1VzZXJQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFN0cmluZ1JlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlcG9ydFByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI1LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBpbnQgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDb29yZGluYXRlU3lzdGVtKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UGhhc2UoCiAgICAgICAgICAgICYjOTE7b3V0XSAKKiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMy4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRmF0aGVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR3JhZGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcmFkZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDM3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgcFJldFZhbAogICAgICAgICApOwoKICAgIDQwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXJpbmdTZXJpZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnVtYmVyaW5nU2VyaWVzKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9uUGxhbmVPZmZzZXRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDMuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE9uUGxhbmVPZmZzZXRzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZyb21QbGFuZU9mZnNldCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRnJvbVBsYW5lT2Zmc2V0KAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDQ2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ny4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBSZWJhck9mZnNldFR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldFZhbHVlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0VmFsdWUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXRUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgUmViYXJPZmZzZXRUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0VmFsdWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0VmFsdWUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJhZGl1c1ZhbHVlcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU1LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSYWRpdXNWYWx1ZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ni4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZWJhckdlb21ldHJpZXMoCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgV2l0aEhvb2tzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDU3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElzR2VvbWV0cnlWYWxpZCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0TnVtYmVyT2ZSZWJhcnMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U2luZ2xlUmViYXIoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBJbmRleCwgCiAgICAgICAgICAgICYjOTE7aW5dIGJvb2wgV2l0aEhvb2tzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTaXplKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2l6ZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0SG9vaygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydEhvb2soCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kSG9vaygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY1LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRIb29rKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4Y2x1ZGVUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFeGNsdWRlVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IEV4Y2x1ZGVUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYWNpbmdUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFjaW5nVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFJlYmFyR3JvdXBTcGFjaW5nVHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDcwLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFjaW5ncygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDcxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTcGFjaW5ncygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcyLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50KAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzMuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NC4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3NS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ni4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9seWdvbigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX1BvbHlnb24qIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ny4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUG9seWdvbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfUG9seWdvbioqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1JlYmFyR3JvdXA7CklJRCA9IHtCOUY0M0NCQi0wNzMzLTM2MDAtOUZGRC0zRDdDMUZENkQ3NkZ9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SW50ZWdlclJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0U3RyaW5nUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmVwb3J0UHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBCU1RSKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gZG91YmxlKiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDIzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IEdldFJlcG9ydFByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBpbnQqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRVc2VyUHJvcGVydHkoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgU2V0VXNlclByb3BlcnR5XzMoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW5dIGludCBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldENvb3JkaW5hdGVTeXN0ZW0oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtpbl0gCiogUGhhc2UsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRQaGFzZSgKICAgICAgICAgICAgJiM5MTtvdXRdIAoqKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGYXRoZXIoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Nb2RlbE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHcmFkZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyYWRlKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE5hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzOS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2xhc3MoCiAgICAgICAgICAgICYjOTE7aW5dIGludCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcmluZ1NlcmllcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQxLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOdW1iZXJpbmdTZXJpZXMoCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT25QbGFuZU9mZnNldHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0My4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgT25QbGFuZU9mZnNldHMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRnJvbVBsYW5lT2Zmc2V0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGcm9tUGxhbmVPZmZzZXQoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDYuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ3LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFJlYmFyT2Zmc2V0VHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDQ4LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydFBvaW50T2Zmc2V0VmFsdWUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXRWYWx1ZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXRUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDUxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBSZWJhck9mZnNldFR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXRWYWx1ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kUG9pbnRPZmZzZXRWYWx1ZSgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmFkaXVzVmFsdWVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJhZGl1c1ZhbHVlcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFJlYmFyR2VvbWV0cmllcygKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBXaXRoSG9va3MsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSXNHZW9tZXRyeVZhbGlkKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXROdW1iZXJPZlJlYmFycygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1OS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTaW5nbGVSZWJhcigKICAgICAgICAgICAgJiM5MTtpbl0gaW50IEluZGV4LCAKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBXaXRoSG9va3MsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjAuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNpemUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDYxLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTaXplKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRIb29rKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjMuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0SG9vaygKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRIb29rKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjUuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZEhvb2soCiAgICAgICAgICAgICYjOTE7aW5dIAoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRXhjbHVkZVR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEV4Y2x1ZGVUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgRXhjbHVkZVR5cGVFbnVtIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2OC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3BhY2luZ1R5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjkuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYWNpbmdUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgUmViYXJHcm91cFNwYWNpbmdUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzAuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYWNpbmdzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNwYWNpbmdzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzIuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3My4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDc0LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDc1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDc2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb2x5Z29ucygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDc3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb2x5Z29ucygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDc4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGlycnVwVHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFJlYmFyR3JvdXBTdGlycnVwVHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDc5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGlycnVwVHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1JlYmFyTWVzaDsKSUlEID0gezIwMDc2NUI5LURGRkQtMzU1MC05MDg2LUYzNTFCMzFDOUU4RH07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIElkZW50aWZpZXIoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJbnNlcnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDguIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU2VsZWN0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1vZGlmeSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRGVsZXRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRDaGlsZHJlbigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDEyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEZhdGhlckNvbXBvbmVudCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfQmFzZUNvbXBvbmVudCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIaWVyYXJjaGljT2JqZWN0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAKKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDE0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEludGVnZXJVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXREb3VibGVVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdVc2VyUHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyUmVwb3J0UHJvcGVydGllcygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogTmFtZXMsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIFZhbHVlcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDE4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldERvdWJsZVJlcG9ydFByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIE5hbWVzLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBWYWx1ZXMsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRTdHJpbmdSZXBvcnRQcm9wZXJ0aWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBOYW1lcywgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjAuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VXNlclByb3BlcnR5KAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gQlNUUiogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyMS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRSZXBvcnRQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIEJTVFIqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjIuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0VXNlclByb3BlcnR5XzIoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgTmFtZSwgCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSBkb3VibGUqIFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgMjUgR2V0UmVwb3J0UHJvcGVydHlfMigKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGRvdWJsZSogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbixvdXRdIGludCogVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyNS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBHZXRSZXBvcnRQcm9wZXJ0eV8zKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luLG91dF0gaW50KiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI2LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFVzZXJQcm9wZXJ0eSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBWYWx1ZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDI3LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFNldFVzZXJQcm9wZXJ0eV8yKAogICAgICAgICAgICAmIzkxO2luXSBCU1RSIE5hbWUsIAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgVmFsdWUsIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyOC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAyNSBTZXRVc2VyUHJvcGVydHlfMygKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBOYW1lLCAKICAgICAgICAgICAgJiM5MTtpbl0gaW50IFZhbHVlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMjkuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q29vcmRpbmF0ZVN5c3RlbSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDMwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNldFBoYXNlKAogICAgICAgICAgICAmIzkxO2luXSAKKiBQaGFzZSwgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDMxLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFBoYXNlKAogICAgICAgICAgICAmIzkxO291dF0gCioqIFBoYXNlLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7SURpc3BhdGNoJmd0OyBfTW9kZWxPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzMuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZhdGhlcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O0lEaXNwYXRjaCZndDsgX01vZGVsT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzQuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdyYWRlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR3JhZGUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDM2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzNy4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTmFtZSgKICAgICAgICAgICAgJiM5MTtpbl0gQlNUUiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMzguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENsYXNzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDM5LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDbGFzcygKICAgICAgICAgICAgJiM5MTtpbl0gaW50IHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0MC4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTnVtYmVyaW5nU2VyaWVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIAoqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDEuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE51bWJlcmluZ1NlcmllcygKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPblBsYW5lT2Zmc2V0cygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDQzLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBPblBsYW5lT2Zmc2V0cygKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQ0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBGcm9tUGxhbmVPZmZzZXQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDUuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEZyb21QbGFuZU9mZnNldCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0Ni4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDcuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXRUeXBlKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgUmViYXJPZmZzZXRUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNDguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnRPZmZzZXRWYWx1ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0OS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludE9mZnNldFZhbHVlKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDUwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gaW50KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTEuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZFBvaW50T2Zmc2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFJlYmFyT2Zmc2V0VHlwZUVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDUyLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldFZhbHVlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDUzLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludE9mZnNldFZhbHVlKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDU0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSYWRpdXNWYWx1ZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1NS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmFkaXVzVmFsdWVzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNTYuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0UmViYXJHZW9tZXRyaWVzKAogICAgICAgICAgICAmIzkxO2luXSBib29sIFdpdGhIb29rcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1Ny4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJc0dlb21ldHJ5VmFsaWQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldE51bWJlck9mUmViYXJzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDU5LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFNpbmdsZVJlYmFyKAogICAgICAgICAgICAmIzkxO2luXSBpbnQgSW5kZXgsIAogICAgICAgICAgICAmIzkxO2luXSBib29sIFdpdGhIb29rcywgCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2MC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTWVzaFR5cGUoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBSZWJhck1lc2hUeXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIE1lc2hUeXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDYyLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb25naXR1ZGluYWxTcGFjaW5nTWV0aG9kKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgUmViYXJNZXNoU3BhY2luZ01ldGhvZEVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDYzLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb25naXR1ZGluYWxTcGFjaW5nTWV0aG9kKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDY0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb2x5Z29uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtJRGlzcGF0Y2gmZ3Q7IF9Qb2x5Z29uKiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY1LiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBQb2x5Z29uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7SURpc3BhdGNoJmd0OyBfUG9seWdvbiogcFJldFZhbAogICAgICAgICApOwoKICAgIDY2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMb25naXR1ZGluYWxEaXN0YW5jZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2Ny4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9uZ2l0dWRpbmFsRGlzdGFuY2VzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENyb3NzRGlzdGFuY2VzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyBPYmplY3QqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNjkuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENyb3NzRGlzdGFuY2VzKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzAuIApTVERDQUxMIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFN0YXJ0UG9pbnQoCiAgICAgICAgICAgICYjOTE7aW5dICZsdDtlbnVtJmd0OyBPYmplY3QqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3MS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRQb2ludCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDcyLiAKU1REQ0FMTCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludCgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IE9iamVjdCogcFJldFZhbAogICAgICAgICApOwoKICAgIDczLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFbmRQb2ludCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDc0LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBMZWZ0T3ZlcmhhbmdMb25naXR1ZGluYWwoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExlZnRPdmVyaGFuZ0xvbmdpdHVkaW5hbCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3Ni4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGVmdE92ZXJoYW5nQ3Jvc3MoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNzcuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExlZnRPdmVyaGFuZ0Nyb3NzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDc4LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSaWdodE92ZXJoYW5nTG9uZ2l0dWRpbmFsKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKICAgIDc5LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSaWdodE92ZXJoYW5nTG9uZ2l0dWRpbmFsKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDgwLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSaWdodE92ZXJoYW5nQ3Jvc3MoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFJpZ2h0T3ZlcmhhbmdDcm9zcygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4Mi4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTG9uZ2l0dWRpbmFsU2l6ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODMuIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExvbmdpdHVkaW5hbFNpemUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDg0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDcm9zc1NpemUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gQlNUUiogcFJldFZhbAogICAgICAgICApOwoKICAgIDg1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDcm9zc1NpemUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDg2LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBXaWR0aCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4Ny4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgV2lkdGgoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgODguIApTVERDQUxMIFBST1BFUlRZUFVUUkVGIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExlbmd0aCgKICAgICAgICAgICAgJiM5MTtpbl0gZG91YmxlIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4OS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGVuZ3RoKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDkwLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDdXRCeUZhdGhlclBhcnRDdXRzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5MS4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ3V0QnlGYXRoZXJQYXJ0Q3V0cygKICAgICAgICAgICAgJiM5MTtpbl0gYm9vbCBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTIuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIENhdGFsb2dOYW1lKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5My4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQ2F0YWxvZ05hbWUoCiAgICAgICAgICAgICYjOTE7aW5dIEJTVFIgcFJldFZhbAogICAgICAgICApOwoKICAgIDk0LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDcm9zc0JhckxvY2F0aW9uKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDk1LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBDcm9zc0JhckxvY2F0aW9uKAogICAgICAgICAgICAmIzkxO2luXSAmbHQ7ZW51bSZndDsgUmViYXJNZXNoQ3Jvc3NCYXJMb2NhdGlvbkVudW0gcFJldFZhbAogICAgICAgICApOwoKICAgIDk2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTdGFydEhvb2soCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5Ny4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgU3RhcnRIb29rKAogICAgICAgICAgICAmIzkxO2luXSAKKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOTguIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVuZEhvb2soCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA5OS4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgRW5kSG9vaygKICAgICAgICAgICAgJiM5MTtpbl0gCiogcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfUmViYXJHZW9tZXRyeTsKSUlEID0ge0Q0ODM2QjBCLTRDRUQtMzI2Ni1BQzkwLUE0NTE2NkNDNzlEMn07IAovLyBJbmhlcml0cyBmcm9tOiAgSURpc3BhdGNoICB7MDAwMjA0MDAtMDAwMC0wMDAwLUMwMDAtMDAwMDAwMDAwMDQ2fQoKICAgIDEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgIDI1IFRvU3RyaW5nKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIEJTVFIqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAyLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEVxdWFscygKICAgICAgICAgICAgJiM5MTtpbl0gVkFSSUFOVCBvYmosIAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAzLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldEhhc2hDb2RlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGludCogcFJldFZhbAogICAgICAgICApOwoKICAgIDQuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0VHlwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogcFJldFZhbAogICAgICAgICApOwoKICAgIDUuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNoYXBlKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDsmZ3Q7ICoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBEaWFtZXRlcigKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA3LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBCZW5kaW5nUmFkaXVzZXMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpJRGlzcGF0Y2ggX1JlYmFySG9va0RhdGE7CklJRCA9IHs5NUNGMTBEMS0wMTQ1LTM3RTYtQjNDMC03RDI2MjhCNjlDOTB9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTaGFwZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA2LiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBTaGFwZSgKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7IFJlYmFySG9va1NoYXBlRW51bSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNy4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQW5nbGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gZG91YmxlKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOC4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgQW5nbGUoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgUFJPUEVSVFlHRVQgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgUmFkaXVzKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGRvdWJsZSogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBQUk9QRVJUWVBVVFJFRiBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBSYWRpdXMoCiAgICAgICAgICAgICYjOTE7aW5dIGRvdWJsZSBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIFBST1BFUlRZR0VUIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIExlbmd0aCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBkb3VibGUqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgUFJPUEVSVFlQVVRSRUYgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgTGVuZ3RoKAogICAgICAgICAgICAmIzkxO2luXSBkb3VibGUgcFJldFZhbAogICAgICAgICApOwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCklEaXNwYXRjaCBfUmViYXJTcGxpY2U7CklJRCA9IHtEMkUxMDQ0Qi01Q0UwLTM0QTQtOTE0My1GQTZENzFCOTgzQ0V9OyAKLy8gSW5oZXJpdHMgZnJvbTogIElEaXNwYXRjaCAgezAwMDIwNDAwLTAwMDAtMDAwMC1DMDAwLTAwMDAwMDAwMDA0Nn0KCiAgICAxLiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAyNSBUb1N0cmluZygKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBCU1RSKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBFcXVhbHMoCiAgICAgICAgICAgICYjOTE7aW5dIFZBUklBTlQgb2JqLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMy4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRIYXNoQ29kZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBpbnQqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA0LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIEdldFR5cGUoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O2VudW0mZ3Q7IE9iamVjdCoqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA1LiAKU1REQ0FMTCBQUk9QRVJUWUdFVCBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBJZGVudGlmaWVyKAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdICZsdDtlbnVtJmd0OyAqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgNi4gClNURENBTEwgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSWRlbnRpZmllcigKICAgICAgICAgICAgJiM5MTtpbl0gJmx0O2VudW0mZ3Q7ICogcFJldFZhbAogICAgICAgICApOwoKICAgIDcuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgSW5zZXJ0KAogICAgICAgICAgICAmIzkxO291dCxyZXR2YWxdIGJvb2wqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICA4LiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIFNlbGVjdCgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgOS4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBNb2RpZnkoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gYm9vbCogcFJldFZhbAogICAgICAgICApOwoKICAgIDEwLiAKU1REQ0FMTCBGVU5DIFBVUkVWSVJUVUFMOwogICAgICAgICBIUkVTVUxUIERlbGV0ZSgKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTEuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0Q2hpbGRyZW4oCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxMi4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRGYXRoZXJDb21wb25lbnQoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gJmx0O0lEaXNwYXRjaCZndDsgX0Jhc2VDb21wb25lbnQqKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTMuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0SGllcmFyY2hpY09iamVjdHMoCiAgICAgICAgICAgICYjOTE7b3V0LHJldHZhbF0gCioqIHBSZXRWYWwKICAgICAgICAgKTsKCiAgICAxNC4gClNURENBTEwgRlVOQyBQVVJFVklSVFVBTDsKICAgICAgICAgSFJFU1VMVCBHZXRJbnRlZ2VyVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7CgogICAgMTUuIApTVERDQUxMIEZVTkMgUFVSRVZJUlRVQUw7CiAgICAgICAgIEhSRVNVTFQgR2V0RG91YmxlVXNlclByb3BlcnRpZXMoCiAgICAgICAgICAgICYjOTE7aW4sb3V0XSAmbHQ7ZW51bSZndDsgT2JqZWN0KiogVmFsdWVzLCAKICAgICAgICAgICAgJiM5MTtvdXQscmV0dmFsXSBib29sKiBwUmV0VmFsCiAgICAgICAgICk7Cgog